从大型语料库中提取词频列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从大型语料库中提取词频列表相关的知识,希望对你有一定的参考价值。

我有一个名为SubIMDB的大型英语语料库,我想用它们的频率列出所有单词。意味着它们在整个语料库中出现了多少。此频率列表应具有以下特征:

  1. 像男孩和男孩这样的词或其他语法特征,如获取和获取,相同的单词或引理,如果有3个男孩和2个男孩,它应该列为男孩5.但是,不是像Go和Went这样的情况不规则形式(或脚和脚)
  2. 我想把这个频率列表用作一种字典,所以每当我在程序的另一部分看到一个单词时,我想在这个列表中检查它的频率。所以,如果没有查找所有内容就可以搜索到更好的内容。

我的问题是:

  1. 对于第一个问题,我该怎么办? Lemmatize?还是扼杀?或者我怎么能得到它?
  2. 第二,我应该将它设置为什么样的变量类型?像字典或列表或什么?
  3. 是最好将它保存在csv中吗?
  4. 有没有为python做这个的准备工具包呢?

非常感谢。

答案

如上所述,问题是基于意见和模糊的,但这里有一些方向:

  1. 两者都适用于您的情况。词干通常更简单,更快捷。我建议从nltk's PorterStemmer开始。如果您需要复杂的词形还原,请查看spaCy,这是行业标准的IMO。
  2. 你需要字典,一旦你有了你的词干/引理,就会给你分摊O(1)查询。 counter也可能变得有用。
  3. 取决于你的用例。 CSV更“便携”,pickle可能更容易使用。
  4. 在nltk和spaCy中有很多“构建块”,构建您的管道/模型取决于您

以上是关于从大型语料库中提取词频列表的主要内容,如果未能解决你的问题,请参考以下文章

用Py做文本分析5:关键词提取

Perl 脚本自动提取《人民日报》全文数据库中的动态词频数据

sklearn文本特征提取——TfidfVectorizer

机器学习 - 文本分析案例 - 新闻分析

如何使用 Scikit Learn CountVectorizer 在语料库中获取词频?

算法--随便写写