Załóżmy, że dla dowolnego słowa, które chcę uzyskać dostęp do jego wartości rodzica IS-A i wartości HAS-A, czy jest to możliwe za pomocą dowolnego api?Jak programowo uzyskać dostęp do hierarchii WordNet?
7
A
Odpowiedz
8
Możesz użyć interfejsu API python z Natural Language Toolkit. W wordnet, IS-A związek nazywa hypernym (przeciwnie: hyponym) i MA-A związek nazywa meronym (przeciwnie: 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')]
Znalazłem również NodeBox Linguistics API łatwiejsze w użyciu:
import en
en.noun.hypernym('book')
>>> [['publication']]
1
Można użyć polecenia. Komenda brzmi "wn book -hypen", aby uzyskać hypernyms z książki rzeczownika. W przypadku meronimów użyj polecenia "wn book -meron". Również opcja -o daje przesunięcie synsetu. Here to link do dalszych informacji.
1
bezwstydna:
Piszę biblioteki Scala dostęp do wordnet. Chociaż nie wszystkie środki podobieństwa zostały wdrożone, wszystkie słowa zmysły i relacje są dostępne. Używam go do moich badań, aby był aktywny.
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 jest dostępny na GitHub i Sonatype