如何在不键入所有变体(在 R 中)的情况下搜索单词的变体?

How can I search for the variation of a word without typing all variations ( in R)?

我需要检查一个词的变体是否在文本中?如果不输入所有内容,我该怎么做?例如,我需要搜索单词 'broken',在 r 中是否有一种方法可以查找单词和其他变体?

a="Broken flask"
b="fragmented flask"
c="broke glass"
d="shattered glass"
e="break flask"
text=c(a,b,c,d,e)
str_detect(tolower(text),"broken|fragmented|broke|break|shatter|shattered")

您可以从 syn 包中查看 syn,它会为给定的词生成同义词,允许您执行以下操作:

library(syn)

grepl(paste0(c("broken", syn("broken")), collapse = "|"), text, ignore.case = T)
#> [1]  TRUE  TRUE  TRUE  TRUE FALSE

它在这里选择了 5 个中的 4 个,而无需编写任何变体。