Python NLTK仅搜索名词语法集

Python NLTK仅搜索名词语法集,python,nltk,wordnet,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(s

下面是我编写的一个函数,用于检查名词列表中是否存在上下位词

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
如何仅检查作为名词的语法集的上下义词的长度? 例如

简单地说

for syn in x:
    if syn.pos == 'n':
        #rest of code
简单地说

for syn in x:
    if syn.pos == 'n':
        #rest of code
你也可以试试

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

你也可以试试

wordnet.synsets(word, pos='n')

它只返回名词,如果你想要动词,你应该使用另一种使用wordnet和列表理解的方法

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

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

print ([len(wn.morphy(tag,wn.NOUN)) for tag in tags])
它应该是
syn.pos()==“n”
syn.pos()==wn.noon
`pos'可以是一个函数,至少在我的例子中是这样的:我使用的是wordnet 3.0版,它应该是
syn.pos()='n'
syn.pos()==wn.noon
`pos'可以是一个函数,至少对我来说是这样的:我使用的是wordnet 3.0版,