私はGoogleアプリエンジンで "逆文書頻度"を実装する必要があります。私は効率を改善するための提案を探しています。今、私は後で私がGAEで "逆文書頻度"を実装するための提案ですか?
、のように、データストアからのフレーズの発生をフェッチWebページを解析するときIDFを計算するとき、私は、のように、データストアにfor(String phrase : phrase_collection){
dataStore.put(phrase, domain);
}
を各ペアを保存
、などの基本的なルーチンを取ります
for(String phrase : phrase_collection){
long count = dataStore.get(phrase).size();
}
ただし、速度は満足できるものではなく、30秒のタイムアウトが頻繁に発生します。このシナリオでは、私は追加の課題があります。
- 多言語入力(ウェブページ)。したがって、フレーズもさまざまな言語で表示されるため、キャッシュするのが難しくなります。
- ウェブページとランキングフレーズの解析にも時間がかかる。全体のプロセスはcharset_detect - > language_detect - >異なる言語による解析 - >ランキングのようなものです。
GAEでは常に有効です。
私はどんな提案もお待ちしております!前もって感謝します!
バッチ・ゲット/プットは、クエリー基準を組み立てるのは難しいが、基本的な考えです。また、私は文章P(同じ文書から)をその文書に対してリアルタイムでランク付けする必要があるため、これをオフラインで行うことはできません。私は、キャッシュとAsyncDataStoreを試していると、それは良い感じ。 – ShuaiYuan
@Shuaiあなたのご意見が分かりません。クエリの条件はバッチのgetやputには適用されません。ここでバッチ処理を行う必要があります。 –
私は1)データストアからすべてのフレーズを取り出し、memcacheに保存することは難しいことを意味しました。ストレージはすべての言語で急速に成長し続けています。 2)各文書のために、すべてではなくその中に登場するフレーズを検索しなければならない。この場合、どのようにバッチを取得できますか? – ShuaiYuan