Python中的阿拉伯语Word Net同义词?

时间:2016-01-15 22:31:09

标签: python python-2.7 arabic

我正在使用python 2.7,我正在尝试使用阿拉伯语WordNet获取阿拉伯语单词的同义词

我下载了两个所需的文件:

  1. AWNDatabaseManagement.py
  2. upc_db.xml
  3. 基于this answer,我在AWNDatabaseManagement.py中进行了一些编辑:

    1. 第320行是opts['i']='upc_db.xml'而不是

      OPTS [ 'I'] = 'E:/usuaris/horacio/arabicWN/AWNdatabase/upc_db.xml'

    2. 我在最后添加wn.get_synsets_from_word(u"جَمِيل")

    3. 我在第2行添加了# -*- coding: utf-8 -*-

    4. 然后我使用$ 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`
      

      我真的不知道是什么问题。

1 个答案:

答案 0 :(得分:3)

阿拉伯语Wordnet独立于nltk工作。在您拥有AWNDatabaseManagement.pyupc_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']]