Stock Tweets, Text Mining, Emoticon Erros

偶尔善良 提交于 2019-12-07 20:21:40

问题


I was hoping you'd be able to assist in a text mining exercise. I was interested in 'AAPL' tweets, and was able to pull 500 tweets from the API. I was able to clear several hurdles on my own, but need help for last part. For some reason, the tm package is not removing stopwords. Can you please take a look and see what the problem might be? Are emoticons causing an issue?

After plotting Term_Frequency, the most frequent terms are "AAPL", "Apple", "iPhone", "Price", "Stock"

Thanks in advance!

Munckinn

transform into dataframe
tweets.df <- twListToDF(tweets)

#Isolate text from tweets
aapl_tweets <- tweets.df$text

#Deal with emoticons
tweets2 <- data.frame(text = iconv(aapl_tweets, "latin1", "ASCII", "bye"), stringsAsFactors = FALSE)

#Make a vector source:
aapl_source <- VectorSource(tweets2)

#make a volatile corpus
aapl_corpus <- VCorpus(aapl_source)
aapl_cleaned <- clean_corpus(aapl_source)

#create my list to remove words
myList <- c("aapl", "apple", "stock", "stocks", stopwords("en"))

#clean corpus function 

clean_corpus <- function(corpus){
  corpus <- tm_map(corpus, stripWhitespace, mc.cores = 1)
  corpus <- tm_map(corpus, removePunctuation, mc.cores = 1)
  corpus <- tm_map(corpus, removeWords, myList, mc.cores = 1)
  return(corpus)
}

#clean aapl corpus
aapl_cleaned <- clean_corpus(aapl_corpus)

#convert to TDM
aapl.tdm <- TermDocumentMatrix(aapl_cleaned)

aapl.tdm

#Convert as Matrix
aapl_m <- as.matrix(aapl.tdm)

#Create Frequency tables
term_frequency <- rowSums(aapl_m)
term_frequency <- sort(term_frequency, decreasing = TRUE)
term_frequency[1:10]

barplot(term_frequency[1:10])

回答1:


I think your problem is in the iconv change "bye" to "byte"

   tweets2 <- data.frame(
              text = iconv(aapl_tweets, "latin1", "ASCII", "byte"),
              stringsAsFactors = FALSE)


来源:https://stackoverflow.com/questions/40874507/stock-tweets-text-mining-emoticon-erros

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!