3

新しいラボ機能「GoogleScribe」について質問しています。リンクは次のとおりです:http ://scribe.googlelabs.com/

バックエンドとフロントエンドに興味がありますが、主にバックエンドに興味があります。非常に具体的なデータセット(自分のドキュメントから派生)を使用して、似たようなものを作成したいと思います。フロントエンドはかなり単純だと思います。おそらく、既存のオートコンプリートプラグインをタスクに使用することもできます。

4

3 に答える 3

3

可能な実装の提案:

バックエンド:は語彙のサイズで、は維持したい最大のコンテキスト (単語単位) です (例: NxNxWOKかもしれません)。いくつかのサンプル データを調べてシード/初期化しますA。は、単語が次の位置に出現した回数をカウントします(文の境界を尊重します)。HashNWW=4AA[n1,n2,w]n2wn1

フロントエンド:ユーザーが入力すると、現在の文でユーザーが完全に入力しAた最後の単語に基づいて、最も可能性の高い後続の単語を評価 (およびランク付け) するためにバックエンドに依頼します。Wユーザーが入力している途中の内容 (つまり、ユーザーの「現在の」(部分) 単語) で始まる提案のみを表示します。

M必要に応じて、ユーザーが入力を完了した単語に基づいてバックエンドを更新します。オンザフライ (ユーザーが修正を実行するために戻ったときに困難)、完成したテキストが送信されるとき (最も簡単)、またはテキストを評価する定期的なジョブを介して行われます。最後のジョブ実行以降に送信されました。

于 2010-09-18T02:50:54.500 に答える
2

マルコフ連鎖を使用する必要があります。

あなたはここを見ることから始めたいと思うかもしれません。サンプル出力も興味深いものです。

于 2010-09-19T19:35:35.480 に答える
1

(I am not positive on this, please correct me if I am wrong)

The system that Google Scribe uses (or at least a very similar one) would essentially use a tree-like data structure, for storing all possible words. Some form of search algorithm which sees all possible ways you could finish your word, based on known vocabulary. (Probably base doff of older search queries stored in their database) and orders them by how commonly they occur.

For instance:

I type: 'a'

Vocab: 'at' 'apple' 'atrocious'

So: 'at' is used the most, 'apple' second most, and 'atrocious' the least.

Like I said, I'm not sure if this is the system they use, but it should have similar results.

For retrieving occurrence likelihood, you could scan the documents you're searching, or just store on a query-by-query basis to check for your past searches.

于 2010-09-19T19:21:53.830 に答える