(57)【要約】【課題】  同じ意味を持った文字列のグループごとに使用頻度を集計することで、使用頻度の高い意味を持った文字列を入力予測候補の上位にランク付けする文字入力支援装置を提供する。【解決手段】  部分文字列データから、自立語を抽出する自立語抽出部２０５と、部分文字列データの中から処理対象の部分文字列データを選択し、処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを検出する第１検出部２０６と、検出した他の部分文字列データと処理対象の部分文字列データとのうち、部分文字列データの長さ、又は出現頻度に応じて部分文字列データを選択し、入力予測候補としてＲＡＭ１０３に記録する第１選択部２０７と、処理対象の部分文字列データと、検出した他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を入力予測候補の使用頻度としてＲＡＭ１０３に記録する頻度再計算部２０４とを備える。【選択図】        図３
2011053866.tif 000002
【特許請求の範囲】
【請求項１】
入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換手段と、
前記変換手段で変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数手段と、
前記変換手段により変換された部分文字列データから、自立語を抽出する自立語抽出手段と、
前記変換手段により変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出手段の抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出手段と、
前記第１検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択手段と、
前記処理対象の部分文字列データと、前記第１検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出手段と、
前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出手段と、
を備えることを特徴とする文字入力支援装置。
【請求項２】
同じ意味を示す同義語を登録した辞書を記憶した辞書記憶手段と、
前記辞書記憶手段を参照して、前記自立語抽出手段で抽出された自立語の同義語を抽出する同義語抽出手段と、
前記変換手段で変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる自立語の同義語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第２検出手段と、
前記第２検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、前記記憶手段に前記入力予測候補として記憶させる第２選択手段とを備え、
前記頻度算出手段は、前記処理対象の部分文字列データと、前記第２検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする請求項１記載の文字入力支援装置。
【請求項３】
前記変換手段で変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる単語数又は文節数よりも多くの単語又は文節を含んだ部分文字列データであって、前記処理対象の部分文字列データに含まれる単語又は文節を含む他の部分文字列データを検出し、検出した他の部分文字列データを、前記入力予測候補として前記記憶手段に記憶させる第３検出手段を備え、
前記頻度算出手段は、前記第３検出手段で検出された他の部分文字列データと、前記処理対象の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする請求項１又は２記載の文字入力支援装置。
【請求項４】
コンピュータを、文字入力を支援する文字入力支援システムとして動作させるプログラムであって、
前記コンピュータを、
入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換手段と、
前記変換手段で変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数手段と、
前記変換手段により変換された部分文字列データから、自立語を抽出する自立語抽出手段と、
前記変換手段により変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出手段の抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出手段と、
前記第１検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択手段と、
前記処理対象の部分文字列データと、前記第１検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出手段と、
前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出手段として機能させることを特徴とするプログラム。
【請求項５】
文字入力の支援を行うコンピュータ装置で実行される文字入力支援方法であって、
入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換ステップと、
前記変換ステップで変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数ステップと、
前記変換ステップにより変換された部分文字列データから、自立語を抽出する自立語抽出ステップと、
前記変換ステップにより変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出ステップの抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出ステップと、
前記第１検出ステップで検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数ステップで計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択ステップと、
前記処理対象の部分文字列データと、前記第１検出ステップで検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出ステップと、
前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出ステップとを前記コンピュータ装置が実行することを特徴とする文字入力支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字入力支援装置、プログラム及び文字入力支援方法に関する。
【背景技術】
【０００２】
ユーザのキーボード入力を支援する文字入力支援装置が知られている。文字入力支援装置は、過去にキーボード入力された文字列の入力履歴を記憶部に記憶しておき、この入力履歴を参照して次に入力される文字列を予測し、予測した入力予測候補を表示部に表示する装置である。表示部に表示した入力予測候補の１つがユーザによって指定されると、指定された文字列が入力領域に入力される。この種の技術が特許文献１及び２に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３９３３９５２号公報
【特許文献２】特開２００７−３３４５３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
同じ内容を異なる文字列で表現する場合がある。例えば、「血圧：正常」、「血圧は正常です」、「血圧正常」はすべて同じ内容を表している。従来の文字入力支援装置では、個々の文字列ごとに頻度を集計しており、文字列の表す意味や内容に応じて集計することは行っていなかった。このため、使用頻度が高いが、複数の文字列で表現される内容、又はこの内容を表す文字列を入力予測候補の上位にランク付けすることが難しく、ユーザの利便性を低下させる要因となっていた。
【０００５】
本発明は上記事情に鑑みてなされたものであり、同じ意味を持った文字列のグループごとに使用頻度を集計することで、使用頻度の高い意味を持った文字列を入力予測候補の上位にランク付けすることができる文字入力支援装置、プログラム及び文字入力支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書に開示の文字入力支援装置は、入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換手段と、前記変換手段で変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数手段と、前記変換手段により変換された部分文字列データから、自立語を抽出する自立語抽出手段と、前記変換手段により変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出手段の抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出手段と、前記第１検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択手段と、前記処理対象の部分文字列データと、前記第１検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出手段と、前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出手段とを備えている。
本明細書に開示の文字入力支援装置は、部分文字列データから自立語を抽出し、同じ自立語を含んだ部分文字列データを同じ意味を持った部分文字列データとして検出している。また、同じ意味を持つ部分文字列データから１つを選択し、同じ意味を持つ文字列データの使用頻度の和を、選択した文字列データの使用頻度とすることで、同じ意味を持った部分文字列データのグループごとに、使用頻度を集計している。従って、使用頻度の高い意味を持った文字列を入力予測候補の上位にランク付けすることができる。
【発明の効果】
【０００７】
本明細書に開示の文字入力支援装置によれば、同じ意味を持った文字列のグループごとに使用頻度を集計することで、使用頻度の高い意味を持った文字列を入力予測候補の上位にランク付けすることができる。
【図面の簡単な説明】
【０００８】
【図１】コンピュータ装置の構成の一例を示すブロック図である。
【図２】プログラム制御によって制御部に構成される機能ブロックの構成の一例を示す図である。
【図３】図２に示す入力予測候補ＤＢ作成部の構成の一例を示すブロック図である。
【図４】ＲＡＭに記録される記録情報の一例を示す図であり、文字列を分割した文節列を文節数ごとに記録した様子を示す図である。
【図５】（Ａ）は、２文節列が入力履歴として記録された文字列データ中に出現する出現頻度をカウントしたカウント結果を示す図であり、（Ｂ）は、３文節列が入力履歴として記録された文字列データ中に出現する出現頻度をカウントしたカウント結果を示す図であり、（Ｃ）は、（Ａ）に示す２文節列を先頭文字をキーにしてソートした結果を示す図であり、（Ｄ）は、（Ｂ）に示す３文字列を先頭文字をキーにしてソートした結果を示す図である。
【図６】ＲＡＭに記録される記録情報の一例を示す図であり、最終的に記録される記録情報の一例を示す図である。
【図７】制御部の全体の処理手順を示すフローチャートである。
【図８】図７に示すステップＳ３の詳細な手順を示すフローチャートである、
【図９】図７に示すステップＳ４の詳細な手順を示すフローチャートである。
【図１０】図７に示すステップＳ５の詳細な手順を示すフローチャートである。
【図１１】ディスプレイに表示される入力予測候補の第１の表示例を示す図である。
【図１２】ディスプレイに表示される入力予測候補の第２の表示例を示す図である。
【図１３】ディスプレイに表示される入力予測候補の第３の表示例を示す図であり、（Ａ）は、表示する文字列をさらに絞り込む絞り込み語の入力を要求する画面の例であり、（Ｂ）は、入力された絞り込み語に従って、上位の入力予測候補を表示した例を示す図である。
【図１４】ディスプレイに表示される入力予測候補の第４の表示例を示す図であり、（Ａ）は、ユーザによって入力された文字列と、入力予測候補を絞り込む絞り込み語とを表示した例であり、（Ｂ）、（Ｃ）は絞り込み語の１つが選択された場合の入力予測候補の表示例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例】
【００１０】
まず、図１を参照しながら本発明の文字列入力支援装置を搭載したコンピュータ装置１の構成について説明する。
コンピュータ装置１は、制御部１００と、記憶部１０４と、グラフィックボード１１１と、インターフェース（以下、Ｉ／Ｆと略記する）１１３、１１４と、ネットワークインターフェース（以下、ネットワークＩ／Ｆと略記する）１１８と、ディスプレイ１１２と、操作部１１５とを備えている。制御部１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３とを備えている。また、操作部１１５は、キーボード１１６とマウス１１７とを備えている。
【００１１】
まず、制御部１００について説明する。ＣＰＵ（Central Processing Unit）１０１は、装置全体の動作を司る。ＲＯＭ（Read Only Memory）１０２は、コンピュータ装置１を文字入力支援装置として動作させるための制御プログラムや、その他各種のプログラムを予め記憶している。ＲＡＭ（Random Access Memory）１０３は、ＣＰＵ１０１が演算に使用するデータや、演算結果のデータなどを記憶する。
【００１２】
記憶部１０４は、コンピュータ装置１に備えられるＨＤＤ（Hard Disk Drive）などの記憶装置である。記憶部１０４は、過去にキーボード入力された文字列の履歴を記録した文字列履歴データベース（以下、データベースをＤＢと表記する）を記憶している。また、記憶部１０４は、入力されたかな文字を漢字に変換するための辞書を登録したかな漢字変換候補ＤＢや、過去に入力された文字列の入力履歴に基づいて、次に入力される候補を予測するための入力予測候補ＤＢを記憶している。さらに、記憶部１０４は、形態素解析に必要な辞書、自立語の同義語を抽出するための同義語辞書や、単語の意味を表す記号を登録した辞書を記憶している。
なお、記憶部１０４は、ＨＤＤに限られる分けではなく、コンピュータで読み込み可能なフレキシブルディスク（ＦＤ）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）光磁気ディスク、またはＩＣカードなどの可搬記憶媒体であってもよい。
【００１３】
グラフィックボード１１１は、ディスプレイ１１２への各種情報の表示を制御する。Ｉ／Ｆ１１３は、キーボード１１６で入力を受け付けた文字情報をＣＰＵ１０１に送る。Ｉ／Ｆ１１４は、マウス１１７で入力を受け付けた入力情報をＣＰＵ１０１に送る。ネットワークＩ／Ｆ１１８は、ネットワーク１１９に接続された外部装置との間で通信データの送受信を行う。
【００１４】
ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶部１０４、グラフィックボード１１１、Ｉ／Ｆ１１３、１１４、ネットワークＩ／Ｆ１１８は、システムバス１０５に接続されている。従って、ＣＰＵ１０１は、ＲＯＭ１０２、ＲＡＭ１０３、記憶部１０４へのアクセスと、グラフィックボード１１１を介したディスプレイ１１２への各種情報の表示と、キーボード１１６、マウス１１７の操作による情報の入力と、ネットワークＩ／Ｆ１１８を介した通信データの送受信等を行うことができる。
【００１５】
次に、図２及び図３を参照しながらプログラム制御によって実現される制御部１００の機能ブロックについて説明する。なお、機能ブロックとは、制御部１００の備えるＣＰＵ１０１、ＲＡＭ１０３等のハードウェアと、ＲＯＭ１０２に記憶した制御プログラムとの協働によって実現される処理を、一定の機能ごとにまとめたブロックである。
制御部１００は、図２に示すように入力予測候補ＤＢ作成部２００と、かな漢字変換処理部２５０と、入力予測候補検索部３００と、表示制御部３５０とを備えている。
【００１６】
入力予測候補ＤＢ作成部２００は、記憶部１０４に記憶する入力予測候補ＤＢを作成する。記憶部１０４には、過去に、ユーザがキーボード１１６から入力した文字列の履歴が記録されている。入力予測候補ＤＢ作成部２００は、文字列の履歴を参照して、入力予測候補としてディスプレイ１１２の表示領域に表示させる文字列を選択する。選択した文字列は、入力予測候補として入力予測候補ＤＢに記録される。なお、入力予測候補ＤＢ作成部２００の詳細については、図３を参照しながら後述する。
【００１７】
かな漢字変換処理部２５０は、記憶部１０４に記憶したかな漢字変換候補ＤＢを参照して、キーボード１１６で入力を受け付けたかな文字の漢字変換処理を行う。かな漢字変換処理部２５０は、キーボード１１６でかな文字の入力を受け付けると、かな漢字変換候補ＤＢを参照して、入力を受け付けたかな文字を漢字に変換する変換候補を選択する。選択した変換候補は、表示制御部３５０の表示制御によってディスプレイ１１２に表示される。
【００１８】
入力予測候補検索部３００は、前述した入力予測候補ＤＢを参照して、キーボード１１６で入力を受け付けた文字列の入力予測候補を選択する。選択した入力予測候補は、入力予測候補検索部３００から表示制御部３５０に出力され、表示制御部３５０の制御によってディスプレイ１１２に表示される。
【００１９】
表示制御部３５０は、かな漢字変換処理部２５０で選択された変換候補と、入力予測候補検索部３００で選択された入力予測候補とをディスプレイ１１２に表示させる。変換候補と入力予測候補とのディスプレイ１１２への表示例については、後述する。
【００２０】
次に、図３を参照しながら入力予測候補ＤＢ作成部２００の詳細について説明する。入力予測候補ＤＢ作成部２００は、変換部２０１、頻度計数部２０２、第３検出部２０３、頻度再計算部２０４、自立語抽出部２０５、第１検出部２０６、第１選択部２０７、同義語抽出部２０８、第２検出部２０９、第２選択部２１０を備えている。
【００２１】
変換部２０１は、文字列履歴ＤＢ４０１に登録された、過去のキーボード入力の履歴を入力して解析する。文字列履歴ＤＢ４０１は、記憶部１０４に記憶されている。変換部２０１は、辞書ＤＢ４０２に記憶した形態素解析用の辞書を参照して、入力履歴として記録された各文字列の形態素解析を行う。辞書ＤＢ４０２も記憶部１０４に記憶されている。変換部２０１は、形態素解析の結果から、各文字列を文節に分割する。なお、「：」や「？」等の記号も、１文節として分割する。次に、変換部２０１は、文節に区切られた文字列から２文節、３文節といった具合に複数文節（以下、文節列と呼ぶ。なお、文節列が本発明の部分文字列に該当する）を取り出す。取り出される文節は、文字列中で連続する（つながった）文節に限られ、また、取り出される文節の最大数は、対象の文字列に含まれる文節の数と同数である。例えば、文字列が「先週の受診時に比べて、血圧が少し高めです」であったとする。この場合、文字列には、（先週の）、（受診時に）、（比べて）、（血圧が）、（少し）、（高めです）と６文節が含まれている。従って、２文節を含む文節列（以下、２文節列と呼ぶ）として、変換部２０１は、（先週の／受診時に）、（受診時に比べて、）、（比べて、／血圧が）、（血圧が／少し）、（少し／高めです）の５つを取り出すことができる。同様に、３文節を含む文節列（以下、３文節列と呼ぶ）として、変換部２０１は、（先週の／受診時に／比べて、）、（受診時に／比べて、／血圧が）、（比べて、／血圧が／少し）、（血圧が／少し／高めです）の４つを取り出すことができる。以下、同様の手順を繰り返して、変換部２０１は、２〜６文節列を取り出す。なお「／」は、この明細書中では、文節と文節との区切りを示す記号として使用する。図４には、「血圧：正常」、「血圧は正常です」、「血圧正常」、「血圧：異常」の４つの文字列を文節に分割した結果と、分割した文節から文節列を作成した結果とを示す。変換部２０１は、生成した文節列データを第３検出部２０３と、頻度計数部２０２と、自立語抽出部２０５と、同義語抽出部２０８とに送る。また、変換部２０１は、文字列を形態素解析した結果を、自立語抽出部２０５に送る。また、変換部２０１は、生成した文節列をＲＡＭ１０３に記憶させる。
なお、この説明では、変換部２０１は、文字列を文節列に変換するとして説明するが、単語を単位とした単語列に分割してもよい。単語列とは、文節列と同様に、文字列中で連続する（つながった）複数個の単語の集まりである。
【００２２】
頻度計数部２０２は、変換部２０１によって文字列から取り出された文節列を取得し、文字列履歴ＤＢ４０１から入力履歴の文字列を取得する。頻度計数部２０２は、変換部２０１から取得した各文節列の、文字列履歴ＤＢ４０１に入力履歴として記録された文字列中での出現頻度をカウントする。頻度計数部２０２は、カウントした各文節列の出現頻度をＲＡＭ１０３に記録する。図５（Ａ）には、図４に示す２文節列の出現頻度をカウントしたカウント結果を示す。また、図５（Ｂ）には、図４に示す３文節列の出現頻度をカウントしたカウント結果を示す。また、図５（Ｃ）には、２文節列を先頭文字でソートしたソート結果を示す。また、図５（Ｄ）には、３文節列を先頭文字でソートしたソート結果を示す。頻度計数部２０２は、各文節列の出現頻度を第３検出部２０３、第１検出部２０６、第２検出部２０９に出力する。
【００２３】
第３検出部２０３は、変換部２０１から、文字列から取り出された文節列を取得し、頻度計数部２０２から、各文節列の出現頻度のデータを取得する。第３検出部２０３は、まず、変換部２０１から取得した文節列の中から処理対象の文節列を選択する。第３検出部２０３は、選択した処理対象の文節列に含まれる文節数よりも多くの文節を含んだ文節列であって、処理対象の文節列に含まれる文節を含んだ他の文節列を検出する。例えば、図４に示す例では、２文節列の「血圧／：」は、３文節列の「血圧／：／正常」と、３文節列の「血圧／：／異常」とに含まれる。従って、第３検出部２０３は、処理対象の文節列に「血圧／：」を選択した場合、他の文節列として３文節列の「血圧／：／正常」と「血圧／：／異常」とを他の文節列として検出する。
第３検出部２０３は、他の文節列を検出すると、ＲＡＭ１０３の記録情報を更新する。図６には、ＲＡＭ１０３に記録される記録情報の一例を示す。ＲＡＭ１０３には、文節列を識別する識別番号と、文節列と、文節列の出現頻度と、文節列の表す意味と、まとめ情報と、削除フラグとが対応付けて記録される。なお、文節列の表す意味については、後述する。また、まとめ情報とは、対応する文節列がどのように処理されたかを示す情報である。
第３検出部２０３は、他の文節列を検出すると、処理対象の文節列の記録欄に、処理対象の文節列が入力予測候補から除外されたことを示す削除フラグを記録する。また、第３検出部２０３は、処理対象の文節列のまとめ情報として、処理対象の文節列が、検出した他の文節列にまとめられたことを記録する。また、第３検出部２０３は、検出した他の文節列のまとめ情報として、処理対象の文節列をまとめたことを記録する。なお、図６に示す例では、識別番号３と識別番号６の文節列を、識別番号４の文節列「血圧は／正常です」にまとめた例を示している。なお、図６に示すように識別番号４の文節列にも削除フラグを記録して、識別番号４の文節列をそのままコピーした識別番号７の文節列として新たに記録してもよい。この場合、識別番号７の文節列の出現頻度は、識別番号３、４、６の文節列の出現頻度の合計値となる。これらのルールの詳細については、フローチャートを参照しながら後述する。
第３検出部２０３は、以上の処理を、変換部２０１から取得したすべての文節列について行う。
【００２４】
頻度再計算部２０４は、第３検出部２０３から、第３検出部２０３が検出した他の文節列の出現頻度と、処理対象の文節列の出現頻度とを取得する。頻度再計算部２０４は、他の文節列の出現頻度と、処理対象の文節列の出現頻度とを加算する。頻度再計算部２０４は、加算結果を他の文字列データの出現頻度としてＲＡＭ１０３に記録する。図６に示す例では、頻度再計算部２０４は、識別番号３、４、６の文節列の出現頻度の合計値を算出し、算出した合計値を識別番号７の文節列の出現頻度として記録する。
【００２５】
自立語抽出部２０５は、変換部２０１から、文字列を形態素解析した解析結果と、変換部２０１によって文字列から取り出された文節列とを取得する。
自立語抽出部２０５は、取得した形態素解析の結果を参照して、文節列から自立語を取り出す。さらに、自立語抽出部２０５は、取り出した自立語の意味を表す記号を、辞書ＤＢ４０２を参照して求める。辞書ＤＢ４０２には、自立語と、自立語の意味を示す記号とを記録した辞書が登録されている。自立語抽出部２０５は、この辞書を参照して、自立語の意味を表す記号を求める。意味を表す記号は、英語などの他の言語であってもよいし、日本電子化辞書研究所（ＥＤＲ：electronic dictionary research）のＥＤＲ電子化辞書に使用される概念識別子を使用してもよい。なお、概念識別子とは、単語の表す概念を数で表現したものである。以下では、自立語の意味を表す記号として英語を使用する場合を例に説明する。例えば、「ウィンドウを開く」という文節列を対象とした場合、自立語は、「ウィンドウ」と「開く」であり、これらの自立語の意味を表す記号は、「ＷＩＮＤＯＷ」と「ＯＰＥＮ」になる。自立語抽出部２０５は、求めた自立語の意味を表す記号をアルファベット順にソートして、ソート結果を第１検出部２０６と第２検出部２０９とに送る。また、自立語抽出部２０５は、自立語の意味を表す記号をソートしたソート結果をＲＡＭ１０３に記録する。図６に示す例では、例えば文節列「：／異常」の意味を表す記号は、「ABNORMAL」となる。
【００２６】
第１検出部２０６は、第３検出部２０３から、ＲＡＭ１０３に削除フラグが記録されていない文節列を取得する。また、第１検出部２０６は、頻度計数部２０２から各文節列の出現頻度のデータを取得する。また、第１検出部２０６は、自立語抽出部２０５から文節列と、文節列に含まれる自立語とを取得する。
第１検出部２０６は、第３検出部２０３から取得した文節列の中から処理対象とする文節列（以下、処理対象の文節列と呼ぶ）を選択する。次に、第１検出部２０６は、自立語抽出部２０５から取得した情報に基づいて、選択した処理対象の文節列に含まれる自立語を認識する。さらに第１検出部２０６は、自立語抽出部２０５から取得した情報に基づいて、第３検出部２０３から取得した文節列の中から、処理対象の文節列に含まれる自立語と同じ自立語を含んだ他の文節列を検出する。他の文節列を検出すると、第１検出部２０６は、処理対象の文節列と、検出した他の文節列と、これらの文節列の出現頻度とを第１選択部２０７に送る。
第１検出部２０６は、以上の処理を、第３検出部２０３から取得したすべての文節列について行う。
【００２７】
第１選択部２０７は、第１検出部２０６から処理対象の文節列と、検出した他の文節列と、これらの文節列の出現頻度とを取得する。第１選択部２０７は、文節列の長さ、又は文節列の出現頻度に応じて、処理対象の文節列と検出した他の文節列とのいずれか一方を選択し、選択した文節列を入力予測候補としてＲＡＭ１０３に記録する。
第１選択部２０７は、まず、取得した処理対象の文節列の長さと、検出した他の文節列の長さとを比較する。第１選択部２０７は、長さの長い方の文節列を入力予測候補に選択し、長さの短い方の文節列を入力予測候補から除外する文節列に選択する。また、処理対象の文節列の長さと、検出した他の文節列の長さとが同一であった場合、第１選択部２０７は、出現頻度の小さい方の文節列を入力予測候補から除外する文節列に選択する。なお、以下では、入力予測候補から除外する文節列を、除外する文節列と呼び、入力予測候補から除外しない文節列を、残す文節列と呼ぶ。
第１選択部２０７は、ＲＡＭ１０３の記録情報を書き替えて、除外する文節列の記録欄に、この文節列が入力予測候補から除外されたことを示す削除フラグを記録する。また、第１選択部２０７は、除外する文節列のまとめ情報として、残す文節列にまとめられたことを記録する。また、第１選択部２０７は、残す文節列のまとめ情報として、除外する文節列をまとめたことを記録する。第１選択部２０７は、処理対象の文節列の出現頻度と、検出した他の文節列の出現頻度とを頻度再計算部２０４に送る。
頻度再計算部２０４は、処理対象の文節列の出現頻度と、検出した文節列の出現頻度とを加算する。頻度再計算部２０４は、加算した合計頻度を、残す文節列の頻度としてＲＡＭ１０３に登録する。
【００２８】
同義語抽出部２０８は、自立語抽出部２０５から文節列と、文節列に含まれる自立語とを取得する。同義語抽出部２０８は、辞書ＤＢ４０２を参照して、自立語抽出部２０５から取得した自立語の見出し語を求める。辞書ＤＢ４０２には、同義語辞書が記録されている。同義語辞書には、見出し語と、この見出し語と同義の単語とが登録されている。例えば、「疲れ」という見出し語に対し、同義語として「疲れ」、「疲労」、「疲労感」といった単語が登録されている。同様に、「翻訳」という見出し語に対して、「翻訳」、「訳出」という同義語が登録されている。この同義語辞書を参照すると、例えば、「翻訳で疲れた」という２文節列と、「訳出で疲労した」という２文節列は、見出し語の同じ文節列ということになる。従って、「翻訳で疲れた」と、「訳出で疲労した」とは見出し語の同じ、すなわち意味の同じ文節列と判定できる。同義語抽出部２０８は、自立語の見出し語を第２検出部２０９に送る。
【００２９】
第２検出部２０９は、第３検出部２０３から、ＲＡＭ１０３に削除フラグが記録されていない文節列を取得する。また、第２検出部２０９は、頻度計数部２０２から各文節列の出現頻度を取得する。また、第２検出部２０９は、自立語抽出部２０５から文節列と、文節列に含まれる自立語と、自立語の意味を表す記号とを取得する。また、第２検出部２０９は、同義語抽出部２０８から自立語の見出し語を取得する。
第２検出部２０９は、まず、第３検出部２０３から取得した文節列の中から処理対象とする文節列（以下、処理対象の文節列と呼ぶ）を選択する。次に、第２検出部２０９は、自立語抽出部２０５から取得した情報に基づいて、選択した処理対象の文節列に含まれる自立語の意味を表す記号を取得する。次に、第２検出部２０９は、第３検出部２０３から取得した文節列の中に、処理対象の文節列に含まれる自立語の意味を表す記号と同じ記号を含む他の文節列を検出する。他の文節列を検出した場合には、第２検出部２０９は、処理対象の文節列と、検出した他の文節列と、これらの文節列の出現頻度とを第２選択部２１０に送る。
【００３０】
また、第２検出部２０９は、同義語抽出部２０８から取得した情報に基づいて、処理対象の文節列に含まれる自立語の見出し語を取得する。次に、第２検出部２０９は、第３検出部２０３から取得した文節列の中から、処理対象の文節列に含まれる自立語の見出し語と同じ見出し語を含む他の文節列を検出する。他の文節列を検出した場合には、第２検出部２０９は、処理対象の文節列と、検出した他の文節列と、これらの文節列の出現頻度とを第２選択部２１０に送る。
第２検出部２０９は、以上の処理を、第３検出部２０３から取得したすべての文節列について行う。
【００３１】
第２選択部２１０は、第２検出部２０９から処理対象の文節列と、検出した他の文節列と、これらの文節列の出現頻度とを取得する。第２選択部２１０は、文節列の長さ、又は文節列の出現頻度に応じて、処理対象の文節列と検出した他の文節列とのいずれか一方を選択し、選択した文節列を入力予測候補としてＲＡＭ１０３に記録する。
第２選択部２１０は、まず、取得した処理対象の文節列の長さと、検出した他の文節列の長さとを比較する。第２選択部２１０は、長さの長い方の文節列を入力予測候補に選択し、長さの短い方の文節列を入力予測候補から除外する文節列に選択する。また、処理対象の文節列の長さと、検出した他の文節列の長さとが同一であった場合、第２選択部２１０は、出現頻度の小さい方の文節列を入力予測候補から除外する文節列に選択する。なお、ここでも、入力予測候補から除外する文節列を除外する文節列と呼び、入力予測候補から除外しない文節列を残す文節列と呼ぶ。
第２選択部２１０は、ＲＡＭ１０３の記録情報を書き替えて、除外する文節列の記録欄に、この文節列が入力予測候補から除外されたことを示す削除フラグを記録する。また、第２選択部２１０は、除外する文節列のまとめ情報として、残す文節列にまとめられたことを記録する。また、第２選択部２１０は、残す文節列のまとめ情報として、除外する文節列をまとめたことを記録する。
また、第２選択部２１０は、処理対象の文節列の出現頻度と、検出した他の文節列の出現頻度とを頻度再計算部２０４に送る。頻度再計算部２０４は、処理対象の文節列の出現頻度と、検出した他の文節列の出現頻度とを加算する。頻度再計算部２０４は、加算した合計頻度を、残す文節列の頻度として登録する。
【００３２】
次に、図７〜図１０に示すフローチャートを参照しながら制御部１００の処理フローを説明する。
まず、制御部１００は、キーボード１１６によって入力を受け付け、記憶部１０４に記憶している文字列の入力履歴を読み出してＲＡＭ１０３に記憶する。そして、制御部１００は、ＲＡＭ１０３に記憶した文字列を１文ずつ解析する。制御部１００は、文字列に形態素解析等の解析を行って、解析の結果から文字列を文節（又は単語）に分割する（ステップＳ１）。なお、制御部１００は、「：」や「？」等の記号も１文節として分割する。次に、制御部１００は、文節に区切られた文字列から複数文節列を取り出す（ステップＳ１）。複数文節列として取り出される文節は、連続する（つながった）文節に限られ、また、取り出される文節の最大数は、対象の文字列に含まれる文節の数と同数である。
【００３３】
次に、制御部１００は、各文節列の出現頻度を計算する（ステップＳ２）。制御部１００は、計算した各文節列の出現頻度をＲＡＭ１０３に記録する。また、制御部１００は、例えば、２文節列、３文節列といった文節列ごとに、文節列を先頭の文字をキーにしてソートし、ＲＡＭ１０３に記録する。
なお、制御部１００は、入力履歴として記録した各文字列の形態素解析の結果、文節列に含まれる文節数ごとに、文節列を先頭の文字をキーにソートしたもの、各文節列の出現頻度等をＲＡＭ１０３に記録する。
【００３４】
次に、制御部１００は、キーボード１１６で文字列の入力を受け付けた際に、入力予測候補としてディスプレイ１１２に表示する文節列の候補から除外する文節列を検出する（ステップＳ３）。この処理の詳細については、図８に示すフローチャートを参照しながら後述する。なお、この処理は、主に、図３に示す第３検出部２０３と頻度再計算部２０４とで実行される。
【００３５】
次に、制御部１００は、文節列の表す意味を解析して、意味が同じ文節列を１つのグループにまとめる（ステップＳ４）。この処理の詳細についても図９に示すフローチャートを参照しながら後述する。この処理は、主に、図３に示す第２検出部２０９と、第２選択部２１０とで実行される。
【００３６】
次に、制御部１００は、文節列の簡略表記を作成し、簡略表記が同じ文節列を１つのグループにまとめる（ステップＳ５）。この処理についても図１０に示すフローチャートを参照しながら後述する。なお、簡略表記とは、文節列から自立語だけを取り出した表記である。この処理は、主に、図３に示す第１検出部２０６と、第１選択部２０７とで実行される。
【００３７】
最後に、制御部１００は、図６に示すＲＡＭ１０３の記録情報を記憶部１０４に記憶させて処理を終了する（ステップＳ６）。
【００３８】
図８に示すフローチャートを参照しながら、入力予測候補としてディスプレイ１１２に表示する文節列の候補から除外する文節列を検出する手順（図７に示すステップＳ３の処理の詳細）を説明する。
制御部１００は、まず、文節列を識別する変数ｎの初期値をｎ＝２に設定する（ステップＳ１１）。次に、制御部１００は、変数ｎの示す２文節列の中から処理を行う対象となる文節列（以下、処理対象の文節列と呼ぶ）を選択する。さらに、制御部１００は、処理対象の文節列の出現頻度を変数αに設定し、出現頻度の合計を示す変数ｆｒｅｃを０に設定する（ステップＳ１２）。なお、変数ｆｒｅｃは、以下で説明する処理によってまとめられた（グループ化された）文節列の出現頻度の合計をカウントする変数である。また、各文節列の出現頻度は、図７に示すステップＳ２で算出済みである。
【００３９】
次に、制御部１００は、処理対象の文節列以外の文節列であって、処理対象の文節列よりも文節数の多い文節列を識別する変数をｍ（ｍ＝ｎ＋１）に設定する（ステップＳ１３）。なお、ｍは、文節列に含まれる文節数を表す。例えば、処理対象の文節列が２文節列（ｎ＝２）であった場合、２文節列よりも文節数の多い３文節列からが対象の文節列となる。また、以下では、変数ｍの示す文節列をｍ文節列と呼ぶ。
制御部１００は、ｍ文節列の中で、処理対象の文節列を含むｍ文節列を検出する（ステップＳ１４）。例えば、処理対象の文節列を「血圧：」（２文節列）とした場合、３文節列の「血圧：正常」と「血圧：」には、処理対象の文節列が含まれる。ｍ文節列を検出すると（ステップＳ１４／ＹＥＳ）、制御部１００は、出現頻度の合計をカウントする変数ｆｒｅｃに、検出したｍ文節列の出現頻度を加算する（ステップＳ１５）。次に、制御部１００は、ステップＳ１４の判定を行っていない他のｍ文節列があるか否かを判定する（ステップＳ１６）。ステップＳ１４の判定を行っていない他のｍ文節列がある場合には（ステップＳ１６／ＹＥＳ）、制御部１００は、ステップＳ１４からの処理を繰り返す。また、ステップＳ１４の判定を行っていない他のｍ文節列がないと判定すると（ステップＳ１６／ＮＯ）、制御部１００は、ｍの値を１加算する（ステップＳ１７）。そして、制御部１００は、ｍの値が、文節数が最大の文節列よりも大きくなったか否かを判定する（ステップＳ１８）。ｍの値が、文節数が最大の文節列よりも大きくないと判定すると（ステップＳ１８／ＮＯ）、制御部１００は、ステップＳ１４からの処理を繰り返す。また、ｍの値が、文節数が最大の文節列よりも大きいと判定すると（ステップＳ１８／ＹＥＳ）、制御部１００は、変数αの値と変数ｆｒｅｃの値とが一致しているか否かを判定する（ステップＳ１９）。制御部１００は、変数αと変数ｆｒｅｃの値が一致していると判定すると（ステップＳ１９／ＹＥＳ）、ＲＡＭ１０３の処理対象の文節列の記録欄に削除フラグを記録する（ステップＳ２０）。すなわち、変数αと変数ｆｒｅｃの値が一致しているということは、処理対象の文節列の出現頻度と、検出したｍ文節列の出現頻度とが一致しているということを示している。従って、処理対象の文節列を入力した場合、ユーザは、必ず検出したｍ文節列を入力しているということを示している。例えば、図５（Ｃ）、（Ｄ）に示す例では、２文節列の「血圧／：」を含む３文節列は、「血圧／：／異常」と「血圧／：／正常」である。３文節列の出現頻度の合計は２であり、２文節列の「血圧／：」の出現頻度も２である。従って、「血圧：」と入力した場合、ユーザは「血圧：異常」と入力するか、又は「血圧：正常」と入力することを示している。このため、制御部１００は、ＲＡＭ１０３の文節列「血圧／：」の記録欄に、入力予測候補として表示する文節列の候補から除外することを示す削除フラグを記録する。
【００４０】
次に、制御部１００は、変数ｎの示す文節数と同じ文節数の他の文節列があるか否かを判定する（ステップＳ２１）。例えば、変数ｎの値が２であれば、制御部１００は、処理対象の文節列として選択していない他の２文節列が存在するか否かを判定する。変数ｎの他の文節列が存在すると判定すると（ステップＳ２１／ＹＥＳ）、制御部１００は、この他の文節列を処理対象の文節列として選択し、ステップＳ１２以降の処理を繰り返す。また、他の文節列が存在しないと判定した場合（ステップＳ２１／ＮＯ）、制御部１００は、変数ｎの値を１加算し（ステップＳ２２）、変数ｎの値が、文節数が最大の文節列の文節数と一致したか否かを判定する（ステップＳ２３）。一致したと判定した場合（ステップＳ２３／ＹＥＳ）、制御部１００は、このフローを終了する。また、一致しないと判定した場合（ステップＳ２３／ＮＯ）、制御部１００は、ステップＳ１２からの処理を繰り返す。
【００４１】
次に、図９に示すフローチャートを参照しながら文節列の表す意味を解析して、意味が同じ文節列を１つのグループにまとめる処理（図７に示すステップＳ４の処理の詳細）について説明する。
制御部１００は、図８に示すステップＳ２０の処理で、ＲＡＭ１０３に削除フラグを記録した文節列以外の文節列について、文節列から自立語を取り出す（ステップＳ３１）。図７に示すステップＳ１において形態素解析を行い、その結果をＲＡＭ１０３に記録しているので、制御部１００は、ＲＡＭ１０３に記録した形態素解析の結果を参照して、文節列から自立語を取り出す（ステップＳ３１）。
【００４２】
次に、制御部１００は、取り出した自立語の意味を表す記号を求める（ステップＳ３２）。記憶部１０４の辞書ＤＢ４０２には、予め自立語の意味を記録した辞書が登録されており、制御部１００は、この辞書を参照して自立語の意味を表す記号を求める。なお、ここでは、自立語の意味を表す記号として英語を使用した場合を例に説明する。例えば、「ウィンドウを開く」という文節列を対象とした場合、自立語は、「ウィンドウ」と「開く」であり、これらの自立語の意味を表す記号は、「ＷＩＮＤＯＷ」と「ＯＰＥＮ」になる。
【００４３】
次に、制御部１００は、求めた記号をアルファベット順にソートする（ステップＳ３３）。上述した例では、記号は「ＷＩＮＤＯＷ」と「ＯＰＥＮ」であるから、ソート結果は、ＯＰＥＮ＿ＷＩＮＤＯＷとなる。なお、「＿」は、本明細書中では、単語と単語を連結を表す記号として使用する。制御部１００は、ソート結果をＲＡＭ１０３に記録する。
【００４４】
次に、制御部１００は、記憶部１０４に記憶している同義語辞書を参照して、ステップＳ３１で取得した自立語の見出し語を取得する（ステップＳ３４）。同義語辞書には、見出し語と、この見出し語と同義の単語とが登録されている。
【００４５】
次に、制御部１００は、処理を行う対象となる文節列（以下、文節列Ａと呼ぶ）を選択する（ステップＳ３５）。次に、制御部１００は、文節列Ａと意味が同じ、又は文節列Ａに含まれる自立語の見出し語と見出し語が一致する文節列（以下、文節列Ｂと呼ぶ）を検出する（ステップＳ３６）。ステップＳ３２、３３で各文節列に含まれる自立語の意味を表す記号（英語）を求めてアルファベット順ソートしているので、制御部１００は、文節列Ａと他の文節列との意味を表す記号を比較して、記号が一致する文節列を検出する。また、ステップＳ３４で各文節列に含まれる自立語の見出し語を取得しているので、制御部１００は、文節列Ａと見出し語が一致する他の文節列を検出する。なお、文節列Ｂの数は、１つに限らない。
【００４６】
文節列Ａと意味が同じ、又は見出し語が一致する文節列Ｂを検出することができなかった場合（ステップＳ３７／ＮＯ）、制御部１００は、ステップＳ４３の処理に移行する。ステップＳ４３において制御部１００は、削除フラグが記録されていない文節列の中で、文節列Ａとして選択していない文節列が他にあるか否かを判定する（ステップＳ４３）。文節列Ａとして選択していない文節列があると判定すると（ステップＳ４３／ＮＯ）、制御部１００は、ステップＳ３５からの処理を繰り返す。また、文節列Ａとして選択していない文節列がないと判定すると（ステップＳ４３／ＹＥＳ）、制御部１００は、このフローを終了させる。
【００４７】
また、ステップＳ３７において、文節列Ｂを検出した場合（ステップＳ３７／ＹＥＳ）、制御部１００は、文節列Ｂと文節列Ａとをまとめてグループ化する処理を行う。なお、グループ化する処理とは、文節列Ａと文節列Ｂのいずれか一方を選択して、選択した文字列をグループを代表する文節列とする。また、選択しなかった文字列のＲＡＭ１０３の記録欄には削除フラグを記録する。また、文節列Ａと文節列Ｂの出現頻度を加算し、加算した出現頻度を、グループを代表する文節列として選択した文節列の出現頻度の記録欄に記録する。
制御部１００は、まず、文節列Ａと文節列Ｂとの出現頻度を比較する（ステップＳ３８）。検出した文節列Ｂの出現頻度が、処理対象の文節列Ａの出現頻度よりも高いと判定した場合（ステップＳ３８／ＹＥＳ）、制御部１００は、まず、ＲＡＭ１０３の記録欄に文節列Ｃの記録欄を作成し、文節列Ｃの記録欄に文節列Ｂの記録情報をコピーする。また、制御部１００は、ＲＡＭ１０３の文節列Ａと文節列Ｂとの記録欄に削除フラグを記録する（ステップＳ３９）。そして、制御部１００は、文節列Ａの出現頻度と文節列Ｂの出現頻度とを加算し、加算結果を文節列Ｃの出現頻度としてＲＡＭ１０３の記録欄に記録する（ステップＳ４０）。また、文節列Ａの出現頻度と文節列Ｂの出現頻度とが同じであるか、又は文節列Ａの出現頻度が文節列Ｂの出現頻度よりも大きかった場合（ステップＳ３８／ＮＯ）、制御部１００は、まず、ＲＡＭ１０３の記録欄に文節列Ｄの記録欄を作成し、文節列Ｄの記録欄に文節列Ａの記録情報をコピーする。さらに、制御部１００は、ＲＡＭ１０３の文節列Ａと文節列Ｂとの記録欄に削除フラグを記録する（ステップＳ４１）。そして、制御部１００は、文節列Ａの出現頻度と文節列Ｂの出現頻度とを加算し、加算結果を文節列Ｄの出現頻度としてＲＡＭ１０３の記録欄に記録する（ステップＳ４２）。その後、制御部１００は、上述したステップＳ４３の処理に移行する。
なお、文節列Ａと文節列Ｂとの出現頻度が同じであった場合には、文節列の長さが長い方、すなわち含まれる文節数の多い方を入力予測候補として残し、文節数の少ない方に削除フラグを記録してもよい。
【００４８】
次に、図１０に示すフローチャートを参照しながら、文節列の簡略表記を作成して、簡略表記が同じ文節列をまとめ、グループ化する処理（図７に示すステップＳ５の処理の詳細）について説明する。
まず、制御部１００は、ＲＡＭ１０３に記録した形態素解析の結果を参照して、文節列がカンマで終わっていて、カンマの直前が助詞以外の文節列の記録欄に削除フラグを記録する。例えば、「血圧が正常であった、」といった文節列の記録欄に削除フラグを記録する（ステップＳ５１）。
次に、制御部１００は、ＲＡＭ１０３に記録した形態素解析の結果を参照して、削除フラグを記録した文節列以外の文節列について、文節列から自立語を取り出す（ステップＳ５２）。次に、制御部１００は、取り出した自立語だけをつなげることで作成した簡略表記Ｒを作成する。例えば、「ウィンドウを開く」の簡略表記Ｒは「ウィンドウ開く」であり、「血圧：正常」の簡略表記Ｒは、「血圧正常」である。
【００４９】
次に、制御部１００は、処理を行う対象となる文節列（以下、文節列Ｅと呼ぶ）を選択する（ステップＳ５３）。次に、制御部１００は、処理対象の文節列Ｅと簡略表記Ｒが一致する文節列（以下、文節列Ｆと呼ぶ）を検出する（ステップＳ５４）。なお、文節列Ｆの数は１つに限らない。文節列Ｅと簡略表記が一致する文節列Ｆを検出した場合には（ステップＳ５５／ＹＥＳ）、制御部１００は、文節列Ｅと文節列Ｆとの出現頻度を比較する。制御部１００は、文節列Ｅと文節列Ｆのうち出現頻度の高いほうを選択し、もう一方の文節列を選択した文節列にまとめてグループ化する。すなわち、文字列の出現頻度を比較して、出現頻度の低い方の文節列を入力予測候補から除外する。また、出現頻度の高い方の文節列に、出現頻度の低い方の文節列の出現頻度を加算して、加算結果を出現頻度の高い方の文節列の出現頻度とする。文節列Ｆの出現頻度が文節列Ｅの出現頻度よりも高いと判定した場合（ステップＳ５６／ＹＥＳ）、制御部１００は、まず、ＲＡＭ１０３の記録欄に文節列Ｇの記録欄を作成し、文節列Ｇの記録欄に文節列Ｆの記録情報をコピーする。さらに、制御部１００は、ＲＡＭ１０３の文節列Ｅと文節列Ｆとの記録欄に削除フラグを記録する（ステップＳ５７）。そして、制御部１００は、文節列Ｅの出現頻度と文節列Ｆの出現頻度とを加算し、加算結果を文節列Ｇの出現頻度としてＲＡＭ１０３に記録する（ステップＳ５８）。また、文節列Ｅの出現頻度と文節列Ｆの出現頻度とが同じであるか、又は文節列Ｅの出現頻度が文節列Ｆの出現頻度よりも大きかった場合（ステップＳ５６／ＮＯ）、制御部１００は、まず、ＲＡＭ１０３の記録欄に文節列Ｈの記録欄を作成し、文節列Ｈの記録欄に文節列Ｅの記録情報をコピーする。さらに、制御部１００は、ＲＡＭ１０３の文節列Ｅと文節列Ｆとの記録欄に削除フラグを記録する（ステップＳ５９）。そして、制御部１００は、文節列Ｅの出現頻度と文節列Ｆの出現頻度とを加算し、加算結果を文節列Ｈの出現頻度としてＲＡＭ１０３に記録する（ステップＳ６０）。その後、制御部１００は、ステップＳ６１の処理に移行する。制御部１００は、ステップＳ６１において、削除フラグが記録されていない文節列の中で、文節列Ｅとして選択していない文節列があるか否かを判定する（ステップＳ６１）。削除フラグが記録されていない文節列の中で、文節列Ｅとして選択していない文節列があると判定すると（ステップＳ６１／ＮＯ）、制御部１００は、ステップＳ５３からの処理を繰り返す。また、文節列Ｅとして選択していない文節列がないと判定すると（ステップＳ６１／ＹＥＳ）、制御部１００は、このフローを終了させる。
【００５０】
また、ステップＳ５５において、文節列Ｅの簡略表記と簡略表記が一致する文節列Ｆを検出することができなかった場合には（ステップＳ５５／ＮＯ）、制御部１００は、ステップＳ６２の処理に移行する。ステップＳ６２では、制御部１００は、文節列Ｅの簡略表記と簡略表記が前方一致する文節列（以下、文節列Ｉと呼ぶ）が存在するか否かを判定する。すなわち、文節列Ｅの簡略表記を含む文節列が存在するか否かを制御部１００は判定する。制御部１００は、簡略表記が前方一致する文節列Ｉを検出すると（ステップＳ６３／ＹＥＳ）、まず、ＲＡＭ１０３の記録欄に文節列Ｊの記録欄を作成し、文節列Ｊの記録欄に文節列Ｉの記録情報をコピーする（ステップＳ６４）。さらに、制御部１００は、ＲＡＭ１０３の文節列Ｅと文節列Ｉとの記録欄に削除フラグを記録する（ステップＳ６４）。そして、制御部１００は、文節列Ｅの出現頻度と文節列Ｉの出現頻度とを加算し、加算結果を文節列Ｊの出現頻度としてＲＡＭ１０３に記録する（ステップＳ６５）。その後、制御部１００は、上述したステップＳ６１の処理に移行する。
【００５１】
制御部１００は、上述の手順を経てＲＡＭ１０３に記録した情報を記憶部１０４に入力予測候補ＤＢとして記憶させる。また、制御部１００は、キーボード１１６で文字列を受け付けると、記憶部１０４に記憶した入力予測候補ＤＢを参照して、受け付けた文字列に対する入力予測候補をディスプレイ１１２に表示させる。
入力予測候補ＤＢに入力予測候補として記録される文節列は、同じ意味を持った文節列をグループ化し、グループの中の１つの文節列を選択して登録したものである。また、選択した文節列の頻度は、グループに含まれる各文節列の使用頻度の合計としている。従って、同じ意味を持つ文字列のグループを単位に使用頻度を集計することができ、使用頻度の高い意味のグループに含まれる文字列を入力予測候補の上位にランク付けすることができる。
また、文字列から作成される文節列は、１つの文から複数文節を取り出して生成されるものである。すなわち、入力予測候補として表示される文節列は、キーボード１１６のエンターキーが押されてから、次に押されるまでの間に入力を受け付けた文字列を単位とするものではない。従って、ユーザによって入力された１文を単位とし、この１文の中から頻度の高い有効な文節列を取り出すことができる。
【００５２】
なお、上述した説明では、入力予測候補から除外する文節列には、削除フラグを記録し、入力予測候補として表示しないようにしていた。しかし、入力予測候補として表示する候補数が少ない場合には、削除フラグを記録した文節列も含んだ文節列の中から入力予測候補を検索してもよい。
【００５３】
次に、ディスプレイ１１２に表示される入力予測候補の表示例について説明する。
図１１に示す第１の表示例では、メインウィンドウ５０１と、サブウィンドウ５０２とを並べて表示している。メインウィンドウ５０１には、ユーザによって入力された文字列（図１１に示す例では、「けつあつ」）をかな漢字変換処理部２５０で変換した変換候補を表示する。また、サブウィンドウ５０２には、メインウィンドウ５０１に表示した変換候補の一つ（例えば、「血圧」）がマウス１１７等によって選択されると、選択された変換候補の入力予測候補を表示する。例えば、かな漢字変換処理部２５０の処理でメインウィンドウ５０１に表示させる変換候補が「血圧」である場合、「血圧異常あり」、「血圧：正常」の入力予測候補をサブウィンドウ５０２に表示させる。これらの入力予測候補は、「血圧」の文字を含み、出現頻度が上位の文節列である。
【００５４】
また、図１２に示す第２の表示例では、表示させるウィンドウは、メインウィンドウ５０１だけとし、メインウィンドウ５０１内に変換候補と、入力予測候補とを表示させている。図１２に示す例では、かな漢字変換処理部２５０で変換した変換候補は、１つだけを表示し、この変換候補の入力予測候補を変換候補の下に表示させる。
【００５５】
また、図１３に示す第３の表示例では、メインウィンドウ５０１の表示は図１１に示す第１の表示例と同一であるが、サブウィンドウ５０２には、表示させる入力予測候補を絞り込むための絞り込み語の入力を要求する表示５０３を表示させる。サブウィンドウ５０２に絞り込み語が入力されると、入力予測候補検索部３００は、入力された絞り込み語を検索キーとして入力予測候補ＤＢを検索する。入力予測候補検索部３００は、メインウィンドウ５０１に表示した変換候補と、絞り込み語とを含む文節列のうち、出現頻度が上位のもの（図１３に示す例では上位２つ）を取り出して、サブウィンドウ５０２に表示させる。
【００５６】
また、図１４（Ａ）に示す第４の表示例は、メインウィンドウ５０１の表示は図１１に示す第１の表示例と同一である。また、サブウィンドウ５０２には、メインウィンドウ５０１に表示させた変換候補が入力された場合に、この変換候補に続けて入力された単語の候補が表示される。入力予測候補検索部３００は、入力予測候補ＤＢを検索して、変換候補の単語が入力された場合に、この単語を含む文節列を検索する。入力予測候補検索部３００は、検出した文節列に含まれる自立語を取り出し、取り出した自立語を絞り込み語としてサブウィンドウ５０２に表示させる。また、入力予測候補検索部３００は、変換候補の単語と絞り込み語とを含む文節列が何個あるかをサブウィンドウ５０２内に表示させる。
また、マウス１１７等の操作によってサブウィンドウ５０２に表示させた絞り込み語の１つが選択されると、選択された絞り込み語と変換候補の単語とを含む文節列を表示させる。なお、文節列を表示させるウィンドウは、図１４（Ｂ）に示すようにサブウィンドウ５０２間にスペースを設けて、このスペースに文節列を表示させるウィンドウ５０４を表示させてもよい。また、図１４（Ｃ）に示すように、サブウィンドウ５０２のメインウィンドウ５０１とは重ならない側に、文節列を表示させるウィンドウ５０４を表示させてもよい。
【００５７】
また、メインウィンドウ５０１やサブウィンドウ５０２に表示させる入力予測候補を、出現頻度に応じて文字フォントや背景色を変更して表示させてもよい。例えば、出現頻度が１０以上の入力予測候補は、太字フォントを使用して表示し、さらにサブウィンドウ内の背景色を赤で強調表示する。また出現頻度が２以下の入力予測候補は、灰色のフォントを使用して表示させる。
【００５８】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００５９】
［付記１］
入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換手段と、
前記変換手段で変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数手段と、
前記変換手段により変換された部分文字列データから、自立語を抽出する自立語抽出手段と、
前記変換手段により変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出手段の抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出手段と、
前記第１検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択手段と、
前記処理対象の部分文字列データと、前記第１検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出手段と、
前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出手段と、
を備えることを特徴とする文字入力支援装置。
［付記２］
同じ意味を示す同義語を登録した辞書を記憶した辞書記憶手段と、
前記辞書記憶手段を参照して、前記自立語抽出手段で抽出された自立語の同義語を抽出する同義語抽出手段と、
前記変換手段で変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる自立語の同義語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第２検出手段と、
前記第２検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、前記記憶手段に前記入力予測候補として記憶させる第２選択手段とを備え、
前記頻度算出手段は、前記処理対象の部分文字列データと、前記第２検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする付記１記載の文字入力支援装置。
［付記３］
前記変換手段で変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる単語数又は文節数よりも多くの単語又は文節を含んだ部分文字列データであって、前記処理対象の部分文字列データに含まれる単語又は文節を含む他の部分文字列データを検出し、検出した他の部分文字列データを、前記入力予測候補として前記記憶手段に記憶させる第３検出手段を備え、
前記頻度算出手段は、前記第３検出手段で検出された他の部分文字列データと、前記処理対象の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする付記１又は２記載の文字入力支援装置。
［付記４］
コンピュータを、文字入力を支援する文字入力支援システムとして動作させるプログラムであって、
前記コンピュータを、
入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換手段と、
前記変換手段で変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数手段と、
前記変換手段により変換された部分文字列データから、自立語を抽出する自立語抽出手段と、
前記変換手段により変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出手段の抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出手段と、
前記第１検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択手段と、
前記処理対象の部分文字列データと、前記第１検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出手段と、
前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出手段として機能させることを特徴とするプログラム。
［付記５］
前記コンピュータを、
同じ意味を示す同義語を登録した辞書を参照して、前記自立語抽出手段で抽出された自立語の同義語を抽出する同義語抽出手段と、
前記変換手段で変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる自立語の同義語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第２検出手段と、
前記第２検出手段で検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数手段で計数した出現頻度に応じて部分文字列データを選択し、前記記憶手段に前記入力予測候補として記憶させる第２選択手段として機能させ、
前記頻度算出手段は、前記処理対象の部分文字列データと、前記第２検出手段で検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする付記４記載のプログラム。
［付記６］
前記コンピュータを、
前記変換手段で変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる単語数又は文節数よりも多くの単語又は文節を含んだ部分文字列データであって、前記処理対象の部分文字列データに含まれる単語又は文節を含む他の部分文字列データを検出し、検出した他の部分文字列データを、前記入力予測候補として前記記憶手段に記憶させる第３検出手段として機能させ、
前記頻度算出手段は、前記第３検出手段で検出された他の部分文字列データと、前記処理対象の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする付記４又は５記載のプログラム。
［付記７］
文字入力の支援を行うコンピュータ装置で実行される文字入力支援方法であって、
入力受付手段によって入力を受け付け、記憶手段に記憶した複数の文字列データを解析して、各文字列データを、該各文字列データに含まれる単語又は文節を少なくとも２以上含んだ複数の部分文字列データに変換する変換ステップと、
前記変換ステップで変換された部分文字列データの、前記複数の文字列データ中での出現頻度を計数する頻度計数ステップと、
前記変換ステップにより変換された部分文字列データから、自立語を抽出する自立語抽出ステップと、
前記変換ステップにより変換された部分文字列データの中から処理対象の部分文字列データを選択し、前記自立語抽出ステップの抽出結果を参照して、前記処理対象の部分文字列データに含まれる自立語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第１検出ステップと、
前記第１検出ステップで検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数ステップで計数した出現頻度に応じて部分文字列データを選択し、選択した部分文字列データを、文字列の入力を支援する入力予測候補として前記記憶手段に記憶させる第１選択ステップと、
前記処理対象の部分文字列データと、前記第１検出ステップで検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させる頻度算出ステップと、
前記入力受付手段により文字列データの入力を受け付けた場合に、前記記憶手段に記憶した使用頻度に基づいて、入力を受け付けた前記文字列データを含む部分文字列データを選出し、選出した部分文字列データを表示手段に表示させる選出ステップとを前記コンピュータ装置が実行することを特徴とする文字入力支援方法。
［付記８］
前記コンピュータ装置は、
同じ意味を示す同義語を登録した辞書を参照して、前記自立語抽出ステップで抽出された自立語の同義語を抽出する同義語抽出ステップと、
前記変換ステップで変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる自立語の同義語を含む他の部分文字列データを、前記処理対象の部分文字列データと同じ意味を持った部分文字列データとして検出する第２検出ステップと、
前記第２検出ステップで検出した前記他の部分文字列データと前記処理対象の部分文字列データとのうち、部分文字列データの長さ、又は前記頻度計数ステップで計数した出現頻度に応じて部分文字列データを選択し、前記記憶手段に前記入力予測候補として記憶させる第２選択ステップとをさらに実行し、
前記頻度算出ステップは、前記処理対象の部分文字列データと、前記第２検出ステップで検出した前記他の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする付記７記載の文字入力支援方法。
［付記９］
前記コンピュータ装置は、
前記変換ステップで変換された部分文字列データの中から処理対象の部分文字列データを選択し、選択した部分文字列データに含まれる単語数又は文節数よりも多くの単語又は文節を含んだ部分文字列データであって、前記処理対象の部分文字列データに含まれる単語又は文節を含む他の部分文字列データを検出し、検出した他の部分文字列データを、前記入力予測候補として前記記憶手段に記憶させる第３検出ステップをさらに実行し、
前記頻度算出ステップは、前記第３検出ステップで検出された他の部分文字列データと、前記処理対象の部分文字列データとの出現頻度の合計値を算出し、算出した合計値を前記入力予測候補の使用頻度として前記記憶手段に記憶させることを特徴とする付記７又は８記載の文字入力支援方法。
【符号の説明】
【００６０】
１  コンピュータ装置
１００  制御部
１０４  記憶部
１１２  ディスプレイ
１１５  操作部
１１６  キーボード
１１７  マウス
２０１  変換部
２０２  頻度計数部
２０３  第３検出部
２０４  頻度再計算部
２０５  自立語抽出部
２０６  第１検出部
２０７  第１選択部
２０８  同義語抽出部
２０９  第２検出部
２１０  第２選択部
【図１】
2011053866.tif 000003
【図２】
2011053866.tif 000004
【図３】
2011053866.tif 000005
【図４】
2011053866.tif 000006
【図５】
2011053866.tif 000007
【図６】
2011053866.tif 000008
【図７】
2011053866.tif 000009
【図８】
2011053866.tif 000010
【図９】
2011053866.tif 000011
【図１０】
2011053866.tif 000012
【図１１】
2011053866.tif 000013
【図１２】
2011053866.tif 000014
【図１３】
2011053866.tif 000015
【図１４】
2011053866.tif 000016