NLTK 允许我用 消除文本歧义nltk.wsd.lesk
,例如
>>> from nltk.corpus import wordnet as wn
>>> from nltk.wsd import lesk
>>> sent = "I went to the bank to deposit money"
>>> ambiguous = "deposit"
>>> lesk(sent, ambiguous, pos='v')
Synset('deposit.v.02')
PyWSD
做同样的事情,但它只适用于英文文本。
NLTK 支持来自Open Multilingual WordNet的阿拉伯语 wordnet ,例如
>>> wn.synsets('deposit', pos='v')[1].lemma_names(lang='arb')
[u'\u0623\u064e\u0648\u0652\u062f\u064e\u0639\u064e']
>>> print wn.synsets('deposit', pos='v')[1].lemma_names(lang='arb')[0]
أَوْدَعَ
此外,同义词集被索引为阿拉伯语:
>>> wn.synsets(u'أَوْدَعَ', lang='arb')
[Synset('entrust.v.02'), Synset('deposit.v.02'), Synset('commit.v.03'), Synset('entrust.v.01'), Synset('consign.v.02')]
但是我怎样才能消除阿拉伯语文本的歧义并使用 nltk 从查询中提取概念?
我想知道是否可以使用 Lesk 算法通过 nltk 处理阿拉伯文本?