首页 > 解决方案 > Python-2.7 NLTK 使用来自类类型 nltk.Text 的数据保存和打开文件

问题描述

我正在使用 NLTK 分析一些非常大的文本文件(即 2GB 的纯文本),这些文件有望成为我博士论文的一部分(不是计算机科学——我不是软件工程师)。此类过程的工作流程是将 ASCII (str) 转换为标记 (list) 再转换为 nltk.Text (class)。由于文件非常大并且需要一些时间来处理,我希望能够在此工作流程的各个阶段保存文件,以便不必在后续会话中重复处理。转换和保存 ASCII 和标记不是问题,保存 nltk.Text 数据也不是问题:

def savetextfile(filename, text):
    f=open(filename,'w')
    for a in range(len(text)):
    b=text[a].encode('ascii','ignore')
    f.writelines((b)+'\n')

这会将文本对象中的每个项目输入到新行中。我遇到的问题是读回这些数据。我可以这样实例化一个 nltk.Text 类的对象:

text=nltk.Text([0],'')

但是如果我尝试构建一个循环将数据放回对象中:

with codecs.open('testdata.txt', 'r', encoding='utf-8-sig') as filehandle:
    filecontents=filehandle.readlines()
    for line in filecontents:
        current_place = (line[:-1]).encode('ascii','ignore')
        print(current_place) #just for testing
        type(current_place) #just for testing
        text=nltk.Text([a],current_place)
        a += 1

最终输入到文本对象中的是 testdata.txt 文件中的行数。如您所见,我正在处理此类类型,就好像它是一维数组一样,但事实并非如此,我猜测的原因是因为文档很差或不存在(我找不到无论如何)。我将非常感谢任何指点,谢谢。

标签: python-2.7nltk

解决方案


推荐阅读