2

Android 用のキーボードを開発しようとしていますが、Swype、SwiftKeys、および Android 組み込みキーボードで実装されているように、キーボードで単語をスワイプ (トレース) して単語の予測を実装する方法に関する背景理論/アルゴリズムを理解していません。 .

任意のドキュメントまたは例を歓迎します。

4

3 に答える 3

1

入力プロセスをより管理しやすいチャンクに分割できます。

  1. ユーザーが開始文字の上または近くに指を置きます。
  2. ユーザーが X 文字の上/近くで指をドラッグします。
  3. ユーザーが最後の文字の上/近くで指を離します。

この結果、入力しようとしている実際の単語の最も重要な指標は、順序近接度が文字の寄せ集めになります。ここでのタスクは、この並べ替えられた文字のリストを取得し、辞書で最も近い一致を見つけることです。

ここでの単純な力ずくのアプローチは、文字をドロップして単語をデータベースに照会することです。たとえば、「DSRTYUIOKNBVFRE」には、合法的に「DRY」、「I」、「DO」、「RUN」、「SUN」、「SON」、「STOVE」、「DRIVE」、「STOKE」を含めることができ、おそらく数十個または突然、数千の辞書から検索スペースを数十の単語に減らしました。

しかし、私たちはそれよりもうまくやることができます。ユーザーが正しい文字の近くで開始し、正しい文字の近くで終了した可能性が高いことがわかっているため、「DRY」、「I」、「DO」、「RUN」、「SON」などの単語は、多くのことを見逃しているため、正しい可能性は低いです。入力の開始および/または終了時の文字数。それで、私が見つけた最後の3つ、「STOVE」、「DRIVE」、「STOKE」(そしておそらくさらに12個)にリストを絞り込むことができます。

また、ユーザーの指が文字にどれだけ近づいたかに基づいて文字を重み付けしていると仮定すると、このリストをさらに絞り込んで、それらを順番にユーザーに提示できます。

ここでは、"DSRTYUIOKNBVFRE" の寄せ集めを可能な単語のリストに変換し、入力と見つかった文字列に基づいてマッチングを実行するなど、ここでトリッキーな詳細をスキップしたことは明らかです。しかし、そのようなキーボードがどのように機能するかについての概要を説明できたことを願っています (そして、それらは現在、私の説明よりもはるかに高度になっていると確信しています)。

于 2013-10-22T08:06:32.537 に答える
0

単語アルゴリズムの予測は次のようになります。
apk で独自の静的辞書を提供できます。ユーザーがインストールすると、インストールと最初の使用後に単語予測を提供することから始めることができます。
ユーザー エクスペリエンスを向上させるために、ユーザーがよく入力する単語を見つけるアルゴリズムを使用できます。
標準の英語 (us) キーボードを例として考えると、ユーザーがスワイプした文字キーの近くを確認し、それに応じて提案を表示できます。
すなわち。ユーザーが「SUN」という単語を入力(スワイプ)したい場合、文字Sからスワイプを開始し、 Uの代わりにYに進み、最後にNに進みます。だからあなたは使用することができます文字YのPROXIMITYを使用して、最も近い文字セットを検索します。示唆するT 、G、H、J、および Uです。単語STN、SGN、SJN、SHN、SUNSUNまたはTYPE - "SUN"をテキストボックスに表示できます。または、ユーザーが「SGN」または「SVN」をより頻繁に使用している場合は、「SGN」、「SUN」をユーザーに提案し、ユーザーに正しい単語を選択させることができます。
広く行きます。文を使用して単語を予測
する 同じ例の単語「SUN」の続き


SVNを入力し、入力ミス (ミススワイプ) SYNを直接SVNに修正します。
または、ユーザーが文を入力したい場合
The SUN will rise in north today
文の文脈に従って同じことを適用し (単語 rise など)、SYNミスをSUNに自動修正させます。

注:
これは、アルゴリズムの設計に関する私の考えです。同じことを実装する必要がある場合は、このようなアルゴリズムを使用します。

于 2013-10-24T15:32:15.030 に答える