JP2015094977A - 電子機器及び方法 - Google Patents

電子機器及び方法 Download PDF

Info

Publication number
JP2015094977A
JP2015094977A JP2013232262A JP2013232262A JP2015094977A JP 2015094977 A JP2015094977 A JP 2015094977A JP 2013232262 A JP2013232262 A JP 2013232262A JP 2013232262 A JP2013232262 A JP 2013232262A JP 2015094977 A JP2015094977 A JP 2015094977A
Authority
JP
Japan
Prior art keywords
strokes
candidate
handwritten
character string
candidates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013232262A
Other languages
English (en)
Inventor
弘匡 平林
Hiromasa Hirabayashi
弘匡 平林
幸宏 栗田
Yukihiro Kurita
幸宏 栗田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013232262A priority Critical patent/JP2015094977A/ja
Priority to EP20140166091 priority patent/EP2871571A1/en
Priority to US14/286,727 priority patent/US9606981B2/en
Publication of JP2015094977A publication Critical patent/JP2015094977A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/268Lexical context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】入力が予測される文字列の候補を効果的に提示できる電子機器を実現する。
【解決手段】実施形態によれば、電子機器は表示処理手段を具備する。表示処理手段は、タッチスクリーンディスプレイの画面上で手書きにより入力される1以上の第1ストロークを表示する。前記表示処理手段は、手書き文書に含まれる複数の手書き文字列の内、前記1以上の第1ストロークに対応する1以上の手書き文字を含む複数の候補を、前記画面に表示するものであって、前記複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される。
【選択図】図9

Description

