43

NLTKとWordNetを使用して、単純な時制動詞を現在形、過去形、または過去分詞形に変換するにはどうすればよいですか?

例えば:

次のように、期待される形で動詞を与える関数を書きたいと思います。

v = 'go'
present = present_tense(v)
print present # prints "going"

past = past_tense(v)
print past # prints "went"
4

4 に答える 4

28

NLTK の助けを借りて、これも行うことができます。動詞の原形を与えることができます。しかし、正確な時制ではありませんが、それでも有用です。次のコードを試してください。

from nltk.stem.wordnet import WordNetLemmatizer
words = ['gave','went','going','dating']
for word in words:
    print word+"-->"+WordNetLemmatizer().lemmatize(word,'v')

出力は次のとおりです。

gave-->give
went-->go
going-->go
dating-->date

Stack Overflow の質問NLTK WordNet Lemmatizer: Should n't it lemmatize all inflections of a word? をご覧ください。.

于 2014-11-07T13:21:53.127 に答える
22

あなたが探しているのはNodeBox::Linguisticsライブラリだと思います。まさにそれを行います:

print en.verb.present("gave")
>>> give
于 2010-09-21T13:58:05.760 に答える
0

JWI (MIT による WordNet ライブラリ) にはステマー (WordNetStemmer) もあり、単語のさまざまな形態学的形式 ("written"、"writes"、"wrote") を基本形に変換します。ただし、名詞(複数形など)と動詞でのみ機能するようです。

WordNet と JWNL を使用した Java での Word Stemming では、別の Java ベースの Wordnet ライブラリである JWNL を使用して、この種のステミングを行う方法も示しています。

于 2011-06-23T23:12:37.373 に答える