我在使用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謝謝,我已經知道哪個是最耗時的部分 –