我正在尝试将财务文件拆分为句子。我有大约 50.000 个包含纯英文文本的文档。总文件大小约为 2.6 GB。
我将 NLTKPunktSentenceTokenizer与标准英文泡菜文件一起使用。我还通过提供额外的缩写对其进行了调整,但结果仍然不够准确。
由于 NLTK PunktSentenceTokenizer 基于 Kiss & Strunk (2006) 的无监督算法,我试图根据我的文档,基于nltk punkt 的训练数据格式来训练句子标记器。
import nltk.tokenize.punkt
import pickle
import codecs
tokenizer = nltk.tokenize.punkt.PunktSentenceTokenizer()
text = codecs.open("someplain.txt", "r", "utf8").read()
tokenizer.train(text)
out = open("someplain.pk", "wb")
pickle.dump(tokenizer, out)
out.close()
Run Code Online (Sandbox Code Playgroud)
不幸的是,在运行代码时,我收到一个错误,即内存不足。(主要是因为我首先将所有文件连接到一个大文件。)
现在我的问题是:
我在 Core I7 2600K 和 16GB RAM 机器上的 Windows 10 上使用 Python 3.6 (Anaconda 5.2)。