2つの小さな辞書があると仮定します
posList=['興味深い','小説','創造的','最先端']
negList=['時代遅れ','単純明快','自明']
「革新的」という新しい単語がありますが、これは私の知識外であり、NLTK 関数を介してその同義語を見つけることでその感情を理解しようとしています。同義語が私の小さな辞書に落ちた場合、再帰的に NLTK を呼び出します前回から同義語の同義語を見つける関数
開始入力は次のようになります。
from nltk.corpus インポート wordnet 革新的な = wordnet.synsets('革新的')
革新的な Synset の場合:
print synset
print synset.lemmas
このような出力が生成されます
Synset('advanced.s.03') [Lemma('advanced.s.03.advanced'), Lemma('advanced.s.03.前向き'), Lemma('advanced.s.03.innovative' ), Lemma('advanced.s.03.modern')] Synset('innovative.s.02') [Lemma('innovative.s.02.innovative'), Lemma('innovative.s.02.innovational' ), Lemma('innovative.s.02.groundbreaking')]
明らかに新しい単語には、「advanced」、「forward-looking」、「modern」、「innovational」、「groundbreaking」などの新しい単語が含まれており、私の辞書にはありません。新しい見出し語は出現しません。Synset からこれらの補題単語を抽出し、それらをセット構造体に保持する方法のデモ コードを教えてください。
Pythonでreモジュールを扱う必要があると思いますが、私はPythonにはまったく慣れていません。私が対処する必要があるもう 1 つのポイントは、形容詞のみを取得する必要があることです。そのため、Lemma('advanced.s.03.modern') では 's' と 'a' 記号のみを使用し、'v' (動詞) や 'n ' (名詞)。
後で、新しい単語と任意の辞書単語の類似度スコアを計算しようとします。尺度を定義する必要があります。形容詞は階層的に配置されておらず、私の知る限り利用可能な手段がないため、この問題は困難です。誰でもアドバイスできますか?