(57)【要約】【課題】ユーザの意図通りに文字の消去を正確に行う情報処理装置を提供する。【解決手段】情報処理装置１は、ユーザにより操作される入力装置１４０及び入力装置１４０から入力された文字を表示する表示装置１２０を備える。情報処理装置１は、入力装置１４０から受け付けた文字からなる文字列を、文字の編集位置を表すキャレットとともに表示装置１２０に表示させる。情報処理装置１は、入力装置１４０から文字の消去操作を取得すると、そのときのキャレットの位置を表すキャレット属性を取得し、キャレット属性に応じて消去操作により文字を消去した後の候補となる複数の文字列候補を推定して、推定した複数の文字列候補を表示装置１２０に表示させる。情報処理装置１は、入力装置１４０により複数の文字列候補から選択された文字列候補の文字列を表示装置１２０に表示させる。【選択図】図１
2019021103.tif 000002
【特許請求の範囲】
【請求項１】
所定の入力手段による文字の入力を受け付ける文字列受付手段と、
前記文字列受付手段で受け付けた文字からなる文字列を、文字の編集位置を表すキャレットとともに所定の表示手段に表示させる表示制御手段と、
前記入力手段による文字の消去操作を取得する第１操作取得手段と、
前記消去操作を受け付けたときの前記文字列における前記キャレットの位置を表すキャレット属性を取得するキャレット属性取得手段と、
前記消去操作により文字を消去した後の候補となる複数の文字列候補を前記キャレット属性に応じて推定して、前記表示制御手段により、前記複数の文字列候補を前記表示手段に表示させる文字列候補推定手段と、
前記入力手段により前記複数の文字列候補から選択された文字列候補を取得する第２操作取得手段と、を備え、
前記表示制御手段は、前記選択された文字列候補の文字列を前記表示手段に表示させることを特徴とする、
情報処理装置。
【請求項２】
前記キャレット属性取得手段は、前記キャレットの位置及び前記キャレットの移動履歴から前記キャレット属性を取得することを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
前記表示制御手段は、右から左に読み書きされる第１言語と、左から右へ読み書きされる第２言語とが混在した双方向文字列を前記表示手段に表示させ、
前記キャレット属性取得手段は、前記キャレットが前記第１言語と前記第２言語との間に位置するときに、前記キャレットの前記移動履歴から前記キャレット属性を取得することを特徴とする、
請求項２記載の情報処理装置。
【請求項４】
前記文字列候補推定手段は、前記キャレット属性と前記文字列に含まれるコードポイントとに応じて、前記複数の文字列候補を推定することを特徴とする、
請求項１〜３のいずれか１項記載の情報処理装置。
【請求項５】
前記文字列候補推定手段は、前記キャレット属性と前記文字列に含まれる単語の区切りを表すコードポイント及び文の区切りを表すコードポイントの少なくとも一方とに応じて、前記複数の文字列候補を推定することを特徴とする、
請求項１〜４のいずれか１項記載の情報処理装置。
【請求項６】
前記文字列候補推定手段は、前記文字列をすべて消去する文字列候補を推定することを特徴とする、
請求項５記載の情報処理装置。
【請求項７】
前記第１操作取得手段は、前記キャレットの直前の位置の文字を消去するための第１消去操作及び前記キャレットの直後の位置の文字を消去するための第２消去操作のいずれかを取得し、
前記文字列候補推定手段は、前記第１操作取得手段が前記第１消去操作を取得したときに前記キャレットの位置から前方向の文字を消去した文字列候補を推定し、前記第１操作取得手段が前記第２消去操作を取得したときに前記キャレットの位置から後方向の文字を消去した文字列候補を推定することを特徴とする、
請求項１〜６のいずれか１項記載の情報処理装置。
【請求項８】
ユーザにより操作される入力装置及び前記入力装置から入力された文字を表示する表示装置が接続された演算処理装置により実行される方法であって、
前記入力装置から受け付けた文字からなる文字列を、文字の編集位置を表すキャレットとともに前記表示装置に表示させておき、
前記入力装置から文字の消去操作を取得すると、そのときの前記文字列における前記キャレットの位置を表すキャレット属性を取得し、前記キャレット属性に応じて前記消去操作により文字を消去した後の候補となる複数の文字列候補を推定して、推定した前記複数の文字列候補を前記表示装置に表示させ、
前記入力装置により前記複数の文字列候補から文字列候補が選択されると、選択された該文字列候補の文字列を前記表示装置に表示させることを特徴とする、
文字入力方法。
【請求項９】
ユーザにより操作される入力手段及び前記入力手段から入力された文字を表示する表示手段が接続されたコンピュータを、
前記入力手段による文字の入力を受け付ける文字列受付手段、
前記文字列受付手段で受け付けた文字からなる文字列を、文字の編集位置を表すキャレットとともに所定の表示手段に表示させる表示制御手段、
前記入力手段による文字の消去操作を取得する第１操作取得手段、
前記消去操作を受け付けたときの前記文字列における前記キャレットの位置を表すキャレット属性を取得するキャレット属性取得手段、
前記消去操作により文字を消去した後の候補となる複数の文字列候補を前記キャレット属性に応じて推定して、前記表示制御手段により、前記複数の文字列候補を前記表示手段に表示させる文字列候補推定手段、
前記入力手段により前記複数の文字列候補から選択された文字列候補を取得する第２操作取得手段、として機能させ、
前記表示制御手段により、前記選択された文字列候補の文字列を前記表示手段に表示させる、
コンピュータプログラム。
【請求項１０】
請求項９記載のコンピュータプログラムを記憶する、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置における文字入力技術に関する。
【背景技術】
【０００２】
スマートフォン、タブレット端末、パーソナルコンピュータ等の情報処理装置は、入力装置としてキーボードを備える。ユーザは、キーボードにより文字入力を行うことができる。キーボードにはBackSpaceキーやDeleteキーのような消去キーが備わっており、ミスタイプした文字を消去キーの押下により消去して修正することができる。ユーザは、文字のミスタイプと同様に、消去キーの押下ミスにより、消去したい文字以外を誤って消去することがある。
【０００３】
アラビア語やヘブライ語は、右から左に読み書きされるＲＴＬ言語（Right To Left言語）である。英語、日本語等は、左から右に読み書きされるＬＴＲ言語（Left To Right言語）である。ＲＴＬ言語とＬＴＲ言語とは、一つの文字列に混在して入力することができる。そのために、一つの文字列において、読み書きの方向が異なる双方向文字列の入力が許容され、表示される。
【０００４】
文字列の編集時には、入力フィールドにキャレットと呼ばれる縦棒で表されるカーソルが表示される。入力された文字は、キャレットの直後の位置に反映される。文字を消去する場合、キャレット前後（BackSpaceキーならキャレット前、Deleteキーならキャレット後）の文字が消去される。双方向文字列においてＲＴＬ言語とＬＴＲ言語との境界部分の文字に対して消去キーが操作される場合、どの文字が消去されるかは、キャレットがＲＴＬ言語とＬＴＲ言語とのいずれに所属するかにより決定される。キャレットの所属は、操作履歴に影響される。例えばＬＴＲ言語の文字列からキャレットの位置を矢印キーで操作した場合、またはＬＴＲ言語の文字にタッチした場合、キャレットの所属はＬＴＲ言語になる。そのために、双方向文字列においてＲＴＬ言語とＬＴＲ言語との境界にキャレットが存在する場合、キャレットの所属により、消去される文字がＲＴＬ言語の文字或いはＬＴＲ言語の文字になる。しかしながら、ユーザは、操作履歴を忘れがちであるために、キャレットの表示位置からその所属を理解することは困難である。従って、ユーザが消去したい文字と実際に消去される文字とが異なることがある。これはユーザに対して混乱を与える。
【０００５】
特許文献１は、消去範囲がドラッグ操作により指定されることで、ユーザの意図する範囲の文字を消去する技術を開示する。特許文献２は、削除操作の際に削除する文字から想起される訂正文字の候補を提示する技術を開示する。ユーザは提示された候補から、所望の文字を選択する。例えば、特許文献２の技術では、「に」という文字に対して削除キーが操作された場合、削除キー周辺に訂正文字として「な」「ぬ」「ね」「の」が提示される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５１７３８６号公報
【特許文献２】特開２０１４−２３０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
スマートフォンやタブレット端末のように表示領域が小さい端末装置では、ドラッグ操作の操作ミスが発生しやすい。ドラッグ操作の操作ミスが生じると、意図した消去範囲の指定が行われずに、ユーザの意図とは異なる文字が消去される可能性がある。また、複数の文字を消去する場合、訂正文字の候補が多数存在することになり、訂正文字による文字修正の有効性が低下する。
【０００８】
本発明は、上記課題に鑑みてなされたものであり、ユーザの意図通りに文字の消去を正確に行うことが可能な情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、所定の入力手段による文字の入力を受け付ける文字列受付手段と、前記文字列受付手段で受け付けた文字からなる文字列を、文字の編集位置を表すキャレットとともに所定の表示手段に表示させる表示制御手段と、前記入力手段による文字の消去操作を取得する第１操作取得手段と、前記消去操作を受け付けたときの前記文字列における前記キャレットの位置を表すキャレット属性を取得するキャレット属性取得手段と、前記消去操作により文字を消去した後の候補となる複数の文字列候補を前記キャレット属性に応じて推定して、前記表示制御手段により、前記複数の文字列候補を前記表示手段に表示させる文字列候補推定手段と、前記入力手段により前記複数の文字列候補から選択された文字列候補を取得する第２操作取得手段と、を備え、前記表示制御手段は、前記選択された文字列候補の文字列を前記表示手段に表示させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ユーザが、文字の消去を意図した通りに行うことができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置のハードウェア構成図。
【図２】情報処理装置の機能ブロック図。
【図３】文字消去時の表示処理を表すフローチャート。
【図４】入力装置の説明図。
【図５】（ａ）〜（ｄ）は文字列候補の説明図。
【図６】文字列候補の表示例示図。
【図７】日本語が入力される場合の説明図。
【図８】（ａ）〜（ｅ）は文字列候補の説明図。
【図９】（ａ）、（ｂ）は文字列候補の表示例示図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は、特許請求の範囲に関る本発明を限定するものではなく、また本実施形態で説明されている特徴の組み合わせの全てが、本発明の解決手段に必須のものとは限らない。
【００１３】
（第１実施形態）
本実施形態の情報処理装置は、ユーザによる文字入力時の消去操作により文字の消去を行い、消去後の文字列候補を複数表示する。情報処理装置は、カーソル位置であるキャレットの表示位置（キャレット位置）に基づいて消去してもよい文字を探索し、消去後の複数の文字列候補を推定する。キャレットは、文字の入力位置や文字の消去位置のような編集位置を表す。
【００１４】
（情報処理装置の構成）
図１は、本実施形態の情報処理装置のハードウェア構成図である。情報処理装置１は、演算処理装置１００、主記憶装置１１０、表示装置１２０、外部記憶装置１３０、及び入力装置１４０を備えるコンピュータシステムである。演算処理装置１００、主記憶装置１１０、表示装置１２０、外部記憶装置１３０、及び入力装置１４０は、バス１５０により相互にデータの送受信が可能に接続される。このような情報処理装置１は、例えばスマートフォン、タブレット端末、パーソナルコンピュータ等により実現可能である。
【００１５】
演算処理装置１００は、ＣＰＵ（Central Processing Unit）等の演算装置を備えており、所定の演算処理を行う。主記憶装置１１０は、ＲＡＭ（Random Access Memory）等を備えており、演算処理装置１００による処理過程で生じるデータ等を一時保存する装置である。外部記憶装置１３０は、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等の大容量のストレージであり、データやコンピュータプログラムを記憶する。表示装置１２０は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）モニタのような出力装置である。表示装置１２０は、演算処理装置１００の制御により入力装置１４０から入力された文字等を表示する。入力装置１４０は、キーボードやタッチパネル等で構成される入力インタフェースである。
【００１６】
図２は、情報処理装置１の機能ブロック図である。情報処理装置１は、演算処理装置１００が外部記憶装置１３０からコンピュータプログラムを読み込み、主記憶装置１１０を作業領域に用いて展開して実行することで、各機能を実現する。なお、図２に示す機能ブロックは、入力装置１４０による文字の入力、消去、編集等に関する機能ブロックであり、情報処理装置１で実現できる他の各種機能については省略している。情報処理装置１は、文字列受付部２００、表示制御部２０１、第１操作取得部２０２、文字列取得部２０３、キャレット属性取得部２０４、文字列候補推定部２０５、及び第２操作取得部２０６として機能する。
【００１７】
文字列受付部２００は、ユーザによる入力装置１４０へのキー操作に応じた文字の入力を受け付ける。
表示制御部２０１は、文字列受付部２００で受け付けた文字からなる文字列を表示装置１２０に表示させる。新たな文字が入力された場合、表示制御部２０１は、新たに入力された文字を、既に表示されている文字列の追加位置（キャレット位置）に追加表示する。矢印キーの入力があった場合、表示制御部２０１は、キャットの位置を移動させて表示する。
【００１８】
第１操作取得部２０２は、ユーザによる入力装置１４０への文字消去に関するキー操作を取得する。文字消去に関するキー操作とは、消去キーであるBackSpaceキーやDeleteキーをユーザが押下する操作である。
文字列取得部２０３は、第１操作取得部２０２が文字消去に関するキー操作を取得したときの文字列を主記憶装置１１０に記憶させる。
キャレット属性取得部２０４は、主記憶装置１１０に記憶された文字列に所定の演算処理を行い、キャレット属性を取得する。キャレット属性取得部２０４は、取得したキャレット属性を主記憶装置１１０に記憶させる。
【００１９】
文字列候補推定部２０５は、キャレット属性と第１操作取得部２０２で取得したキー操作とに応じて、消去後に表示される文字列の候補（文字列候補）を推定する。文字列候補推定部２０５は、主記憶装置１１０に記憶された文字列をデータ処理することで、文字列候補の推定を行う。文字列候補推定部２０５の処理の詳細については、後述する。
文字列候補推定部２０５で推定された文字列候補は、表示制御部２０１により表示装置１２０に出力表示される。表示制御部２０１は、文字列候補を表示する位置の座標を算出して、表示装置１２０の所定の場所に文字列候補を出力表示する。文字列候補の表示処理の詳細については、後述する。
【００２０】
第２操作取得部２０６は、ユーザによる入力装置１４０へのキー操作に応じて、複数の文字列候補からの選択結果を取得する。第２操作取得部２０６は、選択された文字列候補に応じて文字列を再構築して表示制御部２０１へ送る。表示制御部２０１は、第２操作取得部２０６から送られた再構築後の文字列を表示装置１２０に出力させる。
【００２１】
（表示方法）
図３は、情報処理装置１による文字消去時の表示処理を表すフローチャートである。この処理は、例えばユーザが入力装置１４０により文字入力を行っているときに、入力ミス等により文字を消去する際に行われる。
【００２２】
文字列受付部２００は、ユーザによる入力装置１４０への操作に応じた文字の入力を受け付ける（Ｓ３０１）。表示制御部２０１は、文字列受付部２００が受け付けた文字を適宜表示装置１２０へ出力する。
図４は、入力装置１４０の説明図である。この入力装置１４０は、タッチパネルに表示されたソフトウェアキーボードであるが、ハードウェアキーボードや、マウスで操作するようなソフトウェアキーボードであってよい。文字列受付部２００は、入力装置１４０のキーボード部のアルファベットキーが指４０でタッチされることで、該アルファベットの入力を受け付ける。表示制御部２０１は、文字列受付部２００が受け付けたアルファベットを入力フィールド４１に反映させて、入力された文字を表示する。入力フィールド４１には、「T→H→I→S→Space…」というように、既に入力された文字が表示されている。入力位置を表すキャレット４２が「E」文字の後に存在する。キャレット４２の位置を文字の入力後に移動させることは可能である。入力装置１４０がタッチパネルである場合、ユーザは、キャレット４２をタッチしてドラッグ操作することで移動させることができる。入力装置１４０がハードウェアキーボードの場合、ユーザは、矢印キーを押下することでキャレット４２の位置を移動させることができる。
【００２３】
第１操作取得部２０２は、文字列受付部２００が文字の入力を受け付ける間、消去キーが操作（押下）されたかの検知を行う（Ｓ３０２）。消去キーが操作されない場合（Ｓ３０２：N）、文字列受付部２００が文字の入力を受け付け、第１操作取得部２０２がその間、消去キーが操作（押下）されたかの検知を行う。消去キーは、BackSpaceキー４３やDeleteキー４４である。図４の入力装置１４０では、BackSpaceキー４３は、キーボードの最上段の一番右側に配置され、Deleteキー４４は、BackSpaceキー４３の一段右下に配置される。BackSpaceキー４３は、キャレット４２の直前の位置の文字を消去するための消去キーである。Deleteキー４４は、キャレット４２の直後の位置の文字を消去するための消去キーである。消去キーの操作（押下）は、タッチパネル上の該当キーをタッチする操作、ハードウェアキーボードのキーを押す操作、或いはタッチパネルの該当キーの直上でホバーする操作であってもよい。ホバー操作とは、タッチパネルから指４０を離した状態において、指４０の直下にあるキーをタッチしていると見做される操作である。
【００２４】
消去キーが操作（押下）された場合（Ｓ３０２：Y）、第１操作取得部２０２は、消去キーの操作時間（押下時間）が所定の閾値となる時間以上であるか否かを判定する（Ｓ３０３）。操作時間が閾値となる時間以上である場合（Ｓ３０３：Y）、キャレット属性取得部２０４は、第１操作取得部２０２が消去キーの操作を取得したときのキャレット属性を取得する（Ｓ３０４）。キャレット属性は、キャレット４２が文字列中で何文字目の直後に表示されるかの位置情報である。キャレット属性は、例えば、ＧＵＩ（Graphic User Interface）を構築する際に用いられるプログラミング言語に含まれる、キャレット４２の座標を取得する関数を利用して取得される。一般的なＯＳ（Operating System）のＡＰＩ（Application Programming Interface）には、キャレット位置の座標を返す関数が存在する。キャレット位置の座標と文字列の表示開始座標から、キャレット４２の文字列中の位置が判断可能である。文字列の表示開始座標は、文字列を表示する際に指定される座標により判断可能である。フォントデータ内には仕様上一文字あたりの幅が定められている。そのために、文字列の表示開始座標と各文字の幅とから、キャレット４２が何文字目の間にあるかが判断可能である。
【００２５】
情報処理装置１は、操作時間が閾値となる時間よりも長いことで、ユーザが複数の文字を消去する操作を行っていると判断する。そのために情報処理装置１は、文字列候補の提示処理を行う。文字列候補推定部２０５は、文字を消去した後の文字列候補を推定する処理を行う（Ｓ３０５）。文字列候補は、例えば以下のように推定される。即ち文字列候補は、キャレット４２の位置に存在する単語の前後を消去するパターン、キャレット４２の位置に存在する単語及びその前後の単語を消去するパターン、キャレット４２を含む文字列の前後を行頭又は行末まで消去するパターンで推定される。消去の対象となるキャレット４２の位置に対する前後は、例えば押下されたキーに応じて決められる。BackSpaceキー４３が押下された場合、キャレット４２の前の文字列が消去対象となり、Deleteキー４４が押下された場合、キャレット４２の後ろの文字列が消去対象となる。
【００２６】
キャレット４２を含む単語とその前後の単語が消去対象となる。消去対象となる単語数は、いくつでもよいが、数が増えるにつれて文字列候補が増加し、処理負荷が大きくなる。また、文字列候補が表示装置１２０に表示されるために、文字列候補の増加は、ユーザにとって煩雑になる。そのために本実施形態では、消去対象となる単語数を「２」として説明する。消去対象となる単語数は、ユーザが使いやすいように、ユーザにより設定される構成であってもよい。
【００２７】
図５は、文字列候補の説明図である。図５（ａ）は、入力フィールド４１に表示される入力文字列であり、消去キーが操作される前の状態を表している。キャレット４２は、ユーザの操作に応じて移動し、「m」と「p」の間に表示される。図５（ｂ）〜（ｄ）は、BackSpaceキー４３が操作されたときの文字列候補を表す。
【００２８】
図５（ｂ）は、キャレット４２の位置に存在する単語の前の部分を消去するパターンの文字列候補である。具体的には、キャレット４２の前にあり、「sample」という単語に属する文字、ここでは「sam」を消去対象とした文字列候補である。消去対象である「sam」は、キャレット４２の位置から前方向に順次、文字列に含まれるコードポイントを確認することで検出することができる。この例では、「is」と「sample」との間にスペースが含まれている。そのために文字列候補推定部２０５は、スペースのコードポイントを検出することで、そこが単語の区切りと判断することができる。そのために文字列候補推定部２０５は、図５（ｂ）のような文字列候補を推定することができる。
【００２９】
図５（ｂ）の文字列候補の単語単位の検索範囲を文全体にまで広げて、文の先頭を求めることで図５（ｃ）の文字列候補が推定される。文の先頭は、「．」を索出することで抽出される。「．」にもコードポイントが割り当ててあるため、文字列候補推定部２０５は、該コードポイントを抽出することで、文単位で文字列を分割することができる。図５（ｄ）は、入力フィールド４１全体に表示されるすべての文字を消去する場合の文字列候補である。すなわちこの文字列候補は全消去に相当するものであり、一度にすべてを消去したいというユーザの要望に沿うものである。
【００３０】
以上のように文字列候補推定部２０５は、消去後の文字列候補をコードポイントレベルで探索し、単語の区切り及び文の区切りの少なくとも一方を見つけて、分割することで文字列候補を推定する。なお、文字列候補推定部２０５は、１文字単位で単語や文の区切りを見つける他に、構文解析を用いて意味のある単語やコンテキストを見つけて、文字列候補を推定してもよい。なお、Deleteキー４４が操作されたときには、同様の処理により、キャレット４２の位置から後方向に順次コードポイントを確認することで、文字列候補が推定される。
【００３１】
表示制御部２０１は、文字列候補推定部２０５で推定した消去後の文字列候補を、表示装置１２０に表示させて提示する（Ｓ３０６）。図６は、表示装置１２０に表示される文字列候補の表示例示図である。表示される文字列候補６０は、図５（ｂ）〜（ｄ）に例示するものである。消去後の文字列候補６０は、BackSpaceキー４３やDeleteキー４４を押下したタイミングで表示される。文字列候補６０は、タッチ位置近傍やキャレット４２の近傍にポップアップ状に表示される。文字列候補６０の表示態様は、図６のようなリスト状に限定されるものではなく、例えば、フリック状であってもよい。文字数候補が多い場合は、リスト状が好ましい。図６では、文字列候補６０をリスト状に出力し、それぞれに番号が割り当てられている。
【００３２】
文字列候補の提示後に第２操作取得部２０６は、ユーザが入力装置１４０により選択した文字列候補を取得する（Ｓ３０７）。選択された文字列候補に従って、文字列取得部２０３は、新たに文字列を取得する。表示制御部２０１は、選択された文字列候補の文字列を表示装置１２０に表示させる。文字列候補の選択は、入力装置１４０がタッチパネルであれば指４０によるタッチ、ハードウェアキーボードであれば、矢印キーや図６に示す文字列候補と１対１対応する番号の入力により行われる。また、文字列候補の選択は、ハードウェアキーボードにおいて、消去キーを複数回押下することで文字列候補が選択され、確定キーの押下により行われてもよい。なお、本実施形態では、文字の消去操作の取り消しが、文字列候補中に「4.Quit」と表示されている項目をタッチすること、或いは消去キーのタッチ操作をやめることで行われる。
【００３３】
操作時間が閾値となる時間未満である場合（Ｓ３０３：N）、キャレット属性取得部２０４は、Ｓ３０４と同様の処理により、第１操作取得部２０２が消去キーの操作を取得したときのキャレット属性を取得する（Ｓ３０８）。情報処理装置１は、操作時間が閾値となる時間よりも短いことで、ユーザが１文字ずつ消去する操作を行っていると判断する。そのために情報処理装置１は、上述の文字列候補の提示処理を行わない。表示制御部２０１は、通常通り、１文字毎に文字を消去して表示装置１２０に出力する（Ｓ３０９）。例えば、BackSpaceキー４３が操作された場合、表示制御部２０１は、キャレット４２の前にある文字を１文字分消去して表示させる。以上のような処理により、ユーザが１文字ずつ消去したいときにその都度文字列候補が表示されることがないため、ユーザが感じる煩わしさが軽減される。
【００３４】
以上の説明では、入力フィールド４１にラテン文字が入力される例を説明したが、日本語入力の場合も同様の処理が可能である。図７は、入力フィールド４１に日本語が入力される場合の文字列候補の表示例示図である。図７では、日本語消去時の文字列候補が表示されている。入力フィールド４１には「これは、ペンです。これは、参考です。」と表示されており、「参考」の後にキャレット４２が表示される。日本語の場合、漢字を１文字として扱うこともできるが、ここでは漢字に変換前のかな文字の状態に戻して、それを消去の対象としている。例えば、文字列候補６０の「２」は「参考」を「さんこう」に展開して、「こう」だけを消去した文字列を表している。
【００３５】
そのために情報処理装置１は、かな漢字変換時の情報が必要であり、かな文字の状態の文字を予め記憶しておく必要がある。また、漢字をかな文字に戻して消去した後の文字列を探索するのと類似するものとして、合字文字がある。合字文字は、例えば、「a」と発音記号の「´」が合わさり、「a」の文字の上に発音記号が乗るダイアクリティカルマーク（日本語の濁点等も広義には含む）といったものである。合字文字が文字列に混ざる場合、それぞれ「a」と「´」に戻し、「´」を消去した文字列が文字列候補に加えられてもよい。合字文字に対する処理は、ユーザが発音記号を別の記号に置き換えたいという要望も少なくなく、それに対応するものである。
【００３６】
以上のような本実施形態の情報処理装置１は、消去後の文字列候補６０をユーザに提示することで、操作ミスを抑えた消去を実現することができる。そのためにユーザは、文字の消去を意図した通りに行うことができる。上記ではラテン文字や日本語のような、左から右に読み書きするＬＴＲ言語についての処理を説明したが、同様の処理は、アラビア語やヘブライ語のように右から左に読み書きするＲＴＬ言語についても行うことができる。
【００３７】
（第２実施形態）
第２実施形態では、ＲＴＬ言語とＬＴＲ言語とが混在する双方向文字列を入力する場合について説明する。図８は、双方向文字列の文字列候補の説明図である。図８により、双方向文字列に対する消去キー操作による文字の消去例を説明する。図８（ａ）は、入力フィールド４１に表示される双方向文字列であり、ヘブライ語とラテン語が混在する双方向文字列である。キャレット４２は、ユーザの操作に応じて移動可能であり、ヘブライ語とラテン語との間に存在する。図８（ｂ）〜（ｃ）は、BackSpaceキー４３が操作されたときの文字列候補を表す。図８（ｄ）〜（ｅ）は、Deleteキー４４が操作されたときの文字列候補を表す。
【００３８】
BackSpaceキー４３が押下されて消去される文字は、キャレット属性に応じて決められる。即ち、消去される文字は、キャレット４２がヘブライ文字列とラテン文字列とのいずれに所属しているかで異なる。図８（ｂ）はキャレット４２がラテン文字の「A」に所属する場合を示す。この場合、BackSpaceキー４３が押下されると、ヘブライ文字列の最左文字が消去対象となる。図８（ｃ）はキャレット４２がヘブライ文字列に所属する場合を示す。この場合、BackSpaceキー４３が押下されると、先頭の「ＡＢＣ」のＣの文字が消去対象となる。これは、キャレット４２がＲＴＬ言語のヘブライ文字の先頭に位置しており、キャレット４２の位置の前に「Ｃ」の文字が存在しているためである。
【００３９】
Deleteキー４４が押下されて消去される文字は、以下のようになる。図８（ｄ)は、キャレット４２がラテン文字「A」に属する場合を示す。この場合、Deleteキー４４が押下されると、ラテン文字「A」が消去対象となる。図８（ｅ）は、キャレット４２がヘブライ文字列に属する場合を示す。この場合、Deleteキー４４が押下されると、ヘブライ文字列の先頭文字が消去対象となる。
【００４０】
以上のように双方向文字列が入力フィールド４１に入力され、且つキャレット４２がＲＴＬ言語とＬＴＲ言語との境界に存在する場合、キャレット属性に応じて消去される文字が異なる。従って、ユーザが消去を意図する文字と、実際に消去される文字とが異なる場合がある。これはユーザにとって煩わしさを感じるものとなる。本実施形態では、このような煩わしさを、以下のような処理により軽減する。
【００４１】
第２実施形態の情報処理装置１のハードウェア構成及び機能ブロックは、第１実施形態の情報処理装置１と同じであるので説明を省略する（図１、図２参照）。第２実施形態の情報処理装置１による文字消去時の表示処理は、図３に示すフローチャートで表される。Ｓ３０１〜Ｓ３０３の処理は、第１実施形態と同様であるので説明を省略する。
【００４２】
消去キーの操作時間（押下時間）が所定の閾値となる時間以上である場合（Ｓ３０３：Y）、キャレット属性取得部２０４は、第１操作取得部２０２が消去キーの操作を所得したときのキャレット属性を取得する（Ｓ３０４）。キャレット属性取得部２０４は、双方向文字列におけるキャレット４２の位置及びキャレット４２がＲＴＬ言語とＬＴＲ言語とのいずれに所属するかを表すキャレット情報を取得することになる。
キャレット属性取得部２０４は、例えばキャレット４２の位置及び移動履歴からキャレット属性を取得する。図８（ａ）の入力文字列により説明する。ＲＴＬ言語とＬＴＲ言語との境界の右側からキャレット４２が移動された場合、キャレット４２はラテン文字に所属する。例えば、入力文字列の終端文字の「C」の後にキャレット４２が存在し、左矢印キーの押下やタッチした後にドラック操作することで、ヘブライ文字とラテン文字との境界までキャレット４２が移動した場合、キャレット４２はラテン文字に所属する。ヘブライ文字の領域からキャレット４２が同様に移動した場合、キャレット４２はヘブライ文字に所属する。
【００４３】
文字列候補推定部２０５は、文字を消去した後の文字列候補を推定する処理を行う（Ｓ３０５）。文字列候補は、例えば第１実施形態と同様に推定される。ただし、キャレット４２の所属に応じて、探索文字列が異なる。表示制御部２０１は、文字列候補推定部２０５が推定した消去後の文字列候補を表示装置１２０に表示させて提示する（Ｓ３０６）。図９は、表示装置１２０に表示される文字列候補の表示例示図である。図９（ａ）は、BackSpaceキー４３が押下された場合の消去後の文字列候補の表示例示図である。図９（ｂ）は、Deleteキー４４が押下された場合の消去後の文字列候補の表示例示図である。
【００４４】
図９（ａ）の文字列候補６０は、全文字を消去する番号「４」及び消去をやめる番号「５.Quit」を除くと、３パターン存在する。なお、第１実施形態でも説明したように、消去自体をやめる操作は、消去キーを離す操作で代用することもできる。文字列候補６０は、入力フィールド４１にある双方向文字列に対して、キャレット４２が図８（ａ）に示す位置に表示されることが前提である。
文字列候補の番号「１」及び番号「３」は、キャレット４２がラテン文字の「A」に所属しているときに単語単位で文字列を消去する場合の候補を表している。第１実施形態と同様に、消去対象とする単語数を２に設定した場合、文字列候補の番号「３」に表した文字列が候補となる。また、文字列候補の番号「２」は、キャレット４２がヘブライ文字に所属しているときに単語単位で文字列を消去する場合の候補を表している。単語の区切りについては、第１実施形態と同じく、コードポイントを確認することで検出可能である。例えば、スペースのコードポイント、ラテン文字のコードポイント、ヘブライ文字のコードポイントにより、単語の区切りが検出可能である。
【００４５】
図９（ｂ）の文字列候補６０では、キャレット４２がラテン文字に所属する場合の文字列候補は番号「１」である。キャレット４２がヘブライ文字に所属する場合の文字列候補は番号「２」及び番号「３」である。
【００４６】
以上のように、双方向文字列に対しても消去後の文字列候補６０が表示可能である。図９では、BackSpaceキー４３とDeleteキー４４とのそれぞれの文字列候補を表示しているが、消去キーの種類を区別することなく、１つの消去後の文字列候補を表示してもよい。例えば、情報処理装置１は、図９（ａ）及び図９（ｂ）の文字列候補を合わせたものを表示してもよい。このとき、全文字消去の番号「４」及び消去をやめる番号「５」は、重複して表示せず１つで表してもよい。そのためにユーザは、BackSpaceキー４３やDeleteキー４４を区別することなく操作することで文字列の消去が可能である。ユーザが期待する文字列が候補にないという状態が起こらないように、文字列候補６０が表示される。以上のように文字列候補を表示することで、ユーザの煩わしさが低減される。
【００４７】
文字列候補の提示後に第２操作取得部２０６は、ユーザが入力装置１４０により選択した文字列候補を取得する（Ｓ３０７）。Ｓ３０７の処理は第１実施形態と同様である。表示制御部２０１は、選択された文字列候補の文字列を表示装置１２０に表示させる。
操作時間が閾値となる時間未満である場合（Ｓ３０３：N）のＳ３０８、Ｓ３０９の処理も第１実施形態と同様である。つまり情報処理装置１は、Ｓ３０４と同様の処理により、消去キーの操作を検知したときのキャレット属性を取得して、図８で示した各パターンに沿って文字を消去する。
【００４８】
以上のように、第２実施形態の情報処理装置１は、双方向文字列に対して消去した後の文字列候補を表示してユーザに選択させることができる。そのためにユーザの消去操作のミスを減らすことができる。
【００４９】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019021103.tif 000003
【図２】
2019021103.tif 000004
【図３】
2019021103.tif 000005
【図４】
2019021103.tif 000006
【図５】
2019021103.tif 000007
【図６】
2019021103.tif 000008
【図７】
2019021103.tif 000009
【図８】
2019021103.tif 000010
【図９】
2019021103.tif 000011