R 如何拆分双格图中的文本列以对情绪评分词典(AFINN)进行评分?

R 如何拆分双格图中的文本列以对情绪评分词典(AFINN)进行评分?,r,nlp,R,Nlp,我有一个数据框,其中一列为文本。我能够将文本拆分为单词(使用tidytext中的unnest_标记),然后获取所有单词的平均分数。然而,我也想看看我的文本中的双元/三元的分数——因为AFINN词典也有双元/三元的分数,我认为这在一定程度上有助于提高分数 下面是我正在使用的代码(数据是数据集,内容是带文本的列): 步骤1: review\u words% 选择(来源、内容)%>% unnest_标记(单词、内容)%%>% 过滤器(!word%在%stopwords中(kind=“en”), str

我有一个数据框,其中一列为文本。我能够将文本拆分为单词(使用tidytext中的unnest_标记),然后获取所有单词的平均分数。然而,我也想看看我的文本中的双元/三元的分数——因为AFINN词典也有双元/三元的分数,我认为这在一定程度上有助于提高分数

下面是我正在使用的代码(数据是数据集,内容是带文本的列): 步骤1:

review\u words%
选择(来源、内容)%>%
unnest_标记(单词、内容)%%>%
过滤器(!word%在%stopwords中(kind=“en”),
str_detect(单词“^[a-z']+$”)
步骤2:(AFINN列表只有2列-单词和相应的分数

    reviews_sentiment <- review_words %>%
    inner_join(afinn_list, by = "word") %>%
    group_by(Source) %>%
    summarize(sentiment = mean(score))
reviews\u%
内部连接(afinn\u列表,by=“word”)%>%
分组依据(来源)%>%
总结(情绪=平均(分数))
第三步:我将结果加入“数据”中,在原始文本旁边输出分数

当我尝试执行上述步骤时,请在步骤1中进行以下更改:

    review_words <- data %>%
    select(Source, Content) %>%
    unnest_tokens(ngram, Content, token = "ngrams", n=2) %>%
    filter(!ngram %in% stopwords(kind="en"),
    str_detect(ngram, "^[a-z']+$"))
review\u words%
选择(来源、内容)%>%
unnest_令牌(ngram,Content,token=“ngrams”,n=2)%>%
过滤器(!ngram%,单位为%stopwords(kind=“en”),
str_detect(ngram,“^[a-z']+$”)

我得到一个空的数据框。我在这里缺少什么?只需要一个快速修复程序,在我为单个单词打分的同时为双格图打分。

@Jaap-谢谢编辑。但是你为什么去掉了R?:)新的在这里,可能遗漏了什么。问题已经用R标记,因此不需要在后面重复title@Jaap-谢谢,请记住,下一次)问题出现在上一个str_detect语句中,我想-我将其更改为:filter(!(ngram%在%stopwords(“en”),!(str_detect(ngram,[[:punct:]]),它工作正常。有人能证实这就是问题所在吗?@Jaap
    review_words <- data %>%
    select(Source, Content) %>%
    unnest_tokens(ngram, Content, token = "ngrams", n=2) %>%
    filter(!ngram %in% stopwords(kind="en"),
    str_detect(ngram, "^[a-z']+$"))