将单词标识为名词,动词或形容词

时间:2015-09-05 09:36:38

标签: python nlp wordnet word-sense-disambiguation

给出一个单词如" table",我想确定它最常用的是什么,它最常见的用法是名词,动词还是形容词。我想在python中这样做。除了wordnet还有什么吗?我不喜欢wordnet。或者,如果我使用wordnet,我将如何使用它?

2 个答案:

答案 0 :(得分:7)

import nltk


text = 'This is a table. We should table this offer. The table is in the center.'
text = nltk.word_tokenize(text)
result = nltk.pos_tag(text)
result = [i for i in result if i[0].lower() == 'table']

print(result) # [('table', 'JJ'), ('table', 'VB'), ('table', 'NN')]

答案 1 :(得分:5)

如果你有一个脱离背景的词并且想知道它最常见的用法,你可以查看其他人的频率表(例如wordnet),或者你可以自己做点算:只需找到标记的语料库足够大,可用于您的目的,并计算其实例。如果你想使用免费语料库,NLTK包括布朗语料库(100万字)。 NLTK还提供了处理较大的非自由语料库(例如,英国国家语料库)的方法。

import nltk
from nltk.corpus import brown
table = nltk.FreqDist(t for w, t in brown.tagged_words() if w.lower() == 'table')
print(table.most_common())

[('NN', 147), ('NN-TL', 50), ('VB', 1)]