(57)【特許請求の範囲】
【請求項１】
ユーザによる文字入力を支援する装置であって、
前記ユーザに推薦すべき文字列が分割された単語の読み仮名および前記単語が前記文字入力時に最初に入力される可能性があるか否かを示す情報が対応づけられた複数の情報、前記ユーザに推薦すべき文字列、前記ユーザに推薦すべき文字列の読み仮名を登録するインデックス構造を格納するインデックス構造記憶手段と、
前記インデックス構造記憶手段を参照して、前記ユーザが入力した仮名文字列に対応する単語が、最初に入力される可能性がある場合にのみ、この仮名文字列に対応する単語を含む文字列を推薦すべき文字列として特定する、文字列特定手段と、
特定された前記推薦すべき文字列を、推薦候補として提示する推薦候補提示手段と、
を備えている入力支援装置。
【請求項２】
前記文字列特定手段が、前記インデックス構造において、前記ユーザに推薦すべき文字列の読み仮名の少なくとも先頭部分に、入力された前記仮名文字列と一致する、前記単語の読み仮名が登録されている場合に、前記単語の前記情報が入力時に最初に入力される可能性を示していることを条件に、当該単語を含む文字列を、前記推薦すべき文字列として特定し、
更に、前記ユーザが入力する一文字以上の仮名文字列と一致する前記ユーザに推薦すべき文字列の読み仮名が、前記インデックス構造内の前記推薦すべき文字列中で連続する２以上の単語を連結したときの読み仮名の少なくとも先頭部分に登録されている場合は、前記読み仮名の前記情報が入力時に最初に入力される可能性があることを示していることを条件に、前記２以上の単語の連結を、前記推薦すべき文字列として特定する、
請求項１に記載の入力支援装置。
【請求項３】
更に、インデックス構造構築手段を備えており、
前記インデックス構造構築手段は、
前記単語の表記とその読み仮名とが関連付けられた辞書を用いて、前記推薦すべき文字列を、複数の部分文字列に分割し、更に、複数の部分文字列を個別に、当該部分文字列が前記仮名文字列の入力時に最初に入力される可能性があるか否かを、当該部分文字列を先頭とする前記推薦すべき文字列の過去の出現頻度が一定以上あるか否かを基に判定し、判定結果に基づいて、前記部分文字列の読み仮名がキーとなる前記インデックス構造を構築する、
請求項１または２に記載の入力支援装置。
【請求項４】
前記インデックス構造構築手段が、前記推薦すべき文字列を個別に、統計データに基づいて、更にスコアを設定しており、
前記推薦候補提示手段が、特定された前記推薦すべき文字列が複数ある場合において、前記推薦すべき文字列それぞれについて、前記スコアを元に優先順位を設定し、優先順位の順に、前記推薦すべき文字列を前記推薦候補として提示する、
請求項３に記載の入力支援装置。
【請求項５】
前記推薦候補提示手段が、特定された前記推薦すべき文字列において、入力された前記仮名文字列に対応する部分を、他の部分と異なる態様で提示する、
請求項１に記載の入力支援装置。
【請求項６】
ユーザによる文字入力をコンピュータによって支援する方法であって、
前記ユーザに推薦すべき文字列が分割された単語の読み仮名および前記単語が前記文字入力時に最初に入力される可能性があるか否かを示す情報が対応づけられた複数の情報、前記ユーザに推薦すべき文字列、前記ユーザに推薦すべき文字列の読み仮名を登録するインデックス構造を格納するインデックス構造記憶手段を参照して、前記ユーザが入力した仮名文字列に対応する単語が、最初に入力される可能性がある場合にのみ、この仮名文字列に対応する単語を含む文字列を推薦すべき文字列として特定し、
特定された前記推薦すべき文字列を、推薦候補として提示する、
入力支援方法。
【請求項７】
前記特定に際して、前記インデックス構造において、前記ユーザに推薦すべき文字列の読み仮名の少なくとも先頭部分が、入力された前記仮名文字列と一致する、前記単語の読み仮名が登録されている場合に、前記単語の前記情報が入力時に最初に入力される可能性を示していることを条件に、当該単語を含む文字列を、前記推薦すべき文字列として特定し、
更に、前記ユーザが入力する一文字以上の仮名文字列と一致する前記ユーザに推薦すべき文字列の読み仮名が、前記インデックス構造内の前記推薦すべき文字列中で連続する２以上の単語を連結したときの前記読み仮名の少なくとも先頭部分に登録されている場合は、前記読み仮名の前記情報が入力時に最初に入力される可能性があることを示していることを条件に、前記２以上の単語の連結を、前記推薦すべき文字列として特定する、
請求項６に記載の入力支援方法。
【請求項８】
前記単語の表記とその読み仮名とが関連付けられた辞書を用いて、前記推薦すべき文字列を、複数の部分文字列に分割し、更に、複数の部分文字列を個別に、当該部分文字列が前記仮名文字列の入力時に最初に入力される可能性があるか否かを、当該部分文字列を先頭とする前記推薦すべき文字列の過去の出現頻度が一定以上あるか否かを基に判定し、判定結果に基づいて、前記部分文字列の読み仮名がキーとなる前記インデックス構造を構築する、ことを更に備える
請求項６または７に記載の入力支援方法。
【請求項９】
前記構築に際して、前記推薦すべき文字列を個別に、統計データに基づいて、更にスコアを設定しており、
前記提示に際して、特定された前記推薦すべき文字列が複数ある場合において、前記推薦すべき文字列それぞれについて、前記スコアを元に優先順位を設定し、優先順位の順に、前記推薦すべき文字列を前記推薦候補として提示する、
請求項８に記載の入力支援方法。
【請求項１０】
前記提示に際して、特定された前記推薦すべき文字列において、入力された前記仮名文字列に対応する部分を、他の部分と異なる態様で提示する、
請求項６に記載の入力支援方法。
【請求項１１】
コンピュータによって、ユーザにおける文字入力を支援するためのプログラムであって、前記コンピュータに、
前記ユーザに推薦すべき文字列が分割された単語の読み仮名および前記単語が前記文字入力時に最初に入力される可能性があるか否かを示す情報が対応づけられた複数の情報、前記ユーザに推薦すべき文字列、前記ユーザに推薦すべき文字列の読み仮名を登録するインデックス構造を格納するインデックス構造記憶手段を参照して、前記ユーザが入力した仮名文字列に対応する単語が、最初に入力される可能性がある場合にのみ、この仮名文字列に対応する単語を含む文字列を推薦すべき文字列として特定し、
特定された前記推薦すべき文字列を、推薦候補として提示する、
ことを実行させるプログラム。
【請求項１２】
前記特定に際して、
前記インデックス構造において、前記ユーザに推薦すべき文字列の読み仮名の少なくとも先頭部分が、入力された前記仮名文字列と一致する、前記単語の読み仮名が登録されている場合に、前記単語の前記情報が入力時に最初に入力される可能性を示していることを条件に、当該単語を含む文字列を、前記推薦すべき文字列として特定し、
更に、前記ユーザが入力する一文字以上の仮名文字列と一致する前記ユーザに推薦すべき文字列の読み仮名が、前記インデックス構造内の前記推薦すべき文字列中で連続する２以上の単語を連結したときの前記読み仮名の少なくとも先頭部分に登録されている場合は、前記読み仮名の前記情報が入力時に最初に入力される可能性があることを示していることを条件に、前記２以上の単語の連結を、前記推薦すべき文字列として特定する、
請求項１１に記載のプログラム。
【請求項１３】
前記コンピュータに、
前記単語の表記とその読み仮名とが関連付けられた辞書を用いて、前記推薦すべき文字列を、複数の部分文字列に分割し、更に、複数の部分文字列を個別に、当該部分文字列が前記仮名文字列の入力時に最初に入力される可能性があるか否かを、当該単語を先頭とする前記推薦すべき文字列の過去の出現頻度が一定以上あるか否かを基に判定し、判定結果に基づいて、前記部分文字列の読み仮名がキーとなる前記インデックス構造を構築する、ことを更に実行させる、
請求項１１または１２に記載のプログラム。
【請求項１４】
前記構築に際して、前記推薦すべき文字列を個別に、統計データに基づいて、更にスコアを設定しており、
前記提示に際して、特定された前記推薦すべき文字列が複数ある場合において、前記推薦すべき文字列それぞれについて、前記スコアを元に優先順位を設定し、優先順位の順に、前記推薦すべき文字列を前記推薦候補として提示する、
請求項１３に記載のプログラム。
【請求項１５】
前記提示に際して、特定された前記推薦すべき文字列において、入力された前記仮名文字列に対応する部分を、他の部分と異なる態様で提示する、
請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが文字を入力する際に、適切な文字列を推薦することで、そのユーザによる文字の入力を支援する、入力支援装置、入力支援方法及び記録媒体に関する。
【背景技術】
【０００２】
近年、各種の情報機器においては、ユーザによる入力フォームへの文字列の入力が始められると、予め登録されている文字列から適合する文字列を選択し、選択した文字列を入力候補として推薦する機能が広く普及している。このような機能は、一般に「オートコンプリート機能（以下単に「オートコンプリート」と記載）」と呼ばれている。【０００３】
オートコンプリートが適用される代表的な例としては、検索エンジンが挙げられる。具体的には、この場合、検索エンジンは、ユーザによって検索フォームに文字列が入力され始めると、蓄積されている過去の検索キーワードの中から、ユーザが入力している文字に適合する文字列を抽出し、抽出した文字列をユーザに推薦する。なお、以降においては、ユーザに推薦される文字列を「推薦候補文字列」と表記する。【０００４】
このため、検索エンジンにオートコンプリートが利用されていると、ユーザは、検索キーワードを全て打ち込む必要はなく、推薦候補文字列の中からいずれかを選択するだけで、自分の入力したいキーワードを入力することができる。【０００５】
このようなオートコンプリートは、検索エンジンに限らず、入力フォームへの入力が必要な全てのアプリケーションプログラムに適用することができる。検索エンジン以外の適用例としては、ＵＲＬ（Uniform Resource Locator）の入力が必要となるＷｅｂブラウザ、メールアドレスの入力が必要となる電子メールソフト、製品名の入力が必要となる電子コマースサイト等が挙げられる。【０００６】
また、非特許文献１には、オートコンプリートを実現する技術の一例が開示されている。非特許文献１に開示された技術によれば、ユーザが入力した文字列と、先頭部分が一致する推薦候補文字列が高速に探索される。【０００７】
但し、非特許文献１に開示された技術は、英語のような、ユーザがキーボードで入力する文字列と、推薦候補文字列の表記とが同一となる言語を対象としている。また、この技術では、先頭部分の一致判定は、単純にユーザが入力した文字列と推薦候補文字列との文字コードが一致するかどうかによって行われている。このため、非特許文献１に開示された技術を、日本語のような、入力された文字列と推薦候補文字列の表記とが一致しない言語に、そのまま適用するのは困難である。【０００８】
具体的には、日本語での入力の場合、第一に、ユーザの多くは、まずローマ字仮名入力等を利用して、入力したい文字列を仮名で入力し、次に仮名を漢字に変換する。従って、漢字に変換する時点で、ほぼ入力が終わっていると考えられるため、漢字に変換してから、ユーザに推薦候補文字列を推薦するのでは遅く、仮名を入力した時点で、ユーザに推薦候補文字列を推薦する必要がある。【０００９】
そのため、オートコンプリートを日本語での入力に適用するためには、日本語ドキュメントから収集された文字列候補について、予め読み仮名を推定しておき、ユーザが入力した仮名文字列と、推薦候補文字列の読み仮名とを照合する必要がある。【００１０】
また、推薦候補文字列の読み仮名を推定する方法としては、表記と読み仮名との対応が記述された日本語の辞書を用いた方法が挙げられる。この方法では、日本語ドキュメントから、推薦候補文字列が収集されると、まず、推薦候補文字列は、辞書に存在する表記と一致する部分毎に分割される。次に、各部分に対応する読み仮名が連結され、推薦候補文字列の読み仮名が推定される。【００１１】
また、このような辞書を用いた読み仮名の推定方法は、形態素解析と呼ばれる手法を用いることで実現できる。さらに、推薦候補文字列の各部分に対応する各読み仮名を用いて、元の推薦候補文字列についてインデックスを作成し、このインデックスを用いて、ユーザが仮名を入力した時点で、入力した仮名に対応する推薦候補文字列を推薦することができる。【００１２】
ここで、特許文献１を用いて、仮名の入力に応じて、ユーザに推薦候補文字列を推薦する技術について説明する。特許文献１には、音声認識を利用して情報を検索する技術が開示されている。【００１３】
特許文献１に開示された技術では、例えば、「スーパーフニット国分寺ストア」という文字列は、辞書を引くことによって、「スーパー」、「フニット」「国分寺」、「ストア」という４つの語に分割される。ここで「スーパー」はスーパーマーケットの略称であり、「フニット」は商号の例であり、「国分寺」は地名の例である。そして、辞書に記載されているそれぞれの読み仮名を用いることで、「スーパー  フニット  コクブンジ  ストア」という読み仮名が推定される。【００１４】
そして、ユーザが音声入力によって「フニツ」と入力すると、「フニツ」と先頭一致する「フニット」という部分文字列が探しだされ、その部分文字列を含む元の文字列である「スーパーフニット 国分寺 ストア」が推定され、これがユーザに推薦される。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】国際公開第２０１１／０３０８１７号
【非特許文献】
【００１６】
【非特許文献１】Bo-June (Paul) Hsu and Giuseppe Ottaviano, "Space-Efficient Data Structures for Top-k Completion", WWW '13 Proceedings of the 22nd international conference on World Wide Web, p583-594, May, 2013
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上述したように、特許文献１に開示された技術を用いれば、ユーザは、仮名を入力するだけで、漢字を含んだ推薦候補文字列の提示を受けることができるが、この技術には、推薦の精度が低いという問題がある。【００１８】
具体的には、まず、単純に辞書引きによって、文字列を複数の語に分割した場合、得られた語には、ユーザが入力の開始に用いる可能性が低い語も多数含まれている。そのため、ユーザへの推薦結果として、ユーザが入力したかった文字列とは異なる文字列が、推薦候補文字列として推薦されてしまい、推薦精度が低下するという問題が発生する。【００１９】
例えば、「アトピーに効く豆乳」という商品名が登録されている場合において、特許文献１に開示された技術を用いて、入力されたキーワードから、この商品名を推薦する場合について検討する。この場合において、ユーザが「アトピ」又は「トウニュ」と入力した場合は、通常は、「アトピーに効く豆乳」が推薦候補文字列として出力される。【００２０】
しかしながら、特許文献１に開示された技術を用いた場合は、ユーザが「キク」又は「キクト」と入力した場合であっても、「アトピーに効く豆乳」が推薦候補文字列として出力される可能性がある。つまり、「キク」又は「キクト」と入力する場合、通常、ユーザは、「アトピーに効く豆乳」以外の語（「菊と刀」等）を期待していると考えられので、このような推薦は、ユーザにとっては違和感が生じる。【００２１】
また、上述のような推薦の精度が低いという問題が生じる理由は、文字列に含まれる語毎に、ユーザが入力の開始に用いる可能性が異なるためである。例えば、「効く」は、通常は前方に「〜に」を伴って使用される語である。よって、ユーザが最初に「効く」と変換する意図をもって「キク」と入力し始める可能性は少なく、「効く」は、ユーザが入力の開始に用いる可能性が低い語である。一方、「豆乳」は単独で使われやすい語であり、ユーザが最初に「豆乳」と変換する意図をもって「トウニュウ」と入力する可能性は高く、「トウニュ」は、ユーザが入力の開始に用いる可能性が高い語である。【００２２】
このように、同じ推薦候補文字列に含まれる語であっても、ユーザが入力の開始に用いる可能性が高い語と、ユーザが入力の開始に用いる可能性が低い語とが存在している。このため、特許文献１に開示された技術には、推薦精度が低下するという問題が発生してしまう。【００２３】
本発明の目的の一例は、上記問題を解消し、文字列における、最初に入力される可能性を考慮して、ユーザに推薦すべき文字列を提示し得る、入力支援装置、入力支援方法及び記録媒体を提供することにある。
【課題を解決するための手段】
【００２４】
上記目的を達成するため、本発明の一側面における入力支援装置は、ユーザによる文字列の入力を支援する装置であって、
単語とその読み仮名とが登録され、且つ、単語が文字列の入力時に最初に入力される可能性があるか否かが示された、インデックス構造を用いて、ユーザが仮名文字列を入力した場合に、入力された仮名文字列に対して推薦すべき文字列を特定する、文字列特定手段と、
特定された推薦すべき文字列を、推薦候補として提示する、推薦候補提示手段と、
を備える。【００２５】
また、上記目的を達成するため、本発明の一側面における入力支援方法は、ユーザによる文字列の入力を支援する方法であって、
単語とその読み仮名とが登録され、且つ、単語が文字列の入力時に最初に入力される可能性があるか否かが示された、インデックス構造を用いて、ユーザが仮名文字列を入力した場合に、入力された仮名文字列に対して推薦すべき文字列を特定し、特定された推薦すべき文字列を、推薦候補として提示する、ことを有する。【００２６】
更に、上記目的を達成するため、本発明の一側面における記録媒体に格納されるプログラムは、コンピュータによって、ユーザにおける文字列の入力を支援するためのプログラムであって、
当該コンピュータに、
単語とその読み仮名とが登録され、且つ、前記単語が文字列の入力時に最初に入力される可能性があるか否かが示された、インデックス構造を用いて、ユーザが仮名文字列を入力した場合に、入力された仮名文字列に対して推薦すべき文字列を特定し、特定された推薦すべき文字列を、推薦候補として提示する、ことを実行させる。
【発明の効果】
【００２７】
以上のように、本発明によれば、文字列における、最初に入力される可能性を考慮して、ユーザに推薦すべき文字列を提示することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、本発明の第一の実施形態における入力支援装置の概略構成を示すブロック図である。
【図２】図２は、本発明の第一の実施形態における入力支援装置の構成を具体的に示すブロック図である。
【図３】図３は、本発明の第一の実施形態で用いられるインデックス構造に登録されている情報の一例を示す図である。
【図４Ａ】図４Ａは、本発明の第一の実施形態で用いられるインデックス構造に使用されるポインタとその内容の概念の一例を示す図である。
【図４Ｂ】図４Ｂは、本発明の第一の実施形態で用いられるインデックス構造を用いたトライ木の一例を示す概念図である。
【図５】図５は、本発明の第一の実施形態で用いられるインデックス構造を用いたトライ木の一例を示す概念図である。
【図６】図６は、本発明の第一の実施形態における入力支援装置の動作を示すフロー図である。
【図７】図７は、本発明の第二の実施形態における入力支援装置の概略構成を示すブロック図である。
【図８】図８は、本発明の第二の実施形態におけるインデックス構造の構築に用いられる辞書の一例を示す図である。
【図９】図９は、本発明の第二の実施形態における入力支援装置の動作を示すフロー図である。
【図１０】図１０は、本発明の第一および二の実施形態における入力支援装置を実現するコンピュータの一例を示すブロック図である。
【図１１】図１１は、本発明の第三の実施形態における入力支援装置の概略構成を示すブロック図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を、図面を参照して詳細に説明する。以下に説明する実施形態では、インデックス構造を用いて、入力支援が行われるが、このインデックス構造は、ユーザに推薦すべき文字列に含まれる、あらゆる語の読み仮名が単に登録されただけのものではない。本発明の実施形態では、単語とその読み仮名とが登録され、且つ、各単語が文字列の入力時に最初に入力される可能性があるか否かが示された、インデックス構造が用いられる。
【００３０】
このため、ユーザによって、入力時に最初に入力されやすい単語の読み仮名と一致する仮名文字が入力された場合は、この単語を含む文字列が推薦されるが、一致しない仮名文字が入力された場合は、文字列の推薦は行われない。
【００３１】
例えば、推薦すべき文字列として「アトピーに効く豆乳」が登録され、更に、「アトピー（あとぴー）」及び「豆乳（とうにゅう）」は、入力時に最初に入力される可能性があるとする。この場合、ユーザによって、「アトピ」又は「トウニュ」と入力されると、「アトピーに効く豆乳」が推薦される。しかし、ユーザによって、「キク」又は「キクト」と入力されると、「アトピーに効く豆乳」は推薦されない。この結果、入力支援における推薦精度が向上することとなる。
【００３２】
なお、推薦すべき文字列としては、予め登録された文字列が用いられる。更に、登録対象となる文字列は、例えば、検索システムに蓄積されている過去の入力ログ、製品カタログ、住所録、等から取得可能である。また、インデックス構造に登録される「単語」には、単体で意味の分かる語だけでなく、単体で意味の分かる語を分割して得られた語（不完全な単語）が含まれていてもよい。不完全な単語の例としては、「Ａｆｇｈａｎ（読み仮名：アフガン）」を分割して得られた「Ａｆ（読み仮名：アフ）」と「ｇｈａｎ（読み仮名：ガン）」、等が挙げられる。
【００３３】
また、本発明の実施形態では、文字列を推薦する際に、この推薦候補となる文字列において、ユーザが入力した仮名文字列に対応している部分を強調して表示するのが好ましい態様である。この態様により、ユーザは、自分が入力した仮名文字列が、推薦候補となる文字列のどの部分に対応するのかを、素早く理解でき、更に、この推薦候補となる文字列が適切かどうかを速やかに判断できる。
【００３４】
更に、本発明の実施形態では、インデックス構造は、単語の表記と読み仮名とを対応させた辞書を引くことで構築できる。具体的には、初めに、推薦すべき文字列のリストが与えられているとする。次に、この各文字列に対応する読み仮名が推定される。また、各文字列に対応する読み仮名の推定は、上述の辞書を使って行われる。このとき、辞書に、単独では語にならないような短い文字列が登録されていると、読み仮名の推定精度が向上することになる。
【００３５】
続いて、リストに記載の文字列は、更に短い部分文字列に分割され、得られた部分文字列のうち、最初に入力される可能性がある部分文字列が推定される。そして、最初に入力される可能性がある部分文字列に対応する読み仮名がキーとなるようなデータ構造を成す、インデックス構造が構築される。
【００３６】
また、この部分文字列が、「単語」として、インデックス構造に登録される。よって、分割によって得られる部分文字列は、単体で意味の分かる語であってもよいし、単体で意味の分かる語を更に分割して得られる語（不完全な単語）であってもよい。なお、インデックス構造には、このように不完全な単語も登録されるが、各単語が、最初に入力される可能性があるか否かが示されている。これにより、不完全な単語が誤って推薦される事態は回避される。
【００３７】
また、部分文字列が最初に入力される可能性を有しているかどうかは、例えば、推薦すべき文字列の取得先となった文書集合における各部分文字列の統計データ（出現頻度等）に基づいて、更には予め設定されたルールに基づいて、判断することができる。
【００３８】
（第一の実施形態）
以下、本発明の第一の実施形態における入力支援装置、入力支援方法及び記憶装置について、図１乃至図６を参照しながら説明する。
【００３９】
［装置構成］
最初に、図１を用いて、本発明の第一の実施形態における入力支援装置の構成について説明する。図１は、本発明の第一の実施形態における入力支援装置の概略構成を示すブロック図である。
【００４０】
図１に示す、第一の実施形態における入力支援装置１０は、ユーザによる文字列の入力を支援するための装置である。図１に示すように、入力支援装置１０は、文字列特定部１１と、推薦候補提示部１２とを備えている。
【００４１】
このうち、文字列特定部１１は、ユーザが仮名文字列を入力した場合に、インデックス構造記憶部１３に格納されるインデックス構造を用いて、入力された仮名文字列に対して推薦すべき文字列を特定する。インデックス構造には、単語とその読み仮名とが登録され、且つ、各単語が文字列の入力時に最初に入力される可能性があるか否かが示されている。また、推薦候補提示部１２は、文字列特定部１１によって特定された、推薦すべき文字列を、推薦候補として提示する。
【００４２】
また、第一の実施形態において、仮名文字列とは、漢字、記号、数字、アルファベット等への変換を前提とした文字列を意味する。更に、仮名文字列は、ひらがな、カタカナ、及びローマ字のいずれで構成されていてもよい。仮名文字列の入力は、仮名文字を直接入力することによって行われてもよいし、ローマ字を入力することによって行われてもよい。
【００４３】
このように、第一の実施形態では、インデックス構造には、各単語について、ユーザによって最初に入力される可能性があるかどうかが示されている。従って、入力支援装置１０は、ユーザが入力した仮名文字列に対応する単語が、最初に入力される可能性がある場合にのみ、この仮名文字列に対応する単語を含む文字列を推薦することができる。即ち、第一の実施形態によれば、文字列における、最初に入力される可能性を考慮して、ユーザに推薦候補を提示することができるので、従来と異なり、入力された仮名文字列に対して、不自然な文字列が推薦されてしまう事態が、回避されることになる。
【００４４】
ここで、図２を用いて、第一の実施形態における入力支援装置１０の構成について更に具体的に説明する。図２は、本発明の実施の形態における入力支援装置の構成を具体的に示すブロック図である。
【００４５】
図２に示すように、本実施の形態では、入力支援装置１０は、コンピュータ２０を用いて、プログラムによって構築されており、コンピュータ２０で実行される各種アプリケーションプログラムでのユーザの入力を支援している。このため、入力支援装置１０へのユーザの入力は、コンピュータ２０が備える入力部２１を介して行われている。入力部２１は、コンピュータ２０に備えられた、キーボード、タッチパネルといった入力機器である。また、入力支援装置１０は、推薦候補をユーザに提示するため、推薦候補となる文字列を表示部２２に出力する。表示部２２は、コンピュータ２０に備えられた、表示装置である。
【００４６】
また、図２に示すように、本実施の形態では、入力支援装置１０は、上述したインデックス構造記憶部１３を備えている。インデックス構造記憶部１３は、コンピュータ２０に備えられた、ハードディスク等の記憶装置（図２において図示せず）の記憶領域上に構築されている。なお、インデックス構造記憶部１３は、コンピュータ２０以外のコンピュータに備えられた記憶装置の記憶領域上に構築されていてもよい。
【００４７】
また、本実施の形態では、文字列特定部１１は、インデックス構造記憶部１３が格納するインデックス構造から、入力された仮名文字列に関連しており、且つ、入力時に最初に入力される可能性があることを示す単語を含む、文字列を、推薦すべき文字列として特定する。
【００４８】
具体的には、本実施の形態では、以下に述べる２つの場合において、推薦すべき文字列を特定する。１つ目の場合は、インデックス構造記憶部１３に格納されるインデックス構造において、読み仮名の少なくとも先頭部分が、入力された仮名文字列と一致する、単語が登録されている場合である。この場合、文字列特定部１１は、この単語が入力時に最初に入力される可能性があることを示していることを条件に、インデックス構造記憶部１３から、この単語を含む文字列を抽出し、この文字列を推薦候補として特定する。
【００４９】
２つ目の場合は、インデックス構造記憶部１３に格納されるインデックス構造において、文字列中で連続する２以上の単語を連結したときの読み仮名の少なくとも先頭部分が、入力された仮名文字列と一致している場合である。この場合、文字列特定部１１は、先頭の単語が、入力時に最初に入力される可能性があることを示していることを条件に、インデックス構造記憶部１３から、この２以上の単語を含む文字列を抽出し、この文字列を推薦候補として特定する。
【００５０】
続いて、図３乃至図５を用いて、インデックス構造記憶部１３が格納するインデックス構造の具体例について説明する。図３は、本発明の第一の実施形態で用いられるインデックス構造に登録されている情報の一例を示す図である。図４Aおよび図４Bは、本発明の第一の実施形態で用いられるインデックス構造の一例を示す図である。図５は、本発明の第一の実施形態で用いられるインデックス構造の他の例を示す図である。
【００５１】
図３に示すように、インデックス構造記憶部１３に格納されるインデックス構造には、複数の単語が登録され、更に、単語毎に、読み仮名も登録される。また、インデックス構造には、上述したように、単体で意味の分かる単語だけでなく、不完全な単語も登録される。また、図３において「最初」の欄は、各単語が、入力時に最初に入力される可能性があるかどうかを示しており、可能性が高い場合は「○」で示され、可能性が低い場合は「×」で示されている。
【００５２】
更に、第一の実施形態では、インデックス構造に登録される単語は、推薦すべき文字列となる候補を分割して得られている（後述の第二の実施形態参照）。具体的には、「Ａｆ」と「ｇｈａｎ」は、「Ａｆｇｈａｎ」を分割して得られている。「Ｎ」、「Ｅ」、「Ｃ」、「中」及び「研」は、「ＮＥＣ中研」を分割して得られている。「球」、「菌」、「性」及び「中毒」は、「球菌性中毒」を分割して得られている。「アトピー」、「に」、「効く」及び「豆乳」は、「アトピーに効く豆乳」を分割して得られている。更に、「香水」、「用」及び「アトマイザー」は、「香水用アトマイザー」を分割して得られている。
【００５３】
また、例えば、「アトピーに効く豆乳」という候補は、上述したように、「アトピー」、「に」、「効く」及び「豆乳」の４つの単語に分割される。このうち「に」と「効く」は、最初に入力される可能性が低いと考えられるので、これらについては「×」とされている。一方、「アトピー」と「豆乳」は、最初に入力される可能性が高いと考えられるので、これらについては「○」とされている。
【００５４】
更に、同様に、「香水用アトマイザー」という候補は、上述したように、「香水」、「用」、及び「アトマイザー」という３つの単語に分割される。このうち「用」は、最初に入力される可能性が低いと考えられるので、これについては「×」に設定されている。一方、「香水」と「アトマイザー」とは、最初に入力される可能性が高いと考えられるので、これらについては「○」に設定されている。
【００５５】
インデックス構造の一例について説明する。第一の実施形態では、図４Ａに示される推薦すべき文字列（インデックス構造）を用いて、入力支援する場合について説明する。図４Ａに示すように、一番ポインタには「ＮＥＣ中研」、２番ポインタには「球菌性中毒」、３番ポインタには「Ａｆｇｈａｎ」、４番ポインタには「アトピーに効く豆乳」、５番ポインタには「香水用アトマイザー」が登録されている。
【００５６】
また、図４Ｂに示すように、第一の実施形態では、インデックス構造は、例えば、トライ木によって実現されている。トライ木は、木構造の１つであり、その木構造を成すパスが文字列を表すように構成されている。更に、トライ木においては、上層のパスとしては、最初に入力される可能性がある単語（図３の項目「最初」において「○」が設定されている単語）が用いられており、更に、最も下層のパスには、対応する候補（推薦すべき文字列）へのポインタが設けられている。ここで上層とは図４Ｂ（図５）左側部分、下層とは同図右側部分を示している。
【００５７】
従って、図４Ｂに示すインデックス構造が用いられた場合、文字列特定部１１は、ユーザが入力した仮名文字に基づいて、トライ木をたどり、到着した末端のノードにポインタ（図４Ａの項目「ポインタ」に対応）があれば、更に、そのポインタに基づいて、候補（推薦すべき文字列）を取得する。このとき取得された候補が、推薦候補として提示される。
【００５８】
例えば、ユーザが「アト」と入力したとする。この場合、文字列特定部１１は、まず、「アトマイザー」という仮名文字列に対応するパスを通り、５番のポインタに登録されている「香水用アトマイザー」を候補として取得する。続いて、文字列特定部１１は、「アトピーニキクトウニュウ」という仮名文字列に対応するパスも通り、４番ポインタに登録されている「アトピーに効く豆乳」も候補として取得する。この場合では、文字列特定部１１は、２つの候補を取得することになる。
【００５９】
また、第一の実施形態では、図５に示すように、インデックス構造記憶部１３において、推薦すべき文字列となる候補それぞれに、統計データ（例えば、各候補の取得元における出現頻度等）に基づいて、スコアが設定されていてもよい。この場合、推薦候補提示部１２は、推薦すべき文字列が複数ある場合において、各文字列について、スコアを元に優先順位を設定し、優先順位の順に、各文字列を推薦候補として提示することができる。
【００６０】
具体的には、例えば、ユーザが、仮名文字列として「アト」を入力したとする。この場合、文字列特定部１１は、「香水用アトマイザー」と「アトピーに効く豆乳」とを取得するので、推薦候補提示部１２は、これらを推薦候補として提示するが、図５の例では、後者のスコアが高くなっている。よって、推薦候補提示部１２は、「アトピーに効く豆乳」、「香水用アトマイザー」なる順に提示することになる。
【００６１】
また、スコアの設定方法は特に限定されず、例えば、ユーザが入力した仮名文字列と、中間部分で一致する候補よりも、先頭部分で一致する候補の方が、値が高くなるように設定されていてもよい。
【００６２】
このように、インデックス構造において、推薦すべき文字列となる候補それぞれに、スコアを設定した場合は、適切な推薦候補ほど、上位に表示されるので、よりいっそう推薦精度が向上することになる。
【００６３】
また、第一の実施形態では、推薦候補提示部１２は、文字列特定部１１によって特定された推薦すべき文字列（即ち、推薦候補）において、入力された仮名文字列に対応する部分を、他の部分と異なる態様で提示することができる。
【００６４】
具体的には、この態様では、文字列特定部１１は、推薦すべき文字列に加え、この文字列において、入力された仮名文字列に対応する部分がどこであるかを特定する情報も、推薦候補提示部１２に出力する。よって、推薦候補提示部１２は、出力されてきた情報に基づいて、入力された仮名文字列に対応する部分を特定し、特定した部分について、強調表示、下線付加、フォント変更、色変更等を実行する。
【００６５】
また、推薦すべき文字列において、例えば、入力された仮名文字列に対応する部分の開始位置と終了位置とに付与した区切り又は記号によって当該部分を特定することができる。
【００６６】
更に、「ユーザが入力した仮名文字列に対応している部分」としては、読み仮名の少なくとも先頭部分が仮名文字列と一致している単語が挙げられる。また、文字列中で連続している２以上の単語を連結したときの読み仮名が、少なくとも先頭部分で、ユーザが入力した仮名文字列と一致する場合は、「ユーザが入力した仮名文字列に対応している部分」としては、この文字列中で連続している２以上の単語も挙げられる。
【００６７】
例えば、図３に示すインデックス構造が用いられている場合に、ユーザが「アトピ」と入力したとする。この場合は、文字列特定部１１が「アトピーに効く豆乳」を推薦すると共に、推薦候補提示部１２が「アトピー」を強調表示等する。また、ユーザが「アトピーニキ」と入力したとする。この場合も、文字列特定部１１が「アトピーに効く豆乳」と推薦するが、この場合では、推薦候補提示部１２が「アトピー」と「に」と「効く」とを強調表示等する。
【００６８】
このような態様によれば、ユーザは、自分が入力した仮名文字列が、推薦候補となる文字列のどの部分に対応するのかを、素早く理解でき、更に、この推薦候補となる文字列が適切かどうかを速やかに判断できる。この態様は、ユーザが複数の推薦候補の中から、自分が入力したい文字列を識別する際において、有用である。
【００６９】
［装置動作］
次に、本発明の第一の実施形態における入力支援装置１０の動作について図６を用いて説明する。図６は、本発明の第一の実施形態における入力支援装置の動作を示すフロー図である。以下の説明においては、適宜図２乃至図５を参酌する。また、第一の実施形態では、入力支援装置１０を動作させることによって、入力支援方法が実施される。よって、以下の入力支援装置１０の動作説明は、第一の実施形態における入力支援方法の説明でもある。
【００７０】
図６に示すように、最初に、入力支援装置１０の文字列特定部１１が、ユーザが入力部２１から入力した文字列を受け付ける（ステップＡ１）。次に、文字列特定部１１は、入力された文字列が、仮名文字列であるかどうかを判定する（ステップＡ２）。
【００７１】
ステップＡ２の判定の結果、入力された文字列が仮名文字列でない場合は、入力支援装置１０における処理は終了する。一方、ステップＡ２の判定の結果、入力された文字列が仮名文字列である場合は、文字列特定部１１は、インデックス構造記憶部１３から、入力された仮名文字列に関連しており、且つ、入力時に最初に入力される可能性がある単語を含む、文字列を、推薦すべき文字列を得る（ステップＡ３）。
【００７２】
具体的には、ステップＡ３において、文字列特定部１１は、入力された仮名文字列を、図３に示したインデックス構造に照合することで、推薦すべき文字列を特定する。なお、入力された仮名文字列が、インデックス構造記憶部１３に登録されている仮名文字のいずれとも、先頭部分において一致していない場合は、入力支援装置１０における処理は終了する。
【００７３】
次に、推薦候補提示部１２は、ステップＡ３で特定された文字列を推薦候補として提示する（ステップＡ４）。具体的には、推薦候補提示部１２は、推薦候補となる文字列を表示部２２に出力する。これにより、ユーザは、入力された仮名文字列に対応する推薦候補を確認することができ、その後、求める文字列を確定することができる。
【００７４】
［プログラム］
また、第一の実施形態におけるプログラムは、コンピュータに、図６に示すステップＡ１乃至Ａ４を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、第一の実施形態における入力支援装置１０と入力支援方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、文字列特定部１１及び推薦候補提示部１２として機能し、処理を行なう。
【００７５】
［第一の実施形態における効果］
以上のように第一の実施形態では、入力支援装置１０は、ユーザが入力した仮名文字列に対応する単語が、最初に入力される可能性がある場合にのみ、この仮名文字列に対応する単語を含む文字列を推薦することができる。この結果、推薦精度の高い入力支援が可能となる。
【００７６】
（第二の実施形態）
次に、本発明の第二の実施形態における入力支援装置、入力支援方法、及びプログラムについて、図７乃至図９を参照しながら説明する。
【００７７】
［装置構成］
最初に、図７を用いて、本発明の第二の実施形態における入力支援装置の構成について説明する。図７は、本発明の第二の実施形態における入力支援装置の概略構成を示すブロック図である。
【００７８】
図７に示すように、第二の実施形態における入力支援装置３０は、図２に示した第一の実施形態における入力支援装置１０と異なり、インデックス構造構築部３１を備えている。
これ以外の点については、入力支援装置３０は、第一の実施形態における入力支援装置１０と同様に構成されている。従って、以下においては、主に相違点を中心に説明する。
【００７９】
インデックス構造構築部３１は、単語の表記とその読み仮名とが関連付けられた辞書を用いて、まず、推薦すべき文字列となる候補を、複数の部分文字列に分割する。また、分割によって得られた「部分文字列」は、一語のみで構成されていても良く、その語数は限定されるものではない。
【００８０】
次に、インデックス構造構築部３１は、得られた部分文字列毎に、各部分文字列が仮名文字列の入力時に最初に入力される可能性があるか否かを判定する。このとき、部分文字列が最初に入力される可能性があるか否かの判定は、部分文字列の統計的データに基づいて行われてもよいし、予め設定されたルールに基づいて行われていてもよい。
【００８１】
その後、インデックス構造構築部３１は、判定結果に基づいて、部分文字列の読み仮名がキーとなるインデックス構造を構築する。具体的には、インデックス構造構築部３１は、最初に入力される可能性があると判定された部分文字列の読み仮名が、上層となるように、トライ木を構築する。構築されたトライ木は、インデックス構造記憶部１３に格納される。
【００８２】
また、第二の実施形態では、インデックス構造構築部３１は、推薦すべき文字列となる候補毎に、各候補を含む文書集合における出現頻度が高い程、値が高くなるようにスコアを設定することができる。そして、この態様では、推薦候補提示部１２は、推薦すべき文字列が複数ある場合において、推薦すべき文字列それぞれについて、スコアを元に優先順位を設定し、優先順位の順に、各文字列を推薦候補として提示する。
【００８３】
ここで、図８を用いて、インデックス構造構築部３１の機能について更に具体的に説明する。図８は、本発明の第二の実施形態におけるインデックス構造の構築に用いられる辞書の一例を示す図である。
【００８４】
まず、推薦すべき文字列となる候補のリストがコンピュータ２０を介して与えられているとする。また、このリストには、例えば、第一の実施形態で述べた、「Ａｆｇｈａｎ」、「ＮＥＣ中研」、「球菌性中毒」、「アトピーに効く豆乳」及び「香水用アトマイザー」といった文字列が登録されているとする。これらの文字列は、上述したように、検索システムに蓄積されている過去の入力ログ、製品カタログ、住所録、等から取得可能である。
【００８５】
インデックス構造構築部３１は、図８に示す辞書を用いて、リストに登録されている各文字列を複数の部分文字列に分割し、更に、辞書に登録されている読み仮名を用いて、各部分文字列の読み仮名を推定する。図８に示すように、辞書には、単語とその読み仮名とが対応するように関連付けられて登録されている。また、辞書には、単体で意味の分かる語だけでなく、単体で意味の分かる語を分割して得られた語（不完全な単語）も登録されている。このため、読み仮名の推定における精度の向上が期待できる。
【００８６】
例えば、「ＮＥＣ中研」という文字列がリストに登録されているとする。この文字列において、「ＮＥＣ」は社名であり、「中研」は社内で用いられる中央研究所の略称であり、どちらも一般的な語ではない。よって、普通の日本語の辞書には登録されていない可能性が大きいため、普通の日本語の辞書を用いて、分割を行った場合は、読み仮名を推定できない事態となり、結果、「ＮＥＣ中研」は推薦すべき文字列としてインデックス構造記憶部１３に登録されない事態となる。このような事態を回避するため、上述したように、第二の実施形態では、辞書には、不完全な単語も登録されている。
【００８７】
図８に示す辞書には、「Ｎ（読み仮名：エヌ）」、「Ｅ（読み仮名：イー）」、「Ｃ（読み仮名：シー）」、「中（読み仮名：チュウ）」、「研（読み仮名：ケン）」といったように、単語と読み仮名とが対応付けられて登録されている。従って、「ＮＥＣ中研」といった一般的でない語についても、読み仮名の推定が可能となり、インデックス構造記憶部１３に登録されることになる。
【００８８】
また、第二の実施形態において、辞書に登録される単語は、上述のように１文字だけで構成されていてもよいし、２文字以上で構成されていてもよい。更に、辞書に登録される単語は、英語の一単語を音節で分割して得られた語、例えば、「Ａｆｇｈａｎ（読み仮名：アフガン）」を分割して得られた「Ａｆ（読み仮名：アフ）」と「ｇｈａｎ（読み仮名：ガン）」等であってもよい。
【００８９】
また、図８に示すように、辞書には、左から３番目の列に「長い内容語」の欄が設けられている。この欄は、各単語が、設定された文字数（例えば２文字）以上で構成された語であるか否かが「○」又は「×」によって示されている。設定された文字数以上で構成された語である場合は「○」で示され、設定された文字数以下で構成された語である場合は「×」で示されている。尚、設定された文字数である場合はどちらに含めるかは設定者の裁量としてよい。なお、文字数が多い単語は、入力時に最初に入力される傾向があるので、後述の「最初に入力される可能性があるか否か」の判定処理においては、「長い内容語」の欄に登録されている情報が用いられてもよい。
【００９０】
更に、図８の例では、辞書には、左から４番目の列にあるように、各単語の「品詞」が登録されていてもよい。また、左から５番目の列にあるように、ひらがな及び漢字といった字種を表す情報が登録されていてもよい。
【００９１】
そして、上述したように、「ＮＥＣ中研」という文字列がリストに登録されている場合、インデックス構造構築部３１は、図８に示す辞書に登録されている「Ｎ」、「Ｅ」、「Ｃ」、「中」、「研」を用いて、この文字列を５つの部分文字列に分割する。また、「球菌性中毒」という文字列がリストに登録されている場合は、インデックス構造構築部３１は、図８に示す辞書に登録されている「球」、「菌」、「性」、「中毒」を用いて、この文字列を４つの部分文字列に分割する。更に、「Ａｆｇｈａｎ」という文字列がリストに登録されている場合は、インデックス構造構築部３１は、図８に示す辞書に登録されている「Ａｆ」と「ｇｈａｎ」とを用いて、この文字列を２つの部分文字列に分割する。
【００９２】
また、第二の実施形態では、このような部分文字列への分割処理において、従来から形態素解析の分野に用いられているビタビ・アルゴリズム等を利用することができる。また、分割処理においては、半角文字の全角文字への変換といった文字列の正規化が実行されてもよい。
【００９３】
次に、インデックス構造構築部３１は、部分文字列毎に、各部分文字列が仮名文字列の入力時に最初に入力される可能性があるか否かを判定する。この場合、インデックス構造構築部３１は、例えば、部分文字列の統計データに基づいて判定することができる。
【００９４】
インデックス構造構築部３１は、統計データとして、例えば、推薦すべき文字列となる候補が、検索システムに蓄積されている過去の入力ログから取得されるのであれば、判定処理の対象となる部分文字列を含む入力ログの出現頻度を使用する。この場合、まず、インデックス構造構築部３１は、判定処理の対象となる部分文字列とそれに後続する文字列とを合わせて、文字列を生成する。そして、生成した文字列の先頭からＮ文字目までの文字列を計測対象とする。なお、後続する文字列が存在しない場合は、部分文字列の先頭からＮ（Ｎは自然数）文字目までの文字列が計測対象となる。
【００９５】
そして、インデックス構造構築部３１は、検索システムに蓄積されている過去の入力ログにおける、この計測対象となる文字列の出現頻度を計測し、計測した出現頻度が一定以上あるときに、この部分文字列は、最初に入力される可能性があると判定する。例えば、Ｎ＝２である場合において、「中毒」で始まる入力ログは数多く存在するが、「菌性」で始まる入力ログが少ないとき、「中毒」で始まる部分文字列は、最初に入力される可能性があると判定されるが、「菌性」で始まる部分文字列は最初に入力される可能性はないと判定される。
【００９６】
また、インデックス構造構築部３１は、このとき計測された出現頻度を用いて、推薦すべき文字列となる各候補に対して、入力され易さを表すスコアを設定することができる。この場合、推薦候補提示部１２は、第一の実施形態と同様に、推薦すべき文字列が複数ある場合において、各文字列について、スコアを元に優先順位を設定し、優先順位の順に、各文字列を推薦候補として提示することができる。
【００９７】
また、統計データは、入力ログ以外のテキストデータ、例えば、Ｗｅｂページから求められていてもよい。具体的には、インデックス構造構築部３１は、まず、句点及び読点を用いて、又は形態素解析を用いて、テキストデータを分割し、これを文（ｓｅｎｔｅｎｃｅ）、節（ｃｌａｕｓｅ）、又は語に分解する。
【００９８】
続いて、分解が終了すると、インデックス構造構築部３１は、判定対象となる部分文字列とそれに後続する文字列とを合わせて、文字列を生成する。そして、生成した文字列の先頭からＮ文字目までの文字列が、文、節、又は語の先頭で用いられている回数を計測し、計測した回数が一定以上であるときに、この部分文字列は、最初に入力される可能性があると判定される。なお、後続する文字列が存在しない場合は、部分文字列の先頭からＮ文字目までの文字列が計測対象となる。
【００９９】
また、上述のインデックス構造構築部３１による判定処理は、予め設定されたルールに基づいて行われてもよい。また、複数のルールの組み合わせが用いられてもよい。例えば、文書には、漢字からアルファベット等に切り替わる箇所のように、字種が切り替わる箇所が存在している場合がある。このような場合、切り替え後の部分文字列については、最初に入力される可能性があると判断できる。よって、このことをルールとして規定することで、上述の判定処理を行うことができる。
【０１００】
また、判定処理は、辞書に予め内容語を指定しておくことによっても行うことができる。例えば、図８に示した「長い内容語」欄に登録されている「○：長い」及び「×：短い」に基づいて、判定処理が行われていてもよい。この場合では、長い内容語と先頭部分で一致する部分文字列については、最初に入力される可能性があると判定される。更に、判定処理は、辞書に登録されている単語の品詞に基づいて行うこともできる。例えば、名詞及び動詞は、最初に入力される可能性があるとし、助詞及び助動詞は、最初に入力される可能性がないとして、判定処理が行われてもよい。
【０１０１】
具体的には、インデックス構造構築部３１は、上述のいずれかの判定処理により、例えば「ＮＥＣ中研」という文字列において、「Ｎ」及び「中」は、最初に入力される可能性があると判定し、「Ｅ」、「Ｃ」、「研」は、最初に入力される可能性がないと判定する。
【０１０２】
そして、インデックス構造構築部３１は、最初に入力される可能性があると判定した部分文字列の読み仮名がキーとなるようにして、第一の実施形態と同様に、インデックス構造を構築する。例えば、上述の「ＮＥＣ中研」であれば、インデックス構造構築部３１は、「エヌ」が上層となるパスと、「チュウ」が上層となるパスとを構築する。また、インデックス構造構築部３１は、「エヌ」が上層となるパスには、後続する「イー」、「シー」、「チュウ」、「ケン」を順に接続し、「チュウ」が上層となるパスには、後続する「ケン」を接続する。
【０１０３】
このようにして構築されたインデックス構造を用いれば、ユーザが、「エヌイー」又は「チュウケ」と入力した場合に、「ＮＥＣ中研」が推薦される。しかし、ユーザが、「イーシー」等と入力した場合は、この仮名文字列は、最初に入力される可能性がないと判定されるので、「ＮＥＣ中研」は推薦されないこととなる。
【０１０４】
また、インデックス構造構築部３１は、インデックス構造において、辞書を用いた分割によって得られた各部分文字列が特定されるように、部分文字列と部分文字列との間を明示する区切りを登録することもできる。この区切りは、第一の実施形態で述べたように、文字列特定部１１が、入力された仮名文字列に対応する部分がどこであるかを特定する情報を生成する場合に有用となり、強調表示等の実現が容易となる。
【０１０５】
［装置動作］
次に、本発明の第二の実施形態における入力支援装置３０の動作について図９を用いて説明する。図９は、本発明の第二の実施形態における入力支援装置の動作を示すフロー図である。以下の説明においては、適宜図７乃至図８を参酌する。
【０１０６】
また、第二の実施形態では、入力支援装置３０を動作させることによって、入力支援方法が実施される。よって、第二の実施形態における入力支援方法の説明は、以下の入力支援装置３０の動作説明を兼ねる。なお、インデックス構造の構築処理以外の処理は、第一の実施形態の場合と同様であるので、以下においては、インデックス構造の構築処理について説明する。
【０１０７】
図９に示すように、最初に、インデックス構造構築部３１は、推薦すべき文字列となる候補を取得する（ステップＢ１）。具体的には、候補は、検索システムに蓄積されている過去の入力ログ、製品カタログ、住所録、等から取得される。
【０１０８】
次に、インデックス構造構築部３１は、図８に示す辞書を用いて、リストに登録されている各文字列を複数の部分文字列に分割して、部分文字列を生成する（ステップＢ２）。続いて、インデックス構造構築部３１は、辞書に登録されている読み仮名を用いて、ステップＢ２で生成された各部分文字列の読み仮名を推定する（ステップＢ３）。
【０１０９】
次に、インデックス構造構築部３１は、部分文字列毎に、各部分文字列が仮名文字列の入力時に最初に入力される可能性があるか否かを判定する（ステップＢ４）。ステップＢ４の判定処理は、統計データ、予め設定されたルール、辞書に登録されている情報等に基づいて行われる。
【０１１０】
その後、インデックス構造構築部３１は、ステップＢ４の判定結果を用いて、最初に入力される可能性があると判定した部分文字列の読み仮名がキーとなるようにして、複数のパスを作成し、第一の実施形態と同様に、インデックス構造を構築する（ステップＢ５）。構築されたインデックス構造はインデックス構造記憶部１３に格納される。
【０１１１】
［プログラム］
また、第二の実施形態におけるプログラムは、コンピュータに、図６に示すステップＡ１乃至Ａ４と、図９に示すステップＢ１乃至Ｂ５とを実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、第二の実施形態における入力支援装置３０と入力支援方法とを実現することができる。この場合、コンピュータのＣＰＵは、文字列特定部１１、推薦候補提示部１２及びインデックス構造構築部３１として機能し、処理を行なう。
【０１１２】
［第二の実施形態における効果］
以上のように、第二の実施形態によれば、入力支援装置３０自体によってインデックス構造が構築されるので、入力支援装置３０の管理者は、検索システムに蓄積されている過去の入力ログ、製品カタログ、住所録、等を装置に入力するだけでよい。また、第二の実施形態を用いた場合も、第一の実施形態で述べた効果を得ることが可能である。
（第三の実施形態）
次に、本発明の第三の実施形態における入力支援装置の構成について説明する。図１１は、本発明の第三の実施形態における入力支援装置１０ａの概略構成を示すブロック図である。第三の実施形態における入力支援装置１０ａは、ユーザによる文字列の入力を支援するための装置であり、文字列特定部１１ａと、推薦候補提示部１２ａとを備える。
文字列特定部１１ａは、単語とその読み仮名とが登録され、且つ、単語が文字列の入力時に最初に入力される可能性があるか否かが示された、インデックス構造を用いて、ユーザが仮名文字列を入力した場合に、入力された仮名文字列に対して推薦すべき文字列を特定する。推薦候補提示部１２ａは、特定された推薦すべき文字列を、推薦候補として提示する。
本発明の第三の実施形態によれば、文字列における、最初に入力される可能性を考慮して、ユーザに推薦すべき文字列を提示することにより、推薦精度の高い入力支援が可能となる。
【０１１３】
ここで、上述の第一〜三の実施形態におけるプログラムを実行することによって、入力支援装置を実現するコンピュータについて図１０を用いて説明する。図１０は、本発明の第一および二の実施形態における入力支援装置を実現するコンピュータの一例を示すブロック図である。
【０１１４】
図１０に示すように、コンピュータ２０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【０１１５】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するプログラムであってもよい。
【０１１６】
また、記憶装置１１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【０１１７】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ２０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１１８】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash）及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【０１１９】
なお、第一〜三の実施形態における入力支援装置を実現するコンピュータは、図１０に示すコンピュータに限定されることはない。第一〜三の実施形態における入力支援装置を実現するコンピュータは、パーソナルコンピュータ、スマートフォン、タブレット型端末装置、カーナビゲーションシステム等、ユーザによる入力操作が必要なコンピュータであればよい。
【産業上の利用可能性】
【０１２０】
以上のように、本発明によれば、文字列における、最初に入力される可能性を考慮して、ユーザに推薦すべき文字列を提示することができる。本発明は、ユーザによる入力操作が必要な分野、例えば、検索システム、ワードプロセッサ等に有用である。【０１２１】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。【０１２２】
この出願は２０１３年１１月２５日に出願された日本出願特願２０１３−２４３１２８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２３】
１０  入力支援装置
１１  文字列特定部
１２  推薦候補提示部
１３  インデックス構造記憶部
２０  コンピュータ
２１  入力部
２２  表示部
３０  入力支援装置
３１  インデックス構造構築部
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
0006538563.tif 000002
【図２】
0006538563.tif 000003
【図３】
0006538563.tif 000004
【図４Ａ】
0006538563.tif 000005
【図４Ｂ】
0006538563.tif 000006
【図５】
0006538563.tif 000007
【図６】
0006538563.tif 000008
【図７】
0006538563.tif 000009
【図８】
0006538563.tif 000010
【図９】
0006538563.tif 000011
【図１０】
0006538563.tif 000012
【図１１】
0006538563.tif 000013