R removewords tm将停用词文件视为正则表达式而不是逐字记录

时间:2019-07-10 11:52:54

标签: r regex text-mining

如何强制从library(tm)中移除removeWords,以逐字​​(逐字地)而不是正则表达式的形式将停用词列表中的每个词都接受?

假设我有一个文件stopwordlist.txt,其中包含可能被误解为正则表达式的字符:

 e.g.
 "
 .net
 ...
 \
 ***p<

这是我的代码

library(tm)
...
custom_stopwords <- read.delim2("stopwordlist.txt", header = FALSE, sep = "\n", quote = "", fill = TRUE, comment.char = "")
...
corpus = tm_map(corpus, removeWords, custom_stopwords$V1)

我希望removeWords将每一行作为逐字停用词,例如,删除每次出现的“例如”。而不是用作正则表达式的“ ergo”一词。带有一些特殊字符的解释器会说这不是有效的正则表达式。

1 个答案:

答案 0 :(得分:1)

也许尝试创建停止列表的备用版本,以便仅与包含转义字符的removeWords一起使用?这样,至少您不需要手动更改每个“。”。到“ \”。

escaped_stopwords<-gsub("(\\.|\\*|\")", "\\\\\\1", custom_stopwords$V1, perl=T)