如何强制从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”一词。带有一些特殊字符的解释器会说这不是有效的正则表达式。
答案 0 :(得分:1)
也许尝试创建停止列表的备用版本,以便仅与包含转义字符的removeWords一起使用?这样,至少您不需要手动更改每个“。”。到“ \”。
escaped_stopwords<-gsub("(\\.|\\*|\")", "\\\\\\1", custom_stopwords$V1, perl=T)