Я имею дело с чрезвычайно большим текстовым файлом (около 3,77 ГБ) и пытаясь извлечь все предложения, в которых происходит определенное слово и записывается в текстовый файл.
Таким образом, большой текстовый файл - это всего лишь несколько строк текста:
line 1 text ....
line 2 text ....
Я также извлек уникальный список слов из текстового файла и хочу извлечь все предложения, в которые каждое слово входит, и выписать контекст, связанный со словом. В идеале выходной файл будет иметь формат
word1 \t sentence 1\n sentence 2\n sentence N\n
word2 \t sentence 1\n sentence 2\n sentence M\n
Текущий код, который у меня есть, выглядит примерно так:
fout=open('word_context_3000_4000(4).txt','a')
for x in unique_word[3000:4000]:
fout.write('\n'+x+'\t')
fin=open('corpus2.txt')
for line in fin:
if x in line.strip().split():
fout.write(line)
else:
pass
fout.close()
Поскольку уникальный список слов большой, поэтому я обрабатываю фрагмент списка слов куском. Но каким-то образом код не смог получить контекст для всех слов и только вернул контекст для первых сотен слов в уникальном списке слов.
Раньше кто-то работал над подобной проблемой? Я использую python, кстати.
Большое спасибо.
Первая проблема, вы никогда не закрываете fin
.
Может быть, вы должны попробовать что-то вроде этого:
fout=open('word_context_3000_4000(4).txt','a')
fin=open('corpus2.txt')
for x in unique_word[3000:4000]:
fout.write('\n'+x+'\t')
fin.seek(0) # go to the begining of the file
for line in fin:
if x in line.strip().split():
fout.write(line)
else:
pass
fout.close()
fin.close()