【发布时间】:2021-07-11 17:07:44
【问题描述】:
我最近问了一个关于在情绪分析后遗漏的条目的问题。我分析的推文并不总是包含词典中的单词。我想知道哪些不能翻译。因此,即使得分为零,我也想保留这些。在我之前的问题中,drop 参数是作为解决方案给出的。但是,我想我可能做错了或遗漏了一些东西。这是我第一次使用这些技术。
以下函数获取一个数据框并返回一个新的数据框,其中包含正面和负面词的数量以及情绪。
输入(故意用一个荷兰语文本,因此无法评分)
id <- c(1, 2, 3)
date <- c("12-05-2021", "12-06-2021", "12-07-2021")
text <- c("Dit is tekst in het Nederlands", "I,m so happy that websites like this exsist", "This icecream tastes terrible. It made me upset")
df <- data.frame(id, date, text)
我想要的输出是:
sentiment positive negative
0 0 0
2 2 0
-2 0 2
但我的功能给了我别的东西:
sentimentAnalysis <- function(tweetData){
sentimentDataframe <- data.frame()
for(row in 1:nrow(tweetData)){
tekst <- as.character(tweetData[row, "text"])
positive <- 0
negative <- 0
tokens <- tibble(text = tekst) %>% unnest_tokens(word, text, drop = FALSE)
sentiment <- tokens %>%
inner_join(get_sentiments("bing")) %>%
count(sentiment) %>%
spread(sentiment, n, fill = 0) %>%
mutate(sentiment = positive - negative)
sentimentDataframe <- bind_rows(sentimentDataframe, sentiment)
}
sentimentDataframe[is.na(sentimentDataframe)] <- 0
return(sentimentDataframe)
}
这仍然会返回一个缺少未评分文本的数据框。如您所见,第一个文本被省略了:
sentiment positive negative
2 2 0
-2 0 2
【问题讨论】:
-
@RonakShah 我已经添加了请求的信息
标签: r sentiment-analysis tidytext