HTML からテキストを抽出し、文や単語などの言語単位を抽出するブラウザー ベース (Javascript および jQuery) の言語分析ツールを作成しています。
テキストをインポートするために、PHP バックエンドは特定の URL をスパイダーし、結果の HTML をサニタイズします。次に、その HTML がインターフェイスの a に挿入されdiv#container
ます。次のようになります。
ソース HTML ページが非常に長い場合、いくつかの問題に遭遇しました。このようなページを読み込んでインターフェイスに挿入しても、DOM
問題は発生しないようです (時間がかかりますが)。
しかし、スパイダーされたコンテンツに対して単語頻度アルゴリズムを実行すると、ページが長い場合、非常に遅くなります。たとえば、ページが 100K ワードに近づくと、物事はほとんど停止します。
したがって、いくつかのオプションがあります。
- ソース ドキュメントを切り捨てるか、複数のドキュメントに分割するように PHP スパイダーを変更します。
- 単語頻度アルゴリズムを変更して正確性を低くし、単語分布を完全に記録するのではなくサンプリングします
- この新しい Web Worker を試して、計算を複数のバックグラウンド プロセスに分散できるかどうかを確認してください。
(3) は、Web Workers が実行するように設計された言葉にすぎないように思えます。スパイダーされたコンテンツをチャンクに分割し、各チャンクに 1 つの Web ワーカーを割り当てることを想像しています。各チャンクの単語頻度プロファイルは、Web ワーカーから返され、合計されてグラフに表示されます。
これを試す前に、以前に Web Workers で働いたことがあるかもしれない他の人々から健全性チェックを受けられることを願っていました。div#container
1 つには、 のコンテンツを効率的に分割することが問題になるかどうか疑問に思っていdiv#container
ます。.