IndentationError:unindent与NLTK语法集中wn.VERB的任何外部缩进级别都不匹配

2024-09-23 22:24:47 发布

您现在位置:Python中文网/ 问答频道 /正文

from nltk.corpus import wordnet as wn

def getSynonyms(word, pos):
    synonymList1 = []
    for data1 in word:
        tmp1data1 = []
        wordnetSynset1 = wn.synsets(data1)
        for syn in wordnetSynset1:
            if syn.pos() == wn.NOUN:
                newSyn1 = [data1, wn.NOUN]#, wn.VERB)
                tmp1data1.append(newSyn1)
                break
            if syn.pos() == wn.VERB:
                newSyn2 = [data1, wn.VERB]
                tmp1data1.append(newSyn2)
                break
            if syn.pos() == wn.ADV:
                newSyn3 == [data1, wn.ADV]
                tmp1data1.append(newSyn3)
                break
            if syn.pos() == wn.ADJ:
                newSyn4 == [data1, wn.ADJ]
                tmp1data1.append(newSyn4)
                break
        return tmp1data1
        tempList1 = []
        for synset1 in tmp1data1:
            synLemmas = synset1.lemma_names()
            for i in xrange(len(synLemmas)):
                word = synLemmas[i]
                tempList1.append(word)
        synonymList1.append(tempList1)
    return synonymList1

words1 = ['move']
pos = ['n','v','a','r']
syn1 = getSynonyms(words1, pos)

print syn1

上面写着错误:

elif syn.pos() == wn.VERB:
                         ^
IndentationError: unindent does not match any outer indentation level

我不明白为什么缩进错误是从wn.VERB开始的,而不是从wn.NOUN开始的。有人能帮我吗

另外,如果你不介意的话,你能检查一下我显示word同义词和wordnet pos标签的代码是正确的还是错误的吗? 谢谢


Tags: inposforifwordnounverbbreak