【发布时间】:2017-04-26 22:08:11
【问题描述】:
从 nltk “How To”指南中,我知道我可以使用 Python 来查找文件中的前 x 个二元组/三元组,方法如下:
>>> import nltk
>>> from nltk.collocations import *
.....
>>> text = inputFile.read()
>>> tokens = nltk.wordpunct_tokenize(text)
>>> bigram_measures = nltk.collocations.BigramAssocMeasures()
>>> finder = BigramCollocationFinder.from_documents(filename)
>>> finder.nbest(bigram_measures.pmi, 10)
这样做的问题是我必须将文件加载到内存中,这目前仅适用,因为我已将所需的文本分成多个较小的块。我绝对没有足够的内存将所有文件组合成一个文件或一个字符串进行搜索(总大小约为 25GB)。因此,如果我想搜索前 X 个二元组,我必须通过文件来完成,但是我会遇到在我的输出中重复二元组的问题。我也将错过其他共同出现在前 X 个二元组中但不在我的其他文件中的二元组。
有什么方法可以使用 nltk 库来完成此操作,或者这只是我必须解决的限制?或者是否有其他库或方法可以实现同样的目标?
【问题讨论】:
-
KenLM 来救援!! kheafield.com/code/kenlm/estimation
-
我之前研究过,但是在让所有依赖项在我的机器上工作时遇到了一些问题。我可能会在某个时候再次研究它