このタイプの情報は、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の中の情報は完全ではありません。上記のスクリプトは "幸せ"と "幸福"を見つけますが、複数の "うれしい"補題があるにもかかわらず、 "幸い"を見つけることはできません。
これは、ステミングの逆です。あなたのケースでは、大まかなコーパスにステミングを適用して、どの単語が同じ形式に形づくられているかを追跡することができます。例えば、ランカスターのステマーを使用して、「幸せ」、「幸せ」および「幸せ」はすべて「幸せ"次に、生成タスクにこれらのクラスタを使用します。 – lenz