NLTK WordNet: NLTK WordNetから同義語を検索 Python
ワードネットとは何ですか?
Wordnet は NLTK コーパス リーダーであり、英語の語彙データベースです。単語の意味、同義語、反意語を検索するために使用できます。意味指向の英語辞書として定義できます。次のコマンドでインポートします。
from nltk.corpus import wordnet as guru
NLTK WordNetから同義語を検索する Python
統計によると、 155287 の単語と 117659 の同義語 英語 WordNet に含まれるセット。
WordNet で使用できるさまざまなメソッドは、「dir(guru)」と入力すると見つかります。
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', ' __eq__'、'__format__'、' __ge__'、'__getattr__'、'__getattribute__'、'__gt__'、'__hash__'、'__init__'、'__le__'、'__lt__'、'__module__'、'__name__'、'__ne__'、'__new__'、'__reduce__' 、'__reduce_ex__'、'__repr__'、'__setattr__'、'__sizeof__'、'__str__'、'__subclasshook__'、'__unicode__'、'__weakref__'、'_unload'、'subdir'、'unicode_repr']
wordnet で利用できる機能のいくつかを理解してみましょう。
シンセット: 同義語集合、同義語集とも呼ばれます。 例を確認してみましょう
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
出力:
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
語彙関係: これらは相互に作用する意味関係です。 {x1,x2,…xn} と {y1,y2,…yn} の間に関係がある場合、{y1,y2,…yn} と {x1,x2,…xn} の間にも関係があります。 たとえば、同義語は反意語の反対であり、上位語と下位語は語彙概念の一種です。
を使ってプログラムを書いてみましょう パイソン Wordnet を使用して単語「active」の同義語と反意語を検索します。
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
コードの出力:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} — 同義語
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} — 反意語
コードの説明
- Wordnet はコーパスであるため、ntlk.corpus からインポートされます。
- 同義語と反意語の両方のリストは空とみなされ、追加に使用されます。
- active という単語の同義語がモジュール synsets で検索され、同義語リストに追加されます。 XNUMX 番目のプロセスについても同じプロセスが繰り返されます。
- 出力は印刷されます
まとめ
WordNet は、大手企業で使用されている語彙データベースです。 検索エンジン。 WordNet から、特定の単語またはフレーズに関する情報を次のように計算できます。
- 同義語(同じ意味を持つ言葉)
- 上位語 (特定のクラスを指定するために使用される一般的な用語 (つまり、食事は朝食です)、下位語 (ご飯は食事です)
- ホロニム(タンパク質、炭水化物は食事の一部です)
- メロニム(食事は毎日の食物摂取の一部です)
WordNet は、座標用語、派生語、意味などに関する情報も提供します。 任意の XNUMX つの単語間の類似点を見つけるために使用されます。 関連する単語の結果に関する情報も保持します。 簡単に言えば、辞書またはシソーラスとして扱うことができます。 ワードネットをさらに深く掘り下げると、次のような合計 XNUMX つのサブネットに分割されます。
- 名詞
- 動詞
- 形容詞
- 副詞
人工知能の分野でテキスト分析に使用できます。 Wordnet を利用すると、スペル チェック、言語翻訳、スパム検出などのためのコーパスを作成できます。
同様に、このコーパスを使用して成形し、動的な機能を動作させることができます。 これは、すぐに作成できるコーパスのようなものです。 自分好みの使い方ができます。