2013-05-25 34 views
3

为了'可以'在这个问题中可以看到'单词',是否有可能使用Java替代NLTK?在Java中将单词转换成他们的名词/形容词/动词形式

Convert words between verb/noun/adjective forms

比如我想转换出生出生,因为使用WORDNET相似度时,该算法并不表明出生,出生时非常相似。

我想因此转换出生到出生或反之亦然。为了有更多相似的话。

你有什么建议?我发现了一些工具,但我不知道,如果他们能做到这一点: - NTLK(只蟒蛇我猜) - OpenNlp - 斯坦福NLP - 简单NLG

谢谢

+0

从你链接的问题中使用wordnet的相关froms看起来是最好的选择,你也可以看看conceptnet。 –

回答

1

一个快速使用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')] 
>>> 

在这里你可以看到,“同义词集(‘give_birth.v.01’)”是一种常见的结果集,它是“动词”。因此,通过这种方式,您可以找到解决办法并查看是否有任何匹配结果,并将其转换为出生或反之亦然!

相关问题