1

我正在使用 Gutenberg 项目中的一些弗洛伊德书籍进行文本挖掘。当我尝试使用以下代码进行情绪分析时:

library(dplyr)
library(tidytext)
library(gutenbergr)

freud_books <- gutenberg_download(c(14969, 15489, 34300, 35875, 35877, 38219, 41214), meta_fields = "title")

tidy_books <- freud_books %>%
  unnest_tokens(word, text)

f_sentiment <- tidy_books %>%
  inner_join(get_sentiments("bing"), by = "word") %>% 
  count(title, index = line %/% 80, sentiment) %>% 
  spread(sentiment, n, fill = 0) %>% 
  mutate(sentiment = positive - negative)

我得到错误:

mutate_impl(.data, dots) 中的错误:评估错误:二进制运算符的非数字参数。

我可以看到问题出在最后一个块中,在 count 函数中。有什么帮助吗?

4

1 回答 1

2

您应该line在使用该inner_join函数后更改您的数据,因为它不是您的数据列,所以如果您需要它,您必须自己创建它

注意mutate(line = row_number())部分,如果您需要另一种分配行号的方式,您可以修改它,然后您可以index = line %/% 80使用count

试试这个:

library(dplyr)
library(tidytext)
library(gutenbergr)

freud_books <- gutenberg_download(c(14969, 15489, 34300, 35875, 35877, 38219, 41214),
 meta_fields = "title")

tidy_books <- freud_books %>%
  unnest_tokens(word, text)

f_sentiment <- tidy_books %>%
  inner_join(get_sentiments("bing"), by = "word") %>% 
  mutate(line = row_number()) %>%
  count(title, index = line %/% 80, sentiment) %>% 
  spread(sentiment, n, fill = 0) %>% 
  mutate(sentiment = positive - negative)
于 2018-05-03T21:07:03.027 回答