【问题标题】:Clean up the tweets for sentiment analysis清理推文以进行情绪分析
【发布时间】:2020-05-30 19:04:01
【问题描述】:

我使用以下代码来清理推文中用户名的语料库。但有些名字在词云中。为什么他们错了?

removeUsername <- function(x) gsub('@[^[:space:]]*', '', x)

removeURL <- function(x) gsub("http[:alnum:]*","",x) 
removeNumPunct<- function(x) gsub("[^[:alpha:][:space:]]*","",x) 
removeUsername <- function(x) gsub('@[^[:space:]]*', '', x) 
mycorpus <- tm_map(mycorpus,PlainTextDocument) 
mycorpus <- tm_map(mycorpus,content_transformer(removeURL)) 
mycorpus <- tm_map(mycorpus,content_transformer(tolower))
mycorpus <- tm_map(mycorpus,stripWhitespace) 
mycorpus <- tm_map(mycorpus,content_transformer(removeNumPunct)) 
mycorpus <- tm_map(mycorpus,content_transformer(removeNumbers))
mycorpus <- tm_map(mycorpus, content_transformer(removeUsername))

Stopwords <- readLines("/Users/Stopwords.txt") 
mycorpus <- tm_map(mycorpus, function(x) removeWords(x, Stopwords )) 

【问题讨论】:

  • 这意味着您的过滤不正确。不幸的是,我们无法为您提供帮助,因为您没有提供示例输入和示例输出。两者都涵盖了问题的差异。
  • 我如何展示一个我在 wordcloud 中看到有名字的例子。
  • 只需提供一些示例 twitter 处理您的代码似乎没有删除。最好在它们似乎没有消失的消息中,因为消息中可能存在阻止删除的内容。阅读本文了解如何创建minimal reproducible example
  • 清洁后。推文:“nulleberg staat meldete rekordsteuereinnahmen bleibt geld dt steuerzahlers wi stcozwhqufy”
  • 清洁前:“@nulleberg Der Staat meldete doch über Jahre #Rekordsteuereinnahmen。\r\nDa bleibt das Geld des d...

标签: r sentiment-analysis


【解决方案1】:

您的问题是执行代码的顺序。您首先要删除标点符号,然后要删除 twitter 句柄。由于删除了已经删除了@的标点符号,因此不会找到它。剥离空白也是如此,这是您应该在最后执行的步骤。

以下顺序应处理 twitter 句柄和空格。

mycorpus <- tm_map(mycorpus, PlainTextDocument) 
mycorpus <- tm_map(mycorpus, content_transformer(removeUsername))
mycorpus <- tm_map(mycorpus, content_transformer(removeURL)) 
mycorpus <- tm_map(mycorpus, content_transformer(tolower))
mycorpus <- tm_map(mycorpus, content_transformer(removeNumPunct)) 
mycorpus <- tm_map(mycorpus, content_transformer(removeNumbers))
mycorpus <- tm_map(mycorpus, stripWhitespace) 

另外 tm 已经包含了删除标点符号和数字的函数,可以在没有content_transformer 的情况下使用,如下例所示。

mycorpus <- tm_map(mycorpus, removePunctuation)
mycorpus <- tm_map(mycorpus, removeNumbers)

您可以检查软件包 quanteda。它在tokens 函数中已经包含了很多这样的推特函数作为标志。

【讨论】:

  • @KenAS,清洁确实是第一步。但我只是给了你一些建议。您需要在可重现的环境中使用对您有用的东西。我更喜欢 quanteda 而不是 tm,但这是我的偏好。其他喜欢 tidytext 或 qdap。阅读所有这些小插曲,尝试它们并坚持适合你的那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 2015-09-23
  • 2012-05-01
  • 1970-01-01
相关资源
最近更新 更多