1

Python では、プログラム内でさまざまな文字列処理関数を実行しています。ユーザーがフォームに用語を入力すると、その用語はさまざまな機能によって処理されます。これらには、ステミング、ストップ ワードの削除、句読点の削除、スペル チェック、類義語の取得が含まれます。

ステミングはステミング パッケージを使用して行われます。

string.replace()と を使用しREGEXたスト​​ップ ワードと句読点の削除

pyEnchantを使用したスペルチェック

Big Huge Thesaurus APIを使用してシノニムを取得します。

用語は API に送信されます。結果が返され、ハードコーディングされた並べ替えプロセスが実行されます。結局、結果はユーザーに出力されます。プロセス全体に 10 秒以上かかりますが、これは長すぎます。多くの拡張機能を使用しているため、それらをインポートしているため、長い遅延が発生しているのではないかと考えています。

これがstackoverflowのルールに違反していないことを願っていますが、私はpythonが初めてで、これは私が知る必要がある種類のものです.

4

2 に答える 2

4

多くの拡張機能を使用しているため、それらをインポートしているため、長い遅延が発生しているのではないかと考えています。

非常にありそうもない。一度だけインポートしてからループを呼び出すと、ループにほとんどの時間がかかります。(または、単語/文ごとに Python プロセスを起動していますか?)

経験則として、コンピュータ プログラムはコードの 10% を実行するために 90% の時間を費やす傾向があります。その部分は最適化する価値があります。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 に答える