在Java中将单词转换为其名词/形容词/动词forms

是否可以使用Java替代NLTK来“详细说明”这个问题?

在动词/名词/形容词forms之间转换单词

例如,我想将天生转换为出生,因为当使用Wordnet相似性时,该算法并未表明出生和出生非常相似。

因此,我想将出生时转为出生,反之亦然。 为了有更多相似的词。

你有什么建议? 我发现了一些工具,但我不确定他们是否可以这样做: – NTLK(我猜只有python) – OpenNlp – Stanford-Nlp – Simple NLG

谢谢

使用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’)]”是一个常见的结果集,它是“动词”。 因此,通过这种方式,您可以找到解决方法并查看是否存在任何匹配结果,并将生成转换为出生,反之亦然!