説明

文字列入力装置及び文字列入力方法

【課題】効率的に作成可能な辞書データを用い、複数の単語列からなる使用頻度の高い表現を簡易な操作によって入力する。
【解決手段】記憶部400は、入力端末1が用いられる業務内容などに基づいて、入力内容に応じて用意された辞書データとして、入力される読みに基づいて構成された「読み補完辞書データ」と、変換後の綴りに基づいて構成された「綴り補完辞書データ」とを対応付けて保持している。それぞれのデータは、互いに係り受け関係にある単語を、ノードとして木構造に構成される。制御部100は、入力された文字列から得られる検索キーを用いて、読み補完辞書データ、綴り補完辞書データを検索し、変換候補となるノード列を綴り補完辞書データから読み出す。変換候補を読み出すとき、制御部100は、補完辞書データにおいて、同一の補完単位番号が付与されているノード列については、1つのノード列としてまとめて読み出す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字列入力装置及び文字列入力方法に関し、特に、コールセンタなどにおける入力作業に好適な文字列入力装置及び文字列入力方法に関する。
【背景技術】
【0002】
コンピュータなどの装置に自然言語としての文字列を入力する場合、言語の種類に応じた入力変換をおこなうことで、キーボードなどから入力された文字列を自然言語に変換することが一般的におこなわれている。このような入力変換としては、キーボードなどからの入力をキーとして辞書データを検索し、候補となる単語を抽出して画面に表示し、その中からユーザが選択することによって入力する方法が一般的である。しかしながら、このような方法では、入力中の文字列以前の文字列(確定文字列)については何ら考慮せずに、読みに基づいた変換候補をすべて表示するため、入力文字数が少ない場合などには、変換候補の数が非常に多くなってしまうという不都合があった。そこで、先行して入力された単語との関係(頻度など)を用いて、次に入力されると思われる単語を変換候補として表示する技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−233605号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特定の業務においてユーザがコンピュータを利用する場合、同じ文章や、慣用句などの表現を何度も入力することがある。しかし、特許文献1に開示されている手法では、先行して入力された単語との関係(頻度など)を用いて、次に入力されると思われる単語を変換候補として表示していくため、よく使用する文章や慣用句であっても、先頭から順に単語を選択し、確定していく操作が必要となり、これは煩雑な操作であった。例えば、このような不都合は、電話による応対の内容をリアルタイムに入力する必要のあるコールセンタの作業などにおいて問題となることが多く、より効率的に文字列入力を行なうことが望まれている。そこで、よく使用する表現を辞書に登録し、少ない変換回数で入力変換することが考えられるが、この場合、その表現を構成する単語列が長くなるほど変換候補の数も増えてしまい、文字列を入力するユーザにとって、必ずしも入力の効率化には結びつかない。また、よく入力する表現は時間の経過とともに変化していくことも多く、辞書データを更新していくことが必要となるが、辞書を作成する側にとっても、長い単語列からなる表現が含まれる辞書データを、更新が必要となる度に構築することは現実的ではない。
【0005】
本発明は、このような事情を考慮してなされたものであり、その目的は、効率的に作成可能な辞書データを用いて、複数の単語からなる使用頻度の高い表現を簡易な操作によって入力することができる文字列入力装置及び文字列入力方法を提供することにある。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明は、入力された文字列に応じた変換候補を検索して提示し、提示された変換候補を選択することで文字列入力を行う文字列入力装置であって、入力される文字列を変換処理する前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、ノードとして木構造に構成した読み補完辞書データ、及び、前記読み補完辞書データに含まれる各単語が変換処理された後の綴りが単語として記録された辞書であって、変換処理前と変換処理後の単語をノードとして対応付けて前記読み補完辞書データの示す木構造と合致した木構造に構成し、かつ、1つのノード列としてみなす、係り受け関係にあるノードに同一の補完単位番号を付与した綴り補完辞書データを記憶する記憶部と、ユーザの入力に基づき検索キーを生成する検索キー生成部と、前記検索キー生成部により生成された検索キーに基づき前記読み補完辞書データ及び前記綴り補完辞書データを検索して当該検索キーに対応した前記綴り補完辞書データのノードを特定し、特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを前記綴り補完辞書データから読み出して結合した変換候補を取得する変換候補抽出部と、前記変換候補抽出部が取得した変換候補を出力する変換候補出力部と、を備えることを特徴とする文字列入力装置である。
【0007】
また、上述した課題を解決するために、本発明は、上述する文字列入力装置であって、前記変換候補抽出部は、前記検索キーが未確定ひらがなからなる場合、前記読み補完辞書データから当該検索キーと完全一致する最上流のノードを検出し、検出した当該ノードに対応した前記綴り補完辞書データのノード及び1つ下流のノードを特定し、当該特定したノード及び1つ下流のノードの綴りと、当該1つ下流のノードと同一の補完単位番号が付与されている当該1つ下流のノードのさらに下流のノード綴りとを結合した変換候補を取得する、ことを特徴とする。
【0008】
また、上述した課題を解決するために、本発明は、上述する文字列入力装置であって、前記変換候補抽出部は、前記検索キーが確定文字からなる場合、前記綴り補完辞書データから検索キーと前方一致かつ部分一致する最上流のノードを特定し、当該特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを結合した変換候補を取得する、ことを特徴とする。
【0009】
また、上述した課題を解決するために、本発明は、上述する文字列入力装置であって、前記変換候補抽出部は、前記検索キーが確定文字からなる場合、前記綴り補完辞書データから検索キーと完全一致する最上流のノードと、当該特定したノードの1つ下流のノードを特定し、当該特定したノード及び1つ下流のノードの綴りと、当該1つ下流のノードと同一の補完単位番号が付与されている当該1つ下流のノードのさらに下流のノード綴りとを結合した変換候補を取得する、ことを特徴とする。
【0010】
また、上述した課題を解決するために、本発明は、上述する文字列入力装置であって、前記変換候補抽出部は、前記検索キーが確定文字及び未確定ひらがなからなる未確定文字列からなる場合、当該検索キーの確定文字によって、前記綴り補完辞書データの最も上流のノードを検索して一致するノードを特定し、特定したノードに対応する前記読み補完辞書データのノードの下流のノードと前記検索キーの未確定ひらがなとの一致を判断し、前記綴り補完辞書データから前記特定したノードと、当該特定したノードの下流のノードであり、前記検索キーの未確定ひらがなと一致すると判断された前記読み補完辞書データのノードに対応したノードと、当該下流のノードと同一の補完単位番号が付与されているさらに下流のノードとの綴りを読み出し、読み出した綴りを結合した変換候補を取得する、ことを特徴とする。
【0011】
また、上述した課題を解決するために、本発明は、上述する文字列入力装置であって、入力済みの文章のデータから所定の閾値より出現頻度の高い単語列を特定し、当該特定した単語列に対応した綴り補完辞書データのノード列に同一の補完単位番号を付与して生成した新たなノード列を前記綴り補完辞書データに追加するとともに、当該追加したノード列に対応したノード列を前記読み補完辞書データに追加する辞書生成部をさらに備えることを特徴とする。
【0012】
また、上述した課題を解決するために、本発明は、上述する文字列入力装置であって、前記綴り補完辞書データの各最上流のノードについて、当該最上流のノードを先頭とするノード列の数を取得し、取得したノード列の数が所定以下である場合に、当該最上流のノードを先頭とするノード列に同一の補完単位番号を付与して生成した新たなノード列を前記綴り補完辞書データに追加するとともに、当該追加したノード列に対応したノード列を前記読み補完辞書データに追加する辞書生成部をさらに備えることを特徴とする。
【0013】
また、上述した課題を解決するために、本発明は、入力された文字列に応じた変換候補を検索して提示し、提示された変換候補を選択することで文字列入力を行う文字列入力装置に用いられる文字列入力方法であって、前記入力装置は、入力される文字列を変換処理する前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、ノードとして木構造に構成した読み補完辞書データ、及び、前記読み補完辞書データに含まれる各単語が変換処理された後の綴りが単語として記録された辞書であって、変換処理前と変換処理後の単語をノードとして対応付けて前記読み補完辞書データの示す木構造と合致した木構造に構成し、かつ、1つのノード列としてみなす、係り受け関係にあるノードに同一の補完単位番号を付与した綴り補完辞書データを記憶する記憶部を備え、前記文字列入力装置の検索キー生成部が、ユーザの入力に基づき検索キーを生成する検索キー生成過程と、前記文字列入力装置の変換候補抽出部が、前記検索キー生成過程において生成された検索キーに基づき前記読み補完辞書データ及び前記綴り補完辞書データを検索して当該検索キーに対応した前記綴り補完辞書データのノードを特定し、特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを前記綴り補完辞書データから読み出して結合した変換候補を取得する変換候補抽出過程と、前記文字列入力装置の変換候補出力部が、前記変換候補抽出過程において取得した変換候補を出力する変換候補出力過程と、を有することを特徴とする文字列入力方法である。
【発明の効果】
【0014】
この発明によれば、ユーザが先頭の文字を入力するだけで、複数の単語列からなる表現を変換候補として表示出力することができるため、効率的に文字列入力を行うことが可能となる。また、入力頻度が高い表現や、限られた表現でしか使用されない単語を含んだ表現を抽出して、一つのノード列として扱うように辞書に登録することができるため、辞書の更新を迅速に行なうことが可能となり、辞書の構築にかかっていた時間や人的リソースを削減することができる。
【図面の簡単な説明】
【0015】
【図1】本実施形態による入力端末1の構成を示すブロック図である。
【図2】本実施形態による辞書データの構成例を示すブロック図である。
【図3】本実施形態による入力画面の一例を示す模式図である。
【図4】本実施形態による読み補完辞書データの構成例を示す概念図である。
【図5】本実施形態による綴り補完辞書データの構成例を示す概念図である。
【図6】本実施形態による制御部100によって実現される機能を示す機能ブロック図である。
【図7】本実施形態による、文字列入力処理の動作を説明するためのフローチャートである。
【図8】本実施形態による、検索キー生成処理の動作を説明するためのフローチャートである。
【図9】検索キー生成処理での各種例を示す概念図である。
【図10】本実施形態による、候補抽出処理の動作を説明するためのフローチャートである。
【図11】本実施形態による、先頭未確定処理の動作を説明するためのフローチャートである。
【図12】先頭未確定処理での各種例を示す概念図である。
【図13】先頭未確定処理での各種例を示す概念図である。
【図14】先頭未確定処理での各種例を示す概念図である。
【図15】先頭未確定処理での各種例を示す概念図である。
【図16】実施形態による、先頭確定処理の動作を説明するためのフローチャートである。
【図17】先頭確定処理での各種例を示す概念図である。
【図18】本実施形態による、余剰一致処理の動作を説明するためのフローチャートである。
【図19】本実施形態による、余剰一致処理の動作を説明するためのフローチャートである。
【図20】余剰一致処理での各種例を示す概念図である。
【図21】余剰一致処理での各種例を示す概念図である。
【図22】余剰一致処理での各種例を示す概念図である。
【図23】余剰一致処理での各種例を示す概念図である。
【図24】余剰一致処理での各種例を示す概念図である。
【図25】余剰一致処理での各種例を示す概念図である。
【図26】本実施形態による、出力処理の動作を説明するためのフローチャートである。
【図27】出力処理での各種例を示す概念図である。
【図28】本実施形態による、出力例を説明するための模式図である。
【図29】本実施形態による、補完単位番号付与処理の動作を説明するためのフローチャートである。
【図30】図29の補完単位番号付与処理での例を示す概念図である。
【図31】図29の補完単位番号付与処理での辞書更新例を示す概念図である。
【図32】本実施形態による、補完単位番号付与処理の動作を説明するためのフローチャートである。
【図33】図32の補完単位番号付与処理での辞書更新例を示す概念図である。
【図34】本発明をサーバ−クライアントシステムに適用した場合の構成例を示すブロック図である。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態を、図面を参照して説明する。本実施形態では、本発明を、例えば、コールセンタなどでの入力業務に用いる入力端末に適用した場合を例に説明する。
【0017】
本実施形態にかかる入力端末1は、例えば、ワークステーションやパーソナルコンピュータなどの情報処理装置から構成されるものとする。以下、本実施形態にかかる入力端末1を、図1を参照して説明する。
図1は、本実施形態による入力端末1の構成を示す概略ブロック図である。図示するように、入力端末1は、制御部100、入力制御装置200、出力制御装置300、記憶部400などから構成される。
【0018】
制御部100は、例えば、CPU(Central Processing Unit:中央演算処理装置)や、ワークエリアとなるメモリなどから構成され、記憶部400に格納されているプログラムを読み出して実行することで、入力端末1の各部を制御するとともに、後述する各処理を実行する。
【0019】
入力制御装置200は、例えば、キーボード211や、ポインティングデバイス212などの入力装置210と入力端末1とを接続し、入力装置210の操作に応じた入力信号を制御部100に入力する。本実施形態では、キーボード211を用いて文字列の入力がなされ、ポインティングデバイス212を用いて入力エリアの選択などが行われるものとする。
【0020】
出力制御装置300は、例えば、ディスプレイ装置311などの出力装置310と入力端末1とを接続し、制御部100の処理結果などを出力装置310に出力する。本実施形態では、予め用意されている入力画面がディスプレイ装置311に出力されることにより表示され、入力装置210を用いた入力操作が、当該表示された入力画面上で行われるものとする。
【0021】
記憶部400は、例えば、ハードディスク装置などの記憶装置から構成され、主に、本実施形態にかかる文字列入力処理に必要な情報を格納する。本実施形態では、記憶部400に、辞書格納領域410、プログラム格納領域440、検索された変換候補を記憶する結果テーブル450、変換候補の中からユーザが入力装置210を用いて選択した文字列によって構成される入力文章を記憶する入力文章格納領域460などの記憶領域が確保されるものとする。
【0022】
辞書格納領域410には、入力端末1を用いた文字列入力の際に用いられる辞書データが格納される。本実施形態では、入力端末1を用いた文字列入力において、自然言語としての日本語入力が行われるものとする。この場合、入力端末1は、いわゆるFEP(Front End Processor)の動作により、キーボード211からの入力に応じた入力変換を行う。よって、辞書格納領域410には、このような、日本語入力変換の際に参照される辞書データが格納される。この場合、入力端末1は、辞書格納領域410に格納されている辞書データを参照することで、変換候補(入力候補)の文字列を選択可能に表示出力する。
【0023】
本実施形態にかかる辞書データの例を、図2を参照して説明する。図2は、辞書格納領域410に格納される辞書データの構成を説明する図である。この図に示すように、辞書格納領域410には、基本辞書領域420と入力内容別辞書領域430とが確保される。基本辞書領域420は、入力端末1での日本語入力の際に参照される辞書データのうち、一般的な辞書データ(以下、「基本辞書データ」とする)を格納する領域である。この基本辞書データには、種々の単語と、その品詞や、読みなどを示す情報とが対応付けられている。すなわち、通常の入力用FEPなどで用いられる一般的な辞書データが、基本辞書データとして基本辞書領域420に格納されている。
【0024】
入力内容別辞書領域430は、入力端末1が用いられる業務内容などに基づいて、入力内容に応じて用意された辞書データを格納する領域である。例えば、入力端末1をコールセンタ業務に用いる場合、入力項目が予め規定されているので、特定の入力項目での入力に用いられる単語群から構成される辞書データが入力内容別辞書領域430に格納される。すなわち、入力内容別辞書領域430には、入力内容毎に用意された専用辞書データが格納される。
【0025】
一例として、図2に示すような、応対入力辞書データ(A1)431や、住所入力辞書データ(A2)432などが入力内容別辞書領域430に格納される。このような入力内容別辞書データは、入力画面の入力エリアと対応付けられている。ここで、図3は、入力画面の一例を表す図である。例えば、この図に示すような入力画面ISの場合、応対入力辞書データ431は、電話応対での応対内容を入力するための入力エリアA1と対応付けられる。住所入力辞書データ432は、住所情報を入力するための入力エリアA2と対応付けられる。すなわち、図3に示したような入力画面ISにおいては、辞書データが対応付けされた入力エリアについては、その入力エリアに入力される内容が規定される。
【0026】
このような入力内容別に用意された辞書データのそれぞれには、入力される読みに基づいて構成された「読み補完辞書データ」と、変換後の綴りに基づいて構成された「綴り補完辞書データ」と、が一対となって含まれている。すなわち、図2に示すように、応対入力辞書データ(A1)431には、読み補完辞書データ431Aと綴り補完辞書データ431Bとが対応付けられて含まれている。住所入力辞書データ432(A2)には、読み補完辞書データ432Aと綴り補完辞書データ432Bとが対応付けられて含まれている。
【0027】
入力内容別に用意された辞書データのそれぞれは、このような一対の異なる辞書データによって構成されており、応対入力辞書データ(A1)431と住所入力辞書データ(A2)432とのそれぞれが1組の辞書データである。よって、仮に、応対入力辞書データ(A1)431と住所入力辞書データ(A2)432のみが入力内容別辞書領域430に格納されているのであれば、入力内容別辞書領域430には、2組の辞書データが格納されていることになる。
【0028】
このような入力内容別辞書データの構成を、図4および図5を参照して説明する。ここでは、入力内容別辞書データの一例として、応対入力辞書データ431の構成について説明する。図4は、読み補完辞書データ431Aの構成例を示す概念図であり、図5は、綴り補完辞書データ431Bの構成例を示す概念図である。なお、本実施形態では、携帯電話のユーザサポート業務を行うコールセンタにおいて、ユーザに対する電話応答時に頻出する語彙を基に、応対入力辞書データ431が構成されている場合について説明する。
【0029】
図4を参照して、読み補完辞書データ431Aの構成例を説明する。
図示するように、読み補完辞書データ431Aは、辞書の要素である単語の「読み」を結節点(ノード)とした、樹状の階層構造(木構造)のバイナリデータによって構成されている。そして、この階層構造は、rootを頂点とし、係り受けの関係の係り側の文節を構成するノードから、受け側の文節を構成するノードへと順に連結した構成(ノード列)となっている。ここでは、ノード列のうち、rootに近いほうを上流のノード、rootから遠いほうを下流のノードと呼ぶ。よって、rootの1つ下流が最上流のノードとなる。この構成により、文法的に互いに係り受け関係にある単語が、相関的な位置で連結されている状態を示すデータによって辞書が構築される。なお、1つの文節を構成するノードの数は1または複数でありうる。ここで、読み補完辞書データ431Aは、入力される単語の「読み」に基づく辞書であるので、各ノードには、読みを表すひらがなによって見出し語が示されている。図4において、読み補完辞書データ431Aの各ノードの読みは<>内に示している。
【0030】
このような読み補完辞書データ431Aと対をなす綴り補完辞書データ431Bの構成例を図5に示す。図示するように綴り補完辞書データ431Bは、読み補完辞書データ431Aと同一の階層構造(木構造)によって構成されており、読み補完辞書データ431Aの各ノードに示された読みに対応する「綴り」が、その読み補完辞書データ431Aのノードに対応する綴り補完辞書データ431Bのノードの位置に、綴り補完辞書データ431Bの各ノードの見出し語として構成される。図5において、綴り補完辞書データ431Bの各ノードの綴りは<>内に示している。
【0031】
つまり、綴り補完辞書データ431Bは、読み補完辞書データ431Aに含まれている各ノードを、当該ノードの綴りに基づいて構成した辞書データである。例えば、読み補完辞書データ431Aにおいて、読みが「けいたい」であるノードにリンクする綴り補完辞書データ431Bでのノードでは、「けいたい」の変換後表記、つまり、綴りである「携帯」が対応する。
【0032】
ここで、読み補完辞書データ431Aおよび綴り補完辞書データ431Bの各ノードに付されている[]内の記号は、読み補完辞書データ431Aと綴り補完辞書データ431Bとのノード間のリンクを表すリンクポインタである。つまり、読み補完辞書データ431Aと綴り補完辞書データ431Bとの間において、[]に同じ記号のリンクポインタが設定されているノード同士は、相互に参照可能であることを示している。ここでは、読み補完辞書データ431Aのリンクポインタには区別のためリンクポインタの記号に「’」を付加している。つまり、綴り補完辞書データ431Bのノードに付与されたリンクポインタが[xn]であれば、読み補完辞書データ431Aの対応するノードのリンクポインタは[xn’]となる。これにより、一対の読み補完辞書データ431Aと綴り補完辞書データ431Bとは、ノード単位でリンクされていることを表している。
【0033】
以下、リンクポインタxn’、読みが「**」であるノードをノードxn’「**」または単にノードxn’と記載し、リンクポインタxn、綴りが「**」であるノードをノードxn「**」または単にノードxnと記載する。例えば、読み補完辞書データ431Aにおけるリンクポインタa1’のノードはノードa1’「けいたい」またはノードa1’と記載し、綴り補完辞書データ431Bにおけるリンクポインタa1のノードはノードa1「携帯」またはノードa1と記載する。
【0034】
また、読み補完辞書データ431Aおよび綴り補完辞書データ431Bの各ノードに付されている()内の数値は補完単位番号であり、リンクポインタによって対応する読み補完辞書データ431Aのノードと、綴り補完辞書データ431Bのノードには、同じ補完単位番号が記述されている。同じ数値の補完単位番号が付与されている相互に連続する隣接したノードは、1つのノード列としてみなす。以下、あるノードxn(またはノードxn’)から、当該ノードxn(xn’)と同じ補完単位番号が付与され、かつ、当該ノードxn(xn’)より下流の連続したノードからなるノード列を、ノードxn(xn’)の同一補完単位ノード列と記載する。なお、少なくとも同じ文節を構成するノードには同じ補完単位番号が付与される。また、同一補完単位ノード列は、1つのノードからなる場合もある。
【0035】
例えば、綴り補完辞書データ431Bにおけるノードa1「携帯」は補完単位番号が1、ノードa2「の」は補完単位番号が2であるため、異なる同一補完単位ノード列に含まれるノードとしてみなされる。一方、ノードi1「携帯」、ノードi2「の」、ノードi3「画面」は補完単位番号が1であるため、ノードi1、i2、i3は同一補完単位ノード列であり、1つのノード列としてみなされる。
【0036】
また、読み補完辞書データ431Aおよび綴り補完辞書データ431Bの各ノードに付されている≪≫内の数値は、実際に入力エリアに入力された文章における出現回数を示す。例えば、「新しい」の出現回数が50回である場合、綴り補完辞書データ431Bのノードf1、j1「新しい」に出現回数50が設定され、「新しい/携帯/を/買った」(「/」はノードが結合されている位置を示す)の出現回数が5である場合、ノードf4「買った」に出現回数5が設定される。なお、出現回数の代わりに、単語が出現する割合や標準偏差など、出現頻度を示す任意の情報を用いることができる。
【0037】
なお、上記において辞書データは、3階層以下の文節を構成するノードによる階層構造としているが、2階層の文節を構成するノードによる階層構造としてもよく、4階層以上を最大の文節としたノードによる階層構造としてもよい。
【0038】
上述した図1に示すプログラム格納領域440には、制御部100が実行するプログラムが格納される。そして、制御部100が、プログラム格納領域440に格納されているプログラムを実行することで、本実施形態にかかる文字列入力処理を実行する際の機能が実現される。制御部100によって実現される機能を図6に示す。
【0039】
図6は、制御部100によって実現される機能を示す機能ブロック図である。図示するように、制御部100は、辞書選択部110、検索キー生成部120、変換候補抽出部130、変換候補出力部140、文字列入力部150、辞書生成部160等の機能を含む。
【0040】
辞書選択部110は、入力画面IS上の入力エリアのいずれに入力が行われているかを判別し、判別された結果に基づいて、その入力エリアに応じた辞書を辞書格納領域410から選択する。
【0041】
検索キー生成部120は、入力が行われている入力エリアから文字列を取得し、検索キーを生成して変換候補抽出部130へ引き渡す。
【0042】
変換候補抽出部130は、検索キー生成部120が生成した検索キーと辞書選択部110によって指定された辞書に基づいて、変換候補語を抽出し、記憶部400の結果テーブル450に記憶する。
【0043】
変換候補出力部140は、変換候補抽出部130で抽出された候補語から、後述するように、冗長な部分を削除する。そして、出力制御装置300との協働により、整形後の文字列を選択可能にディスプレイ装置311に表示出力する。
【0044】
文字列入力部150は、入力制御装置200などとの協働により、変換候補出力部140が選択可能にディスプレイ装置311に表示出力した整形後の文字列のうち、入力装置210によって選択された文字列を、未確定文字列に対応した変換後の文字列、あるいは、確定文字列に続く文字列として入力する。この場合、出力制御装置300との協働により、選択された文字列を、現在入力作業をおこなっている入力エリアに表示させるとともに、選択された文字列で構成される文章を入力文章格納領域460に書き込む。つまり、記憶部400には、各入力エリアに実際に入力された文章が書き込まれることになる。
【0045】
辞書生成部160は、入力文章格納領域460に書き込まれた各入力エリアの文章から出現頻度が所定より高い単語列を、また、辞書データにおいて係り受けの分岐が少ない単語列を検出し、当該入力エリアに対応する読み補完辞書データ及び綴り補完辞書データにおいて、検出した単語列を示すノード列を特定し、特定したノード列に同一の補完番号を付与して生成した新たなノード列を追加する。
【0046】
本実施形態では、制御部100がプログラムを実行することで、図6に示す各機能構成が論理的に実現されるが、これらの機能を、例えば、ASIC(Application Specific Integrated Circuit:特定用途向け集積回路)などの物理的な構成によって実現してもよい。
【0047】
次に、上述した構成を有する入力端末1の動作を説明する。ここでは、入力端末1を用いて文字列入力を行う場合に実行される「文字列入力処理」を、図7〜図28を参照して説明する。この処理は、例えば、図3に示すような入力画面ISを表示する操作が行われたことを契機に開始されるものとする。
【0048】
図7は、入力端末1における字列入力処理のフローチャートである。同図において、処理が開始され、オペレータによって入力装置210から入力がなされると、入力制御装置200から制御部100への入力信号に基づき、辞書選択部110は、表示した入力画面IS上の、どの入力エリアが指定されたかを判別する(S001)。すなわち、入力端末1のオペレータによるポインティングデバイス212等の操作によって、入力画面IS上に用意された入力エリアのうち、入力対象となる入力エリアが選択されたか否かを判別する。
【0049】
いずれかの入力エリアが指定されると(S001:YES)、辞書選択部110は、指定された入力エリアが特定の入力エリアであるか否かを判別する(S002)。本実施形態では、辞書データが対応付けられた入力エリアであって、入力内容別辞書を用いた変換入力の対象となっている入力エリアを特定の入力エリアとする。ここでは、応対内容を入力するための入力エリアA1と住所を入力するための入力エリアA2(図3参照)が該当する。
【0050】
指定された入力エリアが、特定の入力エリアではないと判定された場合(S002:NO)、基本辞書領域420の基本辞書データを参照し、通常の入力変換動作によって文字列入力が行われる(S100)。
【0051】
一方、特定の入力エリアが指定されたと判定された場合(S002:YES)、辞書選択部110は、指定された入力エリアの種別を検出する。ここでは、入力エリアA1が指定された場合には、その入力エリアに対応づけされている識別子「A1」が検出され、入力エリアA2が指定された場合には、その入力エリアに対応付けされている識別子「A2」が検出される。
【0052】
辞書選択部110は、識別子を検出すると、入力内容別辞書領域430にアクセスし、検出された識別子に対応する辞書データを選択する(S003)。図2に示すように、入力内容別辞書領域430に格納されている複数組の入力内容別辞書データには、対応する入力エリアを示す識別子(図2の例では「A1」と「A2」)が付与されている。よって、辞書選択部110は、検出された識別子に基づいて、対応する識別子が付与されている辞書データを選択する。以下、本実施形態では、入力エリアA1に文字列入力を行うものとして説明する。よって、ここでは、応対入力辞書データ(A1)431が選択される。
【0053】
使用する辞書データを選択すると、辞書選択部110は、選択した辞書データがいずれであるかを変換候補抽出部130に通知するとともに、指定された入力エリアを検索キー生成部120に通知する。
【0054】
辞書選択部110から入力エリアの通知を受けると、検索キー生成部120は、指定された入力エリアにある文字列を取得して検索キーを生成する(S200)。検索キーの生成には、種々の方法が考えられるが、本実施形態では、後述する図8に示すフローチャートに従って検索キーを生成する。
【0055】
変換候補抽出部130は、S200において生成された検索キーを検索キー生成部120から受け取ると、当該検索キーを用いて辞書選択部110がS003において選択した辞書から変換候補を抽出し、検索結果として出力する(S300)。検索結果としての候補語が抽出されなければ(S004:NO)、変換候補抽出部130は、図8に示す検索キー生成を行う。候補語の抽出に成功していれば(S004:YES)、変換候補出力部140は、S300において出力された検索結果を候補表示するための整形を行う(S400)。
【0056】
S400の後、入力装置210による入力が行われなかった場合(S005:NO)、あるいは、現在指定されている入力エリアにさらに文字が入力された場合(S005:YES、S006:YES)、再び、S200からの処理を行う。一方、入力装置210による入力が、現在指定されている入力エリアへの文字入力でもなく、終了指示の入力でもない場合(S006:NO、S007:NO)、S001からの処理を行い、終了指示の入力である場合(S006:NO、S007:YES)、処理を終了する。
【0057】
次に、図8及び図9を参照して、検索キー生成部120の動作を説明する。図8は、図7のS200において検索キー生成部120が実行する検索キー生成処理のフローチャートを示し、図9は、検索キー生成処理における例を示す。
図7のS200において、検索キー生成処理が実行された場合、図8において、検索キー生成部120は、まず、指定された入力エリア中の文字列を取得する(S201)。一般に、入力エリアには、変換終了した確定文字列と、変換すべく入力作業中の未確定文字列とが混在している。そして、未確定文字列には、FEPが機能する前の「ひらがな」状態と、FEPが機能して漢字などの変換候補が暫定的に表示された状態とがある。以降において、未確定文字列部分は、明細書中では『』により囲まれた文字によって、図中は下線付加によって示すこととする。「確定文字列+未確定文字列」の例は、図9(a)に示すようになる。ここでは、「携帯電話」の文字列を入力する場合において、「携帯」の文字列の漢字が確定しており、『でんわ』の部分がFEPが機能する前の未確定文字列である。そして、『でんわ』の文字列が、暫定的に『電話』として変換される。
【0058】
次いで、検索キー生成部120は、得られた文字列のうち、最後の句点「。」以前の文字列を削除する(S202)。その例を図9(b)に示す。ここでは、入力エリア中の文字列「ユーザです。携帯が壊れました。どこのショップ『にも』交換」から、文字列「ユーザです。携帯が壊れました。」を削除し、検索キーを「どこのショップ『にも』交換」としている。
【0059】
次に、検索キーに未確定部が含まれており、かつ、当該未確定部の右側に確定文字列がある場合には、検索キーから削除(除外)する(S203)。その例を図9(c)に示す。S202において生成された検索キーが「どこのショップ『にも』交換」であった場合、「交換」を削除して検索キー「どこのショップ『にも』」としている。
【0060】
一般に、文字列中に未確定部が複数存在することはない。したがって、入力エリアの文字列の状態は、次のような場合に限られる。
(1)確定部のみ
(2)確定部+未確定部
(3)確定部+未確定部+確定部
(4)未確定部のみ
(5)未確定部+確定部
【0061】
このうち、S203の処理の結果、(3)の場合は(2)の場合に、(5)の場合は(4)の場合に帰着するので、検索キーは、(1)「確定部のみ」、(2)「確定部+未確定部」、(4)「未確定部のみ」の3通りの場合に限られることとなる。
【0062】
次に、検索キー生成部120は、検索キーを「確定部」と「未確定部」とに分離し(S204)、確定部の長さLを取得する(S205)。例えば、確定部が「どこのショップ」である場合、L=7である。次に検索キー生成部120は、確定部の末尾(右端)から左側に長さLの文字列を取り出して「末尾部」を生成する(S206)。最初の検索キー生成にあっては、末尾部は確定部の長さに等しい。従って、S206で生成される末尾部は「どこのショップ」となる。
最後に、検索キー生成部120は、「末尾部」と「未確定部」とを結合する(S207)。この結果、上記例の場合、図9(d)に示す文字列が検索キーとして出力される。つまり、S203において検索キー「どこのショップ『にも』」が抽出され、末尾部が「どこのショップ」である場合、末尾部「どこのショップ」と未確定部『にも』を結合した「どこのショップ『にも』」が検索キーとなる。なお、(1)の場合、「未確定部」がないため、「末尾部」のみが検索キーとなる。このように検索キーが生成されると、続いて、図7のS300の処理を行なう。
【0063】
なお、図7において、候補語が抽出されなかった場合(S004:NO)、検索キー生成部120は、L=0か否かを判断する(S209)。Lが0の場合(S209:YES)、図7のS400の処理を実行し、Lが0ではない場合(S209:NO)、現在のLを1減算した値に更新して確定部の左端を一文字減らし、S206からの処理を行ない、S207の実行後は、図7のS300の処理を行なう。
例えば、L=7、末尾部が「どこのショップ」のときに候補語が抽出されなかった場合、S206では、確定部の「末尾」である右端から(L−1)文字を取り出して、末尾部とするため、L=6であり、末尾部は「このショップ」となる。そして、S207では、検索キーは「このショップ『にも』」となる。
【0064】
次に、図10〜図25を参照して変換候補抽出部130の動作を説明する。
【0065】
図10は、図7のS300において変換候補抽出部130が実行する候補抽出処理のフローチャートを示す。
図10において、変換候補抽出部130は、まず、検索キーの先頭が「ひらがなのみ」からなる「未確定部」であるか否かを判断する(S301)。そして、検索キーの先頭が「ひらがなのみ」で、かつ「未確定部」である場合には(S301:YES)、「先頭未確定処理」(S500)に進み、「ひらがなのみ」からなる「未確定部」でない場合(S301:NO)には、「先頭確定処理」(S600)に進む。
【0066】
次に、図10に示す候補抽出処理におけるS500の「先頭未確定処理」について、図11〜図15を参照して説明する。図11は、図10のS500において変換候補抽出部130が実行する先頭未確定処理のフローチャートを示し、図12〜図15は、先頭未確定処理の例を示す。
図11において、変換候補抽出部130は、まず、「読み補完辞書」からrootの1つ下流のノードである最上流ノードを一つ取得する(S501)。これをノードxとする。なお、以降、アルファベット小文字を用いて「ノードx」と記載した場合には、読み補完辞書のノードを表し、アルファベット大文字を用いて「ノードX」と記載した場合には、ノードxと対応する、綴り補完辞書のノードを表すものとする。
【0067】
ノードxと検索キーとの間に何らかの「前方一致」がある場合、検索キーとノードxとの長短に応じて、包含関係を次のように定義する。
検索キー ⊂ ノードx 部分一致
検索キー = ノードx 完全一致
検索キー ⊃ ノードx 余剰一致
【0068】
また、読み補完辞書および綴り補完辞書は、各々、図4および図5に示すように構成されているものとする。ノードxの読みが「けいたい」の場合を例に、検索キーとの部分一致、完全一致、余剰一致する例は、図12(a)に示す通りである。つまり、検索キーが未確定部『けい』であれば部分一致、検索キーが未確定部『けいたい』であれば完全一致、検索キーが未確定部『けいたいが』であれれば余剰一致である。
なお、前方一致とは検索キーとノードxとの一致判断にあたり、常に先頭部分(文字列左端)の一致を条件とすることをいう。部分一致だが前方一致ではない例と、余剰一致だが前方一致ではない例とを、図12(b)に示す。つまり、検索キーが未確定部『たい』であれば部分一致であるが前方一致ではない。また、検索キーが未確定部『わたしのけいたい』であれば余剰一致ではあるが、やはり前方一致ではない。
【0069】
検索キーとノードxに何らの一致(前方一致)もない場合(S502:NO)、変換候補抽出部130は、読み補完辞書に比較すべきノードが残っていないか確認する(S506)。比較すべきノードが残っていれば(S506:NO)、S501へ戻り、まだ比較を行なっていないrootの1つ下流のノードを1つ選択し、このノードをノードxとして以降の処理を行う。
一方、全てのノードについて比較を行なったため、比較すべきノードが残っていない場合(S506:YES)は、当該先頭未確定処理を終了する。
【0070】
また、検索キーとノードxとが、部分一致、完全一致、余剰一致のいずれかの形で前方一致すれば(S502:YES)、変換候補抽出部130は、ノードxに付与されたリンクポインタにより、綴り補完辞書のノードXを取得する(S503)。
そして、検索キーとノードxが部分一致する場合(S504:YES)、変換候補抽出部130は、綴り補完辞書からノードXの同一補完単位ノード列の綴りを読み出して結果テーブル450に追加する(S505)。このとき、変換候補抽出部130は、同一補完単位ノード列の最後のノードの出現回数を綴り補完辞書から読み出し、結合した綴りと対応づけて結果テーブル450に書き込む。この例を図13に示す。ただし、図13では、結果テーブルに書き込まれる出現回数は省略している。
【0071】
図13(a)に示すように、例えば、検索キーが未確定文字『けい』であり、ノードxが読み補完辞書データ431Aにおけるノードa1’「けいたい」である場合は部分一致するため、綴り補完辞書データ431Bのノードa1「携帯」がノードXとして特定される。ノードa1「携帯」には補完単位番号「1」が付与され、1つ下流のノードa2「の」、ノードc2「が」、…には補完単位番号「2」が付与されており、補完単位番号が異なっている。従って、変換候補抽出部130は、ノードXのみを同一補完単位ノード列とし、ノードa1の綴り「携帯」及び出現回数を対応づけて結果テーブル450に追加する。
【0072】
また、検索キーが未確定文字『けい』であり、ノードxが読み補完辞書データ431Aにおけるノードd1’「けいたいででんわ」である場合も部分一致するため、綴り補完辞書データ431Bのノードd1「携帯電話」がノードXとして特定される。ノードd1「携帯電話」には補完単位番号「1」が付与され、1つ下流のノードd2「の」には補完単位番号「2」が付与されており、補完単位番号が異なっている。従って、変換候補抽出部130は、ノードXのみを同一補完単位ノード列とし、ノードd1の綴り「携帯電話」及び出現回数を対応づけて結果テーブル450に追加する。
【0073】
また、検索キーが未確定文字『けい』であり、ノードxが読み補完辞書データ431Aにおけるノードi1’「けいたい」である場合も部分一致するため、綴り補完辞書データ431Bのノードi1「携帯」がノードXとして特定される。ノードi1「携帯」には補完単位番号「1」が付与されており、下流のノードi2「の」、ノードi3「画面」にも同じ補完単位番号「1」が付与されている。従って、変換候補抽出部130は、ノードi1+ノードi2+ノードi3を同一補完単位ノード列とし、ノードi1、i2、i3の綴りを結合した「携帯の画面」、及び、ノードi3の出現回数を対応付けて結果テーブル450に追加する。
【0074】
一方、図13(b)に示すように、検索キーが未確定文字『あ』であり、ノードxが読み補完辞書データ431Aにおけるノードf1’「あたらしい」である場合は部分一致するため、綴り補完辞書データ431Bのノードf1「新しい」がノードXとして特定される。ノードf1「新しい」には補完単位番号「1」が付与され、下流のノードf2「携帯」、ノードh2「パソコン」、…には全て補完単位番号「2」が付与されており、補完単位番号が異なっている。従って、変換候補抽出部130は、ノードXのみを同一補完単位ノード列とし、ノードf1の綴り「新しい」及び出現回数を対応付けて結果テーブル450に追加する。
【0075】
また、検索キーが未確定文字『あ』であり、ノードxが読み補完辞書データ431Aにおけるノードj1’「あたらしい」である場合も部分一致するため、綴り補完辞書データ431Bのノードj1「新しい」がノードXとして特定される。ノードj1には補完単位番号「1」が、下流のノードj2「パソコン」には補完単位番号「2」が付与されており、補完単位番号が異なっている。従って、変換候補抽出部130は、ノードXのみを同一補完単位ノード列とし、ノードj1の綴り「新しい」及び出現回数を対応付けて結果テーブル450に追加する。
【0076】
その後、比較すべき候補がまだ残っていれば(S506:NO)、S501へ戻る。全てのノードxについて比較が終了していれば(S506:YES)、当該先頭未確定処理を終了する。
【0077】
一方、検索キーとノードxが完全一致する場合(S504:NO、S507:YES)、変換候補抽出部130は、綴り補完辞書から、ノードXと、当該ノードXの1つ下流のノードの同一補完単位ノード列の綴りを読み出して結合し、結果テーブル450に追加する(S508)。このとき、変換候補抽出部130は、同一補完単位ノード列の最後のノードに付加された出現回数を綴り補完辞書から読み出し、綴りと対応づけて結果テーブル450に書き込む。この例を図14に示す。ただし、図14では、結果テーブルに書き込まれる出現回数は省略している。
【0078】
図14(a)に示すように、例えば、検索キーが未確定文字『けいたい』であり、ノードxが読み補完辞書データ431Aにおけるノードa1’「けいたい」である場合は完全一致するため、綴り補完辞書データ431Bのノードa1「携帯」がノードXとして特定される。変換候補抽出部130は、ノードa1の1つ下流のノードa2「の」、ノードc2「が」、…とその補完単位番号「2」を読み出す。そして、読み出した下流のノードそれぞれについて、同一の補完単位番号が付与されたさらに下流のノードを結合したノード列、ノードa2「の」+ノードa3「画面」、ノードa2「の」+ノードb3「ありか」、ノードc2「が」+ノードc3「壊れた」、…を取得する。よって、変換候補抽出部130は、(1)ノードa1(ノードX)とノードa2+ノードa3(同一補完単位ノード列)の綴りを結合した「携帯の画面」、及び、ノードa3の出現回数の対応づけ、(2)ノードa1(ノードX)とノードa2+ノードb3(同一補完単位ノード列)の綴りを結合した「携帯のありか」、及び、ノードb3の出現回数の対応づけ、(3)ノードa1(ノードX)とノードc2+ノードc3(同一補完単位ノード列)の綴りを結合した「携帯が壊れた」、及び、ノードc3の出現回数の対応づけ、を結果テーブル450に追加する。
【0079】
また、検索キーが未確定文字『けいたい』であり、ノードxが読み補完辞書データ431Aにおけるノードi1’「けいたい」である場合も完全一致するため、綴り補完辞書データ431Bのノードi1「携帯」がノードXとして特定される。変換候補抽出部130は、ノードi1の1つ下流のノードi2「の」とその補完単位番号「1」を読み出す。そして、読み出した下流のノードについて、同一の補完単位番号が付与されたさらに下流のノードを結合したノード列、ノードi2「の」+ノードi3「画面」…を取得する。よって、変換候補抽出部130は、ノードi1(ノードX)とノードi2+ノードi3(同一補完単位ノード列)の綴りを結合した「携帯の画面」、及び、ノードi3の出現回数を対応付けて結果テーブル450に追加する。
【0080】
一方、図14(b)に示すように、例えば、検索キーが未確定文字『ふるい』であり、ノードxが読み補完辞書データ431Aにおけるノードk1’「ふるい」である場合は完全一致するため、綴り補完辞書データ431Bのノードk1「古い」がノードXとして特定される。ノードk1の1つ下流のノードk2「携帯」には補完単位番号「1」が付与され、ノードk2の1つ下流のノードk3には補完単位番号「2」が付与されており、補完単位番号が異なっている。よって、変換候補抽出部130は、ノードk2のみを同一補完単位ノード列とし、ノードk1(ノードX)とノードk2(同一補完単位ノード列)の綴りを結合した「古い携帯」、及び、ノードk2の出現回数の対応付けを結果テーブル450に追加する。
【0081】
一方、図14(c)に示すように、検索キーが未確定文字『あたらしい』であり、ノードxが読み補完辞書データ431Aにおけるノードf1’「あたらしい」(ノードx)である場合は完全一致するため、綴り補完辞書データ431Bのノードf1「新しい」がノードXとして特定される。ノードf1の1つ下流のノードf2「携帯」、ノードh2「パソコン」、…には補完単位番号「2」が付与され、さらに下流のノードf3、g3、h3には補完単位番号「3」が付与されており、補完単位番号が異なっている。よって、変換候補抽出部130は、(1)ノードf1(ノードX)とノードf2(同一補完単位ノード列)の綴りを結合した「新しい携帯」、及び、ノードf2の出現回数の対応付け、(2)ノードf1(ノードX)とノードh2(同一補完単位ノード列)の綴りを結合した「新しいパソコン」、及び、ノードh2の出現回数の対応付け、…を結果テーブル450に追加する。
【0082】
また、検索キーが未確定文字『あたらしい』であり、ノードxが読み補完辞書データ431Aにおけるノードj1’「あたらしい」である場合も完全一致するため、ノードXとして綴り補完辞書データ431Bのノードj1「新しい」が特定される。ノードj1の1つ下流のノードj2「パソコン」には補完単位番号「2」が付与されており、さらに下流のノードj3「の」、ノードj4「発売日」にも補完単位番号「2」が付与されている。よって、変換候補抽出部130は、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4からなる同一補完単位ノード列の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数を対応づけて結果テーブル450に追加する。
【0083】
その後、比較すべき候補がまだ残っていれば(S506:NO)、S501へ戻る。全てのノードxについて比較が終了していれば(S506:YES)、先頭未確定処理を終了する。
【0084】
また、検索キーとノードxが部分一致も完全一致もしない場合には、余剰一致となる(S507:NO)。そこでまず、変換候補抽出部130は、nに1を代入すると(S509)、読み補完辞書からノードyn−1の1つ下流のノードyを取得する(S510)。ただし、ノードyはノードxとするため、最初のループにおいては、ノードy(n=1)は、ノードxの1つ下流のノードとなる。
【0085】
次いで、変換候補抽出部130は、まだ余剰キーが生成されていない場合、検索キーからノードxを削除した余りである余剰キーを生成し、すでに余剰キーが生成されている場合は、現在の余剰キーからノードyn−1を削除して余剰キーを更新する。変換候補抽出部130は、余剰キーがノードyに、前方一致を条件として含まれるか(部分一致ないし完全一致するか)判断する(S511)。従って、最初のループにおいては、検索キーからノードxを削除した余剰キーが、ノードxの1つ下流のノードyに含まれるかを判断する。
【0086】
そして、余剰キーがノードyに含まれる場合(S511:YES)、ノードyと対応する綴り補完辞書のノードYを特定し、ノードyに対応したノードYからノードYの同一補完単位ノード列までの綴りをノード列Yとして取得する(S512)。従って、最初のループにおいては、ノード列Yは、ノードYの同一補完単位ノード列となる。変換候補抽出部130は、ノードX+ノード列Yの綴りを結果テーブル450に追加する(S513)。このとき、変換候補抽出部130は、ノード列Yの最後のノードの出現回数を綴り補完辞書から読み出し、結合した綴りと対応づけて結果テーブル450に書き込む。
【0087】
一方、S511において、余剰キーがノードyに含まれないと判断した場合(S511:NO)、変換候補抽出部130は、ノードyが前方一致を条件として余剰キーに含まれるか、つまり、余剰キーがノードyに対して余剰一致するかを判断する(S515)。余剰キーがノードyに対して余剰一致する場合(S515:YES)、現在のnの値に1加算し(S516)、S510からの処理を行う。
例えば、S516において、nの値が2に更新された場合、S510において、変換候補抽出部130は、読み補完辞書からノードyの1つ下流のノードyを取得する。次いで、S511において、変換候補抽出部130は、現在の余剰キーからノードyを削除した余りにより余剰キーを更新し、更新した余剰キーがノードyに、前方一致を条件として含まれるか判断する。
【0088】
S513の処理の後、あるいは、S515において余剰キーがノードyに対して余剰一致しないと判断された場合(S515:NO)、比較すべき下流ノード候補がまだ残っていれば(S514:NO)、S509へ戻る。一方、全てのノードyについて比較が終了していれば(S514:YES)、S506へ進む。
【0089】
余剰キーで示される余りが部分一致、完全一致、余剰一致の例を図15(a)、(b)、(c)に示す。ただし、図15では、結果テーブルに書き込まれる出現回数は省略している。
【0090】
図15(a)に示すように、例えば、検索キーが未確定文字『けいたいの』であり、ノードxが読み補完辞書データ431Aにおけるノードa1’「けいたい」(ノードx)である場合は余剰一致する。変換候補抽出部130は、ノードa1’の1つ下流のノードa2’「の」、ノードc2’「が」を読み補完辞書データ431Aから読み出し、ノードyとする。余剰キーは「の」であるため、変換候補抽出部130は、完全一致するノードyの読み「の」を特定する。そして、この特定したノードyであるノードa2’のリンクポインタにより、綴り補完辞書データ431Bから、ノードa2「の」が特定される。変換候補抽出部130は、ノードa2の同一補完単位ノード列として、ノードa2「の」+ノードa3「画面」、ノードa2「の」+ノードb3「ありか」を読み出し、ノード列Yとする。変換候補抽出部130は、(1)ノードa1(ノードX)と、ノードa2+ノードa3(ノード列Y)との綴りを結合した「携帯の画面」、及び、ノードa3の出現回数の対応づけ、(2)ノードa1(ノードX)と、ノードa2+ノードb3(ノード列Y)との綴りを結合した「携帯のありか」、及び、ノードb3の出現回数の対応づけを結果テーブル450に追加する。
また、ノードxが読み補完辞書データ431Aにおけるノードi1’「けいたい」(ノードx)である場合もノードy(ノードi2’「の」)と余剰キー「の」は完全一致し、ノードi1(ノードX)と、ノードi2+ノードi3(ノード列Y)との綴りを結合した「携帯の画面」、及び、ノードi3の出現回数の対応づけが結果テーブル450に追加される。
【0091】
一方、図15(b)に示すように、検索キーが未確定文字『あたらしいぱ』であり、ノードxが読み補完辞書データ431Aにおけるノードf1’「あたらしい」である場合は余剰一致する。変換候補抽出部130は、ノードf1’の1つ下流のノードf2’「けいたい」、h2’「ぱそこん」を読み補完辞書データ431Aから読み出し、ノードyとする。余剰キーは、「ぱ」であるため、変換候補抽出部130は、前方一致かつ部分一致するノードyの読み「ぱそこん」を特定する。そして、この特定したノードyであるノードh2’のリンクポインタにより、綴り補完辞書データ431Bにおいて、ノードh2「パソコン」を特定する。ノードh2「パソコン」には補完単位番号「2」が付与され、ノードh2の1つ下流のノードh3には補完単位番号「3」が付与されており、補完単位番号が異なっている。よって、変換候補抽出部130は、ノードh2のみを同一補完単位ノード列とし、このノードh2の同一補完単位ノード列をノード列Yとする。変換候補抽出部130は、ノードf1(ノードX)と、ノードh2(ノード列Y)の綴りを結合した「新しいパソコン」、及び、ノードh2の出現回数の対応づけを結果テーブル450に追加する。
【0092】
また、検索キーが未確定文字『あたらしいぱ』であり、ノードxが読み補完辞書データ431Aにおけるノードj1’「あたらしい」である場合も余剰一致する。変換候補抽出部130は、ノードj1’の1つ下流のノードj2’「ぱそこん」を読み補完辞書データ431Aから読み出し、ノードyとする。余剰キーは「ぱ」であるため、ノードyと前方一致かつ部分一致する。そこで、変換候補抽出部130は、ノードyであるノードj2’のリンクポインタにより、綴り補完辞書データ431Bにおいて、ノードj2「パソコン」を特定すると、ノードj2の同一補完単位ノード列として、ノードj2「パソコン」+ノードj3「の」+ノードj4「発売日」を読み出し、ノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数を対応づけて結果テーブル450に追加する。
【0093】
また、図15(c)に示すように、検索キーが未確定文字『あたらしいけいたいの』であり、ノードxが読み補完辞書データ431Aにおけるノードf1’「あたらしい」である場合は余剰一致する。変換候補抽出部130は、ノードf1’の1つ下流のノードf2’「けいたい」、h2’「ぱそこん」を読み補完辞書データ431Aから読み出し、ノードyとする。余剰キーは、「けいたいの」であるため、ノードf2’「けいたい」と余剰一致する。そこで、変換候補抽出部130は、余剰一致するノードy、つまり、ノードf2’「けいたい」の1つ下流のノードf3’「を」、ノードg3’「の」を読み補完辞書データ431Aから読み出してノードyとするとともに、余剰キーを、「けいたいの」からノードy(ノードf2’)を削除した「の」に更新する。
【0094】
余剰キーは「の」であるため、変換候補抽出部130は、完全一致するノードyの読み「の」を特定する。そして、この特定したノードyであるノードg3’のリンクポインタにより、綴り補完辞書データ431Bから、ノードg3「の」を特定する。変換候補抽出部130は、ノードg3「の」の同一補完単位ノード列として、ノードg3「の」+ノードg4「発売日」を読み出すとともに、読み出した同一補完単位ノード列の上流ノードであるノードy、つまり、ノードf2’のリンクポインタにより、綴り補完辞書データ431Bのノードf2「携帯」をノードYとして特定すると、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードf1(ノードX)と、ノードf2+ノードg3+ノードg4(ノード列Y)との綴りを結合した「新しい携帯の発売日」、及び、ノードg4の出現回数の対応づけを結果テーブル450に追加する。
【0095】
一方、S515において、余剰キーがノードyに対して余剰一致しないと判断した場合(S515:NO)、直接、S514へ進む。この例を図15(d)に示す。
その後、比較すべきノードyがまだ残っていれば(S514:NO)、S509へ戻る。全てのノードyについて比較が終了していれば(S514:YES)、S506へ進む。
【0096】
図15(d)に示すように、検索キーが未確定文字『けいたいがこわれたので』である場合、n=2まで、つまり、余剰キー「がこわれたので」とノードy「が」、及び、余剰キー「こわれたので」とノードy「こわれた」は余剰一致するが、n=3、つまり、余剰キーが「ので」となった場合、S510においてノードyを取得できなくなるため、S511及びS515においてNOと判定される。
また、検索キーが未確定文字『けいたいがふるい』である場合、n=1のとき、つまり、余剰キー「がふるい」とノードy「が」は余剰一致するが、n=2のとき、つまり、余剰キーが「ふるい」となった場合、いずれのノードyとも一致しないため、S511及びS515においてNOと判定される。
【0097】
次に、図10に示す候補抽出処理におけるS600の「先頭確定処理」について図16及び図17を参照して説明する。図16は、図10のS600において変換候補抽出部130が実行する先頭確定処理のフローチャートを示し、図17は、先頭確定処理における例を示す。
図16のフローで処理される検索キーには、「確定部のみ」の場合と「確定部+未確定部」の場合とがある。変換候補抽出部130は、綴り補完辞書からrootの1つ下流のノードXを1つ取得する(S601)。ノードXと検索キーとの間の包含関係の定義は、「先頭未確定処理」の場合と同様である。
検索キー ⊂ ノードX 部分一致
検索キー = ノードX 完全一致
検索キー ⊃ ノードX 余剰一致
【0098】
また、先頭確定処理においても、一致判断は「前方一致」を条件とする。ノードXが「携帯」の場合を例とした、検索キーとの部分一致、完全一致、余剰一致の例を図17(a)に示す。つまり、検索キーが確定部「携」であれば部分一致、検索キーが確定部「携帯」であれば完全一致、検索キーが確定部「携帯が」であれれば余剰一致である。
【0099】
検索キーとノードXとの間に何らの一致もない場合(S602:NO)、変換候補抽出部130は、綴り補完辞書に、検索キーと比較すべきノードXが残っていないか確認する(S606)。そして、比較すべきノードXが残っていれば(S606:NO)、S601へ戻り、まだ比較を行なっていないrootの1つ下流のノードを1つ選択し、このノードをノードXとして以降の処理を行う。
【0100】
一方、全てのrootの1つ下流のノードについて比較を行なったため、比較すべきノードが残っていない場合には(S606:YES)、当該先頭確定処理を終了する。
一方、部分一致の場合には(S604:YES)、変換候補抽出部130は、綴り補完辞書からノードXの同一補完単位ノード列の綴りを読み出して結果テーブル450に追加する。このとき、変換候補抽出部130は、同一補完単位ノード列の最後のノードに付加された出現回数を綴り補完辞書から読み出し、綴りと対応づけて結果テーブル450に書き込む。この例を図17(b)に示す。ただし、図17では、結果テーブルに書き込まれる出現回数は省略している。
【0101】
図17(b)に示すように、例えば、検索キーが確定文字「携」であり、ノードXが綴り補完辞書データ431Bにおけるノードa1「携帯」である場合は部分一致する。ノードa1「携帯」には補完単位番号「1」が付与され、1つ下流のノードa2「の」、ノードc2「が」、…には全て補完単位番号「2」が付与されており、補完単位番号が異なっている。従って、変換候補抽出部130は、ノードXのみを同一補完単位ノード列とし、ノードa1の綴り「携帯」及び出現回数を対応づけて結果テーブル450に追加する。
【0102】
また、検索キーが確定文字「携」であり、ノードXが綴り補完辞書データ431Bにおけるノードd1「携帯電話」である場合も部分一致する。ノードd1「携帯電話」には補完単位番号「1」が付与され、1つ下流のノードa2「の」には補完単位番号「2」が付与されており、補完単位番号が異なっている。従って、変換候補抽出部130は、ノードXのみを同一補完単位ノード列とし、ノードd1の綴り「携帯電話」及び出現回数を対応づけて結果テーブル450に追加する。
【0103】
また、検索キーが確定文字「携」であり、ノードXが綴り補完辞書データ431Bにおけるノードi1「携帯」である場合も部分一致する。ノードi1「携帯」には補完単位番号「1」が付与されており、下流のノードi2「の」、ノードi3「画面」にも同じ補完単位番号「1」が付与されている。従って、変換候補抽出部130は、ノードi1+ノードi2+ノードi3を同一補完単位ノード列とし、ノードi1、i2、i3の綴りを結合した「携帯の画面」、及び、ノードi3の出現回数を対応付けて結果テーブル450に追加する。
【0104】
そして、比較すべきノードがまだ残っていれば(S606:NO)、S601へ戻る。全てのノードXについて比較が終了していれば(S606:YES)、当該先頭確定処理を終了する。
【0105】
一方、完全一致の場合(S604:NO、S607:YES)、変換候補抽出部130は、綴り補完辞書から、綴り補完辞書のノードXと、当該ノードXの1つ下流のノードの同一補完単位ノード列の綴りを読み出して結合し、結果テーブル450に追加する(S608)。このとき、変換候補抽出部130は、ノード列の最後のノードに付加された出現回数を綴り補完辞書から読み出し、綴りと対応づけて結果テーブル450に書き込む。この例を図17(c)に示す。
【0106】
図17(c)に示すように、例えば、検索キーが確定文字「新しい」であり、ノードXが綴り補完辞書データ431Bにおけるノードf1「新しい」である場合は完全一致する。ノードf1の1つ下流のノードf2「携帯」、ノードh2「パソコン」、…には補完単位番号「2」が付与され、さらに下流のノードf3、g3には補完単位番号「3」が付与されており、補完単位番号が異なっている。よって、変換候補抽出部130は、(1)ノードf1(ノードX)とノードf2(同一補完単位ノード列)の綴りを結合した「新しい携帯」、及び、ノードf2の出現回数の対応付け、(2)ノードf1(ノードX)とノードh2(同一補完単位ノード列)の綴りを結合した「新しいパソコン」、及び、ノードh2の出現回数の対応付け、…を結果テーブル450に追加する。
【0107】
また、検索キーが確定文字「新しい」であり、ノードXが綴り補完辞書データ431Bにおけるノードj1「新しい」である場合も完全一致する。ノードj1の1つ下流のノードj2「パソコン」には補完単位番号「2」が付与されており、さらに下流のノードj3「の」、ノードj4「発売日」にも補完単位番号「2」が付与されている。よって、変換候補抽出部130は、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4からなる同一補完単位ノード列の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数を対応づけて結果テーブル450に追加する。
【0108】
次いで、変換候補抽出部130は綴り補完辞書に比較すべきノードが残っていないか確認する(S606)。比較すべきノードが残っていれば(S606:NO)、S601へ戻る。一方、比較すべきノードが残っていない場合には(S606:YES)、当該先頭確定処理を終了する。
【0109】
また、部分一致でも完全一致でもない場合は余剰一致となる(S607:NO)。変換候補抽出部130は、後述する余剰一致処理(S700)を行い、綴り補完辞書に比較すべきノードが残っていないか確認する(S606)。比較すべきノードが残っていれば(S606:NO)、S601へ戻る。一方、比較すべきノードが残っていない場合には(S606:YES)、当該先頭確定処理を終了する。
【0110】
次に、図18〜図25を参照して余剰一致処理について説明する。図18及び図19は、図16のS700において変換候補抽出部130が実行する余剰処理のフローチャートを示し、図20〜図25は、余剰処理の例を示す。
図18において、変換候補抽出部130は、まず、nに1を代入すると(S701)、綴り補完辞書からノードYn−1の1つ下流のノードYを一つ取得する(S702)。ただし、ノードYはノードXとするため、ノードYはノードXの1つ下流のノードとなる。ノードYの例を図20に示す。
【0111】
図20(a)に示すように、例えば、検索キーが「携帯『の』」、または、「携帯の」であり、ノードXが綴り補完辞書データ431Bにおけるノードa1「携帯」である場合、ノードa2「の」、及び、ノードc2「が」がノードYとして選択される。
また、ノードXが綴り補完辞書データ431Bにおけるノードi1「携帯」である場合、ノードi2「の」がノードYとして選択される。
【0112】
一方、図20(b)に示すように、検索キーが「新しい『ぱ』」であり、ノードXが綴り補完辞書データ431Bにおけるノードf1「新しい」である場合、一つ下流のノードf2「携帯」、及び、h2「パソコン」がノードYとして選択される。
また、検索キーが「新しい『ぱ』」であり、ノードXが綴り補完辞書データ431Bにおけるノードj1「新しい」である場合、ノードj2「パソコン」がノードYとして選択される。
【0113】
次いで、変換候補抽出部130は、検索キーからノードYn−1を削除した余りキーαを生成すると、この余りキーαが「ひらがなのみ」からなる「未確定部」であるか否か判断する(S703)。ここで、図21(a)にS703がYESの例を示し、図21(b)にS703がNOの例を示す。図21(a)には、検索キーが「携帯『のが』」である場合、余りキーαが未確定部『のが』となることが、図21(b)には、検索キーが「携帯の『が』」である場合、余りキーαが確定部と未確定部が含まれる「の『が』」となることを示している。
【0114】
余りαが「ひらがなのみ」からなる「未確定部」である場合には(S703:YES)、変換候補抽出部130は、読み補完辞書から、ノードYn−1の1つ下流のノードYと対応するノードyを検索して取得する(S704)。そして、変換候補抽出部130は、余りキーαが前方一致し、かつ、ノードyと部分一致ないし完全一致するか判定する(S705)。
【0115】
そして、余りキーαがノードyと前方一致し、かつ、部分一致ないし完全一致する場合(S705:YES)、変換候補抽出部130は、綴り補完辞書より、ノードYからノードYの同一補完単位ノード列までの綴りをノード列Yとして取得すると、ノードXとノード列Yの綴り結合し、結果テーブル450に追加する(S706)。このとき、変換候補抽出部130は、ノード列Yの最後のノードの出現回数を綴り補完辞書から読み出し、綴りと対応づけて結果テーブル450に書き込む。
【0116】
一方、S705において、余りキーαがノードyに含まれないと判断した場合(S705:NO)、変換候補抽出部130は、ノードyが前方一致を条件として余りキーαに含まれるか、つまり、余りキーαがノードyに対して余剰一致するかを判断する(S708)。余りキーαがノードyに対して余剰一致する場合(S708:YES)、現在のnの値に1加算し(S709)、余りキーαn−1からノードyn−1を削除して余りキーαを生成すると(S710)、S704からの処理を行なう。
例えば、S709において、nの値が2に更新された場合、S710において、変換候補抽出部130は、余りキーαからノードyを削除した余りにより余りキーαを生成し、S704において、ノードyの1つ下流のノードyを取得する。次いで、生成した余りキーαがノードyに、前方一致を条件として含まれるか判断する。
上記例を図22に示す。ただし、図22では、結果テーブルに書き込まれる出現回数は省略している。S706の処理の後、変換候補抽出部130は、S707へ進む。
【0117】
図22(a)に示すように、検索キーが「新しい『ぱ』」、余りキーαが『ぱ』、ノードXがノードf1「新しい」、ノードYがノードf2「携帯」、ノードh2「パソコン」である場合、変換候補抽出部130は、ノードyとして、読み補完辞書データ431Aからノードf2’の読み「けいたい」、ノードh2’の読み「ぱそこん」を取得する。余りキーαとノードh2’の読みは前方一致かつ部分一致するため、変換候補抽出部130は、綴り補完辞書データ431Bにおいて、ノードh2’に対応したノードh2を特定する。ノードh2「パソコン」には補完単位番号「2」が付与され、ノードh2の1つ下流のノードh3には補完単位番号「3」が付与されており、補完単位番号が異なっているため、変換候補抽出部130は、ノードh2のみを同一補完単位ノード列とし、このノードh2の同一補完単位ノード列をノード列Yとする。ノード変換候補抽出部130は、ノードf1(ノードX)と、ノードh2(ノード列Y)の綴りを結合した「新しいパソコン」、及び、ノードh2の出現回数を対応づけて結果テーブル450に追加する。
【0118】
また、検索キーが「新しい『ぱ』」、余りキーαが『ぱ』、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合、変換候補抽出部130は、ノードyとして、読み補完辞書データ431Aからノードj2’の読み「ぱそこん」を取得する。余りキーα『ぱ』とノードj2’の読みは前方一致かつ部分一致する。変換候補抽出部130は、ノードj2の同一補完単位ノード列として、ノードj2「パソコン」+ノードj3「の」+ノードj4「発売日」を綴り補完辞書データ431Bから読み出し、ノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数を対応づけて結果テーブル450に追加する。
【0119】
一方、図22(b)に示すように、検索キーが「新しい『ぱそこんの』」、余りキーαが『ぱそこんの』、ノードXがノードf1「新しい」、ノードYがノードf2「携帯」、ノードh2「パソコン」である場合、変換候補抽出部130は、ノードyとして、読み補完辞書データ431Aからノードf2’の読み「けいたい」、ノードh2’の読み「ぱそこん」を取得する。余りキーαはノードh2’の読みと余剰一致するため、変換候補抽出部130は、余りキーαからノードh2’(ノードy)を削除した余りキーα『の』を生成するとともに、読み補完辞書データ431Aからノードh2’の1つ下流のノードh3’「の」を読み出してノードyとする。余りキーαとノードh3’は完全一致するため、変換候補抽出部130は、綴り補完辞書データ431Bにおいて、ノードh3の同一補完単位ノード列として、ノードh3「の」+ノードh4「発売日」を特定すると、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードf1(ノードX)と、ノードh2+ノードh3+ノードh4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードh4の出現回数を対応づけて結果テーブル450に追加する。
【0120】
また、検索キーが「新しい『ぱそこんの』」、余りキーαが『ぱそこんの』、ノードXがノードj1「新しい」である場合も同様の処理により、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数の対応付けが結果テーブル450に追加される。
【0121】
一方、余りキーαがノードyに対して余剰一致しない場合(S708:NO)、すなわち、図22(c)に示すような場合には、直接、S707へ進む。
図22(c)に示すように、例えば、検索キーが「携帯『から』」、余りキーαが『から』である場合、ノードXがノードa1、i1「携帯」のいずれであっても、ノードyと余りキーは部分一致も完全一致も余剰一致もしない。
また、検索キーが「携帯『のがめんがきえた』」である場合、n=2まで、つまり、余りキーα「のがめんがきえた」とノードy「の」、余りキーα「がめんがきえた」とノードy「がめん」は余剰一致するが、n=3のとき、つまり、余りキーαが「がきえた」となったところで、S704でノードY、ノードyが取得できず、S705及びS708においてNOと判定される。
【0122】
その後、比較すべきノードYがまだ残っていれば(S707:NO)、S701へ戻り、まだ比較を行なっていないノードYを1つ選択して以降の処理を行う。一方、全てのノードYについて比較が終了していれば(S707:YES)、当該余剰一致処理を終了する。
【0123】
また、余りキーαの中に確定文字列があるか、未確定部のみであっても、ひらがなだけではない場合(S703:NO)、変換候補抽出部130は、余りキーαがノードYと部分一致または完全一致するか判定する(S711)。そして、余りキーαがノードYと部分一致または完全一致する場合(S711:YES)、変換候補抽出部130は、綴り補完辞書より、ノードYからノードYの同一補完単位ノード列までの綴りをノード列Yとして取得すると、ノードXとノード列Yの綴りを結合し、結果テーブル450に追加する(S712)。この例を図23(a)、(b)に示す。ただし、図23では、結果テーブルに書き込まれる出現回数は省略している。その後、S707へ進む。
【0124】
図23(a)において、検索キーが「携帯の」、余りキーαが「の」であり、ノードXがノードa1「携帯」、ノードYがノードa2「の」である場合、変換候補抽出部130は、ノードYと余りキーαが完全一致すると判断する(S711:YES)。変換候補抽出部130は、ノードa2の同一補完単位ノード列として、ノードa2「の」+ノードa3「画面」、及び、ノードa2「の」+ノードb3「ありか」を綴り補完辞書データ431Bから読み出し、ノード列Yとする。変換候補抽出部130は、(1)ノードa1と、ノードa2+ノードa3(ノード列Y)の綴りを結合した「携帯の画面」、及び、ノードa3の出現回数の対応付け、(2)ノードa1と、ノードa2+ノードb3(ノード列Y)の綴りを結合した「携帯のありか」、及び、ノードb3の出現回数の対応付けを結果テーブル450に追加する。
なお、ノードXがノードi1「携帯」、ノードYがノードi2「の」である場合も同様に、「携帯の画面」、及び、ノードi3の出現回数の対応付けがが結果テーブル450に追加される。
【0125】
図23(b)において、検索キーが「新しいパ」、余りキーαが「パ」、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、変換候補抽出部130は、ノードYと余りキーαが部分一致すると判断する(S711:YES)。ノードh2「パソコン」には補完単位番号「2」が付与され、ノードh2の1つ下流のノードh3には補完単位番号「3」が付与されており、補完単位番号が異なっているため、変換候補抽出部130は、ノードh2のみを同一補完単位ノード列とし、このノードh2の同一補完単位ノード列をノード列Yとする。ノード変換候補抽出部130は、ノードf1(ノードX)と、ノードh2(ノード列Y)の綴りを結合した「新しいパソコン」、及び、ノードh2の出現回数を対応づけて結果テーブル450に追加する。
【0126】
また、検索キーが「新しいパ」、余りキーαが「パ」、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合、変換候補抽出部130は、ノードYと余りキーαが部分一致すると判断する(S711:YES)。変換候補抽出部130は、ノードj2の同一補完単位ノード列として、ノードj2「パソコン」+ノードj3「の」+ノードj4「発売日」を読み出し、ノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数を対応づけて結果テーブル450に追加する。
【0127】
その後、比較すべきノードYがまだ残っていれば(S707:NO)、S701へ戻る。一方、全てのノードYについて比較が終了していれば(S707:YES)、当該余剰一致処理を終了する。
【0128】
一方、余りキーαがノードYと部分一致も完全一致もしない場合(S711:NO)、図19において、変換候補抽出部130は、余りキーαがノードYを包含するか否か判定する(S713)。そして、余りキーαがノードYを包含しない場合(S713:NO)、すなわち、図23(c)に示すような場合には、図18のS707へ進む。
図23(c)において、例えば、検索キーが「携帯から」、余りキーαが「から」である場合、ノードXがノードa1、i1「携帯」のいずれであっても、ノードYと余りキーαは部分一致も完全一致もせず、余りキーαはノードYを包含しない。
【0129】
一方、図19において、余りキーαがノードYを包含する場合(S713:YES)、変換候補抽出部130は、余りキーαから更にノードYを除いた余りキーαn+1を作成し、余りキーαn+1が「ひらがなのみ」からなる「未確定部」であるか否か判定する(S714)。
余りキーαn+1がひらがなのみからなる未確定部である場合(S714:YES)、変換候補抽出部130は、ノードYの1つ下流のノードYn+1と対応するノードyn+1を読み補完辞書から取得すると(S715)、余りキーαn+1がノードyn+1と部分一致または完全一致するか判定する(S716)。そして、余りキーαn+1がノードyn+1と部分一致または完全一致する場合(S716:YES)、変換候補抽出部130は、綴り補完辞書より、ノードYからノードYn+1の同一補完単位ノード列までの綴りをノード列Yとして取得すると、ノードX+ノード列Yの綴りを結合して、結果テーブル450に追加する(S717)。このとき、変換候補抽出部130は、ノード列Yの最後のノードに付加された出現回数を綴り補完辞書から読み出し、綴りと対応づけて結果テーブル450に書き込む。
【0130】
一方、S716において、余りキーαn+1がノードyn+1と部分一致も完全一致もしないと判断した場合(S716:NO)、変換候補抽出部130は、ノードyn+1が前方一致を条件として余りキーαn+1に含まれるか、つまり、余りキーαn+1がノードyn+1に対して余剰一致するかを判断する(S718)。余りキーαn+1がノードyn+1に対して余剰一致する場合(S718:YES)、現在のnの値に1加算し(S719)、余りキーαからノードyを削除して余りキーαn+1を生成すると(S720)、S715からの処理を行なう。
例えば、S719において、nの値が2に更新された場合、S720において、変換候補抽出部130は、余りキーαからノードyを削除した余りにより余りキーαを生成し、S715において、ノードyの1つ下流のノードyを取得する。次いで、S716生成した余りキーαがノードyに、部分一致または前方一致するかを判断する。
【0131】
上記の例を図24(a)、(b)、(c)に示す。ただし、図24では、結果テーブルに書き込まれる出現回数は省略している。S717の処理の後、図18のS707へ進む。
【0132】
図24(a)において、検索キーが「携帯の『が』」、余りキーαが「の『が』」であり、ノードXがノードa1「携帯」、ノードYがノードa2「の」である場合、余りキーαはノードYを包含する。よって、余りキーα『が』を作成する。余りキーαがひらがなのみからなる未確定部であるため(S714:YES)、変換候補抽出部130は、ノードYの次のノードであるノードY、つまりノードa3「画面」に対応したノードa3’の読み「がめん」をノードyとして読み補完辞書データ431Aから読み出す(S715)。ノードyであるノードa3’「がめん」と、余りキーα『が』は部分一致する(S716:YES)。綴り補完辞書データ431Bにおいて、ノードa3には下流のノードがないため、変換候補抽出部130は、ノードa3のみをノードYの同一補完単位ノード列とし、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードa1(ノードX)と、ノードa2+ノードa3(ノード列Y)の綴りを結合した「携帯の画面」、及び、ノードa3の出現回数を対応づけて結果テーブル450に追加する。
なお、ノードXがノードi1「携帯」、ノードYがノードi2「の」である場合も同様の処理により、ノードi1(ノードX)と、ノードi2+ノードi3(ノード列Y)の綴りを結合した「携帯の画面」、及び、ノードi3の出現回数の対応付けが結果テーブル450に追加される。
【0133】
一方、図24(b)において、検索キーが「新しいパソコン『の』」、余りキーαが「パソコン『の』」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーαはノードYを包含する。よって、余りキーα『の』を作成する。余りキーαがひらがなのみからなる未確定部であるため(S714:YES)、変換候補抽出部130は、ノードYの次のノードであるノードY、つまりノードh3「の」に対応したノードh3’の読み「の」をノードyとして読み補完辞書データ431Aから読み出す(S715)。ノードyであるノードh3’「の」と、余りキーα『の』は完全一致するため(S716:YES)、変換候補抽出部130は、ノードh3の同一補完単位ノード列として、ノードh3「の」+ノードh4「発売日」を特定すると、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードh2+ノードh3+ノードh4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードh4の出現回数を対応づけて結果テーブル450に追加する。
また、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様の処理により、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数の対応付けが結果テーブル450に追加される。
【0134】
一方、図24(c)において、検索キーが「新しいパソコン『のは』」、余りキーαが「パソコン『のは』」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーαはノードYを包含する。よって、余りキーα『のは』を作成する。余りキーαがひらがなのみからなる未確定部であるため(S714:YES)、変換候補抽出部130は、ノードYの次のノードであるノードY、つまりノードh3「の」に対応したノードh3’の読み「の」をノードyとして読み補完辞書データ431Aから読み出す(S715)。
ノードyと余りキーαは余剰一致するため(S716:NO、S718:YES)、変換候補抽出部130は、余りキーα『のは』からノードyを削除し、余りキーα『は』を作成する(S719、S720)。変換候補抽出部130は、ノードh3’(ノードy)の1つ下流のノードh4’の読み「はつばいび」をノードyとして読み補完辞書データ431Aから読み出す(S715)。
【0135】
ノードyと余りキーαは部分一致する(S716:YES)。綴り補完辞書データ431Bにおいて、ノードh4には下流のノードがないため、変換候補抽出部130は、ノードh4のみをノードYの同一補完単位ノード列とし、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードh2+ノードh3+ノードh4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードh4の出現回数を対応づけて結果テーブル450に追加する。
また、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様の処理により、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数の対応付けが結果テーブル450に追加される。
【0136】
一方、余りキーαn+1がノードyn+1に対して余剰一致しない場合(S718:NO)、すなわち、図24(d)に示すような場合には、図18のS707へ進む。
【0137】
例えば、図24(d)に示すように、検索キーが「新しいパソコン『が』」、余りキーαが「パソコン『が』」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーα『が』が作成される。ノードY、つまりノードh3「の」に対応したノードh3’(ノードy)の読み「の」は、余りキーαとは部分一致も完全一致も余剰一致もしない。ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様である。
その後、比較すべき下流のノードYがまだ残っていれば(S707:NO)、S701へ戻る。一方、全てのノードYについて比較が終了していれば(S707:YES)、当該余剰一致処理を終了する。
【0138】
一方、図19において、余りキーαn+1が「ひらがなのみ」からなる「未確定部」でない場合(S714:NO)、変換候補抽出部130は、余りキーαn+1がノードYの1つ下流のノードYn+1と部分一致または完全一致するか判定する(S721)。余りキーαn+1とノードYn+1が部分一致または完全一致の場合(S721:YES)、変換候補抽出部130は、綴り補完辞書より、ノードYからノードYn+1の同一補完単位ノード列までの綴りをノード列Yとして取得すると、ノードX+ノード列Yを結果テーブル450に追加する(S722)。このとき、変換候補抽出部130は、ノード列Yの最後のノードの出現回数を綴り補完辞書から読み出し、綴りと対応づけて結果テーブル450に書き込む。
【0139】
一方、S721において、余りキーαn+1がノードyn+1に含まれないと判断した場合(S721:NO)、変換候補抽出部130は、ノードyn+1が前方一致を条件として余りキーαn+1に含まれるか、つまり、余りキーαn+1がノードyn+1に対して余剰一致するかを判断する(S723)。余りキーαn+1がノードyn+1に対して余剰一致する場合(S723:YES)、現在のnの値に1加算し(S724)、S714からの処理を行なう。
例えば、S724において、nの値が2に更新された場合、S714において、変換候補抽出部130は、余りキーαからノードYを削除した余りにより余りキーαを生成し、余りキーαが未確定ひらがなかを判断する。
上記例を図25(a)、(b)、(c)に示す。ただし、図25においては、結果テーブルに書き込まれる出現回数は省略している。S722の処理の後、あるいは、S723において余りキーαn+1がノードyn+1に対して余剰一致しないと判断された場合(S723:NO)、変換候補抽出部130は、図18のS707へ進む。
【0140】
図25(a)において、例えば、検索キーが「新しいパソコンの」、余りキーαが「パソコンの」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーα「パソコンの」は、ノードYであるノードh2「パソコン」を包含するため、余りキーα「の」を作成する。ノードY、つまりノードh3「の」と、余りキーαは完全一致するため(S721:YES)、変換候補抽出部130は、ノードh3の同一補完単位ノード列として、ノードh3「の」+ノードh4「発売日」を特定すると、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードf1(ノードX)と、ノードh2+ノードh3+ノードh4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードh4の出現回数を対応づけて結果テーブル450に追加する。
【0141】
また、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様の処理により、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数の対応づけが結果テーブル450に追加される。
【0142】
図25(b)に示すように、例えば、検索キーが「新しいパソコンの発」、余りキーαが「パソコンの発」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーα「パソコンの発」は、ノードYであるノードh2「パソコン」を包含するため、変換候補抽出部130は、余りキーα「の発」を作成するとともに、ノードh2「パソコン」の1つ下流のノードであるh3の綴り「の」をノードYとして綴り補完辞書データ431Bから読み出す。
余りキーαはノードYと余剰一致するため(S721:NO、S723:YES)、変換候補抽出部130は、余りキーαからノードh3(ノードY)を削除した余りキーα「発」を生成する。余りキーαは未確定ひらがなではないため(S714:NO)、変換候補抽出部130は、ノードh3「の」の1つ下流のノードであるh4の綴り「発売日」をノードYとして綴り補完辞書データ431Bから読み出す。
【0143】
余りキーαはノードYと部分一致する(S721:YES)。綴り補完辞書データ431Bにおいて、ノードh4には下流のノードがないため、変換候補抽出部130は、ノードh4のみをノードYの同一補完単位ノード列とし、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードh2+ノードh3+ノードh4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードh4の出現回数を対応づけて結果テーブル450に追加する。
【0144】
また、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様の処理により、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数の対応付けが結果テーブル450に追加される。
【0145】
図25(c)に示すように、例えば、検索キーが「新しいパソコンの『は』」、余りキーαが「パソコンの『は』」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーα「パソコンの『は』」は、ノードYであるノードh2「パソコン」を包含するため、変換候補抽出部130は、余りキーα「の『は』」を作成するとともに、ノードh2「パソコン」の1つ下流のノードであるh3の綴り「の」をノードYとして綴り補完辞書データ431Bから読み出す。
余りキーαはノードYと余剰一致するため(S721:NO、S723:YES)、変換候補抽出部130は、余りキーαからノードh3(ノードY)を削除した余りキーα『は』を生成する。余りキーαは未確定ひらがなであるため(S714:YES)、変換候補抽出部130は、ノードh3(ノードY)に対応したノードh3’(ノードy)の1つ下流のノードh4’の読み「はつばいび」を、ノードyとして読み補完辞書データ431Aから読み出す(S715)。
【0146】
ノードyと余りキーαは部分一致する(S716:YES)。綴り補完辞書データ431Bにおいて、ノードh4には下流のノードがないため、変換候補抽出部130は、ノードh4のみをノードYの同一補完単位ノード列とし、ノードYからノードYの同一補完単位ノード列までをノード列Yとする。変換候補抽出部130は、ノードj1(ノードX)と、ノードh2+ノードh3+ノードh4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードh4の出現回数を対応づけて結果テーブル450に追加する。
また、ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様の処理により、ノードj1(ノードX)と、ノードj2+ノードj3+ノードj4(ノード列Y)の綴りを結合した「新しいパソコンの発売日」、及び、ノードj4の出現回数の対応付けが結果テーブル450に追加される。
【0147】
S722の処理の後、あるいは、S723において余りキーαn+1がノードyn+1に対して余剰一致しないと判断された場合(S723:NO)、図18のS707へ進む。図25(d)に部分一致でも完全一致でも余剰一致でもない場合の例を示す。
【0148】
図25(d)において、例えば、検索キーが「新しいパソコンの『価格』」、余りキーαが「パソコンの『価格』」であり、ノードXがノードf1「新しい」、ノードYがノードh2「パソコン」である場合、余りキーα「の『価格』」とノードYであるノードh3「の」とは余剰一致するが、余りキーα『価格』と、ノードh3の1つ下流のノードとは部分一致も完全一致も余剰一致もしない。ノードXがノードj1「新しい」、ノードYがノードj2「パソコン」である場合も同様である。
【0149】
その後、図18において、比較すべき下流のノードYがまだ残っていれば(S707:NO)、S701へ戻る。一方、全てのノードYについて比較が終了していれば(S707:YES)、当該余剰一致処理を終了する。
【0150】
次に、図7のS400における出力処理について説明する。図26は、変換候補出力部140が実行する出力処理のフローチャートを示す。
同図において、変換候補出力部140は、結果テーブル450に書き込まれた文字列に、同一の文字列が含まれている場合は、これらの重複している文字列のうち1つのみを残す(S401)。S402〜S405までの処理は、説明を容易にするため、検索キーが「末尾部のみ」、「末尾部+未確定部」、「未確定部のみ」の場合に分けて説明する。
【0151】
<検索キーが末尾部のみの場合>
変換候補出力部140は、結果テーブル450の文字列から、検索キーの「末尾部」を削除する(S402)。次に、削除した結果、検索キーの「未確定部」と完全一致することになった出力候補語があるか判定する(S403)。この例では、検索キーに「未確定部」を含まないので、S403は自動的にNOとなる。この結果、図27(a)に示すような出力が得られる(S405)。
【0152】
図27(a)において、検索キーが「新しい」であり、結果テーブルには文字列「新しい携帯」、「新しいパソコン」、「新しいパソコンの発売日」が記憶されている。このとき、結果テーブルに記憶されているそれぞれの文字列から「新しい」を除いた「携帯」、「パソコン」、「パソコンの発売日」が出現回数の多い順に出力候補語として出力される。このように整形された出力候補語の画面表示例を図28(a)に示す。
【0153】
<検索キーが「末尾部+未確定部」の場合>
変換候補出力部140は、まず、結果テーブル450の文字列から検索キーの「末尾部」を削除する(S402)。さらに、末尾部削除の結果、出力候補語の中に検索キーの未確定部と完全一致する出力候補語がある場合(S403:YES)、当該一致する出力候補語を結果テーブル450の出力候補語から削除する(S404)。
【0154】
図27(b)に示す例1では、検索キーが末尾部「新しい」+未確定部『ぱ』からなる「新しい『ぱ』」であり、結果テーブルには文字列「新しいパソコン」、「新しいパソコンの発売日」が記憶されている。末尾部削除後の出力候補語のノード列「パソコン」、「パソコンの発売日」において、検索キーの未確定部『ぱ』と完全一致するノードがないため、「パソコン」、「パソコンの発売日」が出現頻度の多い順に出力候補語として出力される(S405)。このように整形された出力候補語の画面表示例を図28(b)に示す。
【0155】
図27(c)に示す例2では、検索キーが末尾部「携帯」+未確定部『が』からなる「携帯『が』」であり、結果テーブルには文字列「携帯が壊れた」が記憶されている。検索キーの未確定部『が』は、末尾部削除後の出力候補語のノード列「が/壊れた」のうち「が」と一致する。しかし、完全一致ではないので(S403:NO)、「が壊れた」がそのまま出力候補語として出力される(S405)。このように整形された出力候補語の画面表示例を図28(c)に示す。そして、オペレータが例えば「が壊れた」を選択すると、未確定状態の「が」を削除して「が壊れた」を確定情報で入力エリアに挿入する。なお、出力候補語が複数ある場合には、出現回数が多い順に表示する。
【0156】
また、図27(d)に示す例3では、検索キーが末尾部「携帯の」+未確定部『ありか』からなる「携帯の『ありか』」であり、結果テーブルには文字列「携帯のありか」が記憶されている。検索キーの未確定部『ありか』が、末尾部削除後の出力候補語「ありか」と完全一致するので、S404において「ありか」全体が削除され、S405で、出力候補語は出力されない。入力エリアにすでに表示された未確定文字列と出力候補語表示エリアに表示される文字列が一致した場合、オペレータは、出力候補語表示エリアから出力候補語を選択するよりも、入力エリアの文字列を、例えば、Enterキーなどで確定させるほうが自然だからである。この場合の画面表示例を図28(d)に示す。
【0157】
<検索キーが「未確定部のみ」の場合>
検索キーが「未確定部のみ」の場合、S402で削除される部分はなく、原則、検索結果がそのまま出力される(S405)。図27(e)に例1の場合、図27(f)に例2の場合を示す。また、このような場合の出力候補語の画面表示例を図28(e)、(f)に示す。
【0158】
図27(e)に示す例1では、検索キーが『けい』であり、結果テーブルには文字列「携帯」、「携帯電話」、「携帯の画面」が記憶されている。よって、図28(e)に示すように、出現回数の多い順に「携帯」、「携帯電話」、「携帯の画面」が出力候補語として出力される。
【0159】
図27(f)に示す例2では、検索キーが『あたらしい』であり、結果テーブルには文字列「新しい携帯」、「新しいパソコン」、「新しいパソコンの発売日」が記憶されている。よって、図28(f)に示すように、出現回数の多い順に「新しいパソコン」、「新しいパソコンの発売日」、「新しい携帯」が出力候補語として出力される。
【0160】
例外的に、綴り補完辞書に、ひらがなのみからなるノードがあり、当該ノードが出力候補語となった場合には、S403でYESとなり、一致した出力候補語が結果テーブルから削除される(S404)。この例を図27(g)に示す。
【0161】
上記のS405の後、オペレータは、キーボード211などを操作し、表示された変換候補のうち好適な候補を選択する。この選択操作に応じた入力信号が入力制御装置200から制御部100に入力されると(S406:YES)、文字列入力部150によって、選択された変換候補の確定入力がおこなわれる(S407)。
【0162】
ここでは、変換候補出力部140によって表示させている選択候補のいずれが選択されたかを文字列入力部150が判別し、出力制御装置300を制御することで、選択された変換候補を確定文字列として入力エリアに表示する。また、文字列入力部150は、このようにして確定入力した確定文字列からなる文章を、入力エリアの識別及び時間情報とともに入力文章格納領域460に書き込む。
【0163】
そして、この確定入力の後、再び、図7のS200の検索キー処理が実行され、検索キーが生成される。従って、続く図7のS300の候補抽出処理においては、図10に示すS600の先頭確定処理、つまり、図16に示す処理が実行される。
あるいは、確定入力の後、ユーザが何らかの未確定文字をキーボード211により入力した場合も、図7のS200の検索キー処理が実行され、末尾部+未確定部の検索キーが生成される。従って、続く図7のS300の候補抽出処理においては、図10に示すS500の先頭未確定処理、つまり、図11に示す処理が実行される。
【0164】
なお、未確定文字列に入力誤りがあるなどによって、変換候補の選択がされず、入力取消操作などがおこなわれると(S406:NO、S408:YES)、確定入力をおこなわずに処理を終了する。
【0165】
次に、補完単位番号付与処理について説明する。この補完単位番号付与処理では、現在の辞書データの中から、同一の補完単位番号を付与すべきノード列を検出し、特定したノード列に同一の補完番号を付与して生成した新たなノード列を追加し、辞書データを更新する。同一の補完単位番号を付与すべきノード列には、(1)入力エリアに入力された頻度が高いもの、(2)係り受けの分岐が少ないもの、の2つがある。(1)では、実際にオペレータが入力した頻度が高い表現を変換候補として選択可能とすることができるようになる。(2)では、ある単語がいくつかの限られた表現の中でしか使用されない場合、その表現が変換候補として表示されるようになる。
【0166】
図29〜図31を用いて、入力エリアに入力される頻度が高いノード列に同一の補完単位番号を付与するときの補完単位番号付与処理について説明する。
まず、入力内容別辞書領域430には、予め、各入力エリアに対応した読み補完辞書データと綴り補完辞書データの対が記憶されているものとする。
【0167】
図29は、辞書生成部160が実行する補完単位番号付与処理のフローチャートを示し、図30は、図29の補完単位番号付与処理のデータ例を示し、図31は、辞書データの更新例を示す。
図29において、辞書生成部160は、1週間、1ヶ月毎などの所定の期間毎に、あるいは、ユーザによる指示が入力されることにより、入力文章格納領域460から補完単位番号付与処理の対象とする辞書データに対応した入力エリアの入力文章を読み出す。このとき、入力エリアの入力文章全てを読み出してもよく、現在から3ヶ月前までなどの所定期間分の文章を読み出してもよい(S801)。なお、補完単位番号付与処理の対象とする辞書データを特定する情報は予め入力しておくことでもよく、全ての辞書データについて順に行なうようにしてもよい。辞書生成部160は、S801において読み込んだ文章、つまり、文字列を、文末記号に従って分割し、文リストを生成する(S802)。文末記号には、例えば、句点「。」とすることができる。
【0168】
辞書生成部160は、S802で生成した文リストの先頭から順に、まだ読み込んでいない文を取得する(S803)。辞書生成部160は、S803で読み込んだ文から不要文字、例えば、英数字に挟まれたもの以外の空白、タブ、改行などを削除する(S804)。辞書生成部160は、S804で不要文字を削除した文の構文解析を行なう(S805)。この構文解析の処理には、従来より使用されている、入力文から単語や、単語相互の係り受け関係を取り出す任意の構文解析ソフトウェア等を使用することができる。
解析が失敗した場合(S806:NO)、S803に進む。
【0169】
解析が成功すると(S806:YES)、辞書生成部160は、解析結果から、親子関係の部分木、単独の部分木を抽出すると、部分木配列リストを生成する(S807)。部分木配列リストの例を図30(a)に示す。部分木配列リストは、各部分木について、自身の部分木番号、当該部分木を構成する単語の読み及び綴りと品詞、親子(係り受け)関係にある部分木の番号を示す。なお、上下に並んだ部分木のうち、上に位置する部分木が親であり、下に位置する部分木が子である。
【0170】
辞書生成部160は、部分木から得られた綴り及び読みに対応したパス(マッチング経路)をパスファイルに書き込む(S808)。この例を、図30(b)に示す。つまり、親子関係の部分木の子は係り側、親は受け側とした係り受け関係の文節としてパスを生成し、さらに、各部分木(文節)を構成する単語の読み、綴りをノードとしたパスを生成する。そして、親子関係にある子側の部分木、つまり、係り側の文節の最後のノードにある助詞は、親側の部分木、つまり、受け側の文節の最初のノードに移動する。辞書生成部160は、文節の単位で補完単位番号を付与する。このとき、先頭の文節には補完単位番号1を付与し、受け側の文節には、係り側の文節よりも1大きな補完単位番号を付与する。そして、各文節に付与された補完単位番号を、当該文節を構成するノードに付与する。
【0171】
そして、文リストにまだ未処理の文がある場合(S809:YES)、辞書生成部160は、再びS602からの処理を行う。文リストに含まれる全ての文について処理を終えた場合(S809:NO)、辞書生成部160は、生成したパスファイルからなる中間ファイルを自身の保持する記憶領域に記憶する(S810)。
【0172】
辞書生成部160は、S810において記憶した中間ファイルから、2以上所定数以下の連続する補完単位番号のノード列を全て取得する。例えば、読み補完辞書データと綴り補完辞書データが3文節以下からなる場合、補完単位番号が1−2、2−3、3−4、…のように連続するノード列と、補完単位番号が1−2−3,2−3−4、3―4―5、…のように連続するノード列を読み出す。そして、そして、同じ綴りからなるノード列毎に出現回数をカウントすると、各ノード列の出現頻度、例えば、出現回数の標準偏差、全体に占める出現割合を求める(S811)。なお、出現回数自体を出現頻度としてもよい。そして、所定の閾値よりも出現頻度が高いノード列を、同じ補完単位番号を付与すべきノード列(以下、「対象ノード列」と記載)であると判断する。辞書生成部160は、綴り補完辞書データから対象ノード列を特定すると、対象ノード列と同じノードからなるノード列、及び、対象ノード列を含むノード列を綴り補完辞書データのrootのノードの1つ下流に追加し、追加したノード列に対して、対象ノード列と一致するノード列に同一の補完単位番号を付与する。そして、追加したノード列に対応するノード列を読み補完辞書データに追加する(S812)。この例を図31に示す。
【0173】
例えば、応対入力辞書データ(A1)431が処理対象であり、対象ノード列が「携帯/を/買った」であるとする。この場合、辞書生成部160は、綴り補完辞書データ431B(図5)からノードf2+ノードf3+ノードf4を特定する。辞書生成部160は、図31(a)に示すように、新たなノードs1「携帯」−ノードs2「を」−ノードs3「買った」からなるノード列と、新たなノードt1「新しい」−ノードt2「携帯」−ノードt3「を」−ノードt4「買った」からなるノード列を綴り補完辞書データ431Bのrootの配下に追加する。そして、ノードs1、s2、s3に補完単位番号「1」を付与する。また、ノードt1に補完単位番号「1」を、ノードt2、t3、t4に補完単位番号「2」を付与する。
さらに、辞書生成部160は、図31(b)に示すように、読み補完辞書データ431Aに、新たなノードs1’「けいたい」−ノードs2’「を」−ノードs3’「かった」からなるノード列と、新たなノードt1’「あたらしい」−ノードt2「けいたい」−ノードt3「を」−ノードt4「かった」からなるノード列をrootの配下に追加する。そして、ノードs1’、s2’、s3’に補完単位番号「1」を付与する。また、ノードt1’に補完単位番号「1」を、ノードt2’、t3’、t4’に補完単位番号「2」を付与する。
【0174】
また、S812において、さらに、辞書生成部160は、所定の閾値よりも出現頻度が低く、かつ、補完単位が連続するノード列のうち、綴り補完辞書データ、読み補完辞書データに同じ補完単位番号が付与されて登録されているノード列がある場合、このノード列を含んだroot配下のノード列を削除する。例えば、応対入力辞書データ(A1)431が処理対象であり、「パソコン/の/発売日」の出現頻度が閾値以下となったとする。辞書生成部160は、綴り補完辞書データ431B(図5)から同じ補完単位番号「2」が付与されたノードj2+ノードj3+ノードj4を特定する。この場合、綴り補完辞書データ431Bからノードj1〜j4のノード列が、読み補完辞書データ431Aからノードj1’〜j4’のノード列が削除される。
【0175】
また、辞書生成部160は、各ノード列毎にカウントした出現回数により、読み補完辞書データと綴り補完辞書データの各ノードに記述されている出現回数を更新する。
【0176】
続いて、図32及び図33を用いて係り受けの分岐が少ないものに同一の補完単位番号を付与するときの補完単位番号付与処理について説明する。図32は、辞書生成部160が実行する補完単位番号付与処理のフローチャートを示し、図33は、図32の補完単位番号付与処理における辞書更新の例を示す。
【0177】
図32において、辞書生成部160は、補完単位番号付与処理の対象とする辞書データの綴り補完辞書データから、rootの1つ下流のノードである最上流ノードを一つ取得する。これをノードXとする(S901)。辞書生成部160は、ノードXの1つ下流のノードの数、1つ下流のノードそれぞれの1つ下流のノードの数、・・・を合計し、ノードXを先頭とするノード列の数を取得すると(S902)、取得したノード列の数が所定以下であるか否かを判断する(S903)。
【0178】
ノード列の数が所定数以下である場合は(S903:YES)、辞書生成部160は、さらに、ノードXの下流の各ノードの補完単位番号が同一であるかを判断する(S904)。同一でない場合(S904:NO)、辞書生成部160は、ノードXを最上流とするノード列を全て複製し、同一の補完単位番号「1」を付与して綴り補完辞書データに追加する。そして、追加したノード列に対応するノード列を読み補完辞書データに追加する(S905)。図33にこの例を示す。
【0179】
図33(a)に示すように、綴り補完辞書データの最上流ノードがノードa1「携帯」、ノードa1の1つ下流のノードがノードa2「の」及びノードc3「が」の2つ、ノードa2「の」の1つ下流のノードがノードa3「画面」及びノードb3「ありか」の2つ、ノードc3「が」の1つ下流のノードがノードc3「壊れた」の1つ、「画面」、「ありか」及び「壊れた」の下流にはノードがないものとする。この場合、辞書生成部160は、ノードa1を先頭とするノード列の数は3となる。そして、ノードa1とノードa2,c2の補完単位番号が異なるため、辞書生成部160は、ノードa1を最上流とするノード列を全て複製して綴り補完辞書データのrootの配下に追加し、追加したノード列の各ノードに新しいリンクポインタを付与するとともに、ノードa1及びノードa1の下流のノード全てに補完単位番号「1」を付与する。
さらに、辞書生成部160は、図33(b)に示すように、読み補完辞書データに、ノードa1’を最上流とするノード列を複製して読み補完辞書データのrootの配下に追加し、追加したノード列の各ノードに、読み補完辞書データに対応したリンクポインタと、補完単位番号「1」を付与する。
【0180】
S903においてノード列の数が所定数を超えると判断した場合(S903:NO)、S904においてノードXの下流の各ノードの補完単位番号が同一であると判断した場合(S904:YES)、あるいは、S905の処理の処理を行なったのち、辞書生成部160は、綴り補完辞書データに比較すべきノードが残っていないか確認する(S906)。比較すべきノードが残っていれば(S906:NO)、S901へ戻り、まだ処理を行なっていない最上流ノードを1つ選択し、このノードをノードXとして以降の処理を行う。
一方、全ての最上流ノードについて比較を行なったため、比較すべきノードが残っていない場合(S906:YES)は、当該先頭未確定処理を終了する。
【0181】
なお、図32において、読み補完辞書データを用いて同一の補完単位番号をすべき最上流ノードを検出するようにしてもよい。
【0182】
なお、上記の補完単位番号付与処理は、辞書作成時に行なっても良い。この場合、図29のS801において、入力文章格納領域460から入力文章を読み出す代わりに、任意の文章群を読み込んで使用する。
【0183】
上述した実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
例えば、上記実施の形態では、一対の読み補完辞書データと綴り補完辞書データとを入力エリアと対応づけることで、入力内容別の辞書データを構築したが、入力内容に応じて選択可能であれば、対応づけるものは入力エリアに限られない。例えば、文字列入力をおこなう入力画面や使用するアプリケーションと辞書データとを対応づけてもよい。
【0184】
上記実施形態では、入力内容別辞書データとして、応対入力辞書データの例を主に示したが、互いに係り受け関係にある単語の階層構成とすることができるのであれば、種々の内容について入力内容別辞書データを構築することができる。例えば、都道府県名とそれに続く下位の地域名とを階層構造とすることで、住所入力に用いる辞書データを構築することができる他、姓とこれに続く名の組み合わせで階層構造とすることで、人名入力に用いる辞書データを構築することができる。つまり、対象とする複数の単語が相関的な位置をもって連結させることが可能であれば、種々の内容に応じた入力内容別辞書データを構築することができる。
【0185】
また、上記実施形態では、キーボード211によって文字列が入力される場合を例示したが、文字列が入力できるのであれば、その入力方法はこれに限られず任意である。例えば、音声認識によって文字列入力を行う場合にも、本発明を適用することで、より効率的な文字列入力を実現することができる。
【0186】
上記実施形態では、電話応答の内容をリアルタイムで入力する必要のあるコールセンタの入力端末に本発明を適用した場合を例示した。本発明は、このような高速な入力作業が求められる分野に特に好適ではあるが、これに限られるものではなく、文字列入力をおこなう種々の場面で用いられる入力装置等に本発明を適用可能であり、いずれの場合であっても、より効率的な文字列入力を実現することができる。
【0187】
上記実施形態にかかる入力端末1は、スタンドアローンで構成可能であるだけでなく、いわゆるサーバ−クライアントシステムとしても構成可能である。すなわち、例えば、図34に示すように、制御部501、通信部502を備えるクライアント500に入力装置210と出力装置310の機能を持たせ、該クライアント500と、制御部601、通信部602、記憶部603を備え、検索機能を持たせたサーバ600とから構成としても良い。サーバ600は、検索機能として、辞書選択部601−1、検索キー生成部601−2、変換候補抽出部601−3、変換候補出力部601−4、文字列入力部601−5、辞書生成部601−6を備える。辞書選択部601−1、検索キー生成部601−2、変換候補抽出部601−3、変換候補出力部601−4、文字列入力部601−5、辞書生成部601−6はそれぞれ、図6に示す辞書選択部110、検索キー生成部120、変換候補抽出部130、変換候補出力部140、文字列入力部150、辞書生成部160と同様の機能を有する。また、記憶部603は、図1に示す記憶部400と同様のデータを記憶する。
【0188】
このようなプログラムの提供方法は任意であり、例えば、CD−ROMなどの記憶媒体に格納して配布可能であることはもとより、プログラムデータを搬送波に重畳することで、所定の通信媒体(例えば、インターネットなど)を介して配布することもできる。
【符号の説明】
【0189】
1 入力端末
100 制御部
110 辞書選択部
120 検索キー生成部
130 変換候補抽出部
140 変換候補出力部
150 文字列入力部
160 辞書生成部
200 入力制御装置
210 入力装置
211 キーボード
212 ポインティングデバイス
300 出力制御装置
310 出力装置
311 ディスプレイ装置
400 記憶部
410 辞書格納領域
420 基本辞書領域
430 入力内容別辞書領域
431 応対入力辞書データ(A1)
431A 読み補完辞書データ
431B 綴り補完辞書データ
432 住所入力辞書データ(A2)
432A 読み補完辞書データ
432B 綴り補完辞書データ
440 プログラム格納領域
450 結果テーブル
460 入力文章格納領域

