4

给定一个单词,例如“table”,我想确定它最常用的是什么,它最常用的是名词、动词还是形容词。我想在python中做到这一点。除了wordnet还有别的吗?我不喜欢wordnet。或者,如果我使用 wordnet,我将如何使用它呢?

4

2 回答 2

11
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')]
于 2015-09-05T09:57:27.687 回答
6

如果你有一个词脱离上下文并且想知道它最常见的用法,你可以查看其他人的频率表(例如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)]
于 2015-09-06T00:42:16.097 回答