(57)【要約】    【課題】  読みを表す第１の文字列に基づいて単語辞書を参照し、第２の文字列を予測した結果として得られる予測候補を出力する文字列処理装置等において、単語辞書に記憶された単語の数が増加し、予測候補の数が増加したような場合であっても、ユーザの入力負担を可能な限り軽減することのできる文字列処理装置を提供する。    【解決手段】  第１の文字列（１０２６）の修正を示す文字追加入力（文字列「そふ」に文字「と」を追加）や文字削除入力などがあった場合に、当該入力に伴い候補ウィンドウ１４０１に表示される予測候補を更新するに際し、既に候補ウィンドウ１４０１に表示された予測候補以外の候補を優先して表示するような制御を行う。【選択図】          図５
2005032111.tif 000002
【特許請求の範囲】
【請求項１】
第１の文字列から第２の文字列を予測した結果を出力する文字列処理装置において、
第１の文字列に基づく予測の結果として得られる第２の文字列の候補を取得する予測候補取得手段と、
前記予測候補取得手段により取得された候補を所定数出力する出力手段と、
前記出力手段による出力内容を決定する出力決定手段と、
外部からの入力を受け付ける入力受付手段とを備え、
前記出力決定手段は、
前記入力受付手段が前記第１の文字列の修正を示す入力を受け付け、それに伴い前記出力手段が再度第２の文字列の候補を出力する場合に、既に前記出力手段により出力された候補以外の候補が優先して出力されるように出力内容を決定する
ことを特徴とする文字列処理装置。
【請求項２】
前記出力決定手段は、
取得された第２の文字列の候補の配列順位を決定する配列順位決定部を有し、
前記出力手段により、配列順位が上位である候補が最大前記所定数だけ出力されるように出力内容を決定するとともに、
前記配列順位決定部は、
既に前記出力手段により出力された候補の配列順位を下位に変更する
ことを特徴とする請求項１に記載の文字列処理装置。
【請求項３】
前記第１の文字列は文字列の読みを表す文字列であり、
前記予測候補取得手段は、
前記第１の文字列により表される読みと前方一致する読みを有する文字列を第２の文字列の候補として取得する
ことを特徴とする請求項１に記載の文字列処理装置。
【請求項４】
前記出力決定手段は、
既に前記出力手段により出力された候補の中に、再度の出力に際しても優先して出力されるべき固定候補が存在した場合には、当該固定候補が優先して再度前記出力手段により出力されるように出力内容を決定する
ことを特徴とする請求項１に記載の文字列処理装置。
【請求項５】
前記第２の文字列を入力する対象である文書における入力位置の前後の文脈に基づいて、前記固定候補とする候補を決定する固定候補決定手段をさらに備える
ことを特徴とする請求項４に記載の文字列処理装置。
【請求項６】
前記固定候補の最大出力回数が規定されており、
前記出力決定手段は、
固定候補であっても、前記出力手段からの出力回数が前記最大出力回数に到達した候補については、優先して出力されないように出力内容を決定する
ことを特徴とする請求項４又は５に記載の文字列処理装置。
【請求項７】
前記入力受付手段が受け付けた入力が、第１の文字列からの文字の削除を指示する入力である場合に、既に出力された候補の中から、文字削除後の第１の文字列と読みが一致する候補を検出する検出手段を備え、
前記出力決定手段は、
第１の文字列からの文字の削除に伴う前記出力手段による再度の出力に際し、前記検出手段により検出された候補が優先して出力されるように出力内容を決定する
ことを特徴とする請求項１に記載の文字列処理装置。
【請求項８】
前記入力受付手段は、
次に入力される文字がどのような文字であるか示唆する入力を受け付け、
前記予測候補取得手段は、
前記入力受付手段が前記示唆する入力を受け付けた場合に、次に入力される可能性のある文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得する
ことを特徴とする請求項１に記載の文字列処理装置。
【請求項９】
前記示唆する入力は、
複数回の入力で一文字を入力することのある入力装置からの入力における当該複数回の一部の入力であり、
前記予測候補取得手段は、
前記入力受付手段が前記一部の入力を受け付けた場合に、複数回の入力で入力される可能性のある文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得する
ことを特徴とする請求項８に記載の文字列処理装置。
【請求項１０】
前記示唆する入力は、
かな文字をローマ字入力する場合における子音部分の入力であり、
前記予測候補取得手段は、
前記子音に対応するかな文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得する
ことを特徴とする請求項９に記載の文字列処理装置。
【請求項１１】
前記入力受付手段は、
同一の動作が複数回なされた場合に入力候補となる文字が順次変化し、他の動作がなされた場合に前記入力候補の中で入力される文字が決まるとともに、次に入力される文字がどのような文字かが示唆される入力装置からの入力を受け付け、
前記予測候補取得手段は、
前記他の動作がなされた場合に、前記示唆された文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得する
ことを特徴とする請求項８に記載の文字列処理装置。
【請求項１２】
前記入力装置は、複数の系列に分類されたかな文字の、系列のそれぞれに対応する複数のキーを含み、当該複数のキーの中の同一のキーが複数回押下された場合には同一系列に属するかな文字が入力候補として順次変化し、前記複数のキーの中の他のキーが押下された場合には、入力されるかな文字が決まるとともに、次に入力される文字が当該他のキーに対応する系列のかな文字であることが示唆され、前記複数のキー以外の所定のキーが押下された場合には、入力されるかな文字が決まるとともに、次に入力される文字が同一の系列のかな文字であることが示唆される入力装置からの入力を受け付け、
前記予測候補取得手段は、
前記複数のキーの中の他のキーが押下された場合又は前記複数のキー以外の所定のキーが押下された場合に、前記示唆されたかな文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得する
ことを特徴とする請求項１１に記載の文字列処理装置。
【請求項１３】
前記入力装置は、
表示部を含む携帯電話機のテンキーであって各数字が五十音表の各行と対応付けられたテンキーと、同一行に属するかな文字を続けて入力すべく前記表示部に表示されるカーソルを移動させる指示を入力するカーソルキーとを含んでおり、
前記予測候補取得手段は、
テンキーの中で他の数字のキーが押下された場合には、当該他の数字のキーに対応する行のかな文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得し、前記カーソルキーが押下された場合には、その前と同じ行のかな文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得する
ことを特徴とする請求項１２に記載の文字列処理装置。
【請求項１４】
第１の文字列に基づく予測の結果として得られる第２の文字列の候補を取得する予測候補取得ステップと、
取得された候補の配列順位を決定する配列順位決定ステップと、
前記配列順位決定ステップにて決定された配列順位に従って、前記第２の文字列の候補を所定数出力する第１の出力ステップと、
前記第１の文字列の修正を示す入力を受け付ける入力受付ステップと、
前記修正を示す入力の受け付けに伴い、再度第２の文字列の候補を出力する第２の出力ステップとを含み、
前記第２の出力ステップは、
当該第２の出力ステップにて、前記第１の出力ステップにおいて既に出力された候補以外の候補が優先して出力されるように出力内容を決定する出力決定ステップを含む
ことを特徴とする文字列処理方法。
【請求項１５】
第１の文字列に基づく予測の結果として得られる第２の文字列の候補を取得する予約候補取得処理と、
前記第２の文字列の候補を所定数出力する出力処理と、
前記第１の文字列の修正を示す入力を受け付けた場合に実行される再度の出力処理において、既に出力された候補以外の候補が優先して出力されるように、出力される前記第２の文字列の候補を決定する出力決定処理と
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムを記録している
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の文字列から第２の文字列を予測した結果を出力する文字列処理装置、文字列処理方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）、ワードプロセッサ等において文書を作成する場合など、キーボード等の入力デバイスを用いてかな文字の文字列を入力し、随時かな漢字変換を行って文書を作成していくのが通常である。このような場合においてユーザの文字列入力負担を軽減するべく、かな文字の文字列を入力した際、最初の数文字が入力された時点で単語辞書を検索することにより、入力された数文字から始まるような読み方の文字列の候補を表示するようにした文字列予測装置が特許文献１に開示されている。
【０００３】
上記従来の文字列予測装置では、ユーザが例えば「そふ」といった文字列を入力した時点で当該文字列に基づいた予測処理が実行され、その結果、「祖父」、「祖父母」、「ソフト」、「ソフトウェア」、「ソフトボール」等の単語が予測候補として表示される。ユーザは表示された予測候補の中から所望の文字列を選択することができ、これにより文字列の入力負担を軽減することができる。
【特許文献１】特開平１１−３９３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のような文字列予測装置では、単語辞書に記憶された単語の数が増加するに従い、予測した結果として得られる予測候補の数も増加する。予測候補の数が増加すると、ユーザにとっては、予測候補の中から所望の文字列を探し出すことが煩雑になるという問題点があった。特に、予測候補を表示するためのスペースが小さい場合には、次画面への切り替え操作を頻繁に行わなければならず、逆に入力負担が増加しかねない。一方、予測候補の絞込みのためには、結局、入力デバイスから入力するかな文字の文字列を長くする必要があり、入力負担の軽減効果が得られなくなってしまう。
【０００５】
本発明は、上記のような問題点に鑑みてなされたものであって、単語辞書中の単語の増加等により予測候補の数が増加したような場合であっても、ユーザの文字列入力負担を極力軽減することのできる文字列処理装置、文字列処理方法、プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記の問題点を解決するために、本発明に係る文字列処理装置は、第１の文字列から第２の文字列を予測した結果を出力する文字列処理装置において、第１の文字列に基づく予測の結果として得られる第２の文字列の候補を取得する予測候補取得手段と、前記予測候補取得手段により取得された候補を所定数出力する出力手段と、前記出力手段による出力内容を決定する出力決定手段と、外部からの入力を受け付ける入力受付手段とを備え、前記出力決定手段は、前記入力受付手段が前記第１の文字列の修正を示す入力を受け付け、それに伴い前記出力手段が再度第２の文字列の候補を出力する場合に、既に前記出力手段により出力された候補以外の候補が優先して出力されるように出力内容を決定することを特徴としている。
【０００７】
前記出力決定手段の処理は、第１の文字列の修正を示す入力がされた場合、既に出力手段により出力された候補の中には、ユーザにとって所望の候補を含まないと推測されることに基づくものである。所望の文字列が存在すれば第１の文字列を修正するまでもなく、所望の文字列を選択することが可能だからである。即ち、本発明の文字列処理装置では、第１の文字列の修正を示す入力が、他の候補の出力を促す入力と同様の意味合いを有することとなり、より少ない操作で所望の文字列に到達することが可能となる。
【０００８】
なお、出力手段は、予測候補を表示手段（ＣＲＴ、液晶ディスプレイ等の各種表示装置）に出力してもよいし、ネットワーク、専用コード等を介して外部装置に出力するものであってもよい。出力決定手段が、「既に前記出力手段により出力された候補以外の候補が優先して出力されるように出力内容を決定する」ための具体的な処理内容は種々考えられ、既に出力された第２の文字列の候補を記憶しておき、出力に際して比較処理を行うことによっても実現できるし、既に出力された候補に所定のフラグを立てるような処理を行ってもよい。また、取得された第２の文字列の候補の配列順位を決定する配列順位決定部を有し、前記出力手段により、配列順位が上位である候補が最大前記所定数だけ出力されるように出力内容を決定するとともに、前記配列順位決定部は、既に前記出力手段により出力された候補の配列順位を下位に変更するような方法でも出力内容の決定を行うことができる。さらに、これらの各処理を併用することもできる。
【０００９】
「第１の文字列の修正を示す入力」には、第１の文字列への文字の追加を指示する入力、削除を指示する入力、上書きによる修正を示す入力のように実際に修正を指示する入力の他に、次に入力される文字を示唆するような入力も「修正を示す入力」として含まれる。また、当該入力があった場合に、必ずしも毎回予測処理が行われるわけではなく、それ以前の予測の結果として得られた候補から抽出して出力内容を決定することもできる。
【００１０】
なお、予測候補の中には、再度の出力に際しても優先して出力されるような固定候補を設けるようにしてもよい。どのような候補を固定候補とするかは任意であり、例えば使用頻度が高い候補とすることができるがこれに限定されない。例えば、前記第２の文字列を入力する対象である文書における入力位置の前後の文脈に基づいて、前記固定候補とする候補を決定する固定候補決定手段を備えてもよい。出力決定手段は、固定候補が存在した場合には、当該固定候補が優先して再度前記出力手段により出力されるように出力内容を決定することができる。但し、固定候補の最大出力回数を規定しておき、固定候補であっても、前記出力手段からの出力回数が前記最大出力回数に到達した候補については、優先して出力しないようにしてもよい。これによりユーザの所望の候補でないにもかかわらず、常に固定候補が出力されるというような事態が防止できる。
【００１１】
第１の文字列からの文字の削除を指示する入力があった場合に、既に出力された候補の中から、文字削除後の第１の文字列と読みが一致する候補を検出し、検出された候補が優先して出力されるようにすることもできる。例えば単語辞書を参照して読みが前方一致する文字列を第２の文字列の候補として取得するような場合、所望の文字列が単語辞書に無いことがある。この場合、第１の文字列に一旦追加された文字が削除されることがあるが、このときに読みの一致する候補を優先して出力することで、とりあえず、所望の文字列の途中までを入力確定させることができる。
【００１２】
前記した「次に入力される文字がどのような文字であるか示唆する入力」を受け付けた場合、次に入力される可能性のある文字が前記第１の文字列に追加された場合における第２の文字列の候補を取得することができる。「次に入力される可能性のある文字」が複数種類存在する場合には、順次文字を追加して予測処理を行うようにすることができる。「示唆する入力」の例として、複数回の入力で一文字を入力することのある入力装置からの入力における当該複数回の一部の入力、例えば、かな文字をローマ字入力する場合における子音部分の入力や、同一の動作が複数回なされた場合に入力候補となる文字が順次変化し、他の動作がなされた場合に前記入力候補の中で入力される文字が決まるとともに、次に入力される文字がどのような文字かが示唆される入力装置からの入力、例えば、携帯電話機等のように、テンキーを用いて文字を入力するような場合の入力がある。テンキーによる入力の場合、「あ行」、「か行」のようにかな文字を複数の系列に分類し、系列のそれぞれに数字キーを割り当てている。そして、同一の数字キーが複数回押下された場合には同一の行に属するかな文字が順次変化し、他の数字キーが押下された場合には、入力されるかな文字が決まるとともに、次に入力される文字が当該他の数字キーに対応する行のかな文字であることが示唆され、カーソルキーが押下された場合には、次に入力される文字が同一の行のかな文字であることが示唆される。もっとも、かな文字の割り当て方法やキーの種類など、種々の設定が可能であり、携帯電話機のテンキー入力に限定されることなく、種々の装置に適用することが可能である。
【００１３】
本発明に係る文字列処理方法は、第１の文字列に基づく予測の結果として得られる第２の文字列の候補を取得する予測候補取得ステップと、取得された候補の配列順位を決定する配列順位決定ステップと、前記配列順位決定ステップにて決定された配列順位に従って、前記第２の文字列の候補を所定数出力する第１の出力ステップと、前記第１の文字列の修正を示す入力を受け付ける入力受付ステップと、前記修正を示す入力の受け付けに伴い、再度第２の文字列の候補を出力する第２の出力ステップとを含み、前記第２の出力ステップは、当該第２の出力ステップにて、前記第１の出力ステップにおいて既に出力された候補以外の候補が優先して出力されるように出力内容を決定する出力決定ステップを含むことを特徴としている。
【００１４】
また、本発明に係るプログラムは、第１の文字列に基づく予測の結果として得られる第２の文字列の候補を取得する予約候補取得処理と、前記第２の文字列の候補を所定数出力する出力処理と、前記第１の文字列の修正を示す入力を受け付けた場合に実行される再度の出力処理において、既に出力された候補以外の候補が優先して出力されるように、出力される前記第２の文字列の候補を決定する出力決定処理とを含む処理をコンピュータに実行させることを特徴としている。「予測候補取得処理」は、予測処理を含んでもよいが、必ずしも予測処理を含まなくてもよい。即ち予測処理は、本発明に係るプログラム（候補となる文字列の出力処理を行うプログラム）とは別の汎用的な予測プログラムを用いて実行することもできる。また、出力決定処理は以下の実施の形態では主として配列順位決定部が行う処理である。本発明に係る記録媒体は、本発明に係るプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴としている。
【発明の効果】
【００１５】
本発明の文字列処理装置では、第１の文字列の修正を示す入力を受け付けた場合、予測候補が再度出力されるが、当該再度の出力においては、既に出力された候補が再度出力される可能性が減少する。これにより、ユーザにとっては、より少ない操作で所望の文字列に到達することが可能になるという効果がある。もっとも、例えば頻繁に使用される文字列は固定候補として再度の出力でも優先して出力することも可能であり、例えば出力された予測候補を見落としてしまうような場合にも対処できるという効果がある。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００１７】
（実施の形態１）
図１は、本発明の第１の実施の形態の文字列処理装置の一適用例としてのワードプロセッサの構成を示す機能ブロック図である。ワードプロセッサは、入力部１０１、配列制御部１０２、予測処理部１０３、表示部１０４を含んでいる。主として配列制御部１０２が本実施の形態の文字列処理装置を構成している。入力部１０１としては、例えばキーボードやマウス、ソフトウェアキーボード等の各種入力デバイスを用いることができる。入力部１０１からは、ユーザによる文字の入力、一旦入力された文字を削除する削除要求、既に表示部１０４に表示されている予測候補の次候補を表示する次候補表示要求、予測候補の中から文字列を確定する文字列確定要求等の各入力を行うことができる。
【００１８】
配列制御部１０２は、ユーザから文字列（かな文字の文字列、以下「第１の文字列」ともいう。）を構成する文字等の入力を受け付けた場合に、予測処理部１０３による予測の結果として得られる文字列群（第２の文字列の候補、以下、「予測候補」という。）を表示部１０４に表示させるに際しての制御処理を行う。より具体的な処理内容については後述する。予測処理部１０３は、配列制御部１０２から第１の文字列に関する情報を受け取り、単語辞書格納部１０３１に格納されている単語辞書を参照して予測処理を行い、予測候補を配列制御部１０２に返す。表示部１０４としては、ＣＲＴ、液晶ディスプレイ等の各種表示デバイスを用いることができる。
【００１９】
図２は、単語辞書格納部１０３１に格納される単語辞書の内容の一例を示す図である。単語辞書には、例えば文字列の読みと、その読みに対応する文字列のペアに、本実施の形態ではポイントを付与して保持している。もっともポイントを付与しなくとも本発明の実施は可能である。配列制御部１０２から、第１の文字列に関する情報を受け取ると、受け取った第１の文字列と前方一致する読み方に対応する文字列を予測候補として抽出し、配列制御部１０２に返す。なお、上記図２に示したような単語辞書の実装例を採用すると単語辞書の容量が膨大になるおそれがあるので、例えば特開平５−５４０７７号公報等に記載の各種公知技術を利用して辞書の圧縮を行うようにしてもよい。
【００２０】
以上のように読みが前方一致する全ての文字列を抽出する場合、ユーザにより入力された第１の文字列に対する予測処理を行った後で、追加して文字が入力された場合に再度単語辞書を参照した予測処理を行うとすると、予測候補として抽出される文字列群は、結局先の予測処理にて抽出された文字列のサブセットとなる。入力された第１の文字列が長くなるほど抽出される予測候補の数は少なくなり、予測精度は向上する。
【００２１】
配列制御部１０２は、入力部１０１からの入力を受け付け、予測処理部１０３及び表示部１０４の駆動を制御する。以下、配列制御部１０２について詳しく説明する。
【００２２】
配列制御部１０２は、入力判定部１０２１、文字列バッファ制御部１０２２、予測処理制御部１０２３、配列順位決定部１０２４、表示履歴管理部１０２５、入力文字列バッファ１０２６、予測候補格納部１０２６、配列後予測候補格納部１０２８、文字列表示履歴記憶部１０２９を含んでいる。
【００２３】
入力判定部１０２１は、入力部１０１からの入力が文字の入力か、文字の削除要求か、次候補表示要求か、文字列確定要求かを判定する。この判定は、例えばキーボード上のどのキーが押下されたか等の判別により容易に行うことができる。いずれかであるかの判定に従って、配列制御部１０２の具体的な制御処理の内容が決定される。
【００２４】
入力判定部１０２１が文字の入力を受け付けたと判定した場合、文字列バッファ制御部１０２２が、入力された文字を入力文字列バッファ１０２６に追加して格納する。入力文字列バッファ１０２６の内容が更新されると予測処理制御部１０２３が予測処理部１０３を起動し、入力文字列バッファ１０２６に格納されている文字列（第１の文字列）を予測処理部１０３に渡す。予測処理部１０３は、当該文字列を受けて前記した予測処理を実行し、予測処理の結果として得られた予測候補を予測処理制御部１０２３に渡す。予測処理制御部１０２３は、予測候補を受け取り予測候補格納部１０２７に格納する。図３は、予測候補格納部１０２７の内容の一例を示す図である。同図の例は、入力文字列バッファ１０２６に第１の文字列「そふと」が格納されている場合の予測候補の一例を示すものである。もっとも、前記したように文字列の追加の際に再度予測処理を行っても、得られる文字列群は、先の予測により得られた予測候補のサブセットとなるため、必ずしも毎回予測処理を行う必要はなく、前回得られた予測候補から抽出することもできる。この場合、予測候補格納部１０２７の内容を完全に上書き更新する必要はなく、抽出されたことを示すフラグをセットするような処理を行ってもよい。
【００２５】
配列順位決定部１０２４は、予測候補格納部１０２７の内容が更新されると、まず、予測候補を表示部１０４に表示するに際しての配列順位を決定する。配列順位は、例えば予測候補に付与されているポイントの値に基づいて決定することができるが、これに限定されない。配列順位が決定されると、各予測候補が当該配列順位順に並べ替えられて配列後予測候補格納部１０２８に格納される。図４は、配列後予測候補格納部１０２８の内容の一例を示す図であるが、データ構造はこれに限定されず、予測候補格納部１０２７に格納されている内容に予測候補ごとの配列順位を追加するようにしてもよい。
【００２６】
配列順位決定部１０２４は、さらに、配列順位順に並べられた予測候補から、実際に表示部１０４に表示させるべき予測候補を抽出し、表示部１０４に表示させる。例えば表示部１０４において一度にＮ個の予測候補が表示可能である場合には、配列順位決定部１０２４は予測候補から上位Ｎ個を抽出し、表示部１０４に渡す。一方で配列順位決定部１０２２４は、当該Ｎ個を表示部１０４に表示したことを表示履歴管理部１０２５に伝える。
【００２７】
表示履歴管理部１０２５は、上位Ｎ個まで表示されたこと、及び表示した予測候補Ｎ個分の文字列情報を文字列表示履歴記憶部１０２９に格納する。文字列表示履歴記憶部１０２９の内容については後述する。なお、予測候補格納部１０２７、配列後予測候補格納部１０２８、文字列表示履歴記憶部１０２９等は、いずれも記憶装置であればよく、物理的に同一の記憶装置（ディスク装置、半導体メモリなど、特に限定されない。）を用いてもよい。
【００２８】
入力判定部１０２１が、文字削除要求を受け付けたと判定した場合、文字列バッファ制御部１０２２が、入力文字列バッファ１０２６に格納されている現在の文字列から文字を削除する。入力文字列バッファ１０２６の内容が更新された後は、予測処理制御部１０２３によって予測処理部１０３が起動され、新たな予測候補が抽出されるとともに予測候補格納部１０２７の内容が更新される。さらに配列順位決定部１０２４で、その配列順位を決定し、配列順位に従って表示する。入力された文字が削除された場合の配列順位の決定の仕方等については後で詳しく述べる。
【００２９】
入力判定部１０２１が、次候補表示要求を受け付けたと判定した場合、配列後予測候補格納部１０２８に格納された配列順位決定後の予測候補のうち、現在表示されている予測候補より配列順位が下の候補から、順位に従ってＮ個抜き出して表示部１０４に渡し、表示する。文字列表示履歴記憶部１０２９には、上位（Ｎ＋Ｎ）位までの予測候補が既に表示されたこと、新しく表示したＮ個の予測候補についての文字列情報が格納される。
【００３０】
入力判定部１０２１が文字列確定要求を受け付けたと判定した場合、文字列を確定し、入力文字列バッファ１０２６、予測候補格納部１０２７、配列後予測候補格納部１０２８、及び文字列表示履歴記憶部１０２９の内容をクリアする。本実施の形態では、表示部１０４に表示されている予測候補からユーザがいずれかの候補を選択した場合、入力した文字列の無変換が指示された場合、かな漢字変換機能によって入力文字列が確定された場合のいずれかに文字列が確定するものとする。
【００３１】
なお、上記のような文字列処理装置は、入力部１０１、表示部１０４等を備えた汎用的情報処理装置において、予測処理や配列制御等の各処理を行う制御プログラムがＣＰＵ等のプロセッサ上で動作することによっても実現され得る。そのような場合、文字列処理装置には、例えば上記制御プログラムを格納するプログラム格納部、当該プログラム格納部からプログラムを読み出して一時的に記憶するメモリ、及びメモリに記憶されたプログラムを実行するプロセッサが設けられる。このようなプログラムは、ユーザの入力に従って、入力文字の後に続く文字列を予測する予測処理を行い、予測候補の配列順位を制御することによってより効率のよい入力支援を行うためのプログラムであると言え、当該制御プログラムを含むソフトウェアは、ＣＤ−ＲＯＭ等の記録媒体に記憶された状態で販売等されることもあるし、インターネット等のネットワークを介して供給される場合もある。
【００３２】
（配列順位の決定方法）
次に、配列順位決定部１０２４による予測候補の配列順位の決定方法について詳細に説明する。図５は、配列順位の決定について説明するための図である。図５（ａ）は、ユーザにより入力された文字列が「そふ」である時点において、予測候補を表示部１０４に表示した場合の一例を示す図である。ここでは表示部１０４に予測候補を表示するためのウィンドウ（以下、「候補ウィンドウ」という。）１０４１に、５個の予測候補が表示できるものとする。同図（ａ）の例では候補ウィンドウ１０４１に「祖父」、「祖父母」、「ソファー」、「ソフト」、「ソフトウェア」、なる文字列が予測候補として表示され、配列順位６位以下の候補が「ソフトクリーム」、「ソフトバンク」、「ソフトボール」・・・と続いているものとする。図６は、この時点における配列後予測候補格納部１０２８及び文字列表示履歴記憶部１０２９の内容を示す図である。図６（ａ）に示されるように配列後予測候補格納部１０２８には、予測候補が配列順位の順に格納されている。一方、図６（ｂ）に示されるように文字列表示履歴格納部１０２９には、実際に表示部１０４に表示された予測候補である、「祖父」、「祖父母」、「ソファー」、「ソフト」、「ソフトウェア」の５つの文字列が格納される。
【００３３】
さて、本実施の形態では、ユーザから続けて文字が入力され、入力された文字列が「そふと」になったとすると、先に表示部１０４に表示された予測候補の中で、「そふと」と前方一致する「ソフト」及び「ソフトウェア」については、今般ユーザが求める所望の文字列ではない、という推測に基づく処理を行う。即ち、入力文字列バッファ１０２６の内容が「そふと」になったとすると、前回予測候補として表示された「祖父」、「祖父母」及び「ソファー」が予測候補から外れるのは当然として、前回４位であった「ソフト」及び５位であった「ソフトウェア」についても、相対的な配列順位を下げ、表示部１０４に表示されないようにする処理を行う。
【００３４】
具体的には、例えば前回６位であった「ソフトクリーム」以下の各予測候補のポイントに、前回表示された中でもっともポイントの高いと思われる４位の「ソフト」のポイントを加算する、などの方法が考えられる。このような配列順位の修正処理を行うことにより、前回４位の「ソフト」、５位の「ソフトウェア」以外の候補が優先して上位に修正されることとなり、したがって、前回６位の「ソフトクリーム」が１位になり、以降の順位が順に繰り上がって表示される（図５（ｂ）参照）。なお、この処理により、前回表示された「ソフト」及び「ソフトウェア」の配列後予測候補格納部１０２８内での位置は、今回の予測候補の中では最下位に位置づけられることとなる。
【００３５】
これまでに表示された予測候補を選択せずに、続けて文字を入力したということから、表示された予測候補の中に所望の文字列がないということが推測されるため、別候補を優先的に表示することによって入力者の目に付きやすくし、選択しやすくする。従って、文字入力数が少ないうちに、より効果的な入力支援を行うことが可能となる。なお、予測処理を行った結果、予測候補が少なく、表示部１０４に一度に表示可能な個数（上記図５の例では５個）以下であった場合は、一度表示されていても続けて表示されることになる。
【００３６】
（一度入力した文字を削除したときの動作）
次に、入力中に、一旦入力した文字を削除した場合の処理の例を説明する。図７は係る場合について説明するための図である。例えば、「研究」と入力したい場合、「けん」まで入力したときに予測候補が表示されているとする（図７（ａ））。実際に候補ウィンドウ１０４１に表示された文字列は文字列表示履歴記憶部１０２９に格納される。ユーザが続けて文字を入力したが（図７（ｂ））、それがタイプミスであった場合など、一旦入力された文字を削除し、入力文字列バッファの内容が「けん」に戻る場合がある。本実施の形態では、このような場合も、一旦候補ウィンドウに表示された予測候補はユーザの所望の文字列ではないとの推測のもと、以前に表示された予測候補以外の候補を優先して表示する（図７（ｃ））。この場合には、前回「けん」のときに抽出された予測候補が配列後予測候補格納部１０２８に格納され、実際に候補ウィンドウ１０４１に表示した予測候補が文字列表示履歴記憶部１０２９に格納されているので、入力文字列バッファ１０２６の内容が再度「けん」に戻った場合も、配列後予測候補格納部１０２８や、文字列表示履歴記憶部１０２９に格納されている情報を利用することによって、まだ候補ウィンドウ１０４１に表示されていない予測候補を優先して表示させることができる。
【００３７】
（文字を削除したときに候補を復活させる場合の動作）
上記の例では、一度候補ウィンドウに表示された予測候補については、無条件に次の候補ウィンドウには表示しないような処理を行ったが、そもそも単語辞書にユーザが求める文字列が格納されていない場合など、どのような処理をしても入力負担の軽減につながらないような場合もある。次に、このような場合に対処するため、とりあえず入力された文字列の途中までの変換を行うことを可能とする場合について説明する。図８は、このような場合の処理について説明するための図である。
【００３８】
例えば、「研究所員」と入力したい場合、「けんきゅう」まで入力したときに、予測候補が表示されているとする（図８（ａ）参照）。ユーザが続けて文字を入力して入力文字列バッファ１０２６の内容が「けんきゅうし」となった場合（図８（ｂ））、予測候補の中にユーザが求める「研究所員」という文字列が存在しないことが明らかとなる。
【００３９】
同図の例では、一旦入力された文字「し」が削除され、入力文字列バッファ１０２６の内容が再度「けんきゅう」となった場合、入力文字列バッファ１０２６の読みと一致する予測候補である「研究」だけは上位に残して、前回２位（研究員）から５位（研究会長）までの候補は予測候補の最下位にさげ、前回６位以下の候補を２位に繰り上げる（図８（ｃ））。このような処理を行うことにより、ユーザが求める予測候補が単語辞書に格納されていないような場合、とりあえず「研究」だけを確定することができる。
【００４０】
上記のような処理を実現するには、文字の削除が行われたことが検出された場合に、新たな予測候補のうち文字列表示履歴記憶部１０２９に格納されている予測候補であっても、現在の入力文字列バッファ１０２６の内容と読みが一致する予測候補を検出し、検出された予測候補については、その候補を優先して上位にする。その、文字列表示履歴記憶部１０２９に格納されていない予測候補を優先して上位に表示するようにすればよい。
【００４１】
もっとも、以上に図８を用いて説明したように、文字削除時に文字列表示履歴記憶部１０２９に格納されている予測候補のうち、入力文字列バッファ１０２６の内容と読みが一致する予測候補を優先して表示する処理は、本発明の文字列処理装置において必ずしもなくてはならない処理ではない。常に文字列表示履歴記憶部１０２９に格納されている候補以外を優先して表示させるようにしてもよいし、ユーザによっていずれの処理を行うか（「表示履歴にある候補を常に表示しない」若しくは「削除時でも読みが一致する候補は優先して表示」のいずれか）を切り替えることができるようにしてもよい。
【００４２】
（固定候補を優先して表示させる場合の動作）
次に、予測候補を「固定候補」と「可変候補」とに分類する場合の処理について説明する。図９は、「固定候補」を設ける場合について説明するための図である。なお、ここで「固定候補」とは、追加して文字が入力されても候補ウィンドウ１０４１に優先して表示され続ける予測候補をいう。即ち、固定候補は、入力文字列バッファ１０２６の内容と対応（前方一致）する限り、常に優先して表示するようにしておき、「固定候補」以外の「可変候補」のみ順位を入れ替えて表示する。
【００４３】
例えば図９に示すように、例えば、「けんき」まで入力したときに、予測候補が表示されているとする（図９（ａ）参照）。表示候補の中で、「研究」という文字列が固定候補であるとする。ユーザが続けて文字を入力したとき、今回の予測候補の中に固定候補の文字列が含まれている場合は、固定候補の順位は変えず、可変候補のみ順位を変える（図９（ｂ）参照）。具体的には、文字の追加入力により、表示を変更するときに、新たな予測候補のうち文字列表示履歴記憶部１０２９に格納されている候補でも、固定候補については、優先して上位に表示する。次に、文字列表示履歴記憶部１０２９に格納されていない候補を優先して表示する。
【００４４】
使用する可能性の高い候補を予測候補とすることによって、ユーザが表示された予測候補を見落として入力を続けてしまった場合でも候補が消えないようにすることができる。なお、固定候補の決定方法としては、単に予測候補の読みを五十音順に並べた場合、ある任意の順位までの候補を固定候補としてもよい。もっとも、候補ウィンドウ１０４１に表示可能な個数よりは少なくしておく必要がある。また、候補ウィンドウ１０４１に表示された予測候補の中で配列順位が１位の予測候補を自動的に固定候補としてもよい。即ち、文字が続けて入力された場合でも、前回の１位の候補が次回の予測候補にも含まれている場合には、前回１位の候補を今回も１位として優先して表示し、他の候補のみ可変候補として入れ替えるようにしてもよい。
【００４５】
また、固定候補の他の決定方法として、前記したように単語辞書の文字列毎に付与されたポイントを参照することが好適である。即ち、ポイントの順に配列順位を決定した場合、当該ポイントがある閾値以上となっている場合に当該文字列を固定候補とするようにしてもよい。この場合、予測処理部１０３は配列制御部１０２に予測候補となった文字列と共にポイントを渡す。順位順位決定部１０２４はポイントを参照して、固定候補かどうかを判定した上で配列順位を決定する。
【００４６】
ポイントは、過去に入力者が使用した文字列の頻度情報から決定してもよい。使用頻度の高い文字列はポイントを高くする。また、ポイントは、単語親密度から決定してもよい。「単語親密度」とは、単語のなじみの程度を表す親密度のことであり、ＮＴＴが作成したデータである。親密度が高いほど単語が使用される可能性が高いと考えられることから、親密度の高い単語を固定候補とし、入力者が固定候補を見逃して入力を続けてしまっても候補が消えないようにすることができる。
【００４７】
予測処理部１０３が、入力している文書における前後の文脈から入力文字列を予測し、各文字列が文中において選択される確からしさを確信度として出力する機能をもつ場合は、その確信度からポイントを決定してもよい。その場合には、ある閾値以上の確信度をもつ文字列を固定候補とすることができる。
【００４８】
固定候補は、常に固定候補である必要はなく、例えば一度表示されてから任意の文字入力数を超えたような場合には固定を解除するようにしてもよい。例えば固定候補の表示回数を２回までとした場合の例を、図９を参照して説明すると、固定候補であった「研究」が、入力文字列バッファ１０２６の内容が「けんき」の時（図９（ａ））、及び「けんきゅ」の時（図９（ｂ）と、既に２回表示されているので、更に入力をつづけた場合は固定を解除し、表示候補から「研究」をはずす（図９（ｃ）参照）。
【００４９】
固定候補が表示された場合は、固定候補の表示回数をインクリメントし、例えば文字列表示履歴記憶部１０２９に併せて格納することもできる。配列順位決定部１０２４は、予測候補に固定候補が含まれる場合は、格納された固定候補の表示回数を参照し、最大表示回数以下ならば、固定候補として優先して上位にするようにしてもよい。表示回数が最大表示回数を超えている場合は、他の可変候補と同様に配列順位を最下位にすることもできる。このように固定候補の最大表示回数を利用することによって、たとえ固定候補であっても選択されないままずっと上位候補として表示されるのを防ぐことができる。
【００５０】
以上、図９を用いて説明した固定候補の処理は、本発明の文字列処理装置において必ずしもなくてはならない処理ではない。常に表示文字列履歴に格納されている候補以外を優先するようにしてもよい。
【００５１】
（文字列処理装置の処理内容）
以下、本実施の形態における文字列処理装置の処理内容について、図１０及び図１１に示すフローチャートを参照しながら説明する。ここに示すフローチャートは、前記した本発明に係る文字列処理を実現する制御プログラムの処理内容と考えることもできる。まず入力文字列バッファ１０２６、文字列表示履歴既往部１０２９の内容（固定候補の表示回数を含む。）をクリアする等の初期化処理を行う（Ｓ１０１）。入力部１０１からの入力があれば（Ｓ１０２）、まず、入力判定部１０２１が文字の入力か否かを判定する（Ｓ１０３）。
【００５２】
文字入力であった場合（Ｓ１０３：ＹＥＳ）、入力された文字を入力文字列バッファ１０２６に追加し（Ｓ１０４）、予測処理部１０３を駆動して予測処理を行う（Ｓ１０５）。ここでは、予測処理部１０３から出力する際の予測候補の順番は特に指定しない。ポイント順でもよいし、五十音順でもよいし、文字列の長さの長い順、あるいは物理的に格納されている順番に出力してよい。前後の文脈からある文字列が入力される確からしさを算出した確信度を算出する機能が予測処理部１０３に含まれる場合は、確信度順に出力してもよい。なお、予測処理では、前述したように文字が追加入力されるたびに予測候補の数は減るので、再度単語辞書を参照した予測処理を行わずとも、文字が追加される前に抽出された予測候補の中からサブセットを抽出することにしてもよい。
【００５３】
表示部１０４がＮ個の予測候補を表示できるとすると、次に、配列された予測候補の上位Ｎ個に固定候補が存在するかどうかを判断する（Ｓ１０６）。固定候補が存在する場合は（Ｓ１０６：ＹＥＳ）、当該固定候補の表示回数が、予め設定されている最大値未満であるか否かを判断し（Ｓ１０７）、表示回数が最大値未満の固定候補が存在すれば（Ｓ１０７：ＹＥＳ）、当該固定候補を優先して表示するように配列順位を決定する（Ｓ１０８、Ｓ１０９）。
【００５４】
なお、図示は省略するが、ステップＳ１０５の予測処理の後で、文字列表示履歴記憶部１０２９に表示された文字列の情報が格納されているかどうかを判定するようにしてもよい。ここで文字列表示履歴記憶部１０２９に文字列が格納されていないということは、入力が一文字目ということを意味する。例えば固定候補をポイントに基づいてではなく、他の方法で決定しているような場合、一文字目の入力の際には固定候補が不明の状態にあるため、上記の判定を行い、文字列表示履歴記憶部１０２９に文字列が格納されていない場合は、予測処理部１０３から送られてきた順番に従い、特に予測候補の順位は変更しないようにすることもできる。もっとも、一文字目の入力の際からポイントに基づいて配列順序を決定するような場合には、ここでの上記判定は必ずしも行う必要はない。
【００５５】
なお、ステップＳ１０７で、固定候補の表示回数が設定された表示回数の最大値以上であった場合（Ｓ１０７：ＮＯ）、当該固定候補について固定候補状態を解除し、配列順序が最後になるように設定する（Ｓ１１０）。従って、以後は他の可変候補と同様に取り扱われることとなるが、可変候補の配列（Ｓ１０９）の際には、配列順序が最後となる。
【００５６】
固定候補及び可変候補の両方の配列が終わると、表示部１０４への表示指示がなされ（Ｓ１１１）、これに基づいて表示部１０４に予測候補の表示がされるとともに、配列順位決定部１０２４から実際に表示した予測候補についての情報を受信した表示履歴管理部１０２５は、文字列表示履歴記憶部１０２９の内容を更新する（Ｓ１１２）。より具体的には、表示された固定候補の表示回数をインクリメントし、表示された予測候補を文字列表示履歴記憶部１０２９に格納する。以上の処理を終了するとステップＳ１０２へと戻ってユーザからの入力待ち状態となる。
【００５７】
ステップＳ１０３にて、ユーザからの入力が文字入力でない場合は（Ｓ１０３：ＮＯ）、入力が文字列確定の指示であるか否かを判断する（Ｓ１１３）。文字列確定を指示する入力である場合は（Ｓ１１３：ＹＥＳ）、確定処理を行う（Ｓ１１４）。
【００５８】
文字列確定を指示する入力でない場合には（Ｓ１１３：ＮＯ）、図１１へと移行して、文字を削除する入力であるか否かを判断する（Ｓ１１５）。文字削除でない場合は、次候補の表示を指示する入力であると判断し（Ｓ１１５：ＮＯ）、文字列表示履歴記憶部１０２９の内容を参照する（Ｓ１１６）。配列後予測候補格納部１０２８に格納された内容及び文字列表示履歴記憶部１０２９に記憶された表示済み文字列の内容から、次回に表示する予測候補を抽出することができるので（Ｓ１１７）、予測候補を抽出してステップＳ１０６へと戻る。以後、現在表示されている予測候補及び抽出された次回表示すべき予測候補の中に固定候補が存在するか否かを判定し（Ｓ１０６）、ステップＳ１１１までの処理を行うことにより、固定候補、及び現在表示されている候補の次候補以下が表示される。なお、ステップＳ１０９の可変候補の配列決定では、文字列表示履歴記憶部１０２９に記憶されていない文字列が優先して配列され、表示済みの文字列については配列順位を後にする処理を行う。今回の表示指示（Ｓ１１１）で表示された予測候補は文字列表示履歴記憶部１０２９に格納され、さらに固定候補が存在する場合は、その固定候補の表示回数がインクリメントされる（Ｓ１１２）。
【００５９】
図１１のフローチャートのステップＳ１１５で文字削除と判定された場合は（Ｓ１１５：ＹＥＳ）、入力文字列バッファ１０２６から一文字削除する（Ｓ１１８）、ここでは、新たな文字列で再度予測処理を行う（Ｓ１１９）。予測の結果新たな予測候補が得られるが、得られた予測候補の中で列表示履歴記憶部１０２９の中に文字列バッファと読みが一致する候補が存在するかどうかを判断し（Ｓ１２０）、存在しない場合は、ステップＳ１０６へと進む。ステップＳ１２０で文字列表示履歴記憶部１０２９に、入力文字列バッファ１０２６と読みが一致する文字列が存在する場合は（Ｓ１２０：ＹＥＳ）、当該読みが一致する候補を優先して表示するように上位に配列し（Ｓ１２１）、ステップＳ１０６へと進む。
【００６０】
なお、詳細な説明は省略したが、文字列が確定した場合等には、随時単語辞書中のポイントを更新する処理を行ってもよい。即ち、実際に入力された文字列についてはポイントを高くすることによって以後の予測の際に優先的に表示される可能性を高くしたり、固定候補とされる可能性を高めたりすることができる。ポイントの付与の方法、付与されたポイントの利用方法は任意であり、種々考えられるし、それらに応じて更新の方法、タイミング等も最適化することができる。もっとも、本発明の実施にポイントが必須というわけではないことも既述の通りである。
【００６１】
本発明の目的は、以上に説明した文字列処理手順を実現するソフトウェアである文字列処理プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラムのいずれでもかまわない。）をコンピュータで読み取り可能に記録した記録媒体２００を、上記文字列処理装置に供給し、そのコンピュータが記録媒体２００に記録されているプログラムコードを読み出し実行することによっても、達成することが可能である。この場合、記録媒体２００から読み出されたプログラムコード自体が上述した手順を実現することになり、当該プログラム、乃至当該プログラムを記録した記録媒体は本発明を構成することになる。図１２は記録媒体２００の内容の一例をあくまで模式的に表現したものであり、記録媒体２００へのプログラムコードの記録内容、記録形式等については同図に表現されたものにより何ら限定を受けない。例えば予測処理部の処理を実現するプログラムコードは必ずしも記録媒体２００に記録する必要はなく、他の予測処理プログラムを利用するようにしてもよい。
【００６２】
なお、上記プログラムメディアとしての記録媒体２００は、当該記録媒体からソフトウェアを読み取ることが可能な装置本体とは分離可能に構成される記録媒体であり、具体的には、磁気テープやカセットテープ等のテープ系、フレキシブルディスクやハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ等の光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭ等による半導体メモリを含めた固定的にプログラムを担持する媒体など、いずれであってもよい。なお、プログラムは必ずしも記録媒体２００に記録されて譲渡等されるわけでもなく、インターネット等のネットワーク等、有線、無線の伝送媒体を介してユーザが保有する情報処理装置に供給される場合もある。
【００６３】
（実施の形態２）
上記実施例で示した文字列処理方法は、携帯電話などのようなテンキーによる文字入力や、パソコンなどのようなキーボードによる文字入力において使用することができ、またテレビやＡＴＭなどの文字入力が必要な機器全てにおいて使用することができる。以下、本発明の第２の実施の形態として、携帯電話などのようなテンキーによる文字入力において、本発明を適用した場合について説明する。図１３は、本実施の形態で用いる携帯電話機３００の外観を模式的に示す図である。
【００６４】
テンキー３３０による文字入力の場合、０から９の数字キーにそれぞれ五十音表の「あ行」、「か行」・・・が順次割り当てられ、同一の数字キーを連続して押下することによって、「あ」の段、「い」の段と指定し文字を入力する。例えば、図１３に示されるように「１」のキーに「あ行」が割り当てられているときに、「う」を入力したい場合は、「１」のキーを３回連続して押下することで「う」を入力することができる。また、複数文字連続して同じ行の文字を入力する場合は、一文字目を入力した後、二文字目を入力する前に、カーソルキー３２０を操作し、表示画面３１０に表示されるカーソル位置を一文字分ずらしてから入力する。
【００６５】
テンキー３３０による文字入力の場合、続けて同一の数字キーを押下することによって入力される文字が変わるので、ある文字Ａが確定するタイミングは、文字Ａの後に、上記カーソルキー３２０によりカーソル位置をずらす操作がなされた場合と、別の数字キー（あるいは記号キー）が押下された場合とがあり、本実施の形態では、当該入力文字の確定のタイミングで予測処理を実行する。例えば、「１」のキーを一度押して「あ」を入力し、次に「２」のキーを押したときに、直前に入力した「あ」の入力が確定する。また、「あ」の入力の後、カーソルを進めるためにカーソルキー３２０の操作がされた場合も「あ」の入力が確定する。
【００６６】
しかし、この場合、上記のように別の数字のキーが押下されたこと、あるいはカーソルキー３２０の操作があったことにより、文字Ａの次の文字が示唆されているということができる。即ち、文字「あ」の次に別の数字のキーが押下されたのであれば、二文字目は「あ行」の文字ではないことがわかるし、逆にカーソルキー３２０によりカーソルを進める操作がなされたのであれば、次の文字も「あ行」であるという推測が成り立つ。係る点に着目して、本実施の形態では、入力された文字が確定する前でも、次に入力される文字を示唆する操作の段階で、示唆された状況に基づいて予測候補のサブセットを抽出し、表示される候補を切り替える。なお、図１３の例では、予測候補は、表示部３１０（例えば小型液晶ディスプレイ）の一部である候補ウィンドウ３１２の部分に表示されるものとし、ウィンドウ３１１の部分に入力される文字列が表示されるものとする。
【００６７】
図１３の例では、現時点で、「今日は、」の部分が確定しており、次に、テンキー３３０の中の「２」のキーが一度押下されることにより、文字「か」が入力された状態にある。この時点では、文字列「か」に基づく予測処理が実行され、文字列（課、科、下位、・・・）が予測候補として表示されている。表示されている予測候補の中に所望の文字列がなく、次に「く」を入力したい場合、同じ「か行」の文字であるから、「か」の位置にあるカーソルの位置を移動させる必要がある。このとき、カーソルキー３２０を操作して、カーソル位置をずらした時点で、表示されている予測候補とは別の候補を表示する。
【００６８】
前記のように、次の文字を入力した時点ではなく、カーソル位置をずらした時点で、表示された予測候補の中にユーザの目的の文字列がないことが推測されることから、別の候補を表示することによって入力者の目に付きやすくし、選択しやすくする。従って、文字入力数の少ないうちに、より効果的な入力支援を行うことが可能である。
【００６９】
また、カーソルキー３２０を押した後に入力する文字は、前入力文字と同じ行の文字を入力することが予測されることから、前入力文字が入力された時点での予測候補の中から、次の文字が前入力文字と同じ行の文字である候補を抽出して、予測候補として表示する。
【００７０】
図１４は、この場合に表示される予測候補の例を示す図である。図１４（ａ）の例の場合、「か」を入力し、次にカーソルキー３２０を押してカーソルを進めた場合、「か」を入力した時点での予測候補の中から次の文字も「か行」である候補を抽出する。新たに抽出した候補の中で前回表示されなかった候補を優先して表示する。一方、カーソルキー３２０ではなく、別の数字キーが押下された場合は、その数字キーの行（図１４（ｂ）の例の如く、「１」のキーが押下された場合は「あ行」）の文字が次に入力されることが推測されることから、前入力文字が入力された時点での予測候補の中から、次の文字が当該別の数字キーの行の文字である候補を抽出して、予測候補として表示する。図１４（ｂ）の場合、「か」を入力し、次に「１」のキーを押した場合、「か」を入力した時点での予測候補の中から次の文字が「あ行」である候補を抽出する。新たに抽出した候補の中で前回表示されなかった候補が優先して表示される。
【００７１】
以上、新たに追加して入力された文字が確定した時点ではなく、次の文字がどのような文字であるかが示唆された時点で、当該示唆の結果に基づいて候補を抽出、表示することによってユーザに予測候補を選択しやすくする。且つ、より文字入力数（キーの押下回数）の少ない時点での効果的な入力支援を行うことが可能となる。
【００７２】
（文字入力方法がローマ字入力である場合の動作）
次に文字入力がローマ字入力の場合において、本発明を適用した場合の動作を説明する。
【００７３】
ローマ字入力の場合、「ｋ」＋「ａ」のように子音と母音との二つのキー入力で「か」の文字が確定される。母音が入力される前でも子音が入力されることによって、例えば「か行」の文字が入力されることが示唆されると考えられる。従って、抽出された予測候補の中から、次の文字が「か行」である予測候補をより迅速に抽出することができる。新たに抽出した予測候補の中で前回表示されなかった予測候補を優先して表示する。
【００７４】
（処理フロー）
以下、本実施の形態の文字処理装置の具体的な処理内容について、図１５に示すフローチャートを参照しながら以下に説明する。同図に示すフローチャートは第１の実施の形態で説明した図１０及び図１１のフローチャートにおいて、本実施の形態で異なる部分の処理を示すものである。
【００７５】
図１０のステップＳ１０２で何らかの入力があったことが検出された場合、図１５のフローチャートに移行し、ステップＳ２０１で、確定入力であるか否かを判定する。
ここでいう「確定入力」とは、ステップＳ１１３の確定指示入力（入力すべき文字列を確定させる指示入力）とは異なり、入力文字列に文字を追加する入力や、次の文字がどの行かを示唆するような入力を意味し、候補ウィンドウの表示を変更することが好ましい場合が生じ得る入力をいう。例えば携帯電話機のようなテンキー入力において、同一の数字キーを押下している間は、例えば「あ、い、う、え・・」のように順次文字が変わっていくが、この場合における同一キーの押下は確定入力ではない。次の文字を入力すべく他の数字キーを押したり、カーソルキーの操作でカーソルを進めたりした場合に当該入力を確定入力として取り扱う。一方、キーボードなどを用いた入力では、子音、母音のいずれであっても、キーが押された時点で確定入力として取り扱う。
【００７６】
確定入力があった場合（Ｓ２０１：ＹＥＳ）、まず入力が、子音の入力であったか否かを判定する（Ｓ２０２）。子音の入力は次に入力される文字がどの行かを示唆するものであるから、予測処理を行って予測候補の修正処理を行うことがユーザへの入力支援の観点から好ましい。従って、予測処理を行うが、この場合、対応する行の文字（子音「ｋ」の入力であれば、か行の「か」から「こ」）のいずれかが文字列に追加されたものとして、順次予測処理を行う（Ｓ２０５）。このように示唆された行の文字について順次予測を行うのは、テンキー入力の場合においてカーソルキーの操作があった場合（同じ行の文字の入力が示唆される）も同様である（Ｓ２０３：ＹＥＳ）。さらに、テンキー入力の場合において、他の数字のキーの入力があった場合（Ｓ２０４：ＹＥＳ）も、やはり次の文字がどの行の文字かを示唆するものであるので、同様にステップＳ２０５へと進む。
【００７７】
以上のように、示唆された行の各文字について順次予測処理（Ｓ２０５）が行われた後は、図１０のステップ１０６へと戻って、第１の実施の形態と同様の処理を行う。即ち、固定候補があれば原則として優先して表示するし、可変候補の表示に際しては、それまでに表示されていない予測候補を優先して表示するように制御を行う。
【００７８】
なお、図１５のステップＳ２０４において数字キーの入力以外であった場合（Ｓ２０４：ＮＯ）は、母音の入力があったものとして処理を進める。即ち、これは図１０のフローチャートのステップＳ１０３において文字入力がなされた場合と同様に考えることができるから、ステップＳ１０４へと移行し、入力文字列バッファ１０２６への文字の格納、予測処理（Ｓ１０５）へと進む。
【００７９】
もっとも、ステップＳ２０５の順次予測処理でも入力文字列バッファ１０２６は利用される。即ち、現在の入力文字列バッファ１０２６に格納されている文字が「あ」で、現時点で入力された、他の数字のキー（Ｓ２０４：ＹＥＳの場合）が「か行」を示唆する「２」のキーである場合、入力文字列バッファ１０２６の内容を、「あか」、「あき」、「あく」、「あけ」、「あこ」と５種類作成して順次予測処理を行う。また、現在の入力文字列バッファ１０２６に格納されている文字が「あ」で、カーソルキーが操作された場合（Ｓ２０３：ＹＥＳ）の場合には、入力文字列バッファ１０２６の内容を、「ああ」、「あい」、「あう」、「あえ」、「あお」と５種類作成して順次予測処理を行う。
【００８０】
子音入力の場合（Ｓ２０２：ＹＥＳの場合）も同様であり、現在の入力文字列バッファ１０２６に格納されている文字が「あ」で、現時点の入力が子音「ｋ」である場合、入力文字列バッファ１０２６の内容を「あか」、「あき」、「あく」、「あけ」、「あこ」と５種類作成して順次予測を行う。なお、予測処理の後で、特に携帯電話機のように表示スペースが小さい場合や、予測候補の数が多い場合、使用頻度等を表すポイントが所定値以上のもののみを抽出するような処理を加えてもよい。
【００８１】
なお、Ｓ２０１において、確定入力以外の入力がされた場合、そのまま入力がなく（Ｓ２０７：ＮＯ）所定時間が経過した後には、タイムオーバーとして（Ｓ２０６：ＹＥＳ）、確定入力として取り扱い処理を進めることも可能ではある。特にテンキー入力の場合、例えば「１」のキーが３回押されて「う」の文字が表示された状態で所定時間入力がない場合、「う」の文字で確定したものとして処理を進めることができる。もっともこのタイムオーバー判定処理は必須ではない。
【００８２】
（変形例）
以上、本発明をいくつかの実施の形態に基づいて説明したが、本発明の範囲が上記に説明した具体例に限定されないことは勿論であり、例えば以下のような変形例を考えることもできる。
【００８３】
（１）  上記に説明したような本発明に係る文字列処理装置は、必ずしも表示手段を含まない場合でも適用することが可能である。即ち、配列制御部１０２により決定された配列順位に従って予測候補を出力する出力手段を備えておき、当該出力手段から例えばインターネット等のネットワークを介して予測候補を出力する。当該予測候補を受信した装置側に、送信された情報を受信する受信部、表示処理部、及び表示部を備えておけば、本発明の文字列処理装置を複数ユーザで共用することもできる。なお、出力手段はネットワークを介して出力するものに限らず、専用のコードを介して、例えば家庭用のテレビジョンセット、汎用のプリンタ、ＦＡＸ装置、プロジェクタなど種々の装置に対して出力することができる。
【００８４】
（２）  上記実施の形態では、ローマ字入力の例として、子音＋母音の二回の入力で一文字を表す場合について説明したが、三回の入力（例えば「ｎ」＋「ｙ」＋「ａ」で「にゃ」）で文字を入力する場合もある。そのような場合にも本発明を適用することが可能であることは勿論である。即ち、「ｎ」と「ｙ」が入力された時点で「にゃ」、「にゅ」、「にょ」が入力された場合の予測候補を抽出するようにすればよい。
【００８５】
（３）  上記の携帯電話機の例では、入力装置としてテンキーを用い「１」のキーの「あ行」の文字などが割り当てられた場合について説明したが、キーの種類や割り当て方法がこれに限定されないことも勿論である。例えば「１」のキーが「あ段（あ、か、さ、た、な・・）」、「５」のキーが「う段（う、く、す、つ、ぬ・・）」などというようにかな文字を複数系列に分割し、所定のキーが割り振られた場合も、本発明を適用することは容易である。また、上記のようにカーソルを移動させるのもカーソルキーに限定されず、他のキーでも構わないし、要するに動作が異なることで判別可能であればよいのであるから、例えば同一のキーを短時間に二度押下する動作（ダブルクリックに相当するような動作）でカーソルを移動するような場合も考えられる。
【００８６】
（４）  上記実施の形態では入力装置としてキー入力の入力デバイスを用いた場合について説明したが、音声入力の場合に適用することも可能である。
本発明は、例えばパーソナルコンピュータやワードプロセッサのように、入力デバイスから文字列を入力する装置に適用することができる。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施の形態の文字列処理装置の一適用例としてのワードプロセッサの構成を示す機能ブロック図である。
【図２】単語辞書格納部１０３１に格納される単語辞書の内容の一例を示す図である。
【図３】予測候補格納部１０２７の内容の一例を示す図である。
【図４】配列後予測候補格納部１０２８の内容の一例を示す図である。
【図５】配列順位の決定について説明するための図である。
【図６】配列後予測候補格納部１０２８及び文字列表示履歴記憶部１０２９の内容について説明するための図である。
【図７】一旦入力した文字を削除した場合の処理の例について説明するための図である。
【図８】とりあえず入力された文字列の途中までの変換を行うことを可能とする場合について説明するための図である。
【図９】「固定候補」を設ける場合について説明するための図である。
【図１０】第１の実施の形態における文字列処理装置の処理内容について説明するためのフローチャートである。
【図１１】第１の実施の形態における文字列処理装置の処理内容について説明するためのフローチャートである。
【図１２】本発明に係るプログラムを記録した記録媒体２００の内容の一例をあくまで模式的に表現した図である。
【図１３】本発明の第２の実施の形態で用いる携帯電話機３００の外観を模式的に示す図である。
【図１４】第２の実施の形態で表示される予測候補の例を示す図である。
【図１５】第２の実施の形態における文字列処理装置の処理内容について説明するためのフローチャートである。
【符号の説明】
【００８８】
１０１          入力部
１０２          配列制御部
１０２１        入力判定部
１０２２        文字列バッファ制御部
１０２３        予測処理制御部
１０２４        配列順位決定部
１０２５        表示履歴管理部
１０２６        入力文字列バッファ
１０２７        予測候補格納部
１０２８        配列後予測候補格納部
１０２９        文字列表示履歴記憶部
１０３          予測処理部
１０３１        単語辞書格納部
１０４          表示部
１０４１        候補ウィンドウ
２００          記録媒体
３００          携帯電話機
３２０          カーソルキー
３３０          テンキー
【図１】
2005032111.tif 000003
【図２】
2005032111.tif 000004
【図３】
2005032111.tif 000005
【図４】
2005032111.tif 000006
【図５】
2005032111.tif 000007
【図６】
2005032111.tif 000008
【図７】
2005032111.tif 000009
【図８】
2005032111.tif 000010
【図９】
2005032111.tif 000011
【図１０】
2005032111.tif 000012
【図１１】
2005032111.tif 000013
【図１２】
2005032111.tif 000014
【図１３】
2005032111.tif 000015
【図１４】
2005032111.tif 000016
【図１５】
2005032111.tif 000017