我有以下代码用于从输入文本文件中提取单词,并使用WordNet打印单词的同义词,定义和例句。它基于词性来将同义词从同义词中分离出来,即,作为动词的同义词和作为形容词的同义词被分别打印。打印词类以及单词的同义词
这个词大声疾呼的例子是1)flabbergast,boggle,碗上面是动词,2)傻眼,dumfounded,flabbergasted,惊愕,雷击,dumbstruck,dumbstricken是形容词。
如何打印与同义词一起的词性?我所提供的代码,我有这么远低于:
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
pos函数给我以下错误:lemma.synset.pos AttributeError:'function'对象没有属性'pos' – 2015-05-20 09:52:40
感谢您的注释。自从我写这个答案以来,NLTK API已经发生了变化。我会找一些时间来更新这个答案。 – 2015-05-20 19:50:24
你能告诉我可以给pos使用引理和synset的函数吗 – 2015-05-20 20:43:53