得到一个单词的上下文

时间:2011-06-23 16:32:31

标签: python

我正在处理一个非常大的文本文件(约3.77 GB),并尝试提取特定单词出现的所有句子并写出文本文件。

所以大文本文件只有很多行:

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 个答案:

答案 0 :(得分: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()