python - 使用 Google Ngrams 训练语言模型

标签 python nlp nltk n-gram

我想在给定单词前一组单词的情况下找到该单词的条件概率。我计划使用 Google N-grams 来实现同样的目的。然而,由于它是一个如此巨大的资源,我认为在我的电脑上计算是不可能的。 (处理所有 N 元语法,训练语言模型)。

有什么方法可以使用 Google Ngrams 训练语言模型吗? (甚至python NLTK库不再支持ngram语言模型) 注意 - 我知道可以使用 ngram 来训练语言模型,但考虑到 Google Ngram 的庞大规模,如何专门使用 Google ngram 来训练语言模型?

最佳答案

您应该查看加州大学伯克利分校的这个巧妙的代码库:https://github.com/adampauls/berkeleylm

examples/ 文件夹中,您会找到一个 bash 脚本 make-binary-from-google.sh,它可以根据原始 Google N- 创建紧凑的语言模型克。由此产生的 LM 实现了愚蠢的退避,并利用了以下论文中描述的快速高效的数据结构:http://nlp.cs.berkeley.edu/pubs/Pauls-Klein_2011_LM_paper.pdf

如果您只是对最终训练后的 LM 感兴趣,您可以从 Berkley 托管的网站下载各种语言版本:http://tomato.banatao.berkeley.edu:8080/berkeleylm_binaries/

关于python - 使用 Google Ngrams 训练语言模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264636/

相关文章:

python - 将输入限制为仅整数(文本使 PYTHON 程序崩溃)

python - 将 Chrome 历史日期/时间戳转换为可读格式

java - 如何在 OpenNLP 中训练 Tokenizer?

python - 如何对 Word2Vec 进行聚类

python - MongoDB + K 表示集群

Python自然语言处理停用词

python - 想法/解决方案如何编辑PBL(PowerBuilder Library)文件?

python 2.7 : "can' t start new thread"error from "multiprocessing.Pool"

java - JCas 类型 ...Timex3... 在 Java 代码中使用,但未在 XML 类型描述符 heideltime 中声明

python - nltk "OMW"带有阿拉伯语的 wordnet