2016-04-09 3 views
2

У меня есть код ниже, чтобы создавать чистые тексты для моего анализа настроений в Twitter. Я хочу добавить еще одну строку, чтобы удалить определенные слова, которые я не хочу включать в этот анализ, например, «дерьмо», «больной» и т. Д. Может ли кто-нибудь угодить советам, как это сделать?R - Анализ настроений - Как удалить определенные слова

tweets <- searchTwitter("iPhone", n=1500, lang="en") 
txt <- sapply(tweets, function(x) x$getText()) 
txt <- gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", txt) 
txt <- gsub("@\\w+", "", txt) 
txt <- gsub("[[:punct:]]", "", txt) 
txt <- gsub("[[:digit:]]", "", txt) 
txt <- gsub("http\\w+", "", txt) 
txt <- gsub("[ \t]{2,}", "", txt) 
txt <- gsub("^\\s+|\\s+$", "", txt) 
+0

Ryo .. Возможно, вы, возможно, читали блог: https://mkmanu.wordpress.com/2014/08/05/sentiment-analysis-on-twitter-data-text-analytics-tutorial/ –

+0

Вы можете векторизовать 'gsub'. Проверьте [этот ответ на «Заменить несколько аргументов с помощью gsub»] (http://stackoverflow.com/a/15254254/3560695). Это также упрощает ваш код. – Therkel

ответ

0

Используя последнюю версию пакета «TM» в R, вы можете удалить слова ..

library(tm) 
myCorpOld <- Corpus(VectorSource(YourFirstDFonTweet$text) 

обратите внимание, примерно мозолистого решений, «YourFirstDFonTweet» является Dataframe, что вы, возможно, создали из загруженных чириканье.

#remove "crap" and "sick" from 
txt <- setdiff(say_txt, c("crap", "sick")) 

#remove these form corpus 
myCorpUpdate <- tm_map(myCorpOld, txt) 

Надеюсь, это даст вам представление о том, как решить вашу проблему.

+0

Есть ли альтернативный способ удалить эти два слова с помощью 'gsub'? – Ryo

+0

Используя gsub, вы можете удалить только одно слово за раз. например, у вас есть твит: data <- c («Это пример твита. Вот мой хард-адрес электронной почты: [email protected] Так много всего дерьмовых вещей здесь»), и вы хотите удалить слово «дерьмо», используя gsub .... gsub («crap», «», data), что вы получаете как: «Это пример твита. Вот мой email [email protected] Так много всего здесь». –

+0

Большое спасибо Manoj! – Ryo

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