python - nltk "OMW"带有阿拉伯语的 wordnet

标签 python python-2.7 nltk wordnet nltk-book

我正在使用专门针对阿拉伯语的 (OMW) wordnet 开发 python/nltk。所有功能都适用于英语,但当我使用“arb”标签时,我似乎无法执行其中任何一个。唯一有用的是从给定的阿拉伯语同义词集中提取 lemma_names

下面的代码适用于 u'arb': 输出是阿拉伯语引理列表。

for synset in wn.synsets(u'عام',lang=('arb')):
    for lemma in synset.lemma_names(u'arb'):
        print lemma

当我尝试使用同义词集、定义、示例、上位词执行与上述代码相同的逻辑时,我收到一条错误消息:

TypeError: hyponyms() takes exactly 1 argument (2 given)

(如果我提供 'arb' 标志)或

KeyError: u'arb'

如果我编写 synset.hyponyms(u'arb'),这是将不起作用的代码之一:

for synset in wn.synsets(u'عام',lang=('arb')):
    for hypo in synset.hyponyms(): #print the hyponyms in English not Arabic
        print hypo

这是否意味着我无法使用 wn.all_synsets 和其他内置函数来提取所有阿拉伯语同义词集、上位词等?

最佳答案

nltk 的 Open Multilingual Wordnet 所有同义词集都有英文名称,因为它是一个以原始英文 Wordnet 为中心的多语言数据库。 Synsets 模型含义,因此它们与语言无关,不能用特定语言请求。但是每个同义词集都链接到 OMW 涵盖的语言的词条。一旦您有了一些同义词集(原文、下位词等),只需再次询问阿拉伯语词条:

>>> for synset in wn.synsets(u'عام',lang=('arb')):
...     for hypo in synset.hyponyms():
...         for lemma in hypo.lemmas("arb"):
...             print(lemma)
... 
Lemma('waft.v.01.إِنْبعث')
Lemma('waft.v.01.انبعث')
Lemma('waft.v.01.إنبعث_كالرائحة_العطرة')
Lemma('waft.v.01.إِنْدفع')
Lemma('waft.v.01.إِنْطلق')
Lemma('waft.v.01.انطلق')
Lemma('waft.v.01.حمل_بخفة')
Lemma('waft.v.01.دفع')
Lemma('calendar_year.n.01.سنة_شمْسِيّة')
Lemma('calendar_year.n.01.سنة_مدنِيّة')
Lemma('fiscal_year.n.01.سنة_ضرِيبِيّة')
Lemma('fiscal_year.n.01.سنة_مالِيّة')

换句话说,词条是多语言的,同义词集不是。

关于python - nltk "OMW"带有阿拉伯语的 wordnet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45156965/

相关文章:

python - 在python中从mysql查询中制作一个excel文件

python - 尽管 id 存在,Python 中的 Beautiful Soup 找不到 id

python - 使用 lxml 向现有元素添加属性、删除元素等

python - 在本地使用 django celery beat 我得到错误 'PeriodicTask' object has no attribute '_default_manager'

python - 从导入模块中的函数访问全局变量

python - nltk.tokenize 从 Shell 正确执行,但作为脚本文件出现错误

python - 为什么带有 nltk 的 Stanford 解析器不能正确解析一个句子?

Python - 如何在新创建的目录中创建多个文件夹?

python - Python 中更好、更准确的 MIME 类型检测

python - pandas dataframe python列中词频计数的输出不一致