2016-09-04 2 views
0

J'utilise NLTK Wordnet pour la langue arabe. Quand je lance le code suivant:Erreur lors de l'utilisation de Wordnet arabe en nltk

# -*- coding: UTF-8 -*- 
from nltk.corpus import wordnet as wn 
print wn.synsets('bank')[0].lemma_names('arb') 
print wn.synsets('ضِفَّة', lang='arb')0].hypernyms()0].lemma_names(lang='arb') #PROBLEM HERE 

Je reçois cette erreur:

Traceback (most recent call last): 
    File "nltk_wordnet.py", line 7, in <module> 
    print wn.synsets('ضِفَّة', lang='arb')[0].hypernyms() [0].lemma_names(lang='arb') 
IndexError: list index out of range 

Répondre

0

Votre code suppose que mot 'ضِفَّة' trouvera une relation conceptuelle en utilisant synsets et que le premier élément de l'ensemble aura hypernym (s). Ce n'est peut-être pas vrai. Vous pouvez à la place vérifier si les résultats retournés ne sont pas vides avant indexation:

word_synsets = wn.synsets('ضِفَّة', lang='arb') 
if word_synsets: # False if word_synsets is an empty list 
    word_hyp = word_synsets[0].hypernyms() 
    if word_hyp: # False if word_hyp is an empty list 
     print(word_hyp[0].lemma_names(lang='arb')) 
    else: 
     print('first item in ضِفَّة synset has no hypernym(s)') 
else: 
    print('synset for ضِفَّة returned no result')