App*_*pps 14 python nltk wordnet
有没有办法使用Python使用WordNet或NLTK查找英语单词的使用频率?
注意:我不想要给定输入文件中单词的频率计数.我想根据当今时间的用法来计算一个单词的频率计数.
Suz*_*ana 15
在WordNet中,每个引理都有一个由方法返回的频率计数
lemma.count(),并存储在文件中nltk_data/corpora/wordnet/cntlist.rev.
代码示例:
from nltk.corpus import wordnet
syns = wordnet.synsets('stack')
for s in syns:
for l in s.lemmas():
print l.name + " " + str(l.count())
Run Code Online (Sandbox Code Playgroud)
结果:
stack 2
batch 0
deal 1
flock 1
good_deal 13
great_deal 10
hatful 0
heap 2
lot 13
mass 14
mess 0
...
Run Code Online (Sandbox Code Playgroud)
但是,许多计数为零,源文件或文档中没有信息用于创建此数据的语料库.因此,最好选择最适合您的应用程序的语料库,并按照Christopher的建议自行创建数据.
你可以使用棕色语料库来做它,虽然它已经过时了(1979年最后一次修订),所以它缺少很多当前的单词.
import nltk
from nltk.corpus import brown
from nltk.probability import *
words = FreqDist()
for sentence in brown.sents():
for word in sentence:
words.inc(word.lower())
print words["and"]
print words.freq("and")
Run Code Online (Sandbox Code Playgroud)
然后cpickle,您可以将FreqDist关闭到文件,以便以后加快加载速度.
语料库基本上只是一个充满句子的文件,每行一个,还有很多其他语料库,所以你可能找到一个符合你目的的语料库.更多当前语料库的其他几个来源:谷歌,美国国家语料库.
您还可以从当代美国英语语料库中获得最新的60,000个单词及其频率的最新列表
| 归档时间: |
|
| 查看次数: |
12880 次 |
| 最近记录: |