本発明の実施形態は、文字を手書き入力する技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備え、手書きするための機能を有するものもある。そのためユーザは、この電子機器を用いて、テキストや画像だけでなく、手書きの文字や図形も含む文書を作成することができる。
特開2005−25566号公報
ところで、ユーザが単語のような文字列を入力するときに、これまでに入力された文字列の履歴を用いてユーザによる入力を補助する方法がある。本発明の一形態は、入力が予測される文字列の候補を効果的に提示できる電子機器及び方法を提供することを目的とする。
実施形態によれば、電子機器は表示処理手段を具備する。表示処理手段は、タッチスクリーンディスプレイの画面上で手書きにより入力される1以上の第1ストロークを表示する。前記表示処理手段は、手書き文書に含まれる複数の手書き文字列の内、前記1以上の第1ストロークに対応する1以上の手書き文字を含む複数の候補を、前記画面に表示するものであって、前記複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される。
実施形態に係る電子機器の外観を示す例示的な斜視図。 同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされるストロークの例を示す図。 同実施形態の電子機器によって記憶媒体に保存される、図2の手書きストロークに対応する時系列情報(ストロークデータ)を説明するための例示的な図。 同実施形態の電子機器のシステム構成を示す例示的なブロック図。 キーワードが手書き入力される検索画面に、予測入力による候補文字列が表示される例を示す図。 図5の検索画面に、キーワードを構成するストロークがさらに手書きされる例を示す図。 同実施形態の電子機器による予測入力のための候補文字列の取得について説明するための概念図。 同実施形態の電子機器によって、キーワードが手書き入力される検索画面に予測入力による候補文字列が表示される例を示す図。 同実施形態の電子機器によって実行される予測入力ユーティリティプログラムの機能構成を示す例示的なブロック図。 同実施形態の電子機器によって用いられる手書き文字列データの一構成例を示す図。 同実施形態の電子機器によって、入力中の文字列を構成する手書きストロークに基づいて、図10の手書き文字列データから類似度順の手書き文字列が取得される例を示す図。 同実施形態の電子機器によって、図11の類似度順の手書き文字列が、文字列を構成するストロークの数に基づいて並べ替えられる例を示す図。 図8の検索画面に表示される予測入力による候補文字列の一部を選択する操作を説明するための図。 同実施形態の電子機器によって、手書き文書上に予測入力による候補文字列が表示される第1の例を示す図。 同実施形態の電子機器によって、手書き文書上に予測入力による候補文字列が表示される第2の例を示す図。 同実施形態の電子機器によって、手書き文書上に予測入力による候補文字列が表示される第3の例を示す図。 同実施形態の電子機器によって、候補文字列から選択された文字列が手書き文書上に描画される例を示す図。 同実施形態の電子機器によって実行される手書き入力処理の手順の例を示すフローチャート。 同実施形態の電子機器によって実行される予測入力処理の手順の例を示すフローチャート。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン又は指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレット又はスレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペン又は指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルである2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
デジタイザ及びタッチパネルの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンである。
ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で、手書きにより複数のストロークを入力する手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストロークの軌跡(筆跡)がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。多数のストロークの集合、つまり多数の軌跡(筆跡)の集合が、手書きの文字又は図形などを構成する。
本実施形態では、このような手書きストローク(手書きの文字及び図形)は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図3を参照して後述するが、この時系列情報は、概して、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、手書きにより入力可能なある一つのストロークを表現可能なデータであればどのようなものであってもよく、例えば、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の文書データを読み出し、この文書データに対応する文書、つまり、時系列情報によって示される複数のストロークそれぞれに対応する軌跡が描画された手書き文書を、画面上に表示することができる。
次いで、図2及び図3を参照して、ユーザによって手書きされたストローク(手書きの文字、マーク、図形、表など)と時系列情報との関係について説明する。図2は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる文書の例を示している。
この文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図2においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きされた場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡もサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD22、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの矢印は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図3は、図2の文書に対応する時系列情報200を示している。時系列情報200は、複数のストロークデータSD1、SD2、…、SD7を含む。時系列情報200内においては、これらストロークデータSD1、SD2、…、SD7は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
時系列情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き矢印を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいて、複数の座標は、ストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標及びY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)及びY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)及びY座標(Y1n)を示す。
また、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)と、ある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Tとして付加してもよい。各座標データにタイムスタンプ情報Tが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データは、その座標に対応する点が手書きされた時点の、外部オブジェクト(例えば、ペン100)が画面に接触されたことによる圧力Pを含んでいてもよい。
本実施形態では、上述したように、手書きされるストロークは、イメージや文字認識結果ではなく、時系列のストロークデータの集合から構成される時系列情報200として記憶されるので、言語に依存せずに手書きの文字や図形を扱うことができる。よって、本実施形態の時系列情報200の構造は、使用言語が異なる世界中の様々な国で共通に使用できる。
図4は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図4に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108、等を備える。
CPU101は、タブレットコンピュータ10内の各種コンポーネントの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、及び各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、予測入力ユーティリティプログラム202が含まれている。この予測入力ユーティリティプログラム202は、手書き入力された1以上のストロークに基づいて、入力が予測される文字列の候補を提示する予測入力機能(サジェスト機能)を有する。予測入力ユーティリティプログラム202は、この予測入力機能によって、例えば、検索キーワードのサジェスト機能、文書に入力される文字列の補完機能、等を実現する。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCIEXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17B及びデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン100が接触される画面上の接触位置、接触位置の動き、接触圧力、等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LAN又は3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オン又は電源オフする機能を有している。
上述したように、予測入力ユーティリティプログラム202は、予測入力機能を利用して、検索キーワードのサジェスト機能、文書に入力される文字列の補完機能、等を実現する。
図5は、キーワードが手書き入力される検索画面50に、サジェスト機能によって候補文字列が表示される例を示す。この検索画面50を用いた検索は、キーワードに基づく各種の検索のいずれであってもよく、例えば、文書内の該当部分の検索、ファイル検索、ウェブ検索、等である。ここでは、ユーザが、単語“apple”に基づく検索が行おうとしている場合を想定する。
この検索画面50には、例えば、キーワード入力エリア51、検索ボタン53、及び候補文字列541,542,543が含まれる。キーワード入力エリア51は、タッチスクリーンディスプレイ17を用いて、文字列(キーワード)を構成するストロークが手書き入力されるエリアである。検索ボタン53は、キーワード入力エリア51に入力されたキーワードに基づく検索の実行を指示するためのボタンである。候補文字列541,542,543は、キーワード入力エリア51に手書き入力された文字列に基づいて入力が予測された文字列の候補を示すボタンである。
より具体的には、キーワード入力エリア51に手書き文字列“ap”が入力されている場合、すなわち、ストローク521,522,523が手書き入力されている場合、検索画面50には、手書き文字列“ap”に基づいて、入力が予測される候補文字列541,542,543が表示される。この候補文字列541,542,543は、例えば、文字列“ap”で始まる文字列(手書き文字列)“apple”、“approve”、“aps”である。ユーザは、これら候補文字列541,542,543に、入力しようとしている文字列が含まれている場合には、その候補文字列を選択する(候補文字列のボタンを押し下げる)ことによって、その候補文字列をキーワード入力エリア51に描画することを指示できる。
候補文字列541,542,543からいずれかの候補文字列が選択された場合、その候補文字列がキーワード入力エリア51に表示される。つまり、入力されていたストローク521,522,523が、選択された候補文字列に対応する1以上のストロークに置き換えられる。そして、ユーザは、検索ボタン53を押し下げることによって、キーワード入力エリア51内の手書き文字列(すなわち、選択された候補文字列)をキーワードとする検索の実行を指示することができる。
一方、候補文字列541,542,543に入力しようとしている文字列が含まれていない場合、ユーザは、キーワード入力エリア51にキーワードを構成する文字(ストローク)をさらに手書き入力する。
図6に示すように、キーワード入力エリア51に手書き文字列“pl”がさらに入力されている場合、すなわち、ストローク524,525,526がさらに手書き入力されている場合、検索画面50には、手書き文字列“appl”に基づいて、入力が予測される候補文字列541が表示される。つまり、文字列“ap”が手書きされた後に、さらに文字列“pl”が手書きされたことに応じて、表示される候補文字列が更新されることによって、文字列“pl”を含まない候補文字列542,543が画面から消去され、文字列“appl”で始まる候補文字列“apple”541だけが画面に表示されている。候補文字列は、例えば、1つのストロークが手書きされる毎に更新される。ユーザは、この候補文字列541が入力しようとしている文字列である場合には、この候補文字列541を選択することによって、候補文字列541をキーワード入力エリア51に描画することを指示できる。
ところで、図5に示した例では、キーワード入力エリア51に入力されている手書き文字列“ap”に対して、複数の候補文字列541,542,543が表示されている。これら候補文字列541,542,543は、いずれも文字列“ap”に前方一致する文字列である。つまり、候補文字列541,542,543は、文字列“ap”に対して同程度の適合率を有する文字列である。そのため、このような候補文字列541,542,543のいずれを優先的に(すなわち、上位に)表示すべきかを決定することが期待される場合がある。
本実施形態では、手書き文字列の入力を補助するための複数の候補文字列を、ユーザによる手書き入力の作業量(すなわち、入力にかかる手間)を考慮して表示する。本実施形態では、入力途中の文字列に対して同程度の適合率を有する複数の候補文字列が表示される場合に、例えば、ユーザによる手書き入力の作業量が多い文字列(すなわち、入力に手間がかかる文字列)が優先的に表示される。これにより、ユーザによる手書き入力をより省力化し、候補文字列を提示するサジェスト機能の利便性を向上させることができる。
図7を参照して、本実施形態における予測入力のための候補文字列の取得について説明する。
まず、検索クエリ(キーワード)に用いられる手書きストローク“a”61が入力された場合、このストローク61に対応するストロークデータ(時系列情報)を用いて特徴量62が算出される。算出された特徴量62は、サジェスト用インデックス(手書き文字列データ)63に含まれる複数の候補文字列のそれぞれに対応する特徴量と比較される。そして、それら複数の候補文字列が、特徴量の比較結果に応じた類似度に基づいて絞り込まれ且つソートされた射影テーブル64が生成される。この類似度は、例えば、手書きストローク61の特徴量62と、候補文字列を構成するストロークの特徴量との類似性に基づく離散値で表される。
さらに、この射影テーブル64に含まれる複数の候補文字列の内、同じ類似度(同程度の類似度)を有する候補文字列は、文字列を手書きするために要する作業量に応じた順番で並べ替えられる。例えば、同じ類似度を有する候補文字列は、候補文字列を構成するストロークの数に応じた順番で並べ変えられる。換言すると、複数の候補文字列は、手書きストローク61に対する類似度と、その候補文字列を手書きするために要する作業量(例えば、ストロークの数)とに基づく優先度が高い順に並べ替えられる。そして、並べ替えられた複数の候補文字列が画面に表示される。
図8に示す例では、キーワード入力エリア51に手書きストローク521,522,523(手書き文字列“ap”)が入力されている場合に、この手書きストローク521,522,523に対応する特徴量を用いて、サジェスト用インデックス63に含まれる文字列の内の候補文字列541,542,543が表示されている。これら候補文字列541,542,543は、例えば、手書き文字列“ap”に前方一致する文字列である。そして、これら候補文字列541,542,543は、手書きに要する作業量(例えば、ストロークの数)の降順に、つまり、“approve”542、“apple”541、“aps”543の順に並べて表示されている。なお、各候補文字列541,542,543が表示されている領域には、手書きの文字列だけでなく、その手書きの文字列に対応するテキストが表示されてもよい。また、この領域には、手書きに要する作業量を示す値(例えば、ストロークの数、ストロークの長さの総和、ストロークを手書きするために要した時間、等)が表示されてもよい。
予測入力ユーティリティプログラム202は、上述したように、手書き文字列の入力を補助するための複数の候補文字列が表示される場合に、ユーザによる手書き入力の作業量が多い文字列を優先的に表示する予測入力機能を有する。この予測入力機能は、図8のように検索のためのキーワードを手書き入力する場合だけでなく、手書き文書を作成する場合等、文字が手書き入力されるあらゆるケースに利用できる。
図9は、予測入力ユーティリティプログラム202の機能構成の例を示す。予測入力ユーティリティプログラム202は、タッチスクリーンディスプレイ17を用いた操作によって入力される時系列情報(ストロークデータ)を使用することによって、手書きされた文字列に応じた候補文字列の表示、選択された候補文字列による手書きされた文字列の上書き、等を行う。
予測入力ユーティリティプログラム202は、例えば、軌跡表示処理部301、時系列情報生成部302、特徴量算出部303、優先度算出部304、ソート部305、候補表示処理部306、補完表示処理部307、文字列データ生成部308、ページ保存処理部309、ページ取得処理部310、及び文書表示処理部311を備える。
タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
軌跡表示処理部301及び時系列情報生成部302は、タッチスクリーンディスプレイ17によって発生される「タッチ」、「移動(スライド)」又は「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、軌跡表示処理部301及び時系列情報生成部302は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
軌跡表示処理部301は、タッチスクリーンディスプレイ17の画面上で手書きにより入力される1以上のストローク(以下、第1ストロークとも称する)を表示する。軌跡表示処理部301は、タッチスクリーンディスプレイ17から座標列を受信し、この座標列に基づいて、ペン100等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ17内のLCD17Aの画面上に表示する。この軌跡表示処理部301により、画面にペン100が接触している間のペン100の軌跡、つまりストロークがLCD17Aの画面上に描画される。
時系列情報生成部302は、タッチスクリーンディスプレイ17から出力される上述の座標列を受信し、この座標列に基づいて、図3で詳述したような構造を有する時系列情報(ストロークデータ)を生成する。この場合、時系列情報、つまりストロークの各点に対応する座標及びタイムスタンプ情報は作業メモリ401に一時保存されてもよい。
また、時系列情報生成部302は、生成された時系列情報(ストロークデータ)を特徴量算出部303に出力する。時系列情報生成部302は、例えば、1つのストロークが手書き入力される毎に、そのストロークに対応するストロークデータを特徴量算出部303に出力する。
特徴量算出部303、優先度算出部304、ソート部305、及び候補表示処理部306は、記憶媒体402に格納された、手書き文書データ402Bに対応する手書き文書に含まれる手書き文字列の内、軌跡表示処理部301によって画面に表示された1以上の第1ストロークに対応する1以上の手書き文字を含む複数の候補を画面に表示する。これら複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される。
記憶媒体402には、手書き文書に含まれる複数の手書き文字列に対応する複数の手書き文字列データ402Aが格納されていてもよい。特徴量算出部303、優先度算出部304、ソート部305、及び候補表示処理部306は、記憶媒体402に格納された、複数の手書き文字列に対応する複数の手書き文字列データ402Aを用いて、それら複数の手書き文字列の内、軌跡表示処理部301によって画面に表示された1以上の第1ストロークに対応する1以上の手書き文字をそれぞれ含む候補を、候補(手書き文字)を構成する1以上のストロークを手書きするための作業量に応じた順番で(例えば、作業量の降順に)画面に表示する。手書き文字列データ402Aは、手書き文字列を構成する1以上のストロークに対応する特徴量を含み、この手書き文字列データを用いて、複数の手書き文字列の内、1以上の第1ストロークに対応する特徴量との類似度がしきい値以上である特徴量をそれぞれ有する1以上の手書き文字列が、作業量に応じた順番で画面に表示される。
より具体的には、まず、特徴量算出部303は、時系列情報生成部302によって生成された1以上の第1ストロークに対応する1以上のストロークデータを用いて特徴量(第1特徴量)を算出する。特徴量算出部303は、例えば、1以上の第1ストロークの形状や手書きされた方向等に基づいて特徴量を算出する。
次いで、優先度算出部304は、算出された第1特徴量と、手書き文字列データ402A内の候補文字列に対応する第2特徴量とを用いて、候補文字列毎の優先度(類似度)を算出する。
図10は、手書き文字列データ402Aの一構成例を示す。この手書き文字列データ402Aは、例えば、ストロークデータや手書き文書データ402Bを解析することによって生成される。また、手書き文字列データ402Aは、例えばユーザ毎に生成される。
手書き文字列データ402Aは、複数の手書き文字列に対応する複数のエントリを含む。各エントリは、例えば、文字列、特徴量及びストロークデータを含む。ある手書き文字列に対応するエントリにおいて、「文字列」は、その手書き文字列に対応するテキスト(文字コード列)を示す。「特徴量」は、その手書き文字列を構成する1以上のストロークに対応する特徴量を示す。「ストロークデータ」は、その手書き文字列を構成する1以上のストロークに対応するストロークデータ(時系列情報)を示す。
「文字列」には、例えば、「ストロークデータ」に示されるストロークデータに文字認識処理を施すことによって得られたテキスト(文字コード列)が設定される。また、「特徴量」には、例えば、「ストロークデータ」に示されるストロークデータを用いて算出された、ストロークの形状やストロークが手書きされた方向に基づく特徴量が設定される。
優先度算出部304は、例えば、手書き入力された1以上の第1ストロークが任意の文字列(例えば、単語、句、等の文字のまとまり)を構成するストロークであって、その文字列が入力途中である場合(すなわち、文字列を構成するすべてのストロークの手書き入力が完了していない場合)、その1以上の第1ストロークに対応する特徴量(第1特徴量)と、手書き文字列データ402A内の候補文字列に対応する特徴量(第2特徴量)とを用いて、候補文字列の類似度を算出する。優先度算出部304は、手書き文字列データ402A内の複数の候補文字列の各々に対応する類似度を算出する。
そして、ソート部305は、手書き文字列データ402A内の複数の候補文字列を、算出された類似度の降順にソートする。
図11は、手書き文字列データ402Aから、類似度に基づいてソートされた候補文字列が取得される例を示す。ここでは、手書き文字列“app”を構成する1以上の第1ストロークが入力されている場合を想定する。
手書き文字列“app”を構成する1以上の第1ストロークが入力されている場合、優先度算出部304は、上述したように、手書き文字列データ402Aに含まれる複数の候補文字列の各々について、1以上の第1ストローク“app”に対する類似度を算出する。優先度算出部304は、例えば、1以上の第1ストローク“app”に対応する第1特徴量と、手書き文字列データ402Aの各エントリに含まれる第2特徴量とを用いて、手書き文字列データ402Aに示される候補文字列毎の類似度を算出する。この類似度は、例えば、1以上の第1ストロークの第1特徴量と、候補文字列を構成するストロークの第2特徴量との類似性に基づく離散値で表される。そして、ソート部305は、手書き文字列データ402A内の複数の候補文字列を、算出された類似度の降順にソートする。
図11に示すように、最も類似度が高い候補文字列(例えば、類似度=6)は、手書き文字列データ402Aに含まれる複数の候補文字列の内、例えば、文字列“app”に前方一致する候補文字列“apple”、“approve”、“application”、及び“apply”である。また、次に類似度が高い候補文字列(例えば、類似度=3)は、手書き文字列データ402Aに含まれる複数の候補文字列の内、例えば、文字列“ap”(すなわち、文字列“app”の先頭の2文字)に前方一致する候補文字列“aps”及び“aplicot”である。
なお、手書き文字列データ402A内の複数の候補文字列に同一の類似度が設定されている場合には、それら複数の候補文字列は、手書き文字列データ402Aから検出された順序や、手書き文字列データ402Aに格納された順序、等に基づいて並べられている。
ソート部305は、さらに、類似度の降順に並べられた複数の候補文字列を、候補文字列を構成するストロークを手書きするための作業量(例えば、候補文字列を構成するストロークの数)が多い順に並べ替える。この作業量は、例えば、文字列を構成する1以上のストロークの数、当該1以上のストロークの長さの総和、当該1以上のストロークを表す座標(ポイント)の数(すなわち、対応するストロークデータに含まれる座標データの数)、及び当該1以上のストロークを手書きするために要した時間の内の少なくとも1つに基づく値で示される。
複数の候補文字列は、それぞれ、手書きにより入力された1以上の第1ストローク(“app”)に対応する1以上の手書き文字と、この1以上の第1ストロークに対応しない手書き文字とを含んでいる。例えば、文字列“apple”は、1以上の第1ストローク “app”に対応する1以上の手書き文字“app”と、1以上の第1ストローク“app”に対応しない1以上の手書き文字“le”とを含んでいる。したがって、ソート部305は、類似度の降順に並べられた複数の候補文字列を、1以上の第1ストロークに対応しない1以上の手書き文字を構成するストロークを手書きするための作業量(例えば、候補文字列を構成するストロークの数)が多い順に並べ替えてもよい。すなわち、ソート部305は、複数の候補文字列を、まだ手書きされていない部分の作業量が多い順に並べ替えることができる。
図12に示すように、類似度が“6”である候補文字列は、文字列を構成するストロークの数の降順に、すなわち、“application”、“approve”、“apply”、“apple”の順に並べ替えられる。これにより、ユーザによる手書き入力の作業量が多い文字列ほど上位に順位付けされるので、ユーザによる手書きの作業量が効果的に軽減される順序で、入力が予測される候補文字列を表示することができる。
なお、優先度算出部304は、手書き入力された1以上の第1ストロークに対する候補文字列の類似度と、文字列を構成するストロークを手書きするための作業量を示す値とが統合された優先度を算出してもよい。優先度算出部304は、例えば、類似度と作業量を示す値とを重み付け加算することによって優先度を算出する。ソート部305は、手書き文字列データ402A内の複数の候補文字列を、候補文字列に対応する優先度の降順にソートする。これにより、上述した構成と同様に、ユーザによる手書きの作業量が効果的に軽減される順序で候補文字列を表示することができる。
候補表示処理部306は、並べ替えられた候補文字列を画面に表示する。候補表示処理部306は、例えば、上位から所定数の候補文字列を画面に表示してもよいし、類似度(又は優先度)がしきい値以上である候補文字列を画面に表示してもよい。また、候補表示処理部306は、例えば、上位の候補文字列ほど、直近の手書き入力位置(例えば、第1ストロークの最後の座標)に近い位置に配置されるようにしてもよい。
次いで、補完表示処理部307は、タッチスクリーンディスプレイ17上での選択操作によって、表示されている1以上の候補文字列から1つの候補文字列(以下、第1候補文字列とも称する)が選択されたことに応じて、1以上の第1ストローク(すなわち、入力途中の文字列を構成するストローク)を第1候補文字列を構成する1以上の第2ストロークに置き換えることによって、その1以上の第2ストロークを画面に表示する。
より具体的には、補完表示処理部307は、まず、手書き文字列データ402Aから、選択された第1候補文字列に対応するストロークデータを読み出す。そして、補完表示処理部307は、1以上の第1ストロークを画面から消去し、その1以上の第1ストロークが描画されていた位置に、読み出されたストロークデータに基づく1以上の第2ストロークを描画する。また、補完表示処理部307は、1以上の第1ストロークに対応するストロークデータを作業メモリ401から削除し、1以上の第2ストロークに対応するストロークデータを作業メモリ401に一時保存してもよい。
ページ保存処理部309は、生成されたストロークデータ(作業メモリ401に一時保存されたストロークデータ)を、手書き文書データ402Bとして記憶媒体402に保存する。記憶媒体402は、例えば、タブレットコンピュータ10内のストレージデバイスである。
ページ取得処理部310は、記憶媒体402から既に格納されている任意の手書き文書データ402Bを読み出す。読み出された手書き文書データ402Bは文書表示処理部311に送られる。文書表示処理部311は、手書き文書データ402Bを解析し、この解析結果に基づいて、ストロークデータ(時系列情報)によって示される各ストロークの軌跡を含む文書(ページ)を画面上に表示する。
なお、表示されている候補文字列からいずれの文字列も選択されずに、文字列の手書き入力が完了した場合(例えば、ユーザが文字列を構成するすべてのストロークを手書き入力した場合)、文字列データ生成部308は、入力が完了した文字列に対応する手書き文字列データ402A(手書き文字列データのエントリ)を生成する。文字列データ生成部308は、手書き入力が完了した文字列を構成する1以上のストロークに対応する特徴量を用いて文字認識処理を行うことよって、その1以上のストロークに対応する文字(テキスト)を認識してもよい。文字列データ生成部308は、認識された文字(テキスト)と特徴量とストロークデータとを含む手書き文字列データのエントリを生成し、当該エントリを手書き文字列データ402Aに追加する。
また、文字列データ生成部308は、既に作成された手書き文書のデータ402Bを解析することによって、手書き文字列データ402Aを生成してもよい。文字列データ生成部308は、例えば、英語の手書き文書データ402Bを解析する場合、手書き文書に含まれる文字列(手書き文字列に対応するストロークデータ)に対して文字認識処理を施すことによって、手書きの文字列に対応するテキスト(テキストデータ)を生成する。そして、文字列データ生成部308は、生成されたテキストから単語を検出し、単語毎の手書き文字列データ402Aのエントリを生成する。
また、文字列データ生成部308は、例えば、日本語の手書き文書データ402Bを解析する場合、手書き文書に含まれる文字列(手書き文字列に対応するストロークデータ)に対して文字認識処理を施すことによって、手書きの文字列に対応するテキスト(テキストデータ)を生成する。そして、文字列データ生成部308は、生成されたテキストに形態素解析処理を施すことによって、そのテキストを単語(形態素)に区切り、単語毎の手書き文字列データ402Aのエントリを生成する。
これにより、既に作成された手書き文書のデータ402Bから手書き文字列データ402Aを生成することができる。
ところで、表示される手書き候補文字列は、その文字列の一部を選択することもできる。
図13は、候補文字列が表示される検索画面上で、候補文字列の一部を選択するための操作が行われる例を示す。ここでは、ユーザが文字列“approach”を手書き入力しようとしている場合を想定する。キーワード入力エリア51には、“approach”を構成する手書きストローク521,522,523(手書き文字列“ap”)が途中まで入力され、当該手書きストローク521,522,523に応じた候補文字列541,542,543が表示されている。
ユーザは、候補文字列541,542,543に“approach”が含まれていないので、この“approach”と前方の5文字が一致する候補文字列“approve”542を利用して、“approve”542の内の文字列“appro”だけを入力するための選択操作を行う。この選択操作は、候補文字列の内の一部を指定する操作であり、例えば、候補文字列内の文字間にストローク55を手書き入力する操作である。
補完表示処理部307は、この選択操作に応じて、ストローク55が手書きされた候補文字列“approve”542の領域の内、当該ストローク55よりも前方にある文字列“appro”を検出する。そして、補完表示処理部307は、手書きストローク521,522,523を、検出された文字列“appro”を構成するストロークに置き換えることによって、文字列“appro”56をキーワード入力エリア51に表示する。
ユーザは、さらに、手書きストローク571,572,573(手書き文字列“ach”)を入力することによって、手書き文字列“approach”の入力を完了させることができる。
以上のように、表示される候補文字列541,542,543に、入力したい文字列に完全に一致する文字列が含まれていない場合であっても、入力したい文字列に部分的に一致する候補文字列を利用することによって、手書き入力にかかる作業量を軽減することができる。なお、上述した選択操作は、候補文字列の一部を囲むストロークを手書き入力する操作、候補文字列内の文字間をタップする操作等、候補文字列の内の一部を指定できる操作であればどのような操作であってもよい。
次いで、図14から図16を参照して、手書き文書の作成中に表示される候補文字列の例を説明する。
図14に示す例では、ユーザによる手書き入力操作に応じて、手書き文書60上に手書きの文字列(ストローク)が描画されている。例えば、ユーザがストローク611,612,613に対応する手書き入力操作を行ったことに応じて、手書き文書60上に手書き文字列“bu”が描画されている。
候補表示処理部306は、ストローク611,612,613に対応する手書き入力操作に応じて、これらストローク611,612,613に対する優先度(類似度)が高い候補文字列“business”621,“build”622,“buono”623を画面に表示する。その際、候補表示処理部306は、入力のための作業量が大きい候補文字列が、ストローク611,612,613に近い位置に配置されるようにする。つまり、候補表示処理部306は、特徴量に基づく類似度と入力のための作業量とに基づいて並べ替えられた候補文字列が取得されている場合に、上位の候補文字列ほど(すなわち、類似度と作業量とに基づく優先度が高い候補文字列ほど)、直近に入力されたストローク611,612,613に近い位置に表示されるようにする。
図14に示す例では、候補文字列621,622,623が、ストローク611,612,613に対して近い位置から、“business”621,“build”622,“buono”623の順に水平方向に並べられている。
また、図15に示すように、候補文字列621,622,623は、手書き文書63のサイズや形状を考慮して配置が決定されてもよい。図15に示す例では、候補文字列621,622,623が、ストローク611,612,613に対して近い位置から、“business”621,“build”622,“buono”623の順に垂直方向に並べられている。また、候補文字列621,622,623は、ストローク611,612,613に対して近い位置からグリッド状に配置されてもよい。
候補文字列621,622,623は、さらに、上位の候補文字列ほど(すなわち、類似度と作業量とに基づく優先度が高い候補文字列ほど)目立つように表示されてもよい。例えば、上位の候補文字列は下位の候補文字列よりも目立つ色で表示される。また、例えば、上位の候補文字列は下位の候補文字列よりも大きなサイズで表示される。
補完表示処理部307は、ユーザが、表示されている候補文字列621,622,623の内の一つを選択する選択操作(例えば、タップ操作)を行ったことに応じて、選択された候補文字列を用いて手書きストローク611,612,613を補完する。
また、図16に示すように、1つの候補文字列が表示される領域66上でのスクロール操作に応じて、候補文字列が順次切り替えられるようにしてもよい。候補表示処理部306は、例えば、初期状態では、最上位の候補文字列(すなわち、類似度と作業量とに基づく優先度が最も高い候補文字列)を領域66に表示し、また上位の候補文字列ほど少ないスクロール操作で表示されるようにする。
候補表示処理部306は、ユーザがこの領域66上でスクロール操作を行ったことに応じて、表示される候補文字列を切り換える。例えば、領域66に文字列“business”が表示されている場合に、左から右へのスクロール操作が行われたことに応じて、文字列“business”が文字列“build”に切り換えられる。なお、候補表示処理部306は、ボタン66A又はボタン66Bをタップする操作に応じて、表示される候補文字列が切り換えられるようにしてもよい。
そして、補完表示処理部307は、ユーザが領域66に表示されている候補文字列を選択する選択操作(例えば、タップ操作)を行ったことに応じて、選択された候補文字列を用いて手書きストローク611,612,613を補完する。
このように、手書きによる作業量が多い候補文字列(例えば、“business”)は、直近の入力位置に近い位置に表示される。したがって、ユーザにとって入力が煩雑な文字列が、入力が容易な文字列よりも優先的に表示(配置)されるので、候補文字列を利用した予測入力の効果を高めることができる。
次いで、図17は、選択された候補文字列を用いて手書きストローク611,612,613が補完される例を示す。ここでは、手書き文書60上に表示されている候補文字列621,622,623から、候補文字列“business”621が選択された場合を想定する。
補完表示処理部307は、候補文字列621が選択されたことに応じて、手書きストローク611,612,613と、文字列621を構成する1以上のストロークとの間で対応するストロークを検出する。つまり、補完表示処理部307は、手書きストローク611,612,613と、文字列“business”621の内の“bu”を構成する3つのストロークとを検出する。
次いで、補完表示処理部307は、手書きストローク611,612,613を包含する矩形68を決定し、検出された“bu”を構成する3つのストロークを包含する矩形69を決定する。補完表示処理部307は、これら矩形68,69のサイズ比に基づいて、手書き文書60に挿入される文字列621(すなわち、文字列621を構成するストローク)を拡大又は縮小する。そして、補完表示処理部307は、手書き文書60上の手書きストローク611,612,613を、拡大又は縮小された手書き文字列621に置き換えることによって、当該手書き文書60上に手書き文字列621を表示する。
これにより、ユーザが、手書きストローク“bu”611,612,613を入力する手書き入力操作を行った後、候補文字列“business”621を選択する選択操作を行うだけで、手書き文書60上に文字列“business”が描画され、ユーザによる作業量を軽減することができる。
次いで、図18のフローチャートを参照して、予測入力ユーティリティプログラム202によって実行される手書き入力処理の手順の例について説明する。
軌跡表示処理部301は、手書き入力操作によるペン100等の動きの軌跡(ストローク)を文書上に表示する(ブロックB11)。また、時系列情報生成部302は、手書き入力操作による軌跡に対応する座標列に基づいて上述の時系列情報(時系列順に並べられたストロークデータ)を生成し、その時系列情報を作業メモリ401に一時保存する(ブロックB12)。
また、図19のフローチャートは、予測入力ユーティリティプログラム202によって実行される予測入力処理の手順の例を示す。
特徴量算出部303は、1つの手書きストローク(第1ストローク)の入力が完了したか否かを判定する(ブロックB201)。特徴量算出部303は、例えば、時系列情報生成部302から、第1ストロークに対応するストロークデータを受け取った場合に、第1ストロークの入力が完了したことを検出する。第1ストロークの入力が完了していない場合(ブロックB201のNO)、ブロックB201に戻り、第1ストロークの入力が完了したか否かが再度判定される。
第1ストロークの入力が完了した場合(ブロックB201のYES)、特徴量算出部303は、時系列情報生成部302によって生成された、当該第1ストロークに対応する時系列情報(ストロークデータ)を用いて、特徴量を算出する(ブロックB202)。優先度算出部304は、算出された特徴量(第1特徴量)と、手書き文字列データ402A内の候補文字列に対応する特徴量(第2特徴量)とを用いて、候補文字列の優先度(類似度)を算出する(ブロックB203)。より具体的には、第1ストロークが、入力途中の文字列(文字)を構成するストロークである場合、優先度算出部304は、算出された特徴量を含む、入力途中の文字列の文字を構成する1以上の手書きストロークに対応する特徴量(第1特徴量)と、手書き文字列データ402A内の候補文字列に対応する特徴量(第2特徴量)とを用いて、候補文字列の優先度を算出する。また、入力された第1ストロークが文字列を構成する先頭のストロークである場合、優先度算出部304は、算出された特徴量(第1特徴量)と、手書き文字列データ402A内の候補文字列に対応する特徴量(第2特徴量)とを用いて、候補文字列の優先度を算出する。優先度算出部304は、例えば、第1特徴量と第2特徴量との類似度が高いほど、高い優先度を算出する。
次いで、優先度算出部304は、手書き文字列データ402A内に、他の候補文字列のエントリ(すなわち、優先度がまだ算出されていない候補文字列のエントリ)が含まれているか否かを判定する(ブロックB204)。手書き文字列データ402Aに他の候補文字列のエントリが含まれている場合(ブロックB204のYES)、ブロックB203に戻り、その候補文字列の優先度が算出される。
手書き文字列データ402A内に他の候補文字列のエントリが含まれていない場合、すなわち、すべての候補文字列の優先度が算出された場合(ブロックB204のYES)、ソート部305は候補文字列を優先度が高い順に並べ替える(ブロックB205)。ソート部305はさらに、並べ替えられた候補文字列の内、同じ優先度である複数の候補文字列を、候補文字列を構成するストロークの数が多い順に(ストロークの数の降順に)並べ替える(ブロックB206)。そして、候補表示処理部306は、候補文字列を、それぞれの候補文字列を構成するストロークの数に応じた順番で並べて表示する(ブロックB207)。候補表示処理部306は、例えば、上位の候補文字列ほど、直近の手書き入力位置(例えば、第1ストロークの最後の座標)に近い位置に配置する。
次いで、補完表示処理部307は、タッチスクリーンディスプレイ17上での選択操作によって、表示されている候補文字列から1つの文字列が選択されたか否かを判定する(ブロックB208)。表示されている候補文字列から1つの文字列が選択された場合(ブロックB208のYES)、補完表示処理部307は、選択された文字列に対応するストロークデータを用いて、画面に表示されている入力途中の文字列に対応する1以上の手書きストロークを、選択された候補文字列に対応する1以上の手書きストロークに置き換えて表示する(ブロックB209)。
一方、表示されている候補文字列からいずれの文字列も選択されない場合(ブロックB208のNO)、文字列データ生成部308は、第1ストロークの入力によって、入力途中であった文字列の入力が完了したか否かを判定する(ブロックB210)。文字列の入力が完了していない場合(ブロックB210のNO)、ブロックB201に戻り、新たに入力される手書きストロークがさらに考慮された候補文字列を表示するための処理が実行される。また、文字列の入力が完了している場合(ブロックB210のYES)、候補文字列を用いた予測入力を利用することなく、文字列に対応するストロークの手書き入力が完了したので、文字列データ生成部308は、入力が完了した文字列に対応する手書き文字列データ402A(手書き文字列データのエントリ)を生成する(ブロックB211)。
なお、予測入力ユーティリティプログラム202は、文字が手書き入力されるあらゆるソフトウェア(例えば、ウェブブラウザ、メーラ、文書作成ソフトウェア、表計算ソフトウェア、等)と連携して利用することができる。
以上説明したように、本実施形態によれば、入力が予測される文字列の候補を効果的に提示することができる。軌跡表示処理部301は、タッチスクリーンディスプレイ17の画面上で手書きにより入力される1以上の第1ストロークを表示する。候補表示処理部306は、手書き文書に含まれる複数の手書き文字列の内、1以上の第1ストロークに対応する1以上の手書き文字を含む複数の候補を、前記画面に表示するものであって、これら複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される。
これにより、ユーザによる手書き入力をより省力化し、候補文字列を提示するサジェスト機能の利便性を向上させることができる。
なお、図18及び図19のフローチャートで説明した本実施形態の処理手順はすべてソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
17A…LCD、202…予測入力ユーティリティプログラム、301…軌跡表示処理部、302…時系列情報生成部、303…特徴量算出部、304…優先度算出部、305…ソート部、306…候補表示処理部、307…補完表示処理部、308…文字列データ生成部、309…ページ保存処理部、310…ページ取得処理部、311…文書表示処理部、401…作業メモリ、402…記憶媒体、402A…手書き文字列データ、402B…手書き文書データ。

Claims (15)

  1. タッチスクリーンディスプレイの画面上で手書きにより入力される1以上の第1ストロークを表示する表示処理手段を具備し、
    前記表示処理手段は、手書き文書に含まれる複数の手書き文字列の内、前記1以上の第1ストロークに対応する1以上の手書き文字を含む複数の候補を、前記画面に表示するものであって、
    前記複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される電子機器。
  2. 前記複数の候補は、それぞれ、前記1以上の第1ストロークに対応する1以上の手書き文字と、前記1以上の第1ストロークに対応しない1以上の手書き文字とを含む手書き文字列であって、
    前記複数の候補は、前記1以上の第1ストロークに対応しない1以上の手書き文字を構成するストロークの数に応じた順番で並べて表示される請求項1記載の電子機器。
  3. 前記表示処理手段は、前記表示された複数の候補から第1候補が選択されたことに応じて、前記1以上の第1ストロークを前記第1候補を構成する1以上の第2ストロークに置き換えることによって、前記1以上の第2ストロークを前記画面に表示する請求項1記載の電子機器。
  4. 前記表示処理手段は、前記複数の候補それぞれを構成するストロークに対応する特徴量を用いて、前記複数の候補の内、前記1以上の第1ストロークに対応する特徴量との類似度がしきい値以上である特徴量をそれぞれ有する1以上の候補を、前記画面に表示し、
    前記1以上の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される請求項1記載の電子機器。
  5. 前記複数の候補は、さらに、それぞれの候補を構成するストロークの数と、それぞれの候補を構成するストロークの長さの総和と、それぞれの候補を構成するストロークを表す座標の数と、それぞれの候補を構成するストロークを手書きするために要した時間との内の少なくとも1つに応じた順番で並べて表示される請求項1記載の電子機器。
  6. タッチスクリーンディスプレイの画面上で手書きにより入力される1以上の第1ストロークを表示することと、
    手書き文書に含まれる前記複数の手書き文字列の内、前記1以上の第1ストロークに対応する1以上の手書き文字を含む複数の候補を、前記画面に表示することとを具備し、
    前記複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される方法。
  7. 前記複数の候補は、それぞれ、前記1以上の第1ストロークに対応する1以上の手書き文字と、前記1以上の第1ストロークに対応しない1以上の手書き文字とを含む手書き文字列であって、
    前記複数の候補は、前記1以上の第1ストロークに対応しない1以上の手書き文字を構成するストロークの数に応じた順番で並べて表示される請求項6記載の方法。
  8. 前記表示された複数の候補から第1候補が選択されたことに応じて、前記1以上の第1ストロークを前記第1候補を構成する1以上の第2ストロークに置き換えることによって、前記1以上の第2ストロークを前記画面に表示することをさらに具備する請求項6記載の方法。
  9. 前記候補を表示することは、前記複数の候補それぞれを構成するストロークに対応する特徴量を用いて、前記複数の候補の内、前記1以上の第1ストロークに対応する特徴量との類似度がしきい値以上である特徴量をそれぞれ有する1以上の候補を、前記画面に表示することを含み、
    前記1以上の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される請求項6記載の方法。
  10. 前記複数の候補は、さらに、それぞれの候補を構成するストロークの数と、それぞれの候補を構成するストロークの長さの総和と、それぞれの候補を構成するストロークを表す座標の数と、それぞれの候補を構成するストロークを手書きするために要した時間との内の少なくとも1つに応じた順番で並べて表示される請求項6記載の方法。
  11. コンピュータにより実行されるプログラムであって、前記プログラムは、
    タッチスクリーンディスプレイの画面上で手書きにより入力される1以上の第1ストロークを表示する手順と、
    手書き文書に含まれる複数の手書き文字列の内、前記1以上の第1ストロークに対応する1以上の手書き文字列を含む複数の候補を、前記画面に表示する手順とを前記コンピュータに実行させ、
    前記複数の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示されるプログラム。
  12. 前記複数の候補は、それぞれ、前記1以上の第1ストロークに対応する1以上の手書き文字と、前記1以上の第1ストロークに対応しない1以上の手書き文字とを含む手書き文字列であって、
    前記複数の候補は、前記1以上の第1ストロークに対応しない1以上の手書き文字を構成するストロークの数に応じた順番で並べて表示される請求項11記載のプログラム。
  13. 前記表示された複数の候補から第1候補が選択されたことに応じて、前記1以上の第1ストロークを前記第1候補を構成する1以上の第2ストロークに置き換えることによって、前記1以上の第2ストロークを前記画面に表示する手順を前記コンピュータにさらに実行させる請求項11記載のプログラム。
  14. 前記候補を表示する手順は、前記複数の候補それぞれを構成するストロークに対応する特徴量を用いて、前記複数の候補の内、前記1以上の第1ストロークに対応する特徴量との類似度がしきい値以上である特徴量をそれぞれ有する1以上の候補を、前記画面に表示する手順を含み、
    前記1以上の候補は、それぞれの候補を構成するストロークの数に応じた順番で並べて表示される請求項11記載のプログラム。
  15. 前記複数の候補は、さらに、それぞれの候補を構成するストロークの数と、それぞれの候補を構成するストロークの長さの総和と、それぞれの候補を構成するストロークを表す座標の数と、それぞれの候補を構成するストロークを手書きするために要した時間との内の少なくとも1つに応じた順番で並べて表示される請求項11記載のプログラム。
JP2013232262A 2013-11-08 2013-11-08 電子機器及び方法 Pending JP2015094977A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013232262A JP2015094977A (ja) 2013-11-08 2013-11-08 電子機器及び方法
EP20140166091 EP2871571A1 (en) 2013-11-08 2014-04-25 Electronic apparatus and method for inputting strings by handwriting
US14/286,727 US9606981B2 (en) 2013-11-08 2014-05-23 Electronic apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013232262A JP2015094977A (ja) 2013-11-08 2013-11-08 電子機器及び方法

Publications (1)

Publication Number Publication Date
JP2015094977A true JP2015094977A (ja) 2015-05-18

Family

ID=50884663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013232262A Pending JP2015094977A (ja) 2013-11-08 2013-11-08 電子機器及び方法

Country Status (3)

Country Link
US (1) US9606981B2 (ja)
EP (1) EP2871571A1 (ja)
JP (1) JP2015094977A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018049502A (ja) * 2016-09-23 2018-03-29 株式会社Nttドコモ 情報処理装置
JP2018152006A (ja) * 2017-03-15 2018-09-27 オムロン株式会社 文字入力装置、文字入力方法、文字入力プログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5813780B2 (ja) 2013-08-02 2015-11-17 株式会社東芝 電子機器、方法及びプログラム
US9201592B2 (en) * 2013-08-09 2015-12-01 Blackberry Limited Methods and devices for providing intelligent predictive input for handwritten text
JP2015148946A (ja) * 2014-02-06 2015-08-20 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP6342194B2 (ja) 2014-03-28 2018-06-13 株式会社東芝 電子機器、方法及びプログラム
US10528249B2 (en) * 2014-05-23 2020-01-07 Samsung Electronics Co., Ltd. Method and device for reproducing partial handwritten content
JP6430198B2 (ja) * 2014-09-30 2018-11-28 株式会社東芝 電子機器、方法及びプログラム
US10489051B2 (en) * 2014-11-28 2019-11-26 Samsung Electronics Co., Ltd. Handwriting input apparatus and control method thereof
JP6740074B2 (ja) * 2016-09-30 2020-08-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11354503B2 (en) * 2017-07-27 2022-06-07 Samsung Electronics Co., Ltd. Method for automatically providing gesture-based auto-complete suggestions and electronic device thereof
JP7298290B2 (ja) * 2018-06-19 2023-06-27 株式会社リコー 手書き入力表示装置、手書き入力表示方法およびプログラム
WO2019243954A1 (en) * 2018-06-19 2019-12-26 Ricoh Company, Ltd. Handwriting input display apparatus, handwriting input display method and recording medium storing program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255159A (ja) * 1995-03-15 1996-10-01 Toshiba Corp 文字列予測方法,文字列予測装置,仮名漢字変換方法,仮名漢字変換装置及び文書作成装置
JP2013025390A (ja) * 2011-07-15 2013-02-04 Metamoji Corp 手書き入力方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06251187A (ja) 1993-02-23 1994-09-09 Oki Electric Ind Co Ltd 文字認識誤り修正方法及び装置
JPH07121662A (ja) 1993-10-25 1995-05-12 Toshiba Corp 文書作成装置及びその認識候補の出力制御方法
JP2939119B2 (ja) 1994-05-16 1999-08-25 シャープ株式会社 手書き文字入力表示装置および方法
JPH09120433A (ja) 1995-10-24 1997-05-06 Toshiba Corp 文字認識方法及び文書作成装置
JPH09319504A (ja) 1996-05-31 1997-12-12 Sanyo Electric Co Ltd 文書処理装置、文書処理方法、記憶媒体
JPH10171589A (ja) 1996-12-09 1998-06-26 Hitachi Ltd 手書き文字入出力方法
JP2000187658A (ja) 1998-12-22 2000-07-04 Toshiba Corp 文字列予測方法、及び文字列予測装置
JP2000215270A (ja) 1999-01-27 2000-08-04 Toshiba Corp 文字列予測方法及び文字列予測装置
JP2000348141A (ja) 1999-06-08 2000-12-15 Toshiba Corp 入力情報の予測方法と装置、ならびにプログラム記憶媒体
US20060188162A1 (en) * 2002-10-31 2006-08-24 Microsoft Corporation Common interface for ink trees
JP2005025566A (ja) 2003-07-03 2005-01-27 Sharp Corp 手書き入力装置、手書き入力方法、手書き入力プログラム、および、プログラム記録媒体
JP2005190199A (ja) 2003-12-25 2005-07-14 Seiko Epson Corp 手書き文字入力表示装置及び手書き文字入力表示方法ならびにそのプログラム
US8411958B2 (en) 2004-05-04 2013-04-02 Nokia Corporation Apparatus and method for handwriting recognition
US7466859B2 (en) 2004-12-30 2008-12-16 Motorola, Inc. Candidate list enhancement for predictive text input in electronic devices
US7865018B2 (en) 2005-06-02 2011-01-04 Microsoft Corporation Personalized implicit and explicit character shape adaptation and recognition
JP2007213416A (ja) 2006-02-10 2007-08-23 Canon Inc 手書き文字列検索装置、手書き文字列検索方法及びプログラム
JP4649512B2 (ja) 2006-02-14 2011-03-09 株式会社日立製作所 文字列検索方法およびその装置
JP2007265171A (ja) 2006-03-29 2007-10-11 Toshiba Corp 入力装置およびその方法
US7813774B2 (en) * 2006-08-18 2010-10-12 Microsoft Corporation Contact, motion and position sensing circuitry providing data entry associated with keypad and touchpad
JP5014813B2 (ja) 2007-01-26 2012-08-29 三菱電機株式会社 手書き文字入力装置および手書き文字入力プログラム
JP5024019B2 (ja) 2007-12-17 2012-09-12 大日本印刷株式会社 端末装置及びそのプログラム
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US8908973B2 (en) * 2008-03-04 2014-12-09 Apple Inc. Handwritten character recognition interface
JP2009223430A (ja) 2008-03-13 2009-10-01 Toshiba Corp 情報処理装置、手書き文字入力方法および手書き文字入力プログラム
JP5282699B2 (ja) * 2009-08-14 2013-09-04 富士通株式会社 携帯端末装置、文字変換装置、文字変換方法およびプログラム
JP5487208B2 (ja) * 2009-08-27 2014-05-07 株式会社東芝 情報検索装置
KR101454523B1 (ko) * 2009-12-30 2014-11-12 모토로라 모빌리티 엘엘씨 문자 입력 방법 및 장치
WO2011079446A1 (en) 2009-12-30 2011-07-07 Nokia Corporation Method and apparatus for passcode entry
JP2012098891A (ja) 2010-11-01 2012-05-24 Takram Design Engineering:Kk 情報処理システムおよび情報処理方法
US8918408B2 (en) 2012-08-24 2014-12-23 Microsoft Corporation Candidate generation for predictive input using input history
JP5813780B2 (ja) 2013-08-02 2015-11-17 株式会社東芝 電子機器、方法及びプログラム
JP2015162088A (ja) 2014-02-27 2015-09-07 株式会社東芝 電子機器、方法及びプログラム
JP6342194B2 (ja) 2014-03-28 2018-06-13 株式会社東芝 電子機器、方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255159A (ja) * 1995-03-15 1996-10-01 Toshiba Corp 文字列予測方法,文字列予測装置,仮名漢字変換方法,仮名漢字変換装置及び文書作成装置
JP2013025390A (ja) * 2011-07-15 2013-02-04 Metamoji Corp 手書き入力方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018049502A (ja) * 2016-09-23 2018-03-29 株式会社Nttドコモ 情報処理装置
JP2018152006A (ja) * 2017-03-15 2018-09-27 オムロン株式会社 文字入力装置、文字入力方法、文字入力プログラム

Also Published As

Publication number Publication date
EP2871571A1 (en) 2015-05-13
US9606981B2 (en) 2017-03-28
US20150135065A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
JP2015094977A (ja) 電子機器及び方法
EP2993557B1 (en) Electronic device and method for processing handwriting
JP5458161B1 (ja) 電子機器および方法
JP6189451B2 (ja) 手書き文書情報を処理するための電子機器および方法
JP6270565B2 (ja) 電子機器および方法
JP6180888B2 (ja) 電子機器、方法およびプログラム
JP6430197B2 (ja) 電子機器および方法
US20150146986A1 (en) Electronic apparatus, method and storage medium
JP2015114976A (ja) 電子機器及び方法
JP6426417B2 (ja) 電子機器、方法及びプログラム
JP6301736B2 (ja) 電子機器及び方法
JP2015162088A (ja) 電子機器、方法及びプログラム
WO2014147716A1 (ja) 電子機器および手書き文書処理方法
JP6010253B2 (ja) 電子機器、方法およびプログラム
JP5395927B2 (ja) 電子機器および手書き文書検索方法
WO2014147712A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP2014092902A (ja) 電子機器および手書き文書処理方法
JPWO2015059787A1 (ja) 電子機器、方法及びプログラム
JP6342194B2 (ja) 電子機器、方法及びプログラム
JP2014149614A (ja) 電子機器および手書き文書処理方法
WO2015107692A1 (ja) 手書きのための電子機器および方法
JP2014106799A (ja) 電子機器および方法
JPWO2016031016A1 (ja) 電子機器、方法及びプログラム
JP2015170150A (ja) 電子機器及び方法
JP6202997B2 (ja) 電子機器、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170926