从大 .txt 文件生成模型读取语料库时出错

我试图读取文件 corpus.txt(训练集)并生成一个模型,输出必须命名为 lexic.txt,并且包含单词、标签和出现次数…对于小型训练集它可以工作,但对于大学提供的训练集(30MB 的 .txt 文件,数百万行)代码无法工作,我猜想这可能是效率问题,因此系统内存不足…请问有人可以帮我修改代码吗?

我在这里附上我的代码:

from collections import Counterfile=open('corpus.txt','r')data=file.readlines()file.close()palabras = []count_list = []for linea in data:   linea.decode('latin_1').encode('UTF-8') # 处理重音符号   palabra_tag = linea.split('\n')   palabras.append(palabra_tag[0])cuenta = Counter(palabras) # 用于统计单词 + 标签出现次数的字典 # 为每个单词 + 标签分配出现次数for palabraTag in palabras:    for i in range(len(palabras)):        if palabras[i] == palabraTag:                   count_list.append([palabras[i], str(cuenta[palabraTag])])# 删除重复项finalList = []for i in count_list:    if i not in finalList:        finalList.append(i)outfile = open('lexic.txt', 'w') outfile.write('Palabra\tTag\tApariciones\n')for i in range(len(finalList)):    outfile.write(finalList[i][0]+'\t'+finalList[i][1]+'\n') # finalList[i][0] 是单词 + 标签,finalList[i][1] 是出现次数outfile.close()

这里你可以看到 corpus.txt 的样本:

Al  Prepmenos   Advcinco   Detreclusos    Adjmurieron    Ven  Preplas Detúltimas Adj24  Numhoras   NCen  Preplas Detcárceles    NCde  PrepValencia    NPy   ConjBarcelona   NPen  Prepincidentes  NCen  Preplos Detque Pronsu  Det

提前感谢!


回答:

最后我改进了代码,使用了字典,这里是运行良好的结果:

file=open('corpus.txt','r')data=file.readlines()file.close()diccionario = {}for linea in data:    linea.decode('latin_1').encode('UTF-8') # 处理重音符号    palabra_tag = linea.split('\n')    cadena = str(palabra_tag[0])    if(diccionario.has_key(cadena)):        aux = diccionario.get(cadena)        aux += 1        diccionario.update({cadena:aux})    else:        diccionario.update({cadena:1})outfile = open('lexic.txt', 'w')outfile.write('Palabra\tTag\tApariciones\n')for key, value in diccionario.iteritems() :    s = str(value)    outfile.write(key +" "+s+'\n')outfile.close()

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注