从停用词列表中删除单词
Remove words from stopword list
我之前问过一个问题,如何通过保持原始格式从字符向量的停止列表中删除单词。任务是删除向量 "words" 中 "words_to_remove" 的单词。
我接受了这个解决方案:
words_to_remove = c("the", "This")
pattern <- paste0("\b", words_to_remove, "\b", collapse="|")
words = c("the", "The", "Intelligent", "this", "This")
res <- grepl(pattern, words, ignore.case=TRUE)
words[!res]
现在我遇到了 "words" 条目中有多个单词的问题。如果包含停用词,则整个条目将被删除。
words = c("the", "The Book", "Intelligent", "this", "This")
我收到输出
[1] "Intelligent"
但我希望它是
[1] "Book" "Intelligent"
这可能吗?
您可以尝试使用 gsub
,即
v1 <- gsub(paste(words_to_remove, collapse = '|'), '', words, ignore.case = TRUE)
#Tidy up your output
trimws(v1)[v1 != '']
#[1] "Book" "Intelligent"
将模式更改为
pattern <- paste0("^", words_to_remove, "$", collapse="|")
包括字符串标记的开始和结束,而不仅仅是单词边界。您的其余代码应该可以通过这一更改正常工作。
我之前问过一个问题,如何通过保持原始格式从字符向量的停止列表中删除单词。任务是删除向量 "words" 中 "words_to_remove" 的单词。 我接受了这个解决方案:
words_to_remove = c("the", "This")
pattern <- paste0("\b", words_to_remove, "\b", collapse="|")
words = c("the", "The", "Intelligent", "this", "This")
res <- grepl(pattern, words, ignore.case=TRUE)
words[!res]
现在我遇到了 "words" 条目中有多个单词的问题。如果包含停用词,则整个条目将被删除。
words = c("the", "The Book", "Intelligent", "this", "This")
我收到输出
[1] "Intelligent"
但我希望它是
[1] "Book" "Intelligent"
这可能吗?
您可以尝试使用 gsub
,即
v1 <- gsub(paste(words_to_remove, collapse = '|'), '', words, ignore.case = TRUE)
#Tidy up your output
trimws(v1)[v1 != '']
#[1] "Book" "Intelligent"
将模式更改为
pattern <- paste0("^", words_to_remove, "$", collapse="|")
包括字符串标记的开始和结束,而不仅仅是单词边界。您的其余代码应该可以通过这一更改正常工作。