我编写了一个基于 TF-IDF 算法的代码,用于从非常大的文本中提取关键字。问题是我不断得到零误差除法。当我调试我的代码时,一切都运行良好。只要我使文本更短以包含导致问题的单词,它就会起作用。所以,我认为这是一个内存问题。
我想也许我可以分块(1KB)读取大文本文件,而不是一开始就读取整个文档。不幸的是,它不起作用。我应该怎么办?(我在 Windows 上使用 pycharm)
我是编程、python 和 NLP 领域的初学者。因此,如果你能在这里帮助我,我真的很感激。
if __name__ == "__main__":
with open('spli.txt') as f:
for piece in read_in_chunks(f):
#print(piece)
piece = piece.lower()
no_punc_words, all_words = text_split(piece)
no_punc_words, all_words = rm_stop_word(no_punc_words, all_words)
no_punc_words_freq, all_words_freq = calc_freq(no_punc_words, all_words)
tf_score = calc_tf_score(no_punc_words_freq)
idf_score = calc_idf_score(no_punc_words_freq, all_words_freq, piece)
tf_idf_score = {}
for k in tf_score:
tf_idf_score[k] = tf_score[k] * idf_score[k]
#print(final_score)
final_tf_idf = {}
for scores in tf_idf_score:
final_tf_idf += tf_idf_score
print(final_tf_idf)