Nltk lesk问题

时间:2016-11-20 16:00:05

标签: nltk wordnet

我正在进行一个简单的消歧测试。但是nltk Lesk在句子“猫喜欢牛奶”中返回的单词'cat'的同义词是'kat.n.01',synsetid = 3608870。 (n)kat,khat,qat,quat,cat,阿拉伯茶,非洲茶(灌木Catha edulis的叶子,像烟草一样被咀嚼或用于制作茶;具有欣快兴奋剂的效果)“在也门kat是85%的成年人每天使用“ 这是一个简单的短语,但消歧任务失败了。

对于包含一个以上句子的集合中的许多单词而言,这种情况正在发生,例如在我的测试句中,我希望“狗”被消除歧义为“家犬”,但莱斯克给了我''pawl'(一个铰链)适合棘轮槽口的挡块,使车轮向前移动或阻止车轮向后移动) 它与训练集的大小有关,在我的测试中只有几句话吗?

这是我的测试代码:

def test_lesk(): words = get_sample_words() print(words) tagger = PerceptronTagger() tags = tagger.tag(words) print (tags[:5]) for word, tag in tags: pos = get_wordnet_pos(tag) if pos is None: continue print("word=%s,tag=%s,pos=%s" %(word, tag, pos)) synset = lesk(words, word, pos) if synset is None: print('No synsetid for word=%s' %word) else: print('word=%s, synsetname=%s, synsetid=%d' %(word,synset.name(), synset.offset()))

0 个答案:

没有答案