2012-07-25 98 views
1

在Python中,我正在程序中執行許多不同的字符串處理函數。用戶在表單中輸入一個術語,並通過不同的功能處理該術語。這些措施包括阻止詞語移除,標點移除,拼寫檢查和獲取同義詞。在Python中處理字符串 - 包或硬代碼?

詞幹提取是使用使用string.replace()REGEXstemming package

停止字&標點符號拆除完成後,使用使用Big Huge Thesaurus APIpyEnchant

越來越同義詞

拼寫檢查。

術語被髮送到API。結果被返回並通過硬編碼的排序過程。畢竟結果輸出給用戶。整個過程需要10秒以上,這太長了。我想知道是否我使用了很多擴展的事實,從而導入它們,導致長時間的延遲。

希望這不是對計算器的規則,但我是新來的蟒蛇,這是什麼樣的,我需要知道的事情。

回答

4

我在想,如果我使用很多擴展的事實,從而導入它們,導致長時間的延遲。

不太可能。如果你只導入一次,然後調用一個循環,循環應該佔用大部分時間。 (或者,發射了每個單詞/句子一個Python程序?)

作爲一個經驗法則,計算機程序往往要花費90%的時間執行代碼的10%。這部分值得優化。像導入語句通常不是。要找出您的程序在哪裏花費時間,請使用分析器。

+0

輝煌我不知道那些配置文件。我認爲它的最慢的一面是對巨大詞庫的呼籲,但如果這是整體問題,那將會非常驚訝。在我的程序中,用戶只輸入一個單詞/短語並進行處理。我認爲我的代碼雖然結構可能不夠完善 – adohertyd 2012-07-25 21:31:50

1

時間每個獨立的檢查需要多長時間。然後比較結果,看看實際上花了多少時間。

import time 
start = time.time() 
#after the individual piece has completed 
end = time.time() 

print (end - start, "seconds") 

實際知道字符串處理的每個組件需要花費多長時間會很有趣。