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

时间:2019-01-13 17:03:57

标签: python python-3.x nlp corpus word-frequency

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

  1. 像男孩和男孩这样的单词或其他语法特征(例如,get and get),相同的单词或引理,如果有3个男孩和2个男孩,则应将其列为男孩5。但是,对于Go和去了不规则形状(或脚和脚)
  2. 我想将此频率列表用作一种字典,因此,每当在程序的另一部分看到一个单词时,我都希望在此列表中检查其频率。因此,最好在不查找所有内容的情况下进行搜索。

我的问题是:

  1. 对于第一个问题,我该怎么办?合法化?还是梗?或我怎么能得到那个?
  2. 第二,我应该将其设置为哪种变量类型?例如字典或清单,还是什么?
  3. 将它保存在csv中是最好的吗?
  4. 是否有针对python的准备好的工具包?

非常感谢您。

1 个答案:

答案 0 :(得分:0)

如上所述,问题是基于观点的且含糊不清,但以下是一些指示:

  1. 两者都能为您服务。茎通常更简单,更快。我建议从nltk's PorterStemmer开始。如果您需要复杂的lemmatization,请查看行业标准IMO spaCy
  2. 您需要字典,一旦有了词干/引理,就可以进行摊销O(1)查找。 counter也可能会有用。
  3. 取决于您的用例。 CSV更“便携”,pickle可能更易于使用。
  4. nltk和spaCy中有很多“构建块”,构建管道/模型由您决定