У меня есть DocumentTermMatrix, и я хотел бы заменить определенные термины в этом документе и создать частотную таблицу.R: DocumentTermMatrix Неправильные частоты после mgsub
Отправной точкой является исходный документ следующим образом:
library(tm)
library(qdap)
df1 <- data.frame(word =c("test", "test", "teste", "hey", "heyyy", "hi"))
tdm <- as.DocumentTermMatrix(as.character(df1$word))
Когда я создаю таблицу частот исходного документа я получаю правильные результаты:
freq0 <- as.matrix(sort(colSums(as.matrix(tdm)), decreasing=TRUE))
freq0
До сих пор так хорошо. Однако, если заменить некоторые термины в документе, то новая таблица частот получает неправильные результаты:
tdm$dimnames$Terms <- mgsub(c("teste", "heyyy"), c("test", "hey"), as.character(tdm$dimnames$Terms), fixed=T, trim=T)
freq1 <- as.matrix(sort(colSums(as.matrix(tdm)), decreasing=TRUE))
freq1
Очевидно или, возможно, некоторые индексирование в документе неправильно, потому что даже одни и те же термины не считаются идентичными, считая условия.
Этот результат должен быть идеальный случай:
df2 <- data.frame(word =c("test", "test", "test", "hey", "hey", "hi"))
tdm2 <- as.DocumentTermMatrix(as.character(df2$word))
tdm2$dimnames$Terms <- mgsub(c("teste", "heyyy"), c("test", "hey"), as.character(tdm2$dimnames$Terms), fixed=T, trim=T)
freq2 <- as.matrix(sort(colSums(as.matrix(tdm2)), decreasing=TRUE))
freq2
Может кто-нибудь помочь мне выяснить проблему?
Thx заранее
Я получаю сообщение об ошибке с 'as.DocumentTermMatrix (as.character (df1 $ word)) # Ошибка в .TermDocumentMatrix (t (x), weighting): аргумент" w отсутствует восьмерка ", без библиотеки – akrun
(qdap) была неправильная позиция в коде. Теперь он должен быть воспроизводимым – OAM
Я не уверен, почему 'colSums' используется как' as.matrix (tdm) '1 столбец 1/5. Вы можете попробовать 'm1 <- as.matrix (tdm); tapply (m1, dimnames (m1) [[2]], FUN = sum) ' – akrun