(57)【要約】【課題】  仮想キーボードで誤タイピングを補正するための方法、システム、コンピュータプログラムを提供する。【解決手段】  コンピュータシステムが実行する方法は、仮想キーボードの各キーのキータッチによるタイピングポイント座標を収集する段階、前記各キーの前記タイピングポイント座標を利用してタイピングポイント分布を分析することにより、個別化されたタイピングポイント領域を決定する段階、および前記仮想キーボードにタッチが認識された場合、前記各キーの個別化されたタイピングポイント領域に基づいて、前記の認識されたタッチによる入力キーを予測する段階を含む。【選択図】      図３
2020013577.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムが実行する方法であって、
前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、
前記方法は、
前記少なくとも１つのプロセッサが、仮想キーボードの各キーのキータッチによるタイピングポイント座標を収集する段階、
前記少なくとも１つのプロセッサが、前記各キーの前記タイピングポイント座標を利用してタイピングポイント分布を分析することにより、個別化されたタイピングポイント領域を決定する段階、および
前記少なくとも１つのプロセッサが、前記仮想キーボードでタッチが認識された場合、前記各キーの個別化されたタイピングポイント領域に基づいて、前記の認識されたタッチによる入力キーを予測する段階
を含む、方法。
【請求項２】
前記収集する段階は、
前記仮想キーボードに順に発生したキータッチによるキーリストと、前記キーリストに含まれる各キーのキータッチによるタイピングポイント座標と、を収集する段階
を含む、請求項１に記載の方法。
【請求項３】
前記収集する段階は、
前記仮想キーボードに順に発生したキータッチによるキーリストを収集する段階、
前記キーリストを利用して誤タイピングと前記誤タイピングに対応する正タイピングとを判別する段階、および
前記誤タイピングと前記正タイピングとに該当する各キーのタイピングポイント座標を収集する段階
を含む、請求項１に記載の方法。
【請求項４】
前記判別する段階は、
前記キーリストに含まれる削除キーを基準に、前記削除キーより前に記録された前キーリストと前記削除キーより後に記録された後キーリストとを構成する段階、および
前記前キーリストと前記後キーリストとの間で互いに対応する位置の２つのキーが異なる場合、前記２つのキーのうちの前キーを誤タイピングとして分類する段階
を含む、請求項３に記載の方法。
【請求項５】
前記判別する段階は、
前記キーリストに含まれる削除キーを基準に、前記削除キーの個数分だけ前記削除キーより前に記録された前キーリストと前記削除キーの個数分だけ前記削除キーより後に記録された後キーリストとを構成する段階、および
前記前キーリストと前記後キーリストとの間で互いに対応する位置の２つのキーが、異なるとともに、前記仮想キーボード上で隣接する位置に配置されたキーである場合、前記２つのキーのうちの前キーを誤タイピングとして分類する段階
を含む、請求項３に記載の方法。
【請求項６】
前記決定する段階は、
前記各キーの前記タイピングポイント分布に基づいて、該当のキーに対するタッチタイピングポイントの形態と近似する楕円式を見つけ出して前記個別化されたタイピングポイント領域を決定する段階
を含む、請求項１に記載の方法。
【請求項７】
前記決定する段階は、
前記キーに対して収集されたタッチ座標を平均化することにより、タイピングポイント中心を計算する段階、
前記タイピングポイント中心を原点とする座標平面において各四分面に含まれるタイピングポイント座標の個数であるタイピングポイント個数を計算する段階、
前記タイピングポイント中心から、タイピングポイント個数が最も多い四分面のタイピングポイント標準偏差座標までの距離を長軸半径として決定する段階、
前記タイピングポイント中心から、タイピングポイント個数が最も多い四分面と隣接する四分面のうち、タイピングポイント個数が多い四分面のタイピングポイント標準偏差座標までの距離を短軸半径として決定する段階、
タイピングポイント個数が最も多い四分面の勾配角度である長軸勾配を計算する段階、および
前記タイピングポイント中心、前記長軸半径、前記短軸半径、および前記長軸勾配によって生成される楕円領域を、該当のキーの個別化されたタイピングポイント領域として決定する段階
を含む、請求項１に記載の方法。
【請求項８】
前記予測する段階は、
前記の認識されたタッチと対応するキー情報、タッチ情報、および前記個別化されたタイピングポイント領域をフィーチャとする機械学習に基づいて、前記入力キーを予測する段階
を含む、請求項１に記載の方法。
【請求項９】
前記予測する段階は、
前記の認識されたタッチと対応するキー情報、タッチ情報、および前記個別化されたタイピングポイント領域を入力ベクトルとして構成した機械学習モデルに基づいて、前記各キーが前記の認識されたタッチと対応するキーである確率を算出する段階、および
前記各キーの確率に基づいて、前記の認識されたタッチに対して前記仮想キーボードの実際の入力キー値を返還する段階
を含む、請求項１に記載の方法。
【請求項１０】
請求項１〜９のうちのいずれか一項に記載の方法をコンピュータシステムに実行させるコンピュータプログラム。
【請求項１１】
コンピュータシステムであって、
メモリ、および
前記メモリに通信可能に接続し、前記メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
仮想キーボードの各キーのキータッチによるタイピングポイント座標を収集するデータ収集部、
前記各キーの前記タイピングポイント座標を利用してタイピングポイント分布を分析することにより、個別化されたタイピングポイント領域を決定するタイピングポイント領域決定部、および
前記仮想キーボードにタッチが認識された場合、前記各キーの個別化されたタイピングポイント領域に基づいて、前記の認識されたタッチによる入力キーを予測するキー予測部
を備える、コンピュータシステム。
【請求項１２】
前記データ収集部は、
前記仮想キーボードに順に発生したキータッチによるキーリストを利用して誤タイピングと前記誤タイピングに対応する正タイピングとを判別した後、前記誤タイピングと前記正タイピングとに該当する各キーのタイピングポイント座標を収集する、
請求項１１に記載のコンピュータシステム。
【請求項１３】
前記データ収集部は、
前記キーリストに含まれる削除キーを基準に、前記削除キーより前に記録された前キーリストと前記削除キーより後に記録された後キーリストとを構成し、
前記前キーリストと前記後キーリストとの間で互いに対応する位置の２つのキーが異なる場合、前記２つのキーのうちの前キーを誤タイピングとして分類する、
請求項１２に記載のコンピュータシステム。
【請求項１４】
前記タイピングポイント領域決定部は、
前記各キーの前記タイピングポイント分布に基づいて、該当のキーに対するタッチタイピングポイントの形態と近似する楕円式を見つけ出して前記個別化されたタイピングポイント領域を決定する、
請求項１１に記載のコンピュータシステム。
【請求項１５】
前記タイピングポイント領域決定部は、
前記キーに対して収集されたタッチ座標を平均化することにより、タイピングポイント中心を計算し、
前記タイピングポイント中心を原点とする座標平面において各四分面に含まれるタイピングポイント座標の個数であるタイピングポイント個数を計算し、
前記タイピングポイント中心から、タイピングポイント個数が最も多い四分面のタイピングポイント標準偏差座標までの距離を長軸半径として決定し、
前記タイピングポイント中心から、タイピングポイント個数が最も多い四分面と隣接する四分面のうち、タイピングポイント個数が多い四分面のタイピングポイント標準偏差座標までの距離を短軸半径として決定し、
タイピングポイント個数が最も多い四分面の勾配角度である長軸勾配を計算し、
前記タイピングポイント中心、前記長軸半径、前記短軸半径、および前記長軸勾配によって生成される楕円領域を、該当のキーの個別化されたタイピングポイント領域として決定する、
請求項１１に記載のコンピュータシステム。
【請求項１６】
前記キー予測部は、
前記の認識されたタッチと対応するキー情報、タッチ情報、および前記個別化されたタイピングポイント領域をフィーチャとする機械学習に基づいて、前記入力キーを予測する、
請求項１１に記載のコンピュータシステム。
【請求項１７】
前記キー予測部は、
前記の認識されたタッチと対応するキー情報、タッチ情報、および前記個別化されたタイピングポイント領域を入力ベクトルとして構成した機械学習モデルに基づいて、前記各キーが前記の認識されたタッチと対応するキーである確率を算出し、
前記各キーの確率に基づいて、前記の認識されたタッチに対して前記仮想キーボードの実際の入力キー値を返還する、
請求項１１に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、仮想キーボードの誤タイピングを補正する技術に関し、より詳細には、正タイピングと誤タイピングとを判別するアルゴリズムおよび各キーのタイピングポイント領域をモデリングするアルゴリズムを機械学習と融合させることで仮想キーボードの誤タイピングを補正する技術を提供する。
【背景技術】
【０００２】
技術発達に伴って急速に発展している携帯端末には、ユーザが多様な命令または情報を入力することができるよう、タッチパネル上に仮想キーボードが提供されている。
【０００３】
携帯端末に仮想キーボードを適用することにより、従来のハードウェアキーパッドの必要がなくなった。これにより、携帯端末のディスプレイ装置のサイズダウンはもちろん、外観の美しさも追及できるようになった。
【０００４】
仮想キーボードは、携帯端末の入力手段としてタッチパネルで表示され、ユーザからタッチ入力を受信する。
【０００５】
例えば、特許文献１（公開日２０１４年４月１６日）には、仮想キーボード上のキー入力を認識する技術が開示されている。
【０００６】
ところが、携帯端末の画面サイズには制限があることから、仮想キーボードのボタンを大きくすることができず、触覚的フィードバックもなく、入力のときに指で画面が隠れてしまうなど、その使用性に多くの限界を抱えている。このような限界により、ハードウェアキーパッドよりも多くの誤タイピングが発生するようになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】韓国公開特許第１０−２０１４−００４５４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
正タイピングと誤タイピングとを判別するアルゴリズムおよび各キーのタイピングポイント領域をモデリングするアルゴリズムを機械学習と融合させることで仮想キーボードの誤タイピングを補正する技術を提供する。
【課題を解決するための手段】
【０００９】
コンピュータシステムが実行する方法であって、前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、前記方法は、前記少なくとも１つのプロセッサが、仮想キーボードの各キーのキータッチによるタイピングポイント座標を収集する段階、前記少なくとも１つのプロセッサが、前記各キーの前記タイピングポイント座標を利用してタイピングポイント分布を分析することにより、個別化されたタイピングポイント領域を決定する段階、および前記少なくとも１つのプロセッサが、前記仮想キーボードでタッチが認識された場合、前記各キーの個別化されたタイピングポイント領域に基づいて、前記の認識されたタッチによる入力キーを予測する段階を含む、方法を提供する。
【００１０】
一側面によると、前記収集する段階は、前記仮想キーボードに順に発生したキータッチによるキーリストと、前記キーリストに含まれる各キーのキータッチによるタイピングポイント座標と、を収集する段階を含んでよい。
【００１１】
他の側面によると、前記収集する段階は、前記仮想キーボードに順に発生したキータッチによるキーリストを収集する段階、前記キーリストを利用して誤タイピングと前記誤タイピングに対応する正タイピングとを判別する段階、および前記誤タイピングと前記正タイピングとに該当する各キーのタイピングポイント座標を収集する段階を含んでよい。
【００１２】
また他の側面によると、前記判別する段階は、前記キーリストに含まれる削除キーを基準に、前記削除キーより前に記録された前キーリストと前記削除キーより後に記録された後キーリストとを構成する段階、および前記前キーリストと前記後キーリストとの間で互いに対応する位置の２つのキーが異なる場合、前記２つのキーのうちの前キーを誤タイピングとして分類する段階を含んでよい。
【００１３】
また他の側面によると、前記判別する段階は、前記キーリストに含まれる削除キーを基準に、前記削除キーの個数分だけ前記削除キーより前に記録された前キーリストと前記削除キーの個数分だけ前記削除キーより後に記録された後キーリストとを構成する段階、および前記前キーリストと前記後キーリストとの間で互いに対応する位置の２つのキーが、異なるとともに、前記仮想キーボード上で隣接する位置に配置されたキーである場合、前記２つのキーのうちの前キーを誤タイピングとして分類する段階を含んでよい。
【００１４】
また他の側面によると、前記決定する段階は、前記各キーの前記タイピングポイント分布に基づいて、該当のキーに対するタッチタイピングポイントの形態と近似する楕円式を見つけ出して前記個別化されたタイピングポイント領域を決定する段階を含んでよい。
【００１５】
また他の側面によると、前記決定する段階は、前記キーに対して収集されたタッチ座標を平均化することにより、タイピングポイント中心を計算する段階、前記タイピングポイント中心を原点とする座標平面において各四分面に含まれるタイピングポイント座標の個数であるタイピングポイント個数を計算する段階、前記タイピングポイント中心から、タイピングポイント個数が最も多い四分面のタイピングポイント標準偏差座標までの距離を長軸半径として決定する段階、前記タイピングポイント中心から、タイピングポイント個数が最も多い四分面と隣接する四分面のうち、タイピングポイント個数が多い四分面のタイピングポイント標準偏差座標までの距離を短軸半径として決定する段階、タイピングポイント個数が最も多い四分面の勾配角度である長軸勾配を計算する段階、および前記タイピングポイント中心、前記長軸半径、前記短軸半径、および前記長軸勾配によって生成される楕円領域を、該当のキーの個別化されたタイピングポイント領域として決定する段階を含んでよい。
【００１６】
また他の側面によると、前記予測する段階は、前記の認識されたタッチと対応するキー情報、タッチ情報、および前記個別化されたタイピングポイント領域をフィーチャ（ｆｅａｔｕｒｅ）とする機械学習に基づいて、前記入力キーを予測する段階を含んでよい。
【００１７】
さらに他の側面によると、前記予測する段階は、前記の認識されたタッチと対応するキー情報、タッチ情報、および前記個別化されたタイピングポイント領域を入力ベクトルとして構成した機械学習モデルに基づいて、前記各キーが前記の認識されたタッチと対応するキーである確率を算出する段階、および前記各キーの確率に基づいて、前記の認識されたタッチに対して前記仮想キーボードの実際の入力キー値を返還する段階を含んでよい。
【００１８】
前記方法をコンピュータシステムに実行させるコンピュータプログラムが提供される。
【００１９】
コンピュータシステムであって、メモリ、および前記メモリに通信可能に接続され、前記メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、仮想キーボードの各キーのキータッチによるタイピングポイント座標を収集するデータ収集部、前記各キーの前記タイピングポイント座標を利用してタイピングポイント分布を分析することにより、個別化されたタイピングポイント領域を決定するタイピングポイント領域決定部、および前記仮想キーボードでタッチが認識された場合、前記各キーの個別化されたタイピングポイント領域に基づいて、前記の認識されたタッチによる入力キーを予測するキー予測部を備える、コンピュータシステムを提供する。
【発明の効果】
【００２０】
本発明の実施形態によると、正タイピングと誤タイピングとを判別するアルゴリズムおよび各キーのタイピングポイント領域をモデリングするアルゴリズムを機械学習と融合させることで、仮想キーボードの誤タイピングを補正することができる。
【００２１】
本発明の実施形態によると、仮想キーボードの各キーに対するタッチタイピングポイント分布を分析してユーザに個別化された各キーのタイピングポイント領域を見つけ出すことにより、効果的な誤タイピング補正をサポートすることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態における、コンピュータシステムの内部構成の一例を説明するためのブロック図である。
【図２】本発明の一実施形態における、コンピュータシステムのプロセッサが含むことのできる構成要素の例を示した図である。
【図３】本発明の一実施形態における、コンピュータシステムが実行することのできる誤タイピング補正方法の例を示したフローチャートである。
【図４】本発明の一実施形態における、正タイピングと誤タイピングとを判別する過程を説明するためのフローチャートである。
【図５】本発明の一実施形態における、正タイピングと誤タイピングとを判別する過程を説明するための例示図である。
【図６】本発明の一実施形態における、正タイピングと誤タイピングとを判別する過程を説明するための例示図である。
【図７】本発明の一実施形態における、正タイピングと誤タイピングとを判別する過程を説明するための例示図である。
【図８】本発明の一実施形態における、仮想キーボードの各キーのタッチタイピングポイント分布を示した図である。
【図９】本発明の一実施形態における、仮想キーボードの各キーのタイピングポイント領域をモデリングする過程を示したフローチャートである。
【図１０】本発明の一実施形態における、各キーのタッチタイピングポイントの形態を近似させる楕円式を見つけ出す過程を説明するための例示図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【００２４】
本発明の実施形態は、仮想キーボードの誤タイピングを補正する技術に関する。
【００２５】
本明細書において具体的に開示される事項などを含む実施形態は、誤タイピング分析アルゴリズムおよびタイピングポイント分析アルゴリズムを機械学習と融合させて仮想キーボードの誤タイピングを補正することができ、これによって正確性、効率性、個別化、コスト節減などの側面において相当な長所を達成することができる。
【００２６】
図１は、本発明の一実施形態における、コンピュータシステムの内部構成の一例を説明するためのブロック図である。例えば、本発明の実施形態に係る誤タイピング補正システムは、図１のコンピュータシステム１００によって実現されてよい。図１に示すように、コンピュータシステム１００は、誤タイピング補正方法を実行するための構成要素として、プロセッサ１１０、メモリ１２０、永続的記録装置１３０、バス１４０、入力／出力インタフェース１５０、およびネットワークインタフェース１６０を含んでよい。
【００２７】
プロセッサ１１０は、仮想キーボードの誤タイピングを補正するための構成要素であって、命令語のシーケンスを処理することのできる任意の装置を含むか、あるいはその一部であってよい。プロセッサ１１０は、例えば、コンピュータプロセッサ、移動装置または他の電子装置内のプロセッサ、および／またはデジタルプロセッサを含んでよい。プロセッサ１１０は、例えば、サーバコンピュータデバイス、サーバコンピュータ、一連の複数のサーバコンピュータ、サーバファーム、クラウドコンピュータ、コンテンツプラットフォームなどに含まれてよい。プロセッサ１１０は、バス１４０を介してメモリ１２０と接続してよい。
【００２８】
メモリ１２０は、コンピュータシステム１００によって使用されるか、あるいはこれから出力される情報を記録するための揮発性メモリ、永続的メモリ、仮想メモリ、または他のメモリを含んでよい。メモリ１２０は、例えば、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）および／またはＤＲＡＭ（ｄｙｎａｍｉｃ  ＲＡＭ）を含んでよい。メモリ１２０は、コンピュータシステム１００の状態情報のような任意の情報を記録するために使用されてよい。メモリ１２０は、例えば、仮想キーボードと関連する命令語を含むコンピュータシステム１００の命令語を記録することに使用されてもよい。コンピュータシステム１００は、必要な場合や適切な場合には、１つ以上のプロセッサ１１０を含んでよい。
【００２９】
バス１４０は、コンピュータシステム１００の複数のコンポーネントが相互作用できるようにする通信基盤構造を含んでよい。バス１４０は、例えばコンピュータシステム１００のコンポーネント間で、例えばプロセッサ１１０とメモリ１２０との間で、データを運んでよい。バス１４０は、コンピュータシステム１００のコンポーネント間の無線通信媒体および／または有線通信媒体を含んでよく、並列、直列、または他のトポロジ配列を含んでよい。
【００３０】
永続的記録装置１３０は、（例えば、メモリ１２０に比べて）所定の延長された期間内にデータを記録するためにコンピュータシステム１００によって使用されるようなメモリ、または他の永続的記録装置のようなコンポーネントを含んでよい。永続的記録装置１３０は、コンピュータシステム１００内のプロセッサ１１０によって使用されるような不揮発性メモリを含んでよい。永続的記録装置１３０は、例えば、フラッシュメモリ、ハードディスク、光ディスク、または他のコンピュータ読み取り可能な媒体を含んでよい。
【００３１】
入力／出力インタフェース１５０は、キーボード、マウス、音声命令入力、ディスプレイ、または他の入力装置もしくは出力装置に対するインタフェースを含んでよい。構成命令および／または仮想キーボードと関連する入力が、入力／出力インタフェース１５０を経て受信されてよい。
【００３２】
ネットワークインタフェース１６０は、近距離ネットワークまたはインターネットのようなネットワークに対する１つ以上のインタフェースを含んでよい。ネットワークインタフェース１６０は、有線接続または無線接続に対するインタフェースを含んでよい。構成命令および／または仮想キーボードと関連する入力が、ネットワークインタフェース１６０を経て受信されてよい。
【００３３】
また、他の実施形態において、コンピュータシステム１００は、図１の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータシステム１１０は、上述した入力／出力インタフェース１５０と接続する入力／出力装置のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。
【００３４】
以下、誤タイピング分析アルゴリズムおよびタイピングポイント分析アルゴリズムを機械学習と融合させて仮想キーボードの誤タイピングを補正する技術を提供する。
【００３５】
図２は、本発明の一実施形態における、コンピュータシステムのプロセッサが含むことのできる構成要素の例を示した図であり、図３は、本発明の一実施形態における、コンピュータシステムが実行することのできる誤タイピング補正方法の例を示したフローチャートである。
【００３６】
図２に示すように、プロセッサ１１０は、コンピュータシステム１００のディスプレイに仮想キーボードを表示してよく、仮想キーボードの誤タイピングを補正するための構成要素として、データ収集部２１０、タイピングポイント領域決定部２２０、およびキー予測部２３０を備えてよい。このようなプロセッサ１１０の構成要素は、少なくとも１つのプログラムコードによって提供される制御命令にしたがってプロセッサ１１０によって実行される、互いに異なる機能の表現であってよい。例えば、プロセッサ１１０が、タッチによるタイピングポイントデータを収集するようにコンピュータシステム１００を制御するために動作する機能的表現としてデータ収集部２１０が使用されてよい。プロセッサ１１０およびプロセッサ１１０の構成要素は、図３の誤タイピング補正方法が含む段階３１０〜３４０を実行してよい。例えば、プロセッサ１１０およびプロセッサ１１０の構成要素は、メモリ１２０が含むオペレーティングシステムのコードと上述した少なくとも１つのプログラムコードとによる命令を実行するように実現されてよい。ここで、少なくとも１つのプログラムコードは、誤タイピング補正方法を処理するように実現されたプログラムのコードに対応してよい。
【００３７】
誤タイピング補正方法は、図に示した順序どおりに発生ないこともあるし、段階の一部が省略あるいは追加される過程がさらに含まれることもある。
【００３８】
段階３１０において、プロセッサ１１０は、誤タイピング補正方法のためのプログラムファイルに記録されたプログラムコードをメモリ１２０にロードしてよい。例えば、誤タイピング補正方法のためのプログラムファイルは、図１を参照しながら説明した永続的記録装置１３０に記録されていてよく、プロセッサ１１０は、バスを介して永続的記録装置１３０に記録されたプログラムファイルからプログラムコードがメモリ１２０にロードされるようにコンピュータシステム１１０を制御してよい。このとき、プロセッサ１１０およびプロセッサ１１０が含むデータ収集部２１０、タイピングポイント領域決定部２２０、およびキー予測部２３０それぞれは、メモリ１２０にロードされたプログラムコードのうちの対応する部分の命令を実行して以後の段階３２０〜３４０を実行するためのプロセッサ１１０の互いに異なる機能的表現であってよい。段階３２０〜３４０の実行のために、プロセッサ１１０およびプロセッサ１１０の構成要素は、制御命令による演算を直接処理してもよいし、コンピュータシステム１００を制御してもよい。
【００３９】
段階３２０において、データ収集部２１０は、仮想キーボードに順に入力されたキーリストを利用し、該当のタッチによるタイピングポイントデータとしてタッチ座標（以下、「タイピングポイント座標」と称する）を収集してよい。本発明では、仮想キーボードのキーごとにユーザに個別化されたタイピングポイント分布を分析してよく、このためには、ユーザが各キーをタッチしたタイピングポイント座標が一定数以上必要となる。データ収集部２１０は、順に発生したキータッチによるキーリストとともに、キーリストに含まれる各キーのキータッチによるタイピングポイント座標を収集してよい。特に、データ収集部２１０は、誤タイピング分析アルゴリズムを基盤に、キーリストで誤タイピングと誤タイピングに対応する正タイピングとを判別してよい。入力されたキーが誤タイピングと判断された場合、該当の入力座標に対するキーは、誤タイピングに対応する正タイピングにマッピングさせて利用してよい。このように、各キーのタイピングポイント座標は、今後にタイピングポイント分布を分析する過程で利用可能なデータとして収集してよい。
【００４０】
段階３３０において、タイピングポイント領域決定部２２０は、仮想キーボードの各キーのタイピングポイント座標を利用して該当のキーに対するタイピングポイント分布を分析することにより、該当のキーのタイピングポイント領域を決定してよい。言い換えれば、タイピングポイント領域決定部２２０は、仮想キーボードの各キーに正タイピングとして入力されたタイピングポイント座標はもちろん、誤タイピングとして入力された場合にも、誤タイピングのタイピングポイント座標を該当の誤タイピングと対応する正タイピングキーに対するタイピングポイントにマッピングさせて該当のキーのタイピングポイント分布を分析してよい。ユーザごとに異なる方法によってタイピングするし、各キーのタッチタイピングポイントも異なるため、ユーザのキータッチによるタイピングポイント座標に基づいてタッチタイピングポイント分布を分析するようになり、このようなタッチタイピングポイント分布に基づいて、タッチタイピングポイントの形態と近似する楕円領域を見つけ出し、これをユーザに個別化されたキータイピングポイント領域として決定してよい。指によるタッチタイピングポイント分布のほとんどは楕円形態に近いという仮定のもと、タイピングポイント領域決定部２２０は、仮想キーボードのキーごとにユーザ個人のタイピングポイント座標を利用して楕円形態のタイピングポイント領域を見つけ出してよい。
【００４１】
段階３４０において、キー予測部２３０は、仮想キーボードでタッチが認識された場合、タッチに対応するキー情報、タッチ情報、および各キーのタイピングポイント領域を利用した機械学習モデルに基づいて、認識されたタッチによる入力キーを予測してよい。このとき、キー情報には、タッチされたキーのコード値、タッチされたキーの面積（高さおよび幅）などが含まれてよく、タッチ情報には、タッチ座標（ｘ，ｙ）、タッチされた時点のコンピュータシステム１００の勾配、以前のタッチとの時間間隔、タッチ面積、タッチ持続時間などが含まれてよい。勾配とは、コンピュータシステム１００に含まれるオシロスコープやジャイロセンサなどから取得した勾配値（ｘ，ｙ，ｚ）を意味してよい。
【００４２】
本発明では、ＤＮＮ（ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）に基づく機械学習モデルを構築してよく、このとき、キー情報、タッチ情報、およびタイピングポイント領域をフィーチャとする機械学習によって入力キーを予測してよい。機械学習モデルとは、事前に確保した学習データを活用しながら予め学習させたモデルであり、キー予測部２３０は、現在タッチがなされたキーに関するキー情報、タッチ情報、およびタイピングポイント領域を入力ベクトルとして構成した機械学習モデルに基づいて、仮想キーボードのそれぞれのキーが認識されたタッチと対応するキーである確率を算出してよく、算出された確率が最も高いキーを該当のタッチと対応する入力キーとして認識することにより、該当のキーを仮想キーボードの実際の入力キー値に返還してよい。一方、キー予測部２３０は、現在タッチがなされたキーに対して最も高い確率値が閾値未満である場合には、予測された値は正確でないと判断し、機械学習モデルが予測した入力キーを返還せず、入力された座標を基準として実際の入力キー値を返還してよい。あるいは、このような場合には、誤タイピングとして処理して誤タイピング通知を出力するか、あるいは他のキー入力を勧めることも可能である。
【００４３】
図４は、本発明の一実施形態における、正タイピングと誤タイピングとを判別する過程を説明するためのフローチャートである。
【００４４】
図４を参照すると、プロセッサ１１０は、仮想キーボードに順に入力されたキーリストを記録してよい（Ｓ４０１）。
【００４５】
仮想キーボードに含まれる各キーには、固有のコード値が定められており、キーリストには、タッチによって入力されたキーのコード値が順に記録されてよい。例えば、文字が入力される場合、字素単位のキーが入力されるため、順に入力される各字素のキーコードが記録されてよい。
【００４６】
プロセッサ１１０は、一定の時間を周期としてキーリストを収集してもよいし、あるいは文または段落単位でキーリストを収集してもよい。
【００４７】
プロセッサ１１０は、段階４０１において記録されたキーリストに削除キーが含まれているかを判断する（Ｓ４０２）。
【００４８】
プロセッサ１１０は、段階４０２の判断の結果、キーリストに削除キーが含まれている場合には、削除キーが２回以上連続して記録されているかを判断する（Ｓ４０３）。
【００４９】
プロセッサ１１０は、段階４０３の判断の結果、削除キーが連続して記録されておらず１回だけ記録されている場合には、削除キーを基準に、削除キー直前に記録されたキー（前キー）と削除キー直後に記録されたキー（後キー）を誤タイピング候補として分類する（Ｓ４０４）。
【００５０】
プロセッサ１１０は、段階４０３の判断の結果、削除キーが２回以上連続して記録されている場合、削除キーを基準に、連続する削除キーの個数分だけ削除キーより前に記録されたキーリスト（前キーリスト）と連続する削除キーの個数分だけ削除キーより後に記録されたキーリスト（後キーリスト）とを構成する（Ｓ４０５）。
【００５１】
プロセッサ１１０は、前キーリストと後キーリストとの間で共通するキーの集合である積集合が存在するかを判断する（Ｓ４０６）。
【００５２】
プロセッサ１１０は、段階４０６の判断の結果、前キーリストと後キーリストとの間に積集合が存在する場合には、積集合に該当するキーを取り除き、積集合の前後で互いに対応する位置のキーペアを誤タイピング候補として分類する（Ｓ４０７）。
【００５３】
プロセッサ１１０は、段階４０６の判断の結果、前キーリストと後キーリストとの間に積集合が存在しない場合には、前キーリストと後キーリストとの互いに対応する位置のキーペアを誤タイピング候補として分類する（Ｓ４０８）。積集合が存在しない場合には、削除キーの個数分だけ削除キーより前に記録されたキーリストのうち最初に記録されたキー（前キー）と削除キー直後に記録されたキー（後キー）とを誤タイピング候補として分類する。
【００５４】
プロセッサ１１０は、段階４０４、４０７、４０８において誤タイピング候補として分類された互いに対応する位置のキーペアが互いに異なるキーであるかを判断する（Ｓ４０９）。
【００５５】
プロセッサ１１０は、段階４０９の判断の結果、各誤タイピング候補の２つのキーが同じである場合には、２つのキーを正タイピングとして分類する。
【００５６】
プロセッサ１１０は、段階４０９の判断の結果、各誤タイピング候補の２つのキーが異なる場合には、該当の２つのキーが仮想キーボード上で互いに隣接する位置に配置されたキーであるかを判断する（Ｓ４１０）。
【００５７】
プロセッサ１１０は、段階４１０の判断の結果、各誤タイピング候補の２つのキーが隣接しない場合には、２つのキーを正タイピングとして分類する。
【００５８】
プロセッサ１１０は、段階４１０の判断の結果、各誤タイピング候補の２つのキーが隣接する場合には、２つのキーのうちの前キーを誤タイピングとして分類する（Ｓ４１１）。このとき、プロセッサ１１０は、誤タイピング候補の２つのキーのうちの前キーが誤タイピングとして分類された場合には、後キーを、該当の誤タイピングに対応する正タイピングとして分類する。
【００５９】
したがって、プロセッサ１１０は、仮想キーボード上で隣接するキーの干渉によって他のキーを誤って押し、これに気付いて修正した場合、該当の誤タイピングを見つけ出すことが可能となる。言い換えれば、プロセッサ１１０は、仮想キーボードに順に入力されたキーリストにおいて、削除キーより前に入力されたキーが削除キーより後に入力されたキーとは異なるとともに、２つのキーがキーボード上で互いに隣接する場合には、前キーを誤タイピングとして分類し、残りのキーを正タイピングとして分類してよい。
【００６０】
図５〜７は、本発明の一実施形態における、正タイピングと誤タイピングとを判別する過程を説明するための例示図である。
【００６１】
仮想キーボードで
2020013577.tif 000003
と入力した後、入力した文字列から
2020013577.tif 000004
を削除し、
2020013577.tif 000005
を修正入力した場合を仮定する。
【００６２】
上述したような過程のキータッチにより、図５に示すように、キーが順に入力されたキーリスト５００が収集されるようになる。
【００６３】
このとき、削除キー５１は、実際にキーが入力された数だけ記録されるか、あるいは削除された文字の字素数だけ記録されてよい。削除キーが１度だけ入力されたときには、字素単位で削除されるか、あるいは、２つ以上の字素からなる音節単位が削除されてよく、場合によっては（削除キーをロングタッチする場合など）、単語単位以上が一括削除されてもよいため、このような場合を考慮した上で、削除された文字の字素数分だけの削除キー５１がキーリスト５００に記録されてよい。
【００６４】
プロセッサ１１０は、図５に示すように、キーリスト５００において削除キー５１を基準に、削除キー５１の個数分だけの前キーリスト５１０と削除キー５１の個数分だけの後キーリスト５２０とを構成してよい。
【００６５】
次に、プロセッサ１１０は、図６に示すように、前キーリスト５１０と後キーリスト５２０との互いに対応する位置でキーが同じである積集合６０１を見つけ出した後、積集合６０１の前／後で互いに対応する位置のキーペアを誤タイピング候補６０２として分類する。
【００６６】
プロセッサ１１０は、各誤タイピング候補６０２の２つのキーが異なる字素であるとともに、仮想キーボード上で隣接する位置に配置されたキーである場合には、２つのキーのうち、前キーリスト５１０に属するキーを誤タイピングとして分類する。
【００６７】
図７を参照すると、プロセッサ１１０は、上述した誤タイピング分析過程によってキーリスト５００で正タイピング７１と誤タイピング７２とを判別し、正タイピング７１および誤タイピング７２として分類されたキーのタイピングポイント座標をタイピングポイント分布の分析に活用してよい。このとき、誤タイピング７２として分類されたキーのタイピングポイント座標は、誤タイピング７２に対応する正タイピングのタイピングポイント分布の分析に活用されてよい。
【００６８】
図８は、仮想キーボード８００を構成する各キー８１０に対し、正タイピングおよび誤タイピングとして認識されたタイピングポイント座標８０１を示した図である。
【００６９】
図８に示すように、仮想キーボード８００を利用する個人の把持法や、仮想キーボード８００が表示されるディスプレイのサイズなどにより、ユーザごとに各キー８１０に対するタイピングポイント座標８０１の分布が異なる。
【００７０】
仮想キーボード８００を利用するユーザ個人のタッチタイピングポイント分布を分析し、これを誤タイピングの補正に活用することが可能である。
【００７１】
図９は、本発明の一実施形態における、仮想キーボードの各キーのタイピングポイント領域をモデリングする過程を示したフローチャートである。
【００７２】
プロセッサ１１０は、各キーのタッチタイピングポイント分布の形態と近似する楕円式を見つけ出すアルゴリズムを利用してよい。
【００７３】
図９のタイピングポイント領域モデリング過程は、仮想キーボードの各キーに対して同じように実行されてよい。以下では、図１０のような形態でタイピングポイント座標１００１が分布されたキー１０１０の例について説明する。
【００７４】
プロセッサ１１０は、仮想キーボードのキー１０１０に対し、正タイピングおよび誤タイピングとして分類されたタイピングポイント座標１００１を収集してよい（Ｓ９０１）。
【００７５】
プロセッサ１１０は、仮想キーボードのキー１０１０に対して収集されたタイピングポイント座標１００１を利用してタイピングポイント中心１０２０を計算してよい（Ｓ９０２）。プロセッサ１１０は、キー１０１０に対する正タイピングおよび誤タイピングのタイピングポイント座標１００１を平均化することにより、タイピングポイント中心１０２０を計算してよい。
【００７６】
［タイピングポイント中心＝（ａｖｇＸ、ａｖｇＹ）］
【００７７】
プロセッサ１１０は、タイピングポイント中心１０２０を原点として座標平面を四等分した各四分面のタイピングポイント座標１００１を利用して各四分面のタイピングポイント標準偏差を計算してよい（Ｓ９０３）。
【００７８】
［第１四分面タイピングポイント標準偏差＝（ｄｅｖＸ１、ｄｅｖＹ１）、第２四分面タイピングポイント標準偏差＝（ｄｅｖＸ２、ｄｅｖＹ２）、第３四分面タイピングポイント標準偏差＝（ｄｅｖＸ３、ｄｅｖＹ３）、第４四分面タイピングポイント標準偏差＝（ｄｅｖＸ４、ｄｅｖＹ４）］
【００７９】
プロセッサ１１０は、タイピングポイント中心１０２０から各四分面のタイピングポイント標準偏差座標までの距離を計算してよい（Ｓ９０４）。タイピングポイント中心１０２０からタイピングポイント標準偏差座標までの距離は、楕円の長軸半径および短軸半径の候補となってよい。
【００８０】
［第１四分面距離（ｒ１）＝ｄｉｓｔ（ａｖｇＸ、ａｖｇＹ、ａｖｇＸ＋σ×ｄｅｖＸ１、ａｖｇＹ−σ×ｄｅｖＹ１）、第２四分面距離（ｒ２）＝ｄｉｓｔ（ａｖｇＸ、ａｖｇＹ、ａｖｇＸ＋σ×ｄｅｖＸ２、ａｖｇＹ−σ×ｄｅｖＹ２）、第３四分面距離（ｒ３）＝ｄｉｓｔ（ａｖｇＸ、ａｖｇＹ、ａｖｇＸ＋σ×ｄｅｖＸ３、ａｖｇＹ−σ×ｄｅｖＹ３）、第４四分面距離（ｒ４）＝ｄｉｓｔ（ａｖｇＸ、ａｖｇＹ、ａｖｇＸ＋σ×ｄｅｖＸ４、ａｖｇＹ−σ×ｄｅｖＹ４）］。ここで、シグマ（σ）は、楕円の大きさがタイピングポイントをどのくらい含ませるように描かれるのかに対する決定変数であり、統計的に約１．６４であれば９０％、１．９６であれば９５％、２．５８であれば９９％のタイピングポイントを含む楕円を描くようになる。
【００８１】
プロセッサ１１０は、各四分面に含まれるタイピングポイント座標１００１の個数を計算してよい（Ｓ９０５）。
【００８２】
［第１四分面タイピングポイント個数＝ｎ１、第２四分面タイピングポイント個数＝ｎ２、第３四分面タイピングポイント個数＝ｎ３、第４四分面タイピングポイント個数＝ｎ４］
【００８３】
プロセッサ１１０は、タイピングポイント個数が最も多い四分面のタイピングポイント標準偏差座標までの距離を長軸半径１０３１として決定してよい（Ｓ９０６）。例えば、第４四分面のタイピングポイント個数が最も多い場合、タイピングポイント中心１０２０から第４四分面のタイピングポイント標準偏差座標までの距離、すなわち、ｒ４が長軸半径１０３１として決定される。
【００８４】
プロセッサ１１０は、タイピングポイント個数が最も多い四分面の勾配角度１０３２、すなわち、長軸勾配を計算してよい（Ｓ９０７）。例えば、第４四分面のタイピングポイント個数が最も多い場合、勾配角度１０３２は、勾配角度（ｔｈｅｔａ）＝ａｔａｎ（ｄｅｖＹ４／ｄｅｖＸ４）となる。第２四分面および第４四分面の勾配角度はそれぞれ、ａｔａｎ（ｄｅｖＹ２／ｄｅｖＸ２）およびａｔａｎ（ｄｅｖＹ４／ｄｅｖＸ４）となり、第１四分面および第３四分面の勾配角度はそれぞれ、−ａｔａｎ（ｄｅｖＹ１／ｄｅｖＸ１）および−ａｔａｎ（ｄｅｖＹ３／ｄｅｖＸ３）となる。
【００８５】
プロセッサ１１０は、タイピングポイント個数が最も多い四分面と隣接する２つの四分面のうち、タイピングポイント個数がより多い四分面のタイピングポイント標準偏差座標までの距離を短軸半径１０３３として決定してよい（Ｓ９０８）。例えば、第４四分面のタイピングポイント個数が最も多く、第４四分面と隣接する第１四分面および第３四分面のうちで第３四分面のタイピングポイント個数がより多い場合、タイピングポイント中心１０２０から第３四分面のタイピングポイント標準偏差座標までの距離、すなわち、ｒ３が短軸半径１０３３として決定される。
【００８６】
プロセッサ１１０は、タイピングポイント中心１０２０から長軸半径１０３１、勾配角度１０３２、短軸半径１０３３として生成される楕円領域を、該当のキー１０１０に対する個別化されたタイピングポイント領域１０３０として決定してよい（Ｓ９０９）。
【００８７】
プロセッサ１１０は、キー１０１０に対するタイピングポイント分布に基づいて、タッチタイピングポイントの形態と近似する楕円式を見つけ出して該当のキー１０１０のタイピングポイント領域１０３０を決定してよい。
【００８８】
楕円式は、以下の式（１）のとおりとなる。
【００８９】
【数１】
2020013577.tif 000006
【００９０】
ここで、ａｖｇＸおよびａｖｇＹはそれぞれ、タイピングポイント中心１０２０のＸ座標およびＹ座標を意味し、Ａは長軸半径１０３１を意味し、Ｂは短軸半径１０３３を意味する。
【００９１】
プロセッサ１１０は、キー１０１０に対するタッチが該当のキー１０１０の有効領域から外れた場合でも、ユーザの過去のタッチタイピングポイントの分布としてモデリングされた楕円形態のタイピングポイント領域１０３０内に属する場合には、正タイピングとして認識して処理してよい。
【００９２】
１つのタイピングポイントに複数の楕円が重なっている場合（キーに楕円が重なっていて、重なっている領域にタイピングポイントが位置する場合）には、タイピングポイントから楕円の中心までの距離がより近い楕円に該当するキーを入力してよい。
【００９３】
このように、本発明の実施形態によると、正タイピングと誤タイピングとを判別するアルゴリズムおよび各キーのタイピングポイント領域をモデリングするアルゴリズムを利用することにより、仮想キーボードの誤タイピングを正確に補正することが可能となる。
【００９４】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）およびＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００９５】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【００９６】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。このとき、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時的に記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭおよびＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアや他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【００９７】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００９８】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００９９】
１１０：プロセッサ
２１０：データ収集部
２２０：タイピングポイント領域決定部
２３０：キー予測部
【図１】
2020013577.tif 000007
【図２】
2020013577.tif 000008
【図３】
2020013577.tif 000009
【図４】
2020013577.tif 000010
【図５】
2020013577.tif 000011
【図６】
2020013577.tif 000012
【図７】
2020013577.tif 000013
【図８】
2020013577.tif 000014
【図９】
2020013577.tif 000015
【図１０】
2020013577.tif 000016