【特許請求の範囲】
【請求項1】
入力された文字列に応じた変換候補を検索して提示し、提示された変換候補を選択することで文字列入力を行う文字列入力装置であって、
入力される文字列を変換処理する前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、ノードとして木構造に構成した読み補完辞書データ、及び、前記読み補完辞書データに含まれる各単語が変換処理された後の綴りが単語として記録された辞書であって、変換処理前と変換処理後の単語をノードとして対応付けて前記読み補完辞書データの示す木構造と合致した木構造に構成し、かつ、1つのノード列としてみなす、係り受け関係にあるノードに同一の補完単位番号を付与した綴り補完辞書データを記憶する記憶部と、
ユーザの入力に基づき検索キーを生成する検索キー生成部と、
前記検索キー生成部により生成された検索キーに基づき前記読み補完辞書データ及び前記綴り補完辞書データを検索して当該検索キーに対応した前記綴り補完辞書データのノードを特定し、特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを前記綴り補完辞書データから読み出して結合した変換候補を取得する変換候補抽出部と、
前記変換候補抽出部が取得した変換候補を出力する変換候補出力部と、
を備えることを特徴とする文字列入力装置。
【請求項2】
前記変換候補抽出部は、前記検索キーが未確定ひらがなからなる場合、前記読み補完辞書データから当該検索キーと前方一致かつ部分一致する最上流のノードを検出し、検出した当該ノードに対応した前記綴り補完辞書データのノードを特定し、当該特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを結合した変換候補を取得する、
ことを特徴とする請求項1に記載の文字列入力装置。
【請求項3】
前記変換候補抽出部は、前記検索キーが未確定ひらがなからなる場合、前記読み補完辞書データから当該検索キーと完全一致する最上流のノードを検出し、検出した当該ノードに対応した前記綴り補完辞書データのノード及び1つ下流のノードを特定し、当該特定したノード及び1つ下流のノードの綴りと、当該1つ下流のノードと同一の補完単位番号が付与されている当該1つ下流のノードのさらに下流のノード綴りとを結合した変換候補を取得する、
ことを特徴とする請求項1に記載の文字列入力装置。
【請求項4】
前記変換候補抽出部は、前記検索キーが確定文字からなる場合、前記綴り補完辞書データから検索キーと前方一致かつ部分一致する最上流のノードを特定し、当該特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを結合した変換候補を取得する、
ことを特徴とする請求項1に記載の文字列入力装置。
【請求項5】
前記変換候補抽出部は、前記検索キーが確定文字からなる場合、前記綴り補完辞書データから検索キーと完全一致する最上流のノードと、当該特定したノードの1つ下流のノードを特定し、当該特定したノード及び1つ下流のノードの綴りと、当該1つ下流のノードと同一の補完単位番号が付与されている当該1つ下流のノードのさらに下流のノード綴りとを結合した変換候補を取得する、
ことを特徴とする請求項1に記載の文字列入力装置。
【請求項6】
前記変換候補抽出部は、
前記検索キーが確定文字及び未確定ひらがなからなる未確定文字列からなる場合、当該検索キーの確定文字によって、前記綴り補完辞書データの最も上流のノードを検索して一致するノードを特定し、
特定したノードに対応する前記読み補完辞書データのノードの下流のノードと前記検索キーの未確定ひらがなとの一致を判断し、
前記綴り補完辞書データから前記特定したノードと、当該特定したノードの下流のノードであり、前記検索キーの未確定ひらがなと一致すると判断された前記読み補完辞書データのノードに対応したノードと、当該下流のノードと同一の補完単位番号が付与されているさらに下流のノードとの綴りを読み出し、読み出した綴りを結合した変換候補を取得する、
ことを特徴とする請求項1に記載の文字列入力装置。
【請求項7】
入力済みの文章のデータから所定の閾値より出現頻度の高い単語列を特定し、当該特定した単語列に対応した綴り補完辞書データのノード列に同一の補完単位番号を付与して生成した新たなノード列を前記綴り補完辞書データに追加するとともに、当該追加したノード列に対応したノード列を前記読み補完辞書データに追加する辞書生成部をさらに備えることを特徴とする請求項1から請求項6のいずれかの項に記載の文字列入力装置。
【請求項8】
前記綴り補完辞書データの各最上流のノードについて、当該最上流のノードを先頭とするノード列の数を取得し、取得したノード列の数が所定以下である場合に、当該最上流のノードを先頭とするノード列に同一の補完単位番号を付与して生成した新たなノード列を前記綴り補完辞書データに追加するとともに、当該追加したノード列に対応したノード列を前記読み補完辞書データに追加する辞書生成部をさらに備えることを特徴とする請求項1から請求項6のいずれかの項に記載の文字列入力装置。
【請求項9】
入力された文字列に応じた変換候補を検索して提示し、提示された変換候補を選択することで文字列入力を行う文字列入力装置に用いられる文字列入力方法であって、
前記入力装置は、入力される文字列を変換処理する前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、ノードとして木構造に構成した読み補完辞書データ、及び、前記読み補完辞書データに含まれる各単語が変換処理された後の綴りが単語として記録された辞書であって、変換処理前と変換処理後の単語をノードとして対応付けて前記読み補完辞書データの示す木構造と合致した木構造に構成し、かつ、1つのノード列としてみなす、係り受け関係にあるノードに同一の補完単位番号を付与した綴り補完辞書データを記憶する記憶部を備え、
前記文字列入力装置の検索キー生成部が、ユーザの入力に基づき検索キーを生成する検索キー生成過程と、
前記文字列入力装置の変換候補抽出部が、前記検索キー生成過程において生成された検索キーに基づき前記読み補完辞書データ及び前記綴り補完辞書データを検索して当該検索キーに対応した前記綴り補完辞書データのノードを特定し、特定したノードの綴りと、当該特定したノードと同一の補完単位番号が付与されている当該特定したノードの下流のノードの綴りとを前記綴り補完辞書データから読み出して結合した変換候補を取得する変換候補抽出過程と、
前記文字列入力装置の変換候補出力部が、前記変換候補抽出過程において取得した変換候補を出力する変換候補出力過程と、
を有することを特徴とする文字列入力方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate


【公開番号】特開2010−266946(P2010−266946A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−115797(P2009−115797)
【出願日】平成21年5月12日(2009.5.12)
【特許番号】特許第4514826号(P4514826)
【特許公報発行日】平成22年7月28日(2010.7.28)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【出願人】(509132738)合同会社シンタックス (10)
【Fターム(参考)】