词干字典可以用作 R 中的拒绝标准吗?

Can a stemming dictionary be used as rejection criteria in R?

我正在努力进行一些文本分析,而且我不确定我是否正确地进行了词干提取。现在,我的单项词干提取命令是

text_stem <- text_clean %>% mutate(stem = wordStem(word, language = "english"))

是否可以将其不仅用作词干提取器,还用作过滤器?例如,如果“text_clean”包含单词 aksdjhgla 并且该单词不在 SnowballC 用作字典的任何内容中,那么词干文本会拒绝它吗?也许还有另一个执行这种过滤的命令?

wordStem 不使用字典,而是使用语法规则进行词干提取(顺便说一句,这是词形还原的一种相当粗略的近似)。这是一个例子:

words <- c("win", "winning")
words2 <- c("aksdjhglain", "aksdjhglainning")

SnowballC::wordStem(words, language = "english")
#> [1] "win"    "win"
SnowballC::wordStem(words2, language = "english")
#> [1] "aksdjhglain"  "aksdjhglain"

如您所见,wordStem 的作用完全相同,无论这些词是否真实存在或完全是垃圾。重要的是词尾(即词干)。正如@Kat 所建议的,您可能想查看实际使用字典的 hunspell 包。要找出字典中存在哪些单词,请使用 hunspell_check:

hunspell::hunspell_check(c(words, words2))
#> [1]  TRUE  TRUE  FALSE FALSE

在您现有的代码中,您可以使用它来删除拼写错误的单词:

text_stem <- text_clean %>% 
  mutate(stem = wordStem(word, language = "english")) %>% 
  filter(hunspell::hunspell_check(word), dict = dictionary("en_US"))