我在使用Python的Web应用程序中实现tf-idf算法,但运行速度非常慢。我基本上做的是:Python和tfidf算法,让它更快?
1)创建2点字典:
- 第一部字典:关键(文档ID),值的所有找到的单词(包括重复(名单)在DOC)
- 二字典;键(文档ID),值(设置包含文档的唯一字)
现在,有一个用户获得文档d的tfidf结果的请愿书。我要做的就是:
2)循环在第二字典文件d唯一字,并为每个独特的单词w得到:
2.1)TF得分(多少次出现W在d:循环遍历文档的第一个字典的单词列表)
2.2)df分数(多少个文档包含w:遍历所有文档的单词集合(第二个字典)并检查是否包含w) 。我正在使用一个集合,因为它似乎更快地检查一个集合是否包含与列表相比较的单词。
步骤2.2非常缓慢。例如,具有1000个文档,并且对于具有2313个独特单词的文档,输出结果大约需要5分钟。
有没有其他方法可以让步骤2.2更快?字典的迭代速度很慢吗?
你应该对它进行配置以确保在哪里花费时间。然后将这部分代码作为一个小型自包含工作示例发布。 –
我们不是心灵的;除非您发布了代码,否则我们无法告诉您代码有什么问题。 –
@ Tom谢谢,我已经知道哪个是最耗时的部分 –