首页 > 解决方案 > 在计算关键字提取的 TF-IDF 算法时除以零

问题描述

我编写了一个基于 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)

标签: pythonnlptf-idfkeyword-extraction

解决方案


推荐阅读