【问题标题】:Extracting Word Frequency List from a Large Corpus从大型语料库中提取词频列表
【发布时间】:2019-01-13 17:03:57
【问题描述】:

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

  1. boy 和 boy 之类的词或 get 和 getting 等其他语法特征,相同的词或引理,如果有 3 个男孩和 2 个男孩,则应将它们列为 Boy 5。但是,不适用于 Go 和去有不规则的形状(或脚和脚)
  2. 我想将此频率列表用作一种字典,因此每当我在程序的另一部分中看到一个单词时,我想检查它在此列表中的频率。因此,最好无需查找所有内容即可进行搜索。

我的问题是:

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

非常感谢。

【问题讨论】:

  • 问“我从哪里开始?”的问题通常过于宽泛,不适合本网站。人们有自己解决问题的方法,因此不可能有正确的答案。仔细阅读 Where to Startedit 您的帖子。
  • 寻求图书馆推荐是离题的,在一个问题中提出多个和/或不具体的问题也是不受欢迎的。你尝试了什么,你在哪里研究过,你用来解决这个问题的代码有什么问题?谷歌搜索python lemma stemmer 自然会导致 NLTK 和这个网站上的重复... f.e.这个how-do-i-do-word-stemming-or-lemmatization
  • @PatrickArtner 好吧,我知道从哪里开始,我只是有这些问题,我想知道其他人对此的看法。我对 lemmetizing 或阻止它们有点困惑。在他们看来,制作该频率列表的最佳方式是什么。你觉得我应该在哪里问这个? stackexchange 中的语言学?
  • @PatrickArtner 我知道 NLTK 引理和词干分析器,我能够与他们合作。考虑到我只需要摆脱语法部分,我问哪个更好。而且我也很好地搜索了 Github 和整个网络,但找不到一个好的 python 工具包自动生成 .txt 文件的频率列表。我想问问这里的人是否知道。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2018-05-24
    • 2019-02-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多