NLTK仅搜索名词同义词集合
这是我正在写的一个函数,用来检查一组名词中是否存在上位词和下位词。
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
3 个回答
-1
另一种方法是使用WordNet和列表推导
print ([len(wn.morphy(tag,wn.NOUN)) for tag in tags])
1
简单来说,
for syn in x:
if syn.pos == 'n':
#rest of code
5
你也可以试试这个
wordnet.synsets(word, pos='n')
这个只会返回名词,如果你想要动词的话,应该使用 pos='v'