2017-07-17 14 views
2

、単語「幸せ」が付与され、私は喜んで、そのような幸福など幸せの他のフォームを生成したいとし...などwith NLTK、特定の単語が与えられたとき、どうやって異なる形の単語を生成できますか?例えば

私はstackoverflowのとNLTK参照上の他のいくつかの以前の質問を読みました。しかし、POSタグ付けだけがあり、文章内の特定の単語の文法的な形を識別し、異なる単語のリストを生成するのと同じように変形する。同じような問題にぶつかった人はいますか?ありがとうございました。

+0

これは、ステミングの逆です。あなたのケースでは、大まかなコーパスにステミングを適用して、どの単語が同じ形式に形づくられているかを追跡することができます。例えば、ランカスターのステマーを使用して、「幸せ」、「幸せ」および「幸せ」はすべて「幸せ"次に、生成タスクにこれらのクラスタを使用します。 – lenz

答えて

1

このタイプの情報は、NLTKのWordNet実装のLemmaクラスに含まれています。具体的には、Lemma.derivationally_related_forms()にあります。

は、ここで「幸せ」のすべての可能な派生フォームを見つけるためのスクリプトの例です:

from nltk.corpus import wordnet as wn 

forms = set() #We'll store the derivational forms in a set to eliminate duplicates 
for happy_lemma in wn.lemmas("happy"): #for each "happy" lemma in WordNet 
    forms.add(happy_lemma.name()) #add the lemma itself 
    for related_lemma in happy_lemma.derivationally_related_forms(): #for each related lemma 
     forms.add(related_lemma.name()) #add the related lemma 

は残念ながら、WordNetの中の情報は完全ではありません。上記のスクリプトは "幸せ"と "幸福"を見つけますが、複数の "うれしい"補題があるにもかかわらず、 "幸い"を見つけることはできません。

関連する問題