使用wn.synset('dog.n.1').lemma_names 是访问意义的同义词的正确方法。 因为一个词有多种含义,列出特定含义/含义的同义词更合适。要列举含义相似的词,可能还可以查看下义词。
遗憾的是,Wordnet 的大小非常有限,因此每种感官可用的 lemma_names 很少。
使用 Wordnet 作为字典/同义词库本身并不是很合适,因为它是作为意义/意义清单而不是单词清单而开发的。但是,您可以使用访问特定意义和几个(不是很多)相关词的意义。可以将 Wordnet 用作:
字典:给定一个词,这个词的不同含义是什么
for i,j in enumerate(wn.synsets('dog')):
print "Meaning",i, "NLTK ID:", j.name
print "Definition:",j.definition
同义词库:给定一个单词,对于每个含义该单词的不同单词是什么
for i,j in enumerate(wn.synsets('dog')):
print "Meaning",i, "NLTK ID:", j.name
print "Definition:",j.definition
print "Synonyms:", ", ".join(j.lemma_names)
print
本体:给定一个词,下位词(即子类型)和上位词(即超类型)是什么。
for i,j in enumerate(wn.synsets('dog')):
print "Meaning",i, "NLTK ID:", j.name
print "Hypernyms:", ", ".join(list(chain(*[l.lemma_names for l in j.hypernyms()])))
print "Hyponyms:", ", ".join(list(chain(*[l.lemma_names for l in j.hyponyms()])))
print
[本体输出]
Meaning 0 NLTK ID: dog.n.01
Hypernyms words domestic_animal, domesticated_animal, canine, canid
Hyponyms puppy, Great_Pyrenees, basenji, Newfoundland, Newfoundland_dog, lapdog, poodle, poodle_dog, Leonberg, toy_dog, toy, spitz, pooch, doggie, doggy, barker, bow-wow, cur, mongrel, mutt, Mexican_hairless, hunting_dog, working_dog, dalmatian, coach_dog, carriage_dog, pug, pug-dog, corgi, Welsh_corgi, griffon, Brussels_griffon, Belgian_griffon
Meaning 1 NLTK ID: frump.n.01
Hypernyms: unpleasant_woman, disagreeable_woman
Hyponyms:
Meaning 2 NLTK ID: dog.n.03
Hypernyms: chap, fellow, feller, fella, lad, gent, blighter, cuss, bloke
Hyponyms:
Meaning 3 NLTK ID: cad.n.01
Hypernyms: villain, scoundrel
Hyponyms: perisher