получить контекст для слова

1

Я имею дело с чрезвычайно большим текстовым файлом (около 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, кстати.

Большое спасибо.

Теги:

1 ответ

1

Первая проблема, вы никогда не закрываете 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()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню