我和朋友正在努力将我们收集的一些tweets转换为dtm,以便能够在R中使用机器学习来运行情感分析。该任务必须在R中执行,因为它是在我们大学的考试中,R被要求用作工具。删除DocumentTermMatrix中的单词
最初我们收集了一个较小的样本,以便测试我们的代码是否正常工作,然后才开始编码较大的数据集。我们的问题是,我们似乎无法弄清楚如何从dtm中删除自定义单词。我们到目前为止的代码看起来是这样的(我们主要使用TM封装):
file <- read.csv("Tmix.csv",
row.names = NULL, sep=";", header=TRUE) #just for loading the dataset
tweetsCorpus <- Corpus(VectorSource(file[,1]))
tweetsDTM <- DocumentTermMatrix(tweetsCorpus,
control = list(verbose = TRUE,
asPlain = TRUE,
stopwords = TRUE,
tolower = TRUE,
removeNumbers = TRUE,
stemWords = FALSE,
removePunctuation = TRUE,
removeSeparators = TRUE,
removeTwitter = TRUE,
stem = TRUE,
stripWhitespace = TRUE,
removeWords = c("customword1", "customword2", "customword3")))
我们也尝试转换为DTM,使用removeWords命令之前删除的话,连同所有的“在tm包中使用removeXXX命令,然后将其转换为dtm,但似乎不起作用。
重要的是我们不要简单地删除所有单词,即5个或更少的观察值。我们需要所有的观测资料,除了我们想要删除的观测资料,例如https-adresses和类似的资料。
有谁知道我们是怎么做到的?
还有第二个问题:是否有更简单的方法可以删除以https开头的所有单词,而不必将所有地址单独写入代码。例如,我们正在编写"httpstcokozcejeg", "httpstcolskjnyjyn", "httpstcolwwsxuem"
作为从数据中删除的单个自定义单词。
注意:我们知道RemoveWords对我们的问题是一个可怕的解决方案,但我们无法弄清楚如何去做。
**非常感谢!**只是为了正确地理解代码,我们只需要在你的代码运行的第一个行权?或者第二行是干什么的? – Nordsted
第一个是一个一般的例子。然后,两种方法与直接gsub或tm_map和content_transformer混淆。 – OmaymaS