从大型语料库中提取词频列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从大型语料库中提取词频列表相关的知识,希望对你有一定的参考价值。
我有一个名为SubIMDB的大型英语语料库,我想用它们的频率列出所有单词。意味着它们在整个语料库中出现了多少。此频率列表应具有以下特征:
- 像男孩和男孩这样的词或其他语法特征,如获取和获取,相同的单词或引理,如果有3个男孩和2个男孩,它应该列为男孩5.但是,不是像Go和Went这样的情况不规则形式(或脚和脚)
- 我想把这个频率列表用作一种字典,所以每当我在程序的另一部分看到一个单词时,我想在这个列表中检查它的频率。所以,如果没有查找所有内容就可以搜索到更好的内容。
我的问题是:
- 对于第一个问题,我该怎么办? Lemmatize?还是扼杀?或者我怎么能得到它?
- 第二,我应该将它设置为什么样的变量类型?像字典或列表或什么?
- 是最好将它保存在csv中吗?
- 有没有为python做这个的准备工具包呢?
非常感谢。
答案
如上所述,问题是基于意见和模糊的,但这里有一些方向:
- 两者都适用于您的情况。词干通常更简单,更快捷。我建议从nltk's
PorterStemmer
开始。如果您需要复杂的词形还原,请查看spaCy
,这是行业标准的IMO。 - 你需要字典,一旦你有了你的词干/引理,就会给你分摊O(1)查询。
counter
也可能变得有用。 - 取决于你的用例。 CSV更“便携”,
pickle
可能更容易使用。 - 在nltk和spaCy中有很多“构建块”,构建您的管道/模型取决于您
以上是关于从大型语料库中提取词频列表的主要内容,如果未能解决你的问题,请参考以下文章
Perl 脚本自动提取《人民日报》全文数据库中的动态词频数据
sklearn文本特征提取——TfidfVectorizer