1

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

词干是使用词干包完成的,

string.replace()使用and删除停用词和标点符号REGEX

使用pyEnchant进行拼写检查

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

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

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

4

2 回答 2

4

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

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

根据经验,计算机程序倾向于将 90% 的时间用于执行 10% 的代码。那部分值得优化。诸如 import 语句之类的东西通常不是。要找出您的程序在哪里花费时间,请使用分析器。

于 2012-07-25T21:27:47.720 回答
1

计算每项检查所需的时间。然后比较结果以查看实际花费最多的时间。

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

print (end - start, "seconds")

真正知道字符串处理的每个组件需要多长时间会很有趣。

于 2012-07-25T21:37:49.753 回答