R - 使用anti_join删除停用词时修复排序(创建ngrams)

时间:2017-08-15 14:34:24

标签: r sorting text-mining word-frequency

对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?

得到了一位同事的帮助,但不幸的是他们不再可用,所以任何见解都会有所帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在排序

之前为数据添加排序索引
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::不是必需的,但可以帮助您记住函数的来源)