(57)【特許請求の範囲】
【請求項１】
文字の座標データを受け付ける文字受付手段と、
文字パターンの座標データ、及び該文字パターンに対応する文字を記憶している文字認識辞書部と、
複数の単語を記憶している単語辞書部と、
前記文字受付手段で受け付けた文字の座標データを前記文字認識辞書部に記憶している座標データとパターンマッチングすることにより一又は複数の文字パターンに対応する文字を抽出する手段と、
抽出した文字を含む単語を、前記単語辞書部から検索する検索手段と、
前記単語辞書部の検索結果の中から、前記文字受付手段が受け付けた文字の座標データに基づく一又は複数の前記文字パターンに対応する文字列のみを抽出して部分文字列を生成する部分文字列生成手段と、
該部分文字列生成手段により生成した一又は複数の部分文字列を表示する第１の表示処理手段と、
表示した部分文字列から何れかの部分文字列の選択を受け付ける手段と、
選択された部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出する手段と、
抽出した単語を表示する第２の表示処理手段と
を備えることを特徴とする単語検索装置。
【請求項２】
前記第１の表示処理手段は、前記検索手段により検索した単語、及び前記部分文字列生成手段により生成した部分文字列を並べて表示することを特徴とする請求項１に記載の単語検索装置。
【請求項３】
前記部分文字列生成手段により生成した部分文字列に含まれる文字ごとに、該文字に関する選択の候補となる候補文字を抽出する候補文字抽出手段と、
抽出した候補文字を表示する第１の表示処理手段と、
表示した候補文字から一の候補文字の選択を受け付ける手段と、
前記部分文字列から、選択された候補文字を含む部分文字列を再構成する部分文字列再構成手段と、
再構成した部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出する手段と、
抽出した単語を表示する第２の表示処理手段と
を備えることを特徴とする請求項１に記載の単語検索装置。
【請求項４】
前記単語辞書部の検索結果に基づいて検索された単語数を計数する手段と、
計数された単語数が所定値より大きいか否かを判断する手段と、
該手段で大きいと判断された場合にのみ、前記部分文字列生成手段で前記部分文字列を生成するようにしてあり、該手段で大きくないと判断された場合、前記単語辞書部の検索結果からの選択を受け付けることを特徴とする請求項１乃至３のいずれかに記載の単語検索装置。
【請求項５】
単語検索装置が、
文字の座標データを受け付け、
受け付けた文字の座標データを文字パターンの座標データ、及び該座標データに対応する文字を記憶している文字認識辞書部に記憶している座標データとパターンマッチングすることにより一又は複数の文字パターンに対応する文字を抽出し、
抽出した文字を含む単語を、複数の単語を記憶している単語辞書部から検索し、
前記単語辞書部の検索結果の中から、受け付けた文字の座標データに基づく一又は複数の前記文字パターンに対応する文字列のみを抽出して部分文字列を生成し、
生成した一又は複数の部分文字列を表示し、
表示した部分文字列から何れかの部分文字列の選択を受け付け、
選択した部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出し、
抽出した単語を表示する
ことを特徴とする単語検索方法。
【請求項６】
前記単語検索装置が、
前記単語辞書部から検索した単語、及び生成した部分文字列を並べて表示することを特徴とする請求項５に記載の単語検索方法。
【請求項７】
前記単語検索装置が、
生成した部分文字列に含まれる文字ごとに、該文字に関する選択の候補となる候補文字を抽出し、
抽出した候補文字を表示し、
表示した候補文字から一の候補文字の選択を受け付け、
前記部分文字列から、選択された候補文字を含む部分文字列を再構成し、
再構成した部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出し、
抽出された単語を表示することを特徴とする請求項５に記載の単語検索方法。
【請求項８】
前記単語検索装置が、
前記単語辞書部の検索結果に基づいて検索された単語数を計数し、
計数された単語数が所定値より大きいか否かを判断し、
大きいと判断された場合にのみ、前記部分文字列を生成し、大きくないと判断された場合、前記単語辞書部の検索結果からの選択を受け付けることを特徴とする請求項５乃至７のいずれかに記載の単語検索方法。
【請求項９】
コンピュータを、
文字の座標データを受け付ける文字受付手段、
該文字受付手段で受け付けた文字の座標データを文字パターンの座標データ、及び該座標データに対応する文字を記憶している文字認識辞書部に記憶している座標データとパターンマッチングすることにより一又は複数の文字パターンに対応する文字を抽出する手段、
抽出した文字を含む単語を、複数の単語を記憶している単語辞書部から検索する検索手段、
前記単語辞書部の検索結果の中から、前記文字受付手段が受け付けた文字の座標データに基づく一又は複数の前記文字パターンに対応する文字列のみを抽出して部分文字列を生成する部分文字列生成手段
前記部分文字列生成手段により生成した一又は複数の部分文字列を表示する第１の表示処理手段、
表示した部分文字列から何れかの部分文字列の選択を受け付ける手段、
選択した部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出する手段、及び
抽出された単語を表示する第２の表示処理手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１０】
前記第１の表示処理手段は、前記検索手段により検索した単語、及び前記部分文字列生成手段により生成した部分文字列を同時に表示することを特徴とする請求項９に記載のコンピュータプログラム。
【請求項１１】
前記コンピュータを、
前記部分文字列生成手段により生成した部分文字列に含まれる文字ごとに、該文字に関する選択の候補となる候補文字を抽出する候補文字抽出手段、
抽出した候補文字を表示する第１の表示処理手段、
表示した候補文字から一の候補文字の選択を受け付ける手段、
前記部分文字列から、選択された候補文字を含む部分文字列を再構成する部分文字列再構成手段、
再構成した部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出する手段、及び
抽出した単語を表示する第２の表示処理手段
として機能させることを特徴とする請求項９に記載のコンピュータプログラム。
【請求項１２】
前記コンピュータを、
前記単語辞書部の検索結果に基づいて検索された単語数を計数する手段、
計数された単語数が所定値より大きいか否かを判断する手段、及び
該手段で大きいと判断された場合にのみ、前記文字列生成手段で前記部分文字列を生成し、該手段で大きくないと判断された場合、前記単語辞書部の検索結果からの選択を受け付ける手段
として機能させることを特徴とする請求項９乃至請求項１１のいずれかに記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ペン型タブレット、マウス等の座標入力手段を有するパーソナルコンピュータ（以下、ＰＣ）等で用いられ、手書き入力又はマウス入力等によって筆記された手書き文字を検索キーとして、検索対象の単語辞書から所望の単語を検索する単語検索装置、単語検索方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
手書き文字を検索キーとして単語を検索する単語検索装置は、ペン型タブレット、マウス等の座標入力手段を有するＰＣ等において使用される。従来の手書き文字を検索キーとした単語検索装置は、ユーザが筆記した文字の筆跡データの座標値を取得し、取得した筆跡データの座標値に基づいて、文字認識辞書に記憶して有る標準的な文字パターンと照合することにより文字認識する。そして、文字認識した結果に基づいて所望の単語を検索して、検索結果を表示装置に表示する（特許文献１参照）。
【０００３】
図１は、従来の手書き単語検索の一例を示す図であり、二重線で囲まれている部分が、文字認識した結果に基づいて検索された検索結果の表示例を示している。図１の例では、文字認識された結果は、ユーザが正しいと認識している「富士通」ではなく、２文字目が誤った「富さ通」として表示されている。ユーザは、誤りを訂正する手段を用いることにより、２文字目を「士」に訂正し、所望の単語を含む単語リストを検索結果として得ることができる。
【０００４】
誤りを訂正する手段は、特に限定されるものではなく、例えば文字認識結果の候補文字（列）をリスト表示しておき、ユーザが誤った文字をペン型タブレット、マウス等で指示することにより、リスト表示された候補文字（列）から所望の文字（列）を選択することによって誤り訂正を行う。
【０００５】
手書き文字を検索キーとして単語を検索する単語検索装置には、上述のように誤り文字を訂正する方法ではなく、認識候補文字まで含めて検索キーであるものとして単語検索を行う方法も用いられている。この場合、優先順位が２位以下の認識候補文字に一致する文字があれば検索キーと一致したものとみなし、該当する単語を検索する。また、認識候補文字の中にユーザが所望する文字が存在しない場合であっても、それ以外の文字が見つかれば単語検索の候補として採用するという方法もある（特許文献２参照）。
【特許文献１】特開平９−２５９２１８号公報
【特許文献２】特開平８−３０５７２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述した従来の手書き文字を検索キーとして単語を検索する単語検索装置では、文字認識に誤りが生じた場合はその誤りをユーザが訂正する、又は優先順位が２位以下の認識候補文字を検索キーとして検索した単語も含めて所望の単語を検索する必要がある。前者では、認識候補文字の中から所望の文字を選択する必要が有ることから、認識候補文字の中に所望の文字が存在しない場合には、誤り訂正を行うことができないという問題点があった。この場合、ユーザは再度手書き文字を入力して文字認識を再実行する必要があり、誤り訂正の操作が煩雑になる。特に、ユーザが手書き文字を崩して筆記した場合、所望の文字が認識候補文字に含まれない可能性が高く、単語検索を円滑に実行することが困難になる。
【０００７】
一方、優先順位が２位以下の認識候補文字を含めて検索キーとして検索した単語を含める場合には、検索結果の単語数が膨大になるという問題点があった。例えば、所望の文字が認識候補文字から欠落している場合、検索された単語数は更に増大し、検索結果の単語数が増大することにより、所望の単語を選択する操作がより煩雑となることから、単語検索装置の使い勝手が大幅に低下する。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、誤り訂正時に認識候補文字から所望の文字が欠落することなく、検索された単語数を所定限度まで抑制することが可能な単語検索装置、単語検索方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願は、文字の座標データを受け付ける文字受付手段と、文字パターンの座標データ、及び該文字パターンに対応する文字を記憶している文字認識辞書部と、複数の単語を記憶している単語辞書部と、前記文字受付手段で受け付けた文字の座標データを前記文字認識辞書部に記憶している座標データとパターンマッチングすることにより一又は複数の文字パターンに対応する文字を抽出する手段と、抽出した文字を含む単語を、前記単語辞書部から検索する検索手段と、前記単語辞書部の検索結果の中から、前記文字受付手段が受け付けた文字の座標データに基づく一又は複数の前記文字パターンに対応する文字列のみを抽出して部分文字列を生成する部分文字列生成手段と、該部分文字列生成手段により生成した一又は複数の部分文字列を表示する第１の表示処理手段と、表示した部分文字列から何れかの部分文字列の選択を受け付ける手段と、選択された部分文字列を含む単語のみを前記単語辞書部に基づく検索結果から抽出する手段と、抽出した単語を表示する第２の表示処理手段とを備える単語検索装置、その単語検索装置を用いた単語検索方法、その単語検索装置を実現するためのコンピュータプログラムを開示する。
【発明の効果】
【００２１】
本願では、単語辞書を検索するキー情報である部分文字列を限定することができ、検索候補となる単語の数を大幅に縮小することが可能となる。したがって、単語検索装置の使い勝手が大幅に向上する。
【００２２】
本願では、単語辞書を検索するキー情報である部分文字列を限定することができ、検索候補となる単語の数を大幅に縮小することが可能となる。したがって、単語検索装置の使い勝手が大幅に向上する。また、文字の誤り訂正時に認識候補文字の中に所望の文字が必ず存在することから、再度手書き文字を入力して文字認識を再実行することなく、誤り訂正を行うことができ、単語検索を円滑に実行することが可能になる。
【００２３】
本願では、検索結果として出力すべき単語数が膨大となった場合にのみ部分文字列を生成することができ、通常の単語検索時に演算処理負荷を増大させることが無く、検索レスポンスの劣化を未然に防止することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態１に係る単語検索装置について図面を参照しながら具体的に説明する。図２は、本発明の実施の形態１に係る単語検索装置１の構成を示すブロック図である。図２において、単語検索装置１は、少なくとも、ＣＰＵ（中央演算装置）１１、記憶手段１２、ＲＡＭ（メモリ）１３、外部の通信手段と接続する通信インタフェース部１４、手書き文字の入力を受け付けるペン型タブレット等の手書き文字入力手段１５、マウス、キーボード等の入力手段１６、モニタ等の表示手段１７、及び補助記憶手段１８で構成される。
【００２５】
ＣＰＵ１１は、内部バス１９を介して単語検索装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部を制御するとともに、記憶手段１２に記憶されているコンピュータプログラム３に従って、種々のソフトウェア的機能を実行する。記憶手段１２に記憶されているコンピュータプログラム３は、単語検索装置１の出荷時に記憶手段１２に記憶済みであっても良いし、ＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体２を用いて、補助記憶手段１８を介して記憶手段１２に記憶されたものであっても良い。
【００２６】
記憶手段１２は、ハードディスクに代表される固定型記録媒体であり、実行するコンピュータプログラム３、実行するコンピュータプログラム３で使用されるデータ等を記憶する記憶手段である。また、記憶手段１２は、単語検索用の単語辞書１２１及び文字ごとの座標データの標準パターンを記憶してある文字認識辞書１２２を備えている。ＲＡＭ１３は、ＳＲＡＭ、フラッシュメモリ等で構成され、ソフトウェアの実行時に発生する一時的なデータを記憶する。
【００２７】
通信インタフェース部１４は内部バス１９に接続されており、ＬＡＮ、ＷＡＮ等のケーブルに接続されることにより、処理に必要とされるデータを送受信する。手書き文字入力手段１５は内部バス１９に接続されており、スタイラスペン、ペン型タブレット等の手書き文字の入力媒体で構成され、手書き文字の筆跡を座標データとして受け付ける。入力手段１６は内部バス１９に接続されており、マウス、タブレット等のポインティングデバイス、及びキーボードに代表されるキー入力デバイス等で構成される。表示手段１７は内部バス１９に接続されており、液晶表示装置、ＣＲＴディスプレイ等で構成される。
【００２８】
上述した構成の単語検索装置１は、検索結果の単語リストから筆記入力に対応する部分文字列を生成することにより、ユーザが正しい部分文字列を選択し、検索結果の単語リストを選択された部分文字列を含む単語に限定して表示する。
【００２９】
手書き文字入力手段１５は、ペン型タブレット、スタイラスペン等により筆記された手書き文字の筆跡を座標データとして受け付ける。座標データの原点は特に限定されるものではなく、表示画面の中央でも良いし、表示画面の四隅のいずれかであっても良い。また手書き文字入力手段１５は、表示手段１７の画面上に重ねて配置された透明なタブレットでも良いし、別個に設置されたタブレット等の筆跡の座標データを取得することが可能な装置であれば特に限定されるものではない。
【００３０】
単語検索装置１のＣＰＵ１１は、取得した手書き文字の筆跡の座標データに基づいて、一連の認識候補文字列を出力する。ＣＰＵ１１は、手書き文字の筆跡の座標データから一文字ごとに分離した座標データを生成し、文字認識辞書１２２に記憶されている文字ごとの標準パターンとの比較により認識候補文字を出力する。手書き文字列を筆記する場合、文字枠内に一文字ずつ筆記する枠あり入力と、文字枠が無い領域に筆記する枠なし入力とがある。枠あり入力の場合、あらかじめ筆跡データは文字ごとに分離されている。
【００３１】
図３は、枠あり入力の場合の手書き文字切り出しの一例を示す図である。枠あり入力の場合、図３に示すように、文字枠ごとに筆記された座標データを、文字枠内の座標データとして取得すれば良い。図４は、枠なし入力の場合の手書き文字切り出しの一例を示す図である。枠なし入力の場合、図４に示すように、手書き文字列を文字ごとに分割した後に座標データを取得する必要がある。枠なし文字列を文字ごとに分割する方法は特に限定されるものではなく、周知の方法であれば何でも良い（例えば「電子情報通信学会研究会技術研究報告ＰＲＭＵ９８−１３９」に開示されている分割方法等）。
【００３２】
ＣＰＵ１１は、文字ごとの認識候補文字と検索対象となる単語とを比較し、一致するものを単語辞書１２１の中から抽出する。単語辞書１２１には、複数の単語文字列が記憶されており、それぞれの単語と認識候補文字とを比較して一致の度合いを表す評価値(スコア)を得る。ＣＰＵ１１は、スコアが一定値以上のものを、スコアが大きい順に表示する。なお、単語の表示順序のソートは、単純にスコア順に並べ替えれば良く、二分木ソート、クイックソート等の公知のソートアルゴリズムを用いても良い。
【００３３】
ＣＰＵ１１は、認識候補文字と単語文字列とを順に比較する。ここで、マッチング対象の単語文字列をＳ（ｉ）とし、認識候補文字をＲ（ｊ）（ｋ）とする。図５は、認識候補文字と単語文字列との比較の一例を示す図である。図５において、Ｌは検索された単語の単語長を、Ｍは手書き文字として取得した文字列の長さを、Ｄは認識候補文字の数を、それぞれ示している。図５の例では、「秋田富士通株式会社」の「秋」はＳ（０）で表すことができ、単語長Ｌは‘９’となる。また筆記した文字列の長さＭは‘３’であり、それぞれの認識候補文字の数Ｄは‘５’となる。よって、例えば２文字目の第３候補である「土」は、Ｒ（１）（２）と表現することができる。
【００３４】
図６は、認識候補文字と単語文字列とをマッチングするプログラムの具体例を示す図である。図６は、単語マッチングのアルゴリズムをＣ言語で記述したものである。図６において、Ｒは文字コードcodeとその文字の一致度を表すスコアscoreを要素とする構造体struct RSの配列とする。関数matchは認識候補文字Ｒ（ｊ）（ｋ）と単語Ｓ（ｉ）とを引数に与えると、その単語と認識候補文字との一致度が最も大きな部分を探し、スコアを計算する。単語中の文字と一致した文字が見つかった場合、文字のスコアを合計スコアmaxScoreに加算し、見つからなかった場合は一定の値CONSTを加算する。ここで、一致した文字の数が筆記文字の半分に達しない場合、一致しないものとしてスコアは‘０’とする。
【００３５】
図６に示すプログラムでは、単語と認識候補文字とを比較して、一定値以上の数の文字が一致した場合、一致度が引数pScに記憶されて関数matchはTRUEを返す。その場合、単語と一致した開始位置(図５の場合は３文字目の「富」から始まるので‘２’)がpStに、一致した候補の履歴がpPathに記憶される。
【００３６】
図７は、本発明の実施の形態１に係る単語検索装置１の検索結果限定手順を模式的に示す図である。ＣＰＵ１１が、上述したパターンマッチングにより複数の認識候補文字列を生成し、複数の認識候補文字列をキー情報として単語辞書１２１を検索することにより、図７に示すように多くの単語を検索結果として抽出する。単語検索装置１のＣＰＵ１１は、抽出された検索結果の中から、実際にユーザが筆記した文字列に対応する部分文字列を抜き出す。例えば図７では、検索された単語が「富士通明石工場」である場合、筆記した部分と一致したのは１文字目から３文字目までの「富士通」である。したがって、部分文字列として「富士通」を抜き出す。
【００３７】
図６に示すプログラムでは、関数matchの引数であるpStが示す領域に部分文字列の位置が記憶されている。一致した部分の最初の文字の場所は*pStで示されるので、最初の文字(すなわち「富」)は、S(*pSt) であり、２文字目はS(*pSt+1) である。このように、検索結果の中にその履歴を記憶することにより、容易に部分文字列を生成することができる。
【００３８】
また、図６に示すプログラムでは、一つの単語文字列に対して一つの部分文字列が得られる。これを全ての検索結果に対して適用することにより、図７の左側の表のように各検索単語に対して部分文字列が対応した表を得ることができる。ここで、同一の部分文字列を一つにまとめ、それぞれリンク情報を作成する。同一の文字列をまとめる処理は文字列のソートと同様に汎用の手法を用いればよい。以上により、検索結果単語とそれぞれに対応する部分文字列との対応を記述した、部分文字列情報を得ることができる。
【００３９】
このように部分文字列の集合、例えば「富士通」、「冨山通」、「けさ通」等を含む部分文字列の集合を生成することにより、ユーザに提示される部分文字列の数は単語辞書１２１の検索結果よりも少なくなる。したがって、検索結果として表示される単語数を削減することができる。
【００４０】
図８は、本発明の実施の形態１に係る単語検索装置１のＣＰＵ１１の処理手順を示すフローチャートである。単語検索装置１のＣＰＵ１１は、ペン型タブレット、スタイラスペン等により筆記された手書き文字の筆跡の座標データを取得する（ステップＳ８０１）。ＣＰＵ１１は、取得した手書き文字の筆跡の座標データに基づいて、文字認識辞書１２２を照会して、一連の認識候補文字列を抽出する（ステップＳ８０２）。
【００４１】
ＣＰＵ１１は、文字ごとの認識候補文字と検索対象となる単語とを比較し、認識候補文字を含む単語を単語辞書１２１の中から検索結果として取得する（ステップＳ８０３）。ＣＰＵ１１は、抽出された検索結果の中から、実際にユーザが筆記した文字列（手書き文字の認識結果）に対応する部分文字列を抽出する（ステップＳ８０４）。
【００４２】
ＣＰＵ１１は、抽出された部分文字列が既に抽出されているか否か、すなわちＲＡＭ１３に既に記憶されているか否かを判断し（ステップＳ８０５）、ＣＰＵ１１が未だ抽出されていないと判断した場合（ステップＳ８０５：ＮＯ）、ＣＰＵ１１は、抽出された部分文字列をＲＡＭ１３に記憶し（ステップＳ８０６）、ＣＰＵ１１が既に抽出されていると判断した場合（ステップＳ８０５：ＹＥＳ）、ＣＰＵ１１はステップＳ８０６をスキップする。なお、上述のように全ての検索結果を取得した後、部分文字列を取得する方法に限定されるものではなく、例えば１件検索する都度、部分文字列を検索する方法であっても良い。
【００４３】
ＣＰＵ１１は、抽出された全ての検索結果について部分文字列の抽出処理が完了したか否かを判断し（ステップＳ８０７）、ＣＰＵ１１が、まだ完了していないと判断した場合（ステップＳ８０７：ＮＯ）、ＣＰＵ１１は、処理をステップＳ８０４へ戻し、上述した処理を繰り返す。ＣＰＵ１１が、完了したと判断した場合（ステップＳ８０７：ＹＥＳ）、ＣＰＵ１１は、ＲＡＭ１３に記憶してある部分文字列を含む検索結果のみを表示手段１８へ表示出力する（ステップＳ８０８）。
【００４４】
このように部分文字列の集合、例えば「富士通」、「冨山通」、「けさ通」等を含む部分文字列の集合を生成することにより、ユーザに提示される部分文字列の数は単語辞書１２１の検索結果よりも少なくなる。したがって、検索結果として表示される単語数を削減することができる。
【００４５】
ＣＰＵ１１は、ユーザによる検索結果の選択を受け付けるまで待ち状態となり（ステップＳ８０９）、ＣＰＵ１１が選択を受け付けたと判断した場合（ステップＳ８０９：ＹＥＳ）、ＣＰＵ１１は、単語検索処理を終了する。
【００４６】
図９は、本実施の形態１に係る単語検索装置１の表示画面の一例を示す図である。図９（ａ）及び（ｂ）は、手書き文字入力領域９１、部分文字列表示領域９２、及び検索結果表示領域９３で表示画面が構成されている。図９（ａ）に示すように、手書き文字入力領域９１に手書き文字で「富士通」と入力された場合、単語辞書１５１の検索結果が検索結果表示領域９３に表示されると共に、上述した処理で抽出された部分文字列が部分文字列表示領域９２に表示される。
【００４７】
ユーザは、図９（ｂ）に示すように、スタイラスペン等により部分文字列表示領域９２に表示されている部分文字列から所望の部分文字列を選択する。部分文字列が選択されることにより、検索結果表示領域９３に表示される検索結果数が大きく削減される。ユーザは、スタイラスペン等により検索結果表示領域９３に表示されている検索結果候補から所望の結果を選択することにより、容易に単語を検索することができる。
【００４８】
同様の処理は、英単語においても実現可能である。例えば手書き文字として筆記体で「ｆｕｊｉ」の座標データを取得した場合、認識候補文字と単語文字列との比較は図１０のようになる。図１０は、手書き文字が英単語である場合の認識候補文字と単語文字列との比較の一例を示す図である。図１０において、Ｌは検索された単語の単語長を、Ｍは手書き文字として取得した文字列の長さを、Ｄは認識候補文字の数を、それぞれ示している。図１０の例では、「ｆｕｊｉｔｓｕ  ｌａｂｓ．」の「ｆ」はＳ（０）で表すことができ、単語長Ｌは‘１３’となる。また筆記した文字列の長さＭは‘４’であり、それぞれの認識候補文字の数Ｄは‘５’となる。よって、例えば２文字目の第３候補である「ｕ」は、Ｒ（１）（２）と表現することができる。
【００４９】
マッチング処理は、図６に示すプログラムに従って実行し、一定値以上の数の文字が一致した場合、一致度が引数pScに記憶されて関数matchはTRUEを返す。その場合、単語と一致した開始位置(図１０の場合は１文字目の「ｆ」から始まるので‘０’)がpStに、一致した候補の履歴がpPathに記憶される。
【００５０】
図１１は、手書き文字が英単語である場合の単語検索装置１の検索結果限定手順を模式的に示す図である。ＣＰＵ１１が、上述したパターンマッチングにより複数の認識候補文字列を生成し、複数の認識候補文字列をキー情報として単語辞書１２１を検索することにより、図１１に示すように多くの単語を検索結果として抽出する。単語検索装置１のＣＰＵ１１は、抽出された検索結果の中から、実際にユーザが筆記した文字列に対応する部分文字列を抜き出す。例えば図１１では、検索された単語が「ｆｕｊｉｔｓｕ」である場合、筆記した部分と一致したのは１文字目から４文字目までの「ｆｕｊｉ」である。したがって、部分文字列として「ｆｕｊｉ」を抜き出す。
【００５１】
図６に示すプログラムでは、関数matchの引数であるpStが示す領域に部分文字列の位置が記憶されている。一致した部分の最初の文字の場所は*pStで示されるので、最初の文字(すなわち「ｆ」)は、S(*pSt) であり、２文字目はS(*pSt+1) である。このように、検索結果の中にその履歴を記憶することにより、容易に部分文字列を生成することができる。
【００５２】
また、図６に示すプログラムでは、一つの単語文字列に対して一つの部分文字列が得られる。これを全ての検索結果に対して適用することにより、図１１の左側の表のように各検索単語に対して部分文字列が対応した表を得ることができる。ここで、同一の部分文字列を一つにまとめ、それぞれリンク情報を作成する。同一の文字列をまとめる処理は文字列のソートと同様に汎用の手法を用いればよい。以上により、検索結果単語とそれぞれに対応する部分文字列との対応を記述した、部分文字列情報を得ることができる。
【００５３】
このように部分文字列の集合、例えば「ｆｕｊｉ」、「ｔｕｔｔ」、「ｇｕａｌ」等を含む部分文字列の集合を生成することにより、ユーザに提示される部分文字列の数は単語辞書１２１の検索結果よりも少なくなる。ここで、表示した部分文字列からユーザが意図した部分文字列を選択して、選択された部分文字列を含む検索結果のみを表示することにより、検索結果として表示される単語数をさらに削減することも可能となる。
【００５４】
図１２は、手書き文字が英単語である場合の単語検索装置１の表示画面の一例を示す図である。図１２（ａ）に示すように、手書き文字入力領域９１に手書き文字で「ｆｕｊｉ」と入力された場合、単語辞書１５１の検索結果が検索結果表示領域９３に表示されると共に、上述した処理で抽出された部分文字列が部分文字列表示領域９２に表示される。
【００５５】
ユーザは、図１２（ｂ）に示すように、スタイラスペン等により部分文字列表示領域９２に表示されている部分文字列から所望の部分文字列（例えばｆｕｊｉ）を選択する。部分文字列が選択されることにより、検索結果表示領域９２に表示される検索結果数が大きく削減される。ユーザは、スタイラスペン等により検索結果表示領域９３に表示されている検索結果候補から所望の結果を選択することにより、容易に単語を検索することができる。
【００５６】
以上のように本実施の形態１によれば、単語辞書を検索するキー情報である文字列を限定することができ、検索候補となる単語の数を大幅に縮小することが可能となる。したがって、ユーザに提示する単語候補の数を削減でき、単語検索効率を改善することができ、ユーザが単語検索を行う際の疲労低減等の効果が期待できる。
【００５７】
（実施の形態２）
以下、本発明の実施の形態２に係る単語検索装置１について図面を参照しながら具体的に説明する。本発明の実施の形態２に係る単語検索装置１の構成は実施の形態１と同様であることから、同一の符号を付することにより詳細な説明を省略する。本実施の形態２は、部分文字列を候補文字ごとに分割する候補文字リストを生成し、ユーザが一文字ごとに認識誤りの訂正を行うことができる点で実施の形態１と相違する。
【００５８】
図１３は、候補文字リストの一例を示す図である。候補文字リストは、抽出された部分文字列の文字単位の候補文字を、所定の優先順位に基づいて表示するためのリスト情報である。図１３の例では部分文字列は３文字であり、それぞれの文字ごとに同一の候補文字が一つにまとめられ、候補文字リストに変換されている。
【００５９】
図１４は、本発明の実施の形態２に係る単語検索装置１のＣＰＵ１１の処理手順を示すフローチャートである。単語検索装置１のＣＰＵ１１は、ペン型タブレット、スタイラスペン等により筆記された手書き文字の筆跡の座標データを取得する（ステップＳ１４０１）。ＣＰＵ１１は、取得した手書き文字の筆跡の座標データに基づいて、文字認識辞書１２２を照会して、一連の認識候補文字列を抽出する（ステップＳ１４０２）。
【００６０】
ＣＰＵ１１は、文字ごとの認識候補文字と検索対象となる単語とを比較し、一致するものを単語辞書１２１の中から検索結果として取得する（ステップＳ１４０３）。ＣＰＵ１１は、抽出された検索結果の中から、実際にユーザが筆記した文字列（手書き文字の認識結果）に対応する部分文字列を抽出する（ステップＳ１４０４）。
【００６１】
ＣＰＵ１１は、抽出された部分文字列を文字単位に分割し（ステップＳ１４０５）、分割された文字ごとに優先順位を算出して（ステップＳ１４０６）、候補文字リストを生成する（ステップＳ１４０７）。生成された候補文字リストは、優先順位に従って訂正処理時に表示手段に表示され、ユーザの選択を受け付けることによって、認識誤りを修正することが可能となる。なお、優先順位の算出方法は、特に限定されるものではなく、後述の方法等、リスト順序を特定することができる方法であれば何でも良い。
【００６２】
図１５は、候補文字リストの生成手順を模式的に示す図である。図１５に示すように抽出された部分文字列を文字ごとに分割し、同じ位置の文字について同一の文字を一つにまとめることにより、候補文字リストを生成する。候補文字リストは、認識誤りの訂正時に文字ごとに表示され、スタイラスペン等による選択を受け付ける。
【００６３】
ＣＰＵ１１は、文字ごとに訂正の選択を受け付けたか否かを判断し（ステップＳ１４０８）、ＣＰＵ１１が訂正の選択を受け付けたと判断した場合（ステップＳ１４０８：ＹＥＳ）、受け付けた文字については選択された文字の優先順位を最大とし、該文字を第１位の優先文字として認識する（ステップＳ１４０９）。
【００６４】
ＣＰＵ１１は、訂正後の文字に基づいて部分文字列を再構成し（ステップＳ１４１０）、実施の形態１のステップＳ８０５以下の処理を続行する。部分文字列の再構成は、選択を受け付けたことにより確定した文字を用いて部分文字列を改めて生成する処理である。図１６は、部分文字列再構成手順を模式的に示す図である。図１６では、３文字目の「通」がユーザに選択されて確定した場合、他の候補文字を含めて構成できる文字列は、図１６の中欄に示す２０個に限定される。限定された文字列を認識候補文字列として、手書き文字として取得した文字列と一致する文字列を部分文字列として抽出することにより、図１６の右欄の３個の部分文字列が再構成される。
【００６５】
このように、部分文字列から候補文字リストを生成することにより、認識候補文字の中に正しく認識すべき文字が脱落している場合であっても、検索結果として表示されている単語から文字を補完することができ、訂正時の候補文字リスト内に選択すべき文字として表示することが可能となる。
【００６６】
なお、候補文字リストを表示する場合の表示優先順位の特定方法は、特に限定されるものではない。例えば、ユーザが候補選択中の文字に関してユーザに提示される文字候補のリストを、それ以外の文字と合わせて同じ部分文字列を構成するものを優先して表示する方法であっても良い。これにより、正しい文字の選択がより容易となる。
【００６７】
図１７は、候補文字訂正時の画面表示の一例を示す図である。図１７では、「富士通」という３つの文字が１位の優先順位で表示されており、３文字目の「通」が訂正の対象として候補文字リストが表示されている。図１７に示すように、候補文字リストでは３文字目には「通」、「道」、「遅」という３つの候補文字が存在する。しかし、１文字目と２文字目に表示されている「富」と「士」を含む部分文字列は「富士通」及び「富士道」のみであることから、３文字目は「通」及び「道」を優先して表示している。優先順位の低い「遅」は図１７では点線で示しているが、表示してもしなくても良い。
【００６８】
また、候補文字の表示状態に基づいて、候補文字の選択対象となる文字、図１７では３文字目の「通」以外の位置に表示されている文字列について前部及び後部に新たな文字列を生成し、新たな文字列との関連が深い候補文字を優先して表示するようにしても良い。図１８は、優先文字列の一例を示す図である。図１８では、３文字目の「通」が候補文字の選択対象となっており、前部の優先文字列として「秋田」が、後部の優先文字列として「士通」が生成されている。ＣＰＵ１１は、部分文字列の中から２種類の優先文字列の両方を含むものを選び、その中に含まれる候補文字を優先して表示するよう候補文字リストを並べ替える。このようにすることで、現在表示されている文字列と関連が深い候補文字を優先して表示することができ、ユーザの候補文字の選択がより容易となる。
【００６９】
同様の処理は、実施の形態１と同様、英単語においても実現可能である。図１９は、手書き文字として筆記体で「ｆｕｊｉ」の座標データを取得した場合の候補文字リストの一例を示す図である。候補文字リストは、抽出された部分文字列の文字単位の候補文字を、所定の優先順位に基づいて表示するためのリスト情報である。図１９の例では部分文字列は４文字であり、それぞれの文字ごとに同一の候補文字が一つにまとめられ、候補文字リストに変換されている。
【００７０】
図２０は、手書き文字が英単語である場合の候補文字リストの生成手順を模式的に示す図である。図２０に示すように抽出された部分文字列を文字ごとに分割し、同じ位置の文字について同一の文字を一つにまとめることにより、候補文字リストを生成する。候補文字リストは、認識誤りの訂正時に文字ごとに表示され、スタイラスペン等による選択を受け付ける。
【００７１】
図２１は、手書き文字が英単語である場合の部分文字列再構成手順を模式的に示す図である。図２１では、４文字目の「ｉ」がユーザに選択されて確定した場合、他の候補文字を含めて構成できる文字列は、図２１の中欄に示す２４個に限定される。限定された文字列を認識候補文字列として、手書き文字として取得した文字列と一致する文字列を部分文字列として抽出することにより、図２１の右欄の２個の部分文字列「ｆｕｊｉ」及び「ｌｙｔｉ」が再構成される。
【００７２】
このように、部分文字列から候補文字リストを生成することにより、認識候補文字の中に正しく認識すべき文字が脱落している場合であっても、検索結果として表示されている単語から文字を補完することができ、訂正時の候補文字リスト内に選択すべき文字として表示することが可能となる。
【００７３】
なお、候補文字リストを表示する場合の表示優先順位の特定方法は、特に限定されるものではない。例えば、ユーザが候補選択中の文字に関してユーザに提示される文字候補のリストを、それ以外の文字と合わせて同じ部分文字列を構成するものを優先して表示する方法であっても良い。これにより、正しい文字の選択がより容易となる。
【００７４】
図２２は、手書き文字が英単語である場合の候補文字訂正時の画面表示の一例を示す図である。図２２では、「ｆｕｊｉ」という４つの文字が１位の優先順位で表示されており、４文字目の「ｉ」が訂正の対象として候補文字リストが表示されている。図２２に示すように、候補文字リストでは３文字目には「ｊ」、「ｔ」、「ａ」という３つの候補文字が存在する。しかし、１文字目乃至３文字目に表示されている「ｆ」、「ｕ」及び「ｊ」を含む部分文字列は「ｆｕｊｉ」のみであることから、４文字目は「ｉ」のみを優先して表示している。優先順位の低い「ｔ」及び「ｌ」は図２２では点線で示しているが、表示してもしなくても良い。
【００７５】
また、候補文字の表示状態に基づいて、候補文字の選択対象となる文字、以外の位置に表示されている文字列について前部及び後部に新たな文字列を生成し、新たな文字列との関連が深い候補文字を優先して表示するようにしても良い。図２３は、手書き文字が英単語である場合の優先文字列の一例を示す図である。図２３では、３文字目の「ｊ」が候補文字の選択対象となっており、前部の優先文字列として「ｆｕ」が、後部の優先文字列として「ｉ」が生成されている。ＣＰＵ１１は、部分文字列の中から２種類の優先文字列の両方を含むものを選び、その中に含まれる候補文字を優先して表示するよう候補文字リストを並べ替える。このようにすることで、現在表示されている文字列と関連が深い候補文字を優先して表示することができ、ユーザの候補文字の選択がより容易となる。
【００７６】
以上のように本実施の形態２によれば、単語辞書を検索するキー情報である文字列を限定することができ、検索候補となる単語の数を大幅に縮小することが可能となる。したがって、ユーザに提示する単語候補の数を削減でき、単語検索効率を改善することができ、ユーザが単語検索を行う際の疲労低減等の効果が期待できる。また、部分文字列から候補文字リストを生成することにより、候補文字の欠落を未然に防止することができ、ユーザは認識誤りを確実に訂正することが可能となる。
【００７７】
（実施の形態３）
以下、本発明の実施の形態３に係る単語検索装置１について図面を参照しながら具体的に説明する。本発明の実施の形態３に係る単語検索装置１の構成は実施の形態１と同様であることから、同一の符号を付することにより詳細な説明を省略する。本実施の形態３は、検索結果として表示出力される単語数が所定値より大きい場合にのみ、上述した部分文字列を生成した単語検索処理を実行する点に特徴を有する。
【００７８】
すなわち、検索結果の単語数がさほど多くない場合には、特に部分文字列による単語数限定を行う必要が無く、ユーザは検索結果として表示されている単語の中から所望の単語を直接選択すれば良い。そこで、ＣＰＵ１１は、検索結果として表示される単語の総数を計数し、計数された単語数が所定値、例えば画面に一度に表示することができる程度の１０単語を超えているか否かを判断する。ＣＰＵ１１が、１０単語以下であると判断した場合には、実施の形態１及び２のような部分文字列の生成処理を実行しない。
【００７９】
図２４は、本発明の実施の形態３に係る単語検索装置１のＣＰＵ１１の処理手順を示すフローチャートである。単語検索装置１のＣＰＵ１１は、ペン型タブレット、スタイラスペン等により筆記された手書き文字の筆跡の座標データを取得する（ステップＳ２４０１）。ＣＰＵ１１は、取得した手書き文字の筆跡の座標データに基づいて、文字認識辞書１２２を照会して、一連の認識候補文字列を抽出する（ステップＳ２４０２）。
【００８０】
ＣＰＵ１１は、文字ごとの認識候補文字と検索対象となる単語とを比較し、一致するものを単語辞書１２１の中から検索結果として取得し（ステップＳ２４０３）、抽出された単語数を計数する（ステップＳ２４０４）。ＣＰＵ１１は、計数された単語数が所定値、例えば‘１０’より大きいか否かを判断する（ステップＳ２４０５）。
【００８１】
ＣＰＵ１１が、計数された単語数が所定値以下であると判断した場合（ステップＳ２４０５：ＮＯ）、ＣＰＵ１１は、特に部分文字列を生成して検索単語を削減する必要が無いものと判断し、通常の単語検索処理を実行する。ＣＰＵ１１が、計数された単語数が所定値より大きいと判断した場合（ステップＳ２４０５：ＹＥＳ）、ＣＰＵ１１は、実施の形態１のステップＳ８０４、あるいは実施の形態２のステップＳ１４０４へ処理を移行し、前述した処理を実行する。
【００８２】
以上のように本実施の形態３によれば、検索結果として出力すべき単語数が画面に表示することが可能な数を超えた場合等、ユーザによる選択処理が煩雑になる数となった場合にのみ部分文字列を生成することができ、通常の単語検索時に演算処理負荷を増大させることが無く、検索レスポンスの劣化を未然に防止することが可能となる。
【図面の簡単な説明】
【００８３】
【図１】従来の手書き単語検索の一例を示す図である。
【図２】本発明の実施の形態１に係る単語検索装置の構成を示すブロック図である。
【図３】枠あり入力の場合の手書き文字切り出しの一例を示す図である。
【図４】枠なし入力の場合の手書き文字切り出しの一例を示す図である。
【図５】認識候補文字と単語文字列との比較の一例を示す図である。
【図６】認識候補文字と単語文字列とをマッチングするプログラムの具体例を示す図である。
【図７】本発明の実施の形態１に係る単語検索装置の検索結果限定手順を模式的に示す図である。
【図８】本発明の実施の形態１に係る単語検索装置のＣＰＵの処理手順を示すフローチャートである。
【図９】本実施の形態１に係る単語検索装置の表示画面の一例を示す図である。
【図１０】手書き文字が英単語である場合の認識候補文字と単語文字列との比較の一例を示す図である。
【図１１】手書き文字が英単語である場合の単語検索装置の検索結果限定手順を模式的に示す図である。
【図１２】手書き文字が英単語である場合の単語検索装置の表示画面の一例を示す図である。
【図１３】候補文字リストの一例を示す図である。
【図１４】本発明の実施の形態２に係る単語検索装置のＣＰＵの処理手順を示すフローチャートである。
【図１５】候補文字リストの生成手順を模式的に示す図である。
【図１６】部分文字列再構成手順を模式的に示す図である。
【図１７】候補文字訂正時の画面表示の一例を示す図である。
【図１８】優先文字列の一例を示す図である。
【図１９】手書き文字として筆記体で「ｆｕｊｉ」の座標データを取得した場合の候補文字リストの一例を示す図である。
【図２０】手書き文字が英単語である場合の候補文字リストの生成手順を模式的に示す図である。
【図２１】手書き文字が英単語である場合の部分文字列再構成処理を模式的に示す図である。
【図２２】手書き文字が英単語である場合の候補文字訂正時の画面表示の一例を示す図である。
【図２３】手書き文字が英単語である場合の優先文字列の一例を示す図である。
【図２４】本発明の実施の形態３に係る単語検索装置のＣＰＵの処理手順を示すフローチャートである。
【符号の説明】
【００８４】
１  単語検索装置
２  記録媒体
３  コンピュータプログラム
１１  ＣＰＵ
１２  記憶手段
１３  ＲＡＭ
１４  通信インタフェース部
１５  手書き文字入力手段
１６  入力手段
１７  表示手段
１８  補助記憶手段
１９  内部バス
１２１  単語辞書
１２２  文字認識辞書
【図１】
0004744317.tif 000002
【図２】
0004744317.tif 000003
【図３】
0004744317.tif 000004
【図４】
0004744317.tif 000005
【図５】
0004744317.tif 000006
【図６】
0004744317.tif 000007
【図７】
0004744317.tif 000008
【図８】
0004744317.tif 000009
【図９】
0004744317.tif 000010
【図１０】
0004744317.tif 000011
【図１１】
0004744317.tif 000012
【図１２】
0004744317.tif 000013
【図１３】
0004744317.tif 000014
【図１４】
0004744317.tif 000015
【図１５】
0004744317.tif 000016
【図１６】
0004744317.tif 000017
【図１７】
0004744317.tif 000018
【図１８】
0004744317.tif 000019
【図１９】
0004744317.tif 000020
【図２０】
0004744317.tif 000021
【図２１】
0004744317.tif 000022
【図２２】
0004744317.tif 000023
【図２３】
0004744317.tif 000024
【図２４】
0004744317.tif 000025