python-2.7 - 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 文件中的行数。如您所见,我正在处理此类类型,就好像它是一维数组一样,但事实并非如此,我猜测的原因是因为文档很差或不存在(我找不到无论如何)。我将非常感谢任何指点,谢谢。
解决方案
推荐阅读
- sql - Postgres View:如何将所有列值分配给另一列CASE WHEN的值?
- jboss - 一步一步的Jboss负载均衡
- python - 如何在急切模式下迭代 tf.tensor
- linux - 在 Sagemaker 处理 API 运行的 Docker 容器上构建一个大图(~44GB)
- spring-integration - 有没有办法在子流上调用 Scatter Gather 并保持执行顺序?
- javascript - 当我不知道对象数组的键/值时,最好的方法是什么?
- css - shape-outside css 属性不适用于 react 和 styled 组件
- sql - 由小于固定数字的数字组成的所有表格
- c# - 扫描瓷砖地图以查找有效区域
- python - ImportError : 无法导入名称
从 在 Linux 上