1

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

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 ".n." in syn:
        #rest of code
4

3 回答 3

5

你也可以试试

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

它只会返回名词,如果你想要动词,你应该使用pos='v'

于 2015-05-18T23:18:54.547 回答
1

简单地,

for syn in x:
    if syn.pos == 'n':
        #rest of code
于 2013-03-18T03:57:53.687 回答
-1

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

print ([len(wn.morphy(tag,wn.NOUN)) for tag in tags])
于 2017-08-09T20:04:19.397 回答