NLTK仅搜索名词同义词

时间:2013-03-18 03:49:21

标签: python nltk wordnet

这是我正在写的一个函数,用于检查名词列表中是否存在超级和下位词。

def check_hyper_hypo(wordlist):
    returnlist=[]
    for word in wordlist: #by definition a base word has a word above and below heirachy
        x = wn.synsets(word)
        for syn in x:    
            if not(((len(syn.hypernyms()))==0)or((len(syn.hyponyms()))==0)):
                returnlist.append(word)
                break
    return returnlist

我如何仅检查名词同义词的超/下位长度? E.g。

for syn in x:
    if ".n." in syn:
        #rest of code

3 个答案:

答案 0 :(得分:3)

您也可以尝试

aiCar.mirrorPos

它只返回名词,如果你想要动词,你应该使用wordnet.synsets(word, pos='n')

答案 1 :(得分:1)

简单地说,

for syn in x:
    if syn.pos == 'n':
        #rest of code

答案 2 :(得分:-1)

使用wordnet和列表理解的另一种方法

print ([len(wn.morphy(tag,wn.NOUN)) for tag in tags])