我如何搜索一个单词的变体而不输入所有变体(以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个,而无需编程任何变化。

相关内容

最新更新