我有以下代码用于从输入文本文件中获取一个单词并使用 WordNet 打印该单词的同义词、定义和例句。它根据词性将同义词与同义词分开,即动词的同义词和形容词的同义词分开打印。
单词 flabbergasted 的同义词有 1) flabbergast , boggle , bowl over 它们是动词和 2) dumbfounded , dumfounded , flabbergasted , stupefied , Thunderstruck , 目瞪口呆 , 目瞪口呆是形容词。
如何打印词性和同义词?我在下面提供了到目前为止的代码:
import nltk
from nltk.corpus import wordnet as wn
tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
fp = open('sample.txt','r')
data = fp.read()
tokens= nltk.wordpunct_tokenize(data)
text = nltk.Text(tokens)
words = [w.lower() for w in text]
for a in words:
print a
syns = wn.synsets(a)
for s in syns:
print
print "definition:" s.definition
print "synonyms:"
for l in s.lemmas:
print l.name
print "examples:"
for b in s.examples:
print b
print