在Python中处理字符串 - 包或硬代码?

时间:2012-07-25 21:24:19

标签: python optimization

在Python中,我在程序中执行了许多不同的字符串处理函数。用户在表单中输入术语,并通过不同的功能处理该术语。这些包括,阻止,停止删除单词,删除标点符号,拼写检查和获取同义词。

使用stemming package

进行词干分析

停止词语&使用string.replace()REGEX

删除标点符号

使用pyEnchant进行拼写检查

使用Big Huge Thesaurus API获取同义词。

该术语被发送到API。返回结果并通过硬编码排序过程。毕竟,结果输出给用户。整个过程需要10秒以上,这太长了。我想知道我是否使用了许多扩展,从而导入它们,导致长时间的延迟。

希望这不符合stackoverflow规则,但我是python的新手,这是我需要知道的事情。

2 个答案:

答案 0 :(得分:4)

  

我想知道我是否使用了很多扩展,从而导入了这些扩展,导致了长时间的延迟。

非常不可能。如果你只导入一次,然后调用循环,循环应该占用大部分时间。 (或者每个单词/句子启动一个Python进程?)

根据经验,计算机程序倾向于花费90%的时间执行10%的代码。那部分值得优化。像import语句这样的东西通常不是。要了解您的计划花费时间的位置,请使用分析器。

答案 1 :(得分:1)

每次检查所花费的时间。然后比较结果,看看实际花费的时间是多少。

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

print (end - start, "seconds")

实际上知道字符串处理的每个组件需要多长时间才会很有趣。