我有一个名为SubIMDB的大型英语语料库,我想列出所有单词及其频率。意思是它们在整个语料库中出现了多少。这个频率列表应该有一些特点:像男孩和男孩这样的词或其他语法特征,例如 get 和 getting,相同的词或词条,如果有 3 个男孩和 2 个男孩,则应将它们列为男孩 5。但是,对于像 Go 和 Went 这样有不规则形式(或脚和脚)我想使用这个频率列表作为一种字典,所以每当我在程序的另一部分看到一个词时,我想检查它在这个列表中的频率。因此,最好是无需查找所有内容即可搜索。我的问题是:对于第一个问题,我该怎么办?词形还原?还是词干?或者我怎样才能得到它?其次,我应该将它设置为什么样的变量类型?像字典或列表或什么?最好将它保存在csv中吗?是否有任何准备好的 Python 工具包来完成这一切?非常感谢。
1 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
如上所述,问题是基于意见且含糊不清,但这里有一些说明:
两者都适用于您的情况。Stemming 通常更简单、更快。我建议从nltk 的
PorterStemmer
. 如果您需要复杂的词形还原,请查看spaCy
IMO,这是行业标准。您需要字典,一旦您有了词干/引理,它就会为您提供分摊 O(1) 查找。也
counter
可能变得有用。取决于您的用例。CSV 更“便携”,
pickle
可能更易于使用。nltk 和 spaCy 中有很多“构建块”,构建管道/模型取决于您
添加回答
举报
0/150
提交
取消