繁体   English   中英

R中的tm_map错误

[英]tm_map is error in R

这是我第一次进行Twitter分析。

    #Search data from Twitter
library("twitteR")
SearchData = searchTwitter("Bruno Mars", n=1000,lang = 'en')
SearchData

#Scrapping Data 
userTimeline("BrunoMars", n=100, maxID =NULL, excludeReplies = FALSE, includeRts = FALSE)

class(SearchData)
head(SearchData)

#Cleanning Data
library(NLP)
library(tm)



TweetList <- sapply(SearchData, function(x) x$getText()) 

TweetList <- (TweetList[!is.na(TweetList)])
TweetCorpus <- Corpus(VectorSource(TweetList))
TweetCorpus <-  iconv(TweetCorpus, to ="utf-8")

#change data to lower case

TweetCorpus <- tm_map(TweetCorpus,removePunctuation)
TweetCorpus <- tm_map(TweetCorpus, removeNumbers)
TweetCorpus <- tm_map(TweetCorpus, tolower)

我收到此错误“ UseMethod(“ tm_map”,x)中的错误:在我的最后3行没有适用于'tm_map'的适用方法应用于“字符”类的对象。

我试图自己通过在removePunctuation,removeNumbers和tolower之前添加content_transformer来解决问题,但是我仍然遇到相同的错误。 我真的不知道。 我需要你的建议和建议。 我已经解决了这一问题几天,但尚未解决。

非常感谢罗斯

最新版本的tm做到了这一点,因此您不能tm_map带有tm_map函数用于简单字符值。 所以,问题是你的tolower步骤,因为这不是一个“规范”的转变(见getTransformations() 只需将其替换为

TweetCorpus <- tm_map(TweetCorpus, content_transformer(tolower))

content_transformer函数包装器会将所有内容转换为语料库中的正确数据类型。 您可以将content_transformer与旨在操纵字符向量的任何函数一起使用,以便它将在tm_map管道中运行。

tm_map必须应用于语料库对象,而不是字符向量。 但是iconv将您的TweetCorpus对象从语料库转换字符向量。

要解决此问题,请切换预处理的顺序,以便在将推文转换为语料库对象之前使用iconv

TweetList <- c("hello", "world", "Hooray", "yep")
TweetList <-  iconv(TweetList, to ="utf-8")
TweetCorpus <- Corpus(VectorSource(TweetList))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM