我有以下代碼用於從輸入文本文件中提取單詞,並使用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