【问题标题】:R - fix sorting when using anti_join to remove stop words (creating ngrams)R - 修复使用 anti_join 删除停用词时的排序(创建 ngram)
【发布时间】:2017-08-15 14:34:23
【问题描述】:

对 R 和编码非常陌生,并试图对一长串句子及其给定权重进行频率分析。我已经取消嵌套并改变了数据,但是当我尝试删除停用词时,每个句子中单词的排序顺序会随机化。我需要稍后创建二元组,如果它们基于原始短语,我会更喜欢。

相关代码如下,不足可补充:

library(dplyr)
library(tidytext)

data = data%>%
  anti_join(stop_words)%>%
  filter(!is.na(word))

如何在每个句子中保留原始排序顺序?我将句子中的所有单词都编入索引,以便将它们与给定的权重相匹配。有没有更好的方法来删除不会弄乱排序顺序的停用词?

在这里看到了一个类似的问题,但没有解决:How to stop anti_join from reversing sort order in R?

也试过了,但没用:dplyr How to sort groups within sorted groups?

在写这篇文章时得到了一位同事的帮助,但不幸的是,他们不再可用,因此任何见解都会有所帮助。谢谢!

【问题讨论】:

    标签: r sorting text-mining word-frequency


    【解决方案1】:

    您可以在排序前为数据添加排序索引

    library(dplyr)
    library(tidytext)
    
    data = data %>%
      dplyr::mutate(idx = 1:n()) %>%
      dplyr::anti_join(stop_words) %>%
      dplyr::filter(!is.na(word)) %>%
      dplyr::arrange(idx)
    

    dplyr:: 不是必需的,但可以帮助您记住函数的来源)

    【讨论】:

    • 试过了,但我的索引是针对整个短语本身而不是其中的每个单词,所以句子本身仍然会被打乱。我希望为原始短语创建二元组,例如,以特朗普的推文“让美国再次伟大”而不是返回“让美国”、“美国伟大”和“再次伟大”,我的代码返回像“让美国伟大”这样的二元组" :(
    • 您能否发布一个示例,您的数据是什么样的? Best 将是一个可重复的示例,以便我们可以使用它。
    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 2016-01-09
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2018-05-23
    相关资源
    最近更新 更多