2012-10-17 6 views

答えて

8

Natural Language ToolkitのPython APIを使用できます。 WordNetのでは、IS-A-関係は、上位語(反対:下位語)と呼ばれ、HAS-関係をmeronym(反対:holonym)と呼ばれています。

from nltk.corpus import wordnet 
book = wordnet.synsets('book')[0] 
book.hypernyms() 
>>> [Synset('publication.n.01')] 
book.part_meronyms() 
>>> [Synset('running_head.n.01'), Synset('signature.n.05')] 

私はまた、より使いやすいNodeBox Linguistics APIを見つけました:

import en 
en.noun.hypernym('book') 
>>> [['publication']] 
1

あなたはコマンドラインを使用することができます。このコマンドは名詞帳の上位語を取得するための "wn book -hypen"です。 meronymsについては、 "wn book -meron"コマンドを使用してください。 また、-oオプションはsynsetオフセットを与えます。 Hereは詳細情報のリンクです。

1

恥知らずなプラグ:

私はWordNetのにアクセスするためのScalaのライブラリを書いています。すべての類似性尺度が実装されているわけではありませんが、すべての単語感覚とリレーションシップが利用可能です。私は私の研究のためにそれを積極的に活用しています。

import com.github.mrmechko.swordnet._ 

SKey("book",SPos.Noun) 
//> List(SKey("publication%1:10:00::")) 

SKey("publication%1:10:00::").getRelation(SRelationType.hypernym) //Hypernyms 

SKey("publication%1:10:00::").getRelation(SRelationType.hyponym) //Hyponyms etc 

SWordNetのGitHubとSonatype

で提供されています