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版,