Nltk 获取与其词性标记相关的语法集
我想得到文本中与其词性标记相关的对应语法集。 例如,如果您键入Nltk 获取与其词性标记相关的语法集,nltk,Nltk,我想得到文本中与其词性标记相关的对应语法集。 例如,如果您键入 print('Synsets nouns : {}'.format(wn.synsets('title', pos = 'n'))) out : [Synset('title.n.01'),Synset('title.n.02'),Synset('title.n.03'), ...] 你最终得到了大量的同义词,仅仅与名词有关(例如,如果有任何动词,它们将被忽略) 我不想手动键入pos='n',而是想为一个句子自动化它 例如: fr
print('Synsets nouns : {}'.format(wn.synsets('title', pos = 'n')))
out : [Synset('title.n.01'),Synset('title.n.02'),Synset('title.n.03'), ...]
你最终得到了大量的同义词,仅仅与名词有关(例如,如果有任何动词,它们将被忽略)
我不想手动键入pos='n'
,而是想为一个句子自动化它
例如:
from nltk.corpus import wordnet as wn
text = 'Theim won his first ever grandslam title'
text_tokens = nltk.word_tokenize(text)
text_posTags = nltk.pos_tag(text_tokens)
corresponding_synsets = [wn.synsets(i[0], pos = i[1]) for i in text_posTags]
但现在我最终出现了一个错误,因为文字邮资的格式不同,
例如,“title”一词的词性名称为“NN”,而不是“n”
print(text_posTags)
out:
[('Theim', 'NNP'), ('won', 'VBD'), ('his', 'PRP$'), ('first', 'JJ'), ('ever', 'RB'), ('grandslam', 'VBP'), ('title', 'NN')]
有什么想法可以解决这个问题吗?您可能已经知道NLTK使用表示同一词类中的不同类别(例如专有名词与名词) 如果我正确理解了你的问题,一个可能的解决办法是处理一个名词的所有可能的指称:
noun_types = ['NN', 'NNP', 'NNS', 'NNPS']
tag = 'NN'
if tag in noun_types:
print('n')
如果您使用上述方法,并希望在列表理解中包含条件,则可能是一个有用的资源