我目前正在处理大量的司法文件。这些文件包含大量固定短语(如 * 理事会directive*),由于它们频繁出现,对我的分析没有意义。因此,我想删除它们。使用个性化的停用词列表是行不通的,因为单个单词在不同的上下文中具有含义。
到目前为止,我使用了tidytext包,我最初的想法是将文本转换为bigram并使用dplyr::anti_join().
然而,这并不能完全摆脱短语,例如,“根据理事会指令453-EL [...]”将变成“到理事会”、“理事会指令”和“指令453”。
有没有人有一个简洁的方法来解决这个问题?理想情况下,我希望从一开始就避免将我的文本转换为bigram。下面是一个可重复的示例代码:
library(dplyr)
library(tidytext)
text <- "according to Council directive 453-EL" %>% data.frame()
colnames(text) <- c("word")
txt_bigrams <- text %>% unnest_tokens(ngram, word, token = "ngrams", n = 2)
谢谢大家!
1条答案
按热度按时间eufgjt7s1#
如果您使用Quanteda包,您可以非常容易地删除您的自定义停止词列表。甚至有一个
phrase
函数可以用作删除组合停止词(如“理事会Directive”)的模式。你唯一需要确保的是停止词与文本匹配。所以如果你在停止词中使用大写,比如“理事会”,而它在文本中是小写的,它就不会匹配。