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

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

  1. 像男孩和男孩这样的词或其他语法特征,例如 get 和 getting,相同的词或词条,如果有 3 个男孩和 2 个男孩,则应将它们列为男孩 5。但是,对于像 Go 和 Went 这样有不规则形式(或脚和脚)

  2. 我想使用这个频率列表作为一种字典,所以每当我在程序的另一部分看到一个词时,我想检查它在这个列表中的频率。因此,最好是无需查找所有内容即可搜索。

我的问题是:

  1. 对于第一个问题,我该怎么办?词形还原?还是词干?或者我怎样才能得到它?

  2. 其次,我应该将它设置为什么样的变量类型?像字典或列表或什么?

  3. 最好将它保存在csv中吗?

  4. 是否有任何准备好的 Python 工具包来完成这一切?

非常感谢。


慕运维8079593
浏览 222回答 1
1回答

人到中年有点甜

如上所述,问题是基于意见且含糊不清,但这里有一些说明:两者都适用于您的情况。Stemming 通常更简单、更快。我建议从nltk 的PorterStemmer. 如果您需要复杂的词形还原,请查看spaCyIMO,这是行业标准。您需要字典,一旦您有了词干/引理,它就会为您提供分摊 O(1) 查找。也counter可能变得有用。取决于您的用例。CSV 更“便携”,pickle可能更易于使用。nltk 和 spaCy 中有很多“构建块”,构建管道/模型取决于您
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python