如何处理nltk同义词中的首字母缩略词

时间:2016-01-27 14:41:11

标签: python nltk

我试图获取某些单词的同义词。有些是首字母缩略词,如世界卫生组织(世界卫生组织)或美国(美利坚合众国)等。我试图通过以下代码逃避错误的缩略词:

from nltk.corpus import wordnet as wn
def foo():    
    s = 'WHO'    
    ss = wn.synsets(s)[0]    
    print [str(x) if list in range in ss else s]
foo()

问题在于我一直收到错误:

s = wn.synsets(ss)[0]
IndexError

: list index out of range

1 个答案:

答案 0 :(得分:1)

  

我试图逃避错误的缩略词

问题是它无法找到'WHO'的任何同义词集,因此会返回一个空列表,而您的[0]会导致错误,如您所见。

尝试使用此

来避免它
def foo():    
    s = wn.synsets('WHO')
    if s:
        ss = s[0]
        print ss

此外,您的列表理解没有意义,但这不是问题的一部分。