有没有可能用java替代nltk来“逐字逐句”地解释这个问题?
Convert words between verb/noun/adjective forms
例如,我想将born转换为birth,因为在使用wordnet相似度时,算法没有显示born和birth非常相似。
因此,我想改变出生与出生之间的关系,反之亦然。为了有更多相似的词。
你有什么建议?我找到了一些工具,但我不确定他们是否能做到:
-ntlk(我猜只有python)
-打开NLP
-斯坦福NLP
-简单自然语言
谢谢你
最佳答案
使用wordnet的快速而肮脏的解决方案可以如下所示。
>>>from ntlk.corpus import wordnet as wn
>>> wn.synsets('born')
[Synset('born.n.01'), Synset('bear.v.01'), Synset('give_birth.v.01'), Synset('digest.v.03'), Synset('bear.v.04'), Synset('bear.v.05'), Synset('bear.v.06'), Synset('hold.v.11'), Synset('yield.v.10'), Synset('wear.v.02'), Synset('behave.v.02'), Synset('bear.v.11'), Synset('hold.v.14'), Synset('have_a_bun_in_the_oven.v.01'), Synset('born.a.01'), Synset('natural.s.09')]
>>> wn.synsets('birth')
[Synset('birth.n.01'), Synset('birth.n.02'), Synset('parturition.n.01'), Synset('parentage.n.02'), Synset('birth.n.05'), Synset('give_birth.v.01')]
>>>
这里您可以看到“synset('give-birth.v.01')”是一个常见的结果集,它是“verb”。所以用这种方法你可以找到工作,看看是否有任何匹配的结果,并转换出生或反之亦然!