【问题标题】:N-grams - not in memoryN-gram - 不在内存中
【发布时间】:2016-09-21 10:09:33
【问题描述】:

我有 300 万份摘要,我想从中提取 4 克。我想建立一个语言模型,所以我需要找到这些 4-grams 的频率。

我的问题是我无法在内存中提取所有这些 4 克。如何实现一个可以估计这些 4 克的所有频率的系统?

【问题讨论】:

  • 你看过 hdf5 或 pytables,据我所知,它们与 numpy 连接良好,而且速度应该很快。
  • 感谢您的反馈。我会检查他们
  • 大多数 4-gram 只出现一次,因此也许您可以通过查找出现多次的那些来获得所需的信息。一个关键的观察结果是,如果一个 4-gram 扩展了一个出现不止一次的 trigram,它会出现不止一次,如果它扩展一个出现不止一次的 bigram,这样的 trigram 会出现不止一次。你可以分阶段做事。首先找到这样的二元组(可能可行),然后找到三元组,最后是 4 元组。我对这个问题的回答显示了三元组的这个想法:stackoverflow.com/a/36935796/4996248
  • 感谢您的反馈。这是一个特殊信息,我会考虑到这一点。

标签: python n-gram language-model


【解决方案1】:

听起来您需要将中频计数存储在磁盘而不是内存中。幸运的是大多数数据库都可以做到这一点,python 可以与大多数数据库通信。

【讨论】:

  • 我心里已经有了这个,但我不知道效率如何。我想为每 100000 篇文章创建一个按第一个单词排序的文件。然后我实现了归并排序以创建一个唯一的文件并对所有这些 4 克进行排序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 2021-11-28
  • 2013-10-06
  • 2012-04-11
  • 2012-01-05
  • 1970-01-01
  • 2018-08-12
相关资源
最近更新 更多