【发布时间】:2015-03-01 22:07:58
【问题描述】:
我正在尝试读取文件 corpus.txt(训练集)并生成模型,输出必须称为 lexic.txt 并包含单词、标签和出现次数...对于小型训练集它可以工作,但是对于给定训练集的大学(30mb .txt 文件,数百万行),代码不起作用,我想这将是效率问题,因此系统内存不足......谁能帮忙请给我代码?
这里附上我的代码:
from collections import Counter
file=open('corpus.txt','r')
data=file.readlines()
file.close()
palabras = []
count_list = []
for linea in data:
linea.decode('latin_1').encode('UTF-8') # para los acentos
palabra_tag = linea.split('\n')
palabras.append(palabra_tag[0])
cuenta = Counter(palabras) # dictionary for count ocurrences for a word + tag
#Assign for every word + tag the number of times appears
for palabraTag in palabras:
for i in range(len(palabras)):
if palabras[i] == palabraTag:
count_list.append([palabras[i], str(cuenta[palabraTag])])
#We delete repeated ones
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] is the word + tag and finalList[i][1] is the numbr of ocurrences
outfile.close()
在这里您可以看到 corpus.txt 的样本:
Al Prep
menos Adv
cinco Det
reclusos Adj
murieron V
en Prep
las Det
últimas Adj
24 Num
horas NC
en Prep
las Det
cárceles NC
de Prep
Valencia NP
y Conj
Barcelona NP
en Prep
incidentes NC
en Prep
los Det
que Pron
su Det
提前致谢!
【问题讨论】:
-
什么不起作用?输出错了吗?它没有运行完成吗?
-
@David 对小 .txt 文件非常有效,但对于大 .txt 文件,任务并没有结束,终端提示中止
-
消息说什么?你有没有试过在它运行时观察你的记忆?
-
@David 内存不足:(
-
您使用了多少内存?
标签: python machine-learning nlp tagged-corpus