2013-12-20 3 views
2

Я пытаюсь получить количество ключевых слов в моем корпусе, используя пакет R "tm". Это мой код до сих пор:Получение количества ключевых слов с использованием пакета tm в R

# get the data strings 
f<-as.vector(forum[[1]]) 

# replace + 
f<-gsub("+", " ", f ,fixed=TRUE) 

# lower case 
f<-tolower(f) 

# show all strings that contain mobile 
mobile<- f[grep("mobile", f, ignore.case = FALSE, perl = FALSE, value = FALSE, 
    fixed = FALSE, useBytes = FALSE, invert = FALSE)] 
text.corp.mobile <- Corpus(VectorSource(mobile)) 
text.corp.mobile <- tm_map(text.corp.mobile , removePunctuation) 
text.corp.mobile <- tm_map(text.corp.mobile , removeWords, c(stopwords("english"),"mobile")) 
dtm.mobile <- DocumentTermMatrix(text.corp.mobile) 
dtm.mobile 
dtm.mat.mobile <- as.matrix(dtm.mobile) 
dtm.mat.mobile 

Это возвращает таблицу с бинарными результатами погоды ключевым слова появилось в одном из текстов корпусных или нет. Вместо получения окончательного результата в двоичной форме я хотел бы получить количество для каждого ключевого слова. Например: «автомобиль» появился в 5 раз «кнопка» появился в 9 раз

ответ

1

, не видя ваши фактические данные, его немного трудно сказать, но так как вы просто называется DocumentTermMatrix я хотел бы попробовать что-то вроде этого:

dtm.mat.mobile <- as.matrix(dtm.mobile) 
word.freqs <- sort(rowSums(dtm.mat.mobile), decreasing=TRUE) 
+0

Ну, так как это DocumentTermMatrix вместо TermDocumentMatrix, OP, вероятно, после суммы столбца. Кроме того, этот пример преобразует dtm.mobile в нерезкое матричное представление, которое может быть медленным и/или невозможным для большого корпуса. – josliber

+0

@josilber Я бы хотел опубликовать изображение, которое уточняет мой вопрос, но, к сожалению, у меня недостаточно репутации :( – Manko

+0

@Stedy благодарит кучу! – Manko

Смежные вопросы