我想通过以下方式使用 removeWords ( stopwords("english") ) 函数: corpus <- tm_map(corpus,removeWords, stopwords("english")) 但有些词如“不”,以及我想保留的其他否定。

如果指定,是否可以使用 removeWords, stopwords("english") 函数但排除该列表中的某些单词?

例如,我如何防止删除“not”?

(次要)是否可以将这种类型的控制列表设置为所有“否定”?

我宁愿不使用我感兴趣的停止列表中的单词创建自己的自定义列表。

最佳答案

您可以通过获取 stopwords("en") 和要排除的单词列表之间的差异来创建自定义停用词列表:

exceptions   <- c("not")
my_stopwords <- setdiff(stopwords("en"), exceptions)

如果您需要删除所有否定,您可以从 grep 列表中对它们进行 stopwords():
exceptions <- grep(pattern = "not|n't", x = stopwords(), value = TRUE)
# [1] "isn't"     "aren't"    "wasn't"    "weren't"   "hasn't"    "haven't"   "hadn't"    "doesn't"   "don't"     "didn't"
# [11] "won't"     "wouldn't"  "shan't"    "shouldn't" "can't"     "cannot"    "couldn't"  "mustn't"   "not"
my_stopwords <- setdiff(stopwords("en"), exceptions)

关于r - 包 tm : removeWords How do I avoid removing CERTIAN (negations specifically) "english" stopwords if specified?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33362801/

10-11 06:03