繁体   English   中英

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

[英]Extracting Word Frequency List from a Large Corpus

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

  1. 像男孩和男孩这样的词或其他语法特征,例如 get 和 getting,相同的词或词条,如果有 3 个男孩和 2 个男孩,则应将它们列为男孩 5。但是,对于像 Go 和 Went 这样有不规则形式(或脚和脚)
  2. 我想使用这个频率列表作为一种字典,所以每当我在程序的另一部分看到一个词时,我想检查它在这个列表中的频率。 因此,最好是无需查找所有内容即可搜索。

我的问题是:

  1. 对于第一个问题,我该怎么办? 词形还原? 还是词干? 或者我怎样才能得到它?
  2. 其次,我应该将它设置为什么样的变量类型? 像字典或列表或什么?
  3. 最好将它保存在csv中吗?
  4. 是否有任何准备好的 Python 工具包来完成这一切?

非常感谢。

如上所述,问题是基于意见且含糊不清,但这里有一些说明:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM