我正在使用python 2.7,我正在尝试使用阿拉伯语WordNet获取阿拉伯语单词的同义词
我下载了两个所需的文件:
基于this answer,我在AWNDatabaseManagement.py中进行了一些编辑:
第320行是opts['i']='upc_db.xml'
而不是
OPTS [ 'I'] = 'E:/usuaris/horacio/arabicWN/AWNdatabase/upc_db.xml'
我在最后添加wn.get_synsets_from_word(u"جَمِيل")
我在第2行添加了# -*- coding: utf-8 -*-
然后我使用$ python AWNDatabaseManagement.py -i upc_db.xml
运行它并且未发现任何错误:<open file 'upc_db.xml', mode 'r' at 0x10156c270>
然而,当我运行我的原始py文件时:
from nltk.corpus import wordnet as wn
jan = wn.synsets('wait')[0]
print(jan) #this works fine
print(jan.lemma_names(lang='arb')) #this works fine
wn.get_synsets_from_word(u"جَمِيل")
我明白了:
`Synset('delay.n.01') [u'\u0627\u0650\u0646\u0652\u062a\u0650\u0638\u0627\u0631', u'\u062a\u0623\u062c\u0650\u064a\u0644', u'\u062a\u0623\u062e\u0650\u064a\u0631', u'\u062a\u0648\u0642\u0651\u064f\u0641'] Traceback (most recent call last): File "C:/Users/PycharmProjects20Dec.py" line 492, in <module> wn.get_synsets_from_word("جَمِيل") AttributeError: 'WordNetCorpusReader' object has no attribute 'get_synsets_from_word`
我真的不知道是什么问题。
答案 0 :(得分:3)
阿拉伯语Wordnet独立于nltk工作。在您拥有AWNDatabaseManagement.py
和upc_db.xml
的文件夹中,输入您的脚本并将其更改为:
from AWNDatabaseManagement import wn
synsets = wn.get_synsetids_from_word(u"جَمِيل")
for s in synsets:
wn._items[s].describe()
输出将是:
itemid jamiyl_a1AR
offset 300218842
name جَمِيل
type synset
pos a
input links [[u'be_in_state', u'jamaAl_n1AR'], [u'near_antonym', u'qabiyH_a1AR']]
output links [[u'near_antonym', u'qabiyH_a1AR']]