假设我通过 wordnet 中的 synonyms() 函数提取“帮助”的同义词并得到以下信息:
Str = synonyms("help")
Str
[1] "c(\"aid\", \"assist\", \"assistance\", \"help\")"
[2] "c(\"aid\", \"assistance\", \"help\")"
[3] "c(\"assistant\", \"helper\", \"help\", \"supporter\")"
[4] "c(\"avail\", \"help\", \"service\")"
然后我可以使用一个字符串
unique(unlist(lapply(parse(text=Str),eval)))
最后看起来像这样:
[1] "aid" "assist" "assistance" "help" "assistant" "helper" "supporter"
[8] "avail" "service"
上述过程是由 Gabor Grothendieck 提出的。他/她的解决方案很好,但我仍然无法弄清楚如果我将查询词更改为“公司”、“男孩”或其他人,将响应错误消息。
一个可能的原因可能是由于“公司”的“第六”同义词(请参见下文)是一个术语,并且不遵循“c(\”company\“)”的格式。
synonyms("company")
[1] "c(\"caller\", \"company\")"
[2] "c(\"company\", \"companionship\", \"fellowship\", \"society\")"
[3] "c(\"company\", \"troupe\")"
[4] "c(\"party\", \"company\")"
[5] "c(\"ship's company\", \"company\")"
[6] "company"
有人可以帮我解决这个问题。非常感谢。