〔画像表示システム1の構成〕
本発明の一実施形態について図1から図41に基づいて説明すると以下の通りである。まず、本発明の画像表示システム1の概要について図2に基づいて説明する。図2は、画像表示システム1の概略構成を示すブロック図である。図示のように、画像表示システム1は、表示装置2、情報処理装置3、及び遠隔操作装置4を備えている構成である。
表示装置2は、表示部を備え、該表示部に画像を表示する装置である。また、図示のように、表示装置2は、情報処理装置3と接続されており、情報処理装置3とデータの送受信ができるようになっている。すなわち、情報処理装置3が出力する画像データは、表示装置の表示部に表示されるようになっている。また、表示装置2は、遠隔操作装置4からの操作に従って動作するようになっている。
なお、表示装置2は、情報処理装置3が出力する画像データを受信し、表示することができるものであればよく、特に限定されないが、ここでは表示装置2は、テレビジョン受像機であることを想定している。すなわち、表示装置2は、チューナを備えており、該チューナで受信した画像及び音声を出力できるようになっている。
情報処理装置3は、図示のように、文字入力装置5と通信装置6とを備えている。通信装置6は、ブラウザ機能及び通信機能を備える装置であり、図示のように、ネットワークに接続している。すなわち、通信装置6は、情報処理装置3の制御に従ってネットワークに接続し、様々なデータを取得できるようになっており、取得したデータを表示装置2に出力して表示させることができるようになっている。また、情報処理装置3も遠隔操作装置4にて操作できるようになっている。
なお、上記ネットワークとしては、公知の様々な通信ネットワークを適用することができるが、ここでは上記ネットワークがインターネットである例について説明する。また、ここでは、情報処理装置3がパーソナルコンピュータ(PC)であることを想定している。ただし、情報処理装置3としてはPCに限らず、ブラウザ機能を有するTV受像機のように表示装置と情報処理装置とが一体となっているものも当然含まれる。
以上のように、情報処理装置3は、通信装置6の機能によってインターネットに接続し、ウェブページを表示装置2に表示させることができる。ここで、ウェブページの中には、検索サイトや掲示板、ウェブログ等の文字入力が必要になるものがある。また、インターネットのアドレス(URL)を入力する場合にも文字入力を行う必要がある。ここでは、文字入力を行う対象となる位置を入力フィールドと呼ぶ。一般的なPCでは、マウス等のポインティングデバイスで入力フィールドを指定し、キーボード等の入力装置を用いて上記指定した入力フィールドに文字入力を行うようになっている。
これに対し、画像表示システム1では、遠隔操作装置4にて入力フィールドを選択できるようにすると共に、入力フィールドが選択されたときに、文字入力装置5が表示装置2に入力ウインドウを表示させて、該入力ウインドウを用いて文字入力を行うことができるようにしている。すなわち、画像表示システム1では、キーボード等のハードウェアを用いることなく、文字入力を行うことができるようになっている。
遠隔操作装置4は、表示装置2及び情報処理装置3に対する操作入力を行うための装置である。遠隔操作装置4の表面には、各操作入力に対応付けられた入力ボタンが設けられており、入力ボタンを押下することによって、該入力ボタンに対応付けられた操作入力信号が表示装置2または情報処理装置3に送信されるようになっている。
具体的には、遠隔操作装置4は、表示装置2の電源のオン/オフ、チャンネル変更、表示するデータソースの切り替え(テレビからPCへの切り換え、またはPCからテレビへの切り換え)等を行うことができる。また、遠隔操作装置4は、情報処理装置3の電源のオン/オフ、文字入力装置5の操作入力等も行うことができる。さらに、遠隔操作装置4は、表示装置3の表示画面に表示された入力フィールドを選択するポインティングデバイスとしての機能を備えている。なお、遠隔操作装置4は、例えば赤外線、Bluetooth(登録商標)、無線LAN等の通信手段を用いて上記のような操作入力を表示装置2または情報処理装置3に送信するようになっている。
〔具体的な構成例〕
ここで、遠隔操作装置4の具体的な構成例、及び文字入力装置5が表示装置2に表示させる入力ウインドウの具体例について図3及び図4に基づいて説明する。
遠隔操作装置4は、例えば図3に示すような構成とすることができる。図3は、遠隔操作装置4の構成例を示す図である。なお、画像表示システム1では、文字入力装置5による文字入力処理に主な特徴があるので、同図では、遠隔操作装置4の備えている入力ボタンのうち、文字入力処理に関する入力ボタンが表示されている部分のみを示している。図示のように、遠隔操作装置4の表面には、決定ボタン11、方向ボタン12、EXITボタン13、RETURNボタン14、及び候補決定ボタン15が設けられている。
これらの各ボタンには、文字入力を行うための機能がそれぞれ割り当てられており、ユーザは、入力ウインドウを見ながら、上記各ボタンを操作することにより、文字入力を行うことができるようになっている。
図4は、文字入力装置5が表示装置2に表示させる入力ウインドウの一例を示す図である。図示のように、入力ウインドウ20内には、入力枠21、入力モード切り換えキー22、文字入力キー23、編集処理キー24、候補選択キー25、及びフォーカス26が表示されている。
入力枠21は、文字入力装置5に入力された文字列を表示させる欄である。なお、ここでは、特に断りのない限り、1文字または複数文字の並びを文字列と呼ぶ。また、アルファベット、ひらがな、カタカナ、漢字等の文字に加え、“.”(ピリオド)、“,”(カンマ)、“ ”(スペース)、“?”(疑問符)、“!”(感嘆符)、“-”(ハイフン)、“/”(スラッシュ)、“@”(アットマーク)、“_”(アンダーライン)“。”(句点)、“、”(読点)等の記号、及び数字も文字列と呼ぶ。なお、上記各記号は、単語の区切りに用いられることが多いので、ここではこれらの記号を特にセパレータ(区切り文字)と呼ぶ。なお、セパレータとみなす文字列は、上記の例に限られず、必要に応じて適宜設定することができる。
また、状況に応じてセパレータとみなす文字列を変更するようにしてもよい。例えば、文章やURLの入力であれば“&”や“.”がセパレータとすることが好ましい。一方、小数点を含む数値入力を行う場合には、“.”をセパレータとしないほうが合理的である。
そして、例えば電話番号を入力する場合に、“-”(ハイフン)をセパレータとみなさないときは、電話番号が一連の文字列となる。一方、“-”(ハイフン)をセパレータとみなす場合には、電話番号がセパレータで区切られた複数の文字列となる。後で述べるように、候補として表示できる領域が狭い場合や、市外局番が同一の電話番号を複数入力するような場合には、“-”をセパレータとしたほうが効率よく入力する事ができる。
このように、候補として表示する領域の広さや、どのような文字列を入力しているか等に応じてどのような文字列をセパレータとみなすかを変化させることによって、文字入力を効率よく行うことができるようになる。
入力モード切り換えキー22には、現在の入力モードが表示されると共に、入力モード切り換えキー22を操作することによって、入力モードの切り換えを行うことができるようになっている。また、入力モードを切り換えることによって、文字入力キー23に表示される文字が変化するようになっている。例えば、図示の例では、入力モードがアルファベットになっているので、文字入力キー23にはアルファベットが表示されている。
なお、ここでは、アルファベット入力モード、ひらがな入力モード、カタカナ入力モード、及び記号入力モードの4種類の入力モードがあることを想定しているが、入力モードの種類及び数は、必要に応じて適宜変更することができる。
文字入力キー23は、文字を入力するためのキーである。文字入力キー23にフォーカス26を合わせて決定ボタン11を押下することによって、当該文字入力キー23に表示されている文字が入力されて、入力枠21内に表示されるようになっている。
編集処理キー24は、文字入力に付随する文字入力以外の処理を行うためのキーである。編集処理キー24にフォーカス26を合わせて決定ボタン11を押下することにより、当該編集処理キー24に表示されている処理が実行されるようになっている。
〔編集処理キー24について〕
ここでは、図4に示すように、編集処理キー24として、Capsキー、Doneキー、Quitキー、Lキー及びRキー、Deleteキー、Clearキー、及び改行キーを表示することを想定している。
Capsキーは、アルファベットの大文字入力と小文字入力とを切り換えるためのキーである。図示の例では、Capsキーに「Caps OFF」と表示されており、これは文字入力キー23のアルファベットが表示されているキーに、フォーカス26を合わせて決定ボタン11を押下したときに、アルファベットの小文字が入力される(入力枠21内に表示される)ようになっていることを示している。
ここで、Capsキーにフォーカス26を合わせて決定ボタン11を押下すると、Capsキーの表示が「Caps ON」に切り換わる。Capsキーに「Caps ON」と表示されている状態で文字入力キー23のアルファベットが表示されているキーにフォーカス26を合わせて決定ボタン11を押下すると、アルファベットの大文字が入力される。なお、「Caps ON」の状態で文字を一文字入力すると、「Caps OFF」の状態に戻る。
また、「Caps ON」の状態でさらにCapsキーにフォーカス26を合わせて決定ボタン11を押下すると、Capsキーの表示が「Caps LOCK」に切り換わる。「Caps LOCK」が表示されている状態では、常にアルファベットの大文字が入力される。
Doneキーは、入力枠21内に表示されている編集中の文字列を確定し、表示装置2の入力フィールドに表示させるためのキーである。上述のように、文字入力キー23にフォーカス26を合わせて決定ボタン11を押下することによって、該文字入力キー23に表示されている文字が入力枠21内に表示される。ここで、Doneキーにフォーカス26を合わせて決定ボタン11を押下すると、入力枠21内に表示されている上記文字列が表示装置2の入力フィールドに入力される。
なお、入力フィールドとは、例えばウェブページにおいて文字入力を行うことが可能なテキストボックス等を指す。具体的には、キーワード検索を行う検索サイトにおいて、キーワードを入力するためのテキストボックスやURLを入力するためのテキストボックス等が入力フィールドとなる(図34(a)参照)。
Quitキーは、入力枠21内に表示されている文字列を破棄して文字入力を終了させるためのキーである。また、図示の例では、Quitキーに「EXIT」との文字が表示されている。これは、Quitキーが、図3に示す遠隔操作装置4のEXITボタン13に対応していることを示している。すなわち、遠隔操作装置4のEXITボタン13を押下することにより、Quitキーにフォーカス26を合わせて決定ボタン11を押下した場合と同じ処理が実行されるようになっている。
Lキー及びRキーは、入力枠21内の入力位置を移動させるためのキーである。ここで、上記入力位置について説明する。図4には示していないが、入力枠21内には、入力位置を示すカーソルが表示される。すなわち、文字入力キー23等を用いて入力した文字列は、入力枠21内において、上記カーソルの位置に挿入されるようになっている。
Deleteキーは、入力位置の直前の1文字を消去するためのキーである。また、図示の例では、Deleteキーに「Return」との文字が表示されている。これは、Deleteキーが、図3に示す遠隔操作装置4のRETURNボタン14に対応していることを示している。すなわち、遠隔操作装置4のRETURNボタン14を押下することにより、Deleteキーにフォーカス26を合わせて決定ボタン11を押下した場合と同じ処理が実行されるようになっている。
Clearキーは、入力枠21内に表示されている文字列を全消去するためのキーである。改行キーは、入力枠21内に表示されている文字列を改行するためのキーである。なお、ここでは、入力枠21に表示される文字列が1行であることを想定しているので、改行キーにフォーカス26を合わせて決定ボタン11を押下した場合には、入力枠21内で改行が行われるのではなく、入力枠21内に改行位置を示す改行マークが表示されるようにしている。そして、改行マークを含む文字列を入力フィールドに入力した場合に、上記改行マークの位置で上記文字列が改行されるようにしている。
〔候補選択キー25について〕
候補選択キー25には、入力枠21に入力する文字列の候補が表示される。そして、候補選択キー25にフォーカス26を合わせて決定ボタン11を押下することによって、当該候補選択キー25に表示された文字列が入力枠21内の入力位置(カーソル位置)に入力される。
ここで、遠隔操作装置4には、候補選択キー25に一対一で対応する候補決定ボタン15が設けられている。例えば、図4の例ではA〜Dの文字が付された4つの候補選択キー25が表示されており、図3の例ではA〜Dの文字が付された4つの候補決定ボタン15が設けられている。
すなわち、遠隔操作装置4の候補決定ボタン15は、それぞれ候補選択キー25に対応しており、候補決定ボタン15を押下することによって、該押下された候補決定ボタン15に対応する候補選択キー25の入力を行うことができるようになっている。このように、遠隔操作装置4のボタンと候補選択キー25とを一対一に対応させることによって、候補選択キー25を容易に選択することができる。
なお、図4の例では、「D」の文字が付された候補選択キー25に「Space」と記載されている。すなわち、「D」の文字が付された候補選択キー25は、スペースを入力するキー、すなわちスペースキーとして用いられており、遠隔操作装置4において「D」の文字が付された候補決定ボタン15を押下することによって、入力位置にスペースが入力されるようになっている。
文字入力時には、他の文字や編集操作と比べて、スペースを入力する頻度が高いので、特定の候補選択キー25にスペースキーを割り当てることによって、ユーザの操作性を高めることができる。なお、スペースキーについても文字入力キー23や編集処理キー24と同じように入力ウインドウ20内に配置してもよい。
詳細については後述するが、文字入力装置5では、入力枠21内の文字列であって、入力位置より前の文字列に基づいて、上記入力位置に入力する文字列の候補である入力候補を割り当てた候補選択キー25を表示装置2に表示する。すなわち、候補選択キー25には、入力位置より前に入力されている文字列から、当該入力位置に入力されると予測される文字列が入力候補として割り当てられる。
そして、上述のように、表示装置2に表示された候補選択キー25を、遠隔操作装置4の候補決定ボタン15にて選択することによって、該選択された候補選択キー25に割り当てられた入力候補の文字列を、上記入力位置に入力することができるようになっている。
したがって、入力位置に入力しようとする文字列が、入力候補として候補選択キー25に割り当てられている場合には、文字入力キー23に順次フォーカス26を合わせて決定ボタン11を押下しながら文字列を入力する場合と比べて、ボタンを押下する回数を減らすことができ、これにより文字入力装置5のユーザは、簡単かつ迅速に文字列の入力を行うことができる。
なお、当然のことながら、ユーザが入力位置に入力しようとする文字列が、入力候補として候補選択キー25に割り当てられていない場合には、文字入力キー23に順次フォーカス26を合わせて決定ボタン11を押下しながら文字列を入力する必要がある。すなわち、入力候補の予測精度が低い場合には、入力候補を候補選択キー25に割り当てることによるメリットは得られない。
そこで、詳細については後述するが、文字入力装置5では、入力位置より前に入力されている文字列が単語を区切るセパレータであるか否かに基づいて、候補選択キー25に割り当てる入力候補を動的に変化させる。これにより、入力候補の予測精度を高めることができるので、簡単かつ迅速に文字列の入力を行うことができる。
〔文字入力装置5の構成〕
続いて、文字入力装置5のより詳細な構成について、図1に基づいて説明する。図1は、文字入力装置5の要部構成を示すブロック図である。図示のように、文字入力装置5は、入力ウインドウ表示制御部30、操作取得部31、文字列表示制御部32、文字列読み込み部(文字列読み込み手段)33、入力候補表示制御部34、文字列更新部35、文字列編集用メモリ36、区切り文字判断部(区切り文字判断手段)37、第1候補決定部(処理候補決定手段、第1候補決定手段)38、第2候補決定部(処理候補決定手段、一文字候補決定手段、第2候補決定手段)39、編集用候補決定部(処理候補決定手段、編集用補決定手段)40、学習部(学習手段)41、予測メモリ(連鎖処理記憶部、単語記憶部、連鎖区切り文字記憶部、連鎖単語記憶部)42、一文字予測メモリ(一文字候補記憶部)43、及び入力候補割当部(入力候補割当手段)44を備えている。
入力ウインドウ表示制御部30は、表示装置2の表示部上で文字入力の対象となる入力フィールドが選択された場合に、文字列の入力及び編集等を行うための各種キーが含まれる入力ウインドウを上記表示部に表示させる。入力ウインドウは、例えば図4に示したような態様とすることができる。無論、入力ウインドウに含まれるキーの種類及び配置は、図示の例に限られず、必要に応じて適宜変更することができる。
操作取得部31は、遠隔操作装置4から送られる入力操作を取得し、取得した入力操作に応じて予め定められた処理を実行する。具体的には、遠隔操作装置4は、その表面に設けられた各種入力ボタンにてユーザの入力操作を受け付けて、該入力操作に対応する操作信号を情報処理装置3に送信するようになっているので、操作取得部31は、上記操作信号を情報処理装置3経由で取得する。そして、操作取得部31は、情報処理装置3から受け取った上記操作信号に応じて、文字入力装置5の各部に所定の指示を行うことにより、上記遠隔操作装置4への入力操作に対応する処理を実行させる。
文字列表示制御部32は、文字入力装置5に入力された文字列を表示装置2に表示させる。具体的には、文字列表示制御部32は、文字列編集用メモリ36に格納されている文字列を読み出して、上記入力ウインドウ内(図4の例では入力枠21内)に表示させる。また、文字列表示制御部32は、文字列編集用メモリ36に格納されている文字列が更新されたときには、それに合わせて表示させる文字列も更新する。さらに、文字列表示制御部32は、操作取得部31が、文字列の確定操作(図4のDoneキーに対する操作)を取得した場合に、文字列編集用メモリ36に格納されている文字列を読み出して、表示装置2の入力フィールドに表示させる。
文字列読み込み部33は、文字入力装置5の外部の文字列を読み込んで文字列編集用メモリ36に格納する。文字入力装置5の外部とは入力フィールドである。すなわち、ウェブページ等で、文字入力が可能なフィールドには、既に文字列が入力されている場合がある。文字列読み込み部33は、入力フィールドが選択されて、入力ウインドウが表示されるときに、該入力フィールドに既に入力されている文字列を読み込んで文字列編集用メモリ36に格納する。
ここで、文字列編集用メモリ36に格納されている文字列は、文字列表示制御部32によって、入力ウインドウに表示される。したがって、表示装置2上の文字列が既に入力されている箇所を入力フィールドとして選択した場合には、入力ウインドウが表示されるときに該入力ウインドウ内に上記文字列が表示される。
入力候補表示制御部34は、入力候補割当部44から送られてくる入力候補を、入力ウインドウの候補選択キー上に表示する。
文字列更新部35は、操作取得部31の指示に従って、文字列編集用メモリ36に格納されている文字列を更新する。具体的には、操作取得部31は、文字列の入力操作を取得した場合には、当該文字列を挿入するように文字列更新部35に指示する。指示を受けた操作取得部31は、上記文字列を文字列編集用メモリ36内に設定されている入力位置に挿入して、文字列編集用メモリ36内に格納されている文字列を更新する。
文字列編集用メモリ36は、文字入力装置5に入力された文字列を編集のために一時的に格納するメモリである。上述のように、文字列編集用メモリ36内の文字列には、入力位置が設定されており、文字列編集用メモリ36に格納されている文字列に対する編集操作は、この入力位置に対して実行されるようになっている。
区切り文字判断部37は、文字列編集用メモリ36に格納されている文字列を読み出し、該読み出した文字列に設定されている入力位置の直前の文字がセパレータであるか否かを判断する。そして、区切り文字判断部37は、入力位置の直前の文字がセパレータである場合には、第1候補決定部38に上記読み出した文字列を送り、入力位置の直前の文字がセパレータ以外の文字である場合には、第2候補決定部39に上記読み出した文字列を送る。これにより、セパレータの有無に応じた入力候補が出力されることになる。
第1候補決定部38は、入力位置の直前の文字がセパレータである場合に、セパレータの直前の単語に続けて入力される単語の候補を入力候補とする。また、第1候補決定部38は、入力位置の直前のセパレータ以外で構成される一続きの文字列が予測メモリ42に記憶されている単語と一致する場合に、該単語と対応付けて記憶されている単語を入力候補とする。さらに、第1候補決定部38は、URLの入力時に、入力位置の前であって“://”の後に“/”が存在するか否かに応じた定型の文字列を入力候補とする。
そして、第1候補決定部38は、英字を入力する際に、入力位置が文頭であるか、または入力位置の直前がスペースまたはピリオドである場合に、小文字入力と大文字入力との切り換え処理(Capsキー)を入力候補とする。このように、第1候補決定部38は、文字列以外に、所定の処理を入力候補とする場合もある。所定の処理を入力候補とした場合に、該入力候補が選択されたときには、上記所定の処理が実行される。すなわち、第1候補決定部38は、文字入力に付随する処理であって、ユーザが利用可能な処理を上記候補選択キーに割り当てる機能を有する。
第2候補決定部39は、入力位置の直前の文字がセパレータ以外の文字である場合に、入力位置の直前の文字を末尾とし、セパレータを含まない一続きの文字列である直前文字列を単語として完成させるための文字列の候補を入力候補とする。具体的には、第2候補決定部39は、上記直前文字列が予測メモリ42に記憶されている単語の先頭部分と一致する場合に、該単語の一致している部分に続く文字列を入力候補とする。
また、第2候補決定部39は、上記直前文字列が予測メモリ42に記憶されている単語と一致する場合に、セパレータを入力候補とする。そして、第2候補決定部39は、上記直前文字列が予測メモリ42に記憶されている単語と一致する場合に、該単語と対応付けて記憶されているセパレータを入力候補とする。
さらに、第2候補決定部39は、一文字予測メモリ43を参照し、入力位置の直前の2文字に続けて入力される一文字候補を入力候補とする。なお、一文字候補の決定方法については、一文字予測メモリ43の説明を行う際に説明する。
また、第2候補決定部39は、URL(Uniform Resource Locator)の入力時に、入力位置の直前のセパレータから入力位置の直前の文字までの文字数が所定の文字数を超えている場合に、ピリオドを入力候補とする。
そして、第2候補決定部39は、日本語を入力する場合に、上記直前文字列に対して仮名漢字変換が行われていない場合には、上記直前文字列を仮名漢字変換する処理を入力候補とする。このように、第2候補決定部39は、文字列以外に、所定の処理を入力候補とする場合もある。所定の処理を入力候補とした場合に、該入力候補が選択されたときには、上記所定の処理が実行される。すなわち、第2候補決定部39は、文字入力に付随する処理であって、ユーザが利用可能な処理を上記候補選択キーに割り当てる機能を有する。
編集用候補決定部40は、文字列読み込み部33が、文字入力装置5の外部から文字列を読み込んだときに、上記読み込んだ文字列の全消去処理(Clearキー)、またはスペースキーの少なくとも一方を入力候補とする。すなわち、編集用候補決定部40は、文字入力に付随する処理であって、ユーザが利用可能な処理(読み込んだ文字列の全消去処理)を上記候補選択キーに割り当てる機能を有する。
学習部41は、文字列編集用メモリ36に対して確定処理(Doneキーへの入力)が行われたときに、文字列編集用メモリ36に格納されている文字列からセパレータと単語とを切り出し、単語と該単語に続くセパレータとを対応付けて予測メモリ42に記憶すると共に、セパレータを挟んで連続する2単語を対応付けて予測メモリ42に記憶する。すなわち、文字入力装置5を用いて文字列を入力フィールドに入力した場合には、予測メモリ42が学習部41によって更新される。
予測メモリ42は、第1候補決定部38及び第2候補決定部39が入力候補を決定するために使用するデータベースである。また、予測メモリ42は、学習部41によって更新されるようになっている。これにより、ユーザが入力し、確定した文字列が予測メモリ42に反映されるので、ユーザが使用する頻度の高い単語等が入力候補として候補選択キーに割り当てられるようになる。予測メモリ42及び文字列の学習方法の詳細については後述する。
一文字予測メモリ43は、任意の2文字からなる文字列と、該文字列に続く確率の高い1文字とを対応付けて格納するデータベースである。具体的には、一文字予測メモリ43には、任意の2文字からなる文字列に対し、該文字列に続く確率の高い順に、複数の一文字候補が対応付けられている。このデータベースを用いることによって、第2候補決定部は、入力位置の直前の2文字に続くと予想される一文字を入力候補として決定することができる。なお、一文字予測メモリ43は、任意の3文字からなる文字列と、該文字列に続く確率の高い1文字とを対応付けて格納するものであってもよい。
また、一文字予測メモリ43には、スペース等の区切り文字も一文字候補として格納されていてもよい。例えば、“on”との文字列は、単語の末尾に使用される頻度が高い文字列であるから、“on”との文字列に対応付けてスペースを格納しておくことにより、“on”との文字列が入力された場合に、スペースを入力候補とすることができる。
入力候補割当部44は、第1候補決定部38、第2候補決定部39、及び編集用候補決定部40の少なくとも1つが決定した入力候補を入力候補表示制御部34に送って候補選択キーに表示させる。また、入力候補割当部44は、複数の候補選択キーに表示する文字列が、入力位置の直前の文字列における末尾の文字列(入力済み文字列)を含む場合には、各候補選択キーに表示する上記直前の文字列における末尾の文字列(入力済み文字列)を一致させる。
〔予測メモリ42の構成〕
ここで、予測メモリ42のより詳細な構成について、図5〜7に基づいて説明する。文字入力装置5の予測メモリ42のデータ構造は、従来にはない特徴的な構成となっており、これによって、少ないデータ量で予測精度の高い入力候補を出力できるようになっている。
図5は、予測メモリ42のデータ構造の一例を示している。図示のように、予測メモリ42は、インデクス(i)と、単語文字列(spell)と、セパレータ情報(sep(0)〜sep(3))と、単語情報(wd(0)〜wd(3))と、優先度(pri)とが対応付けられたデータ構造となっている。
単語文字列(spell)には、予測メモリ42に登録されている単語が格納される。単語文字列(spell)に格納される単語は、学習部41が学習処理を行うことによって追加される。また、高頻度の使用が予想される単語を予め格納しておいてもよい。
セパレータ情報のsep(0)〜sep(3)には、単語文字列(spell)に後続するセパレータ(セパレータ候補)が格納される。また、単語情報wd(0)〜wd(3)には、単語文字列(spell)に後続する単語(次単語候補)が格納される。セパレータ情報及び単語情報は、単語文字列(spell)に後続する文字列を示す情報、すなわち単語文字列(spell)の接続情報と言うことができる。これらの接続情報は、単語文字列(spell)が入力位置の直前の文字列と一致した場合に、入力候補として決定される。
優先度(pri)は、上記接続情報を入力候補とする場合の優先度を示すデータである。優先度(pri)は、入力候補の数が候補選択キーの数よりも多い場合に、入力候補を候補選択キーの数以下に絞り込むために用いられる。すなわち、入力候補の数が候補選択キーの数よりも多い場合には、複数の入力候補のうち、優先度の高い順に入力候補が決定されるようになっている。
ここでは、優先度をゼロ以上の整数で表し、優先度がゼロに近い値ものを優先することを想定している。また、ここでは、最も新しく学習された単語文字列(spell)及びその接続情報の優先度を高くすることを想定している。これにより、ユーザが最近入力した文字列の傾向を反映した入力候補が決定される。
具体的には、単語文字列(spell)及びその接続情報の学習が行われた時点で、該単語文字列(spell)及びその接続情報の優先度をゼロに設定する。そして、他の単語文字列(spell)及びその接続情報が学習されると、該単語文字列(spell)及びその接続情報の優先度をゼロに設定すると共に、既に学習されていた上記単語文字列(spell)及びその接続情報の優先度を1に更新する。これにより、ユーザが最近入力した文字列の傾向を反映した入力候補が決定される。
なお、優先度を設定することによって、入力候補の絞り込みにユーザの入力傾向を反映させることができるので、優先度の設定を行うことが好ましいが、優先度の設定は文字入力装置5に必須の構成ではない。また、ここでは、最も新しく学習された単語文字列(spell)及びその接続情報の優先度を高くする例を示すが、優先度の設定方法はこれに限られない。例えば、単語文字列(spell)及びその接続情報を、ユーザが入力候補の中から選択した回数または頻度をカウントしておき、選択された回数または頻度の高い単語文字列(spell)及びその接続情報の優先度を高くするようにしてもよい。
インデクス(i)は、単語文字列(spell)と該単語文字列(spell)に対応付けられている接続情報とからなる一連のデータに付される識別番号である。すなわち、予測メモリ42に格納される、単語文字列(spell)と接続情報との組み合わせからなる各データは、それぞれインデクス(i)によって管理されている。ここでは、インデクス(i)と単語文字列(spell)と該単語文字列(spell)に対応付けられている接続情報とからなる一連のデータを、インデクス(i)のデータまたはM(i)と表記する。
なお、図5は、予測メモリ42のデータ構造の一例を示すものであり、文字入力装置5で使用される予測メモリ42のデータ構造は図示の例に限られない。すなわち、ここでは、図4に示すように、候補選択キーがA〜Dの4つであることを想定しているので、単語文字列(spell)の次に入力される文字列の候補は、最大で4つまでしか表示することができない。そこで、図5の例では、単語文字列(spell)に4つのセパレータsep(0)〜sep(3)と、4つの単語情報wd(0)〜wd(3)を記憶するようにしているのであるが、単語文字列(spell)に対応付けて記憶するセパレータの数、及び単語情報の数は、必要に応じて適宜変更することができる。
文字入力装置5では、上記のようなデータ構造を有する予測メモリ42を用いることによって、単語の次に入力されるセパレータと、該セパレータの次に入力される単語とを入力候補として決定する。これについて、図6に基づいて説明する。図6は、予測メモリ42のデータを用いて入力候補を決定する方法を示す図である。なお、図6では、セパレータ情報sep(0)〜sep(3)のうち、sep(0)〜sep(2)のみを、また単語情報wd(0)〜wd(3)のうち、wd(0)〜wd(2)のみを示しているが、sep(03)及びwd(3)についても、sep(0)〜sep(2)及びwd(0)〜wd(2)と同様に扱われる。
図示のように、単語文字列(spell)の次には、セパレータsep(0)〜sep(2)が続くようになっている。そして、セパレータsep(0)〜sep(2)の次には、単語情報wd(0)〜wd(2)が続くようになっている。
ここで、図示のように、単語文字列(spell)の次には、セパレータsep(0)〜sep(2)以外のセパレータが続いていてもよい。そして、単語文字列(spell)の次には、セパレータsep(0)〜sep(2)以外のセパレータが続いている場合にも、該セパレータの次には、単語情報wd(0)〜wd(2)が続くようになっている。
すなわち、予測メモリ42には、単語文字列(spell)と、該単語文字列(spell)の次に続くセパレータsep(0)〜sep(3)とが対応付けて記憶されているので、入力位置の直前の文字列が単語文字列(spell)に一致した場合に、該単語文字列(spell)に対応付けられているセパレータsep(0)〜sep(3)を入力候補とすることができる。
また、予測メモリ42には、単語文字列(spell)と、該単語文字列(spell)の次に続く単語情報wd(0)〜wd(3)とが対応付けて記憶されているので、入力位置の直前の文字列が任意のセパレータ(sep(0)〜sep(3)またはその他のセパレータであり、該セパレータの直前の文字列が、単語文字列(spell)に一致した場合に、該単語文字列(spell)に対応付けられている単語情報wd(0)〜wd(3)を入力候補とすることができる。
〔学習方法〕
文字入力装置5では、学習部41が、確定処理(Doneキー操作)が行われたときに、文字列編集用メモリ36に格納されている文字列からセパレータと単語とを切り出し、単語と該単語に続くセパレータとを対応付けて予測メモリ42に記憶すると共に、セパレータを挟んで連続する2単語を対応付けて予測メモリ42に記憶するようになっている。
ここでは、予測メモリ42にどのようにデータが格納されるかについて、図7(a)(b)に基づいて説明する。図7(a)は、学習によって予測メモリ42に格納されるデータの一例を示す図であり、図7(b)は、図7(a)の状態で、さらに別の文字列を学習した場合に予測メモリ42に格納されるデータの一例を示す図である。
より具体的には、図7(a)は、“Kyoto‐City,Kyoto‐Prefecture,Japan”との文字列が文字列編集用メモリ36に格納されている状態で、確定処理が行われたときに予測メモリ42に格納されるデータの一例を示している。
図示のように、“Kyoto‐City,Kyoto‐Prefecture,Japan”との文字列に含まれる単語、すなわち“Kyoto”、“City”、“Prefecture”、及び“Japan”の文字列がインデクス0〜3のそれぞれに対応する単語文字列(spell)として格納されている。
また、“Kyoto‐City,Kyoto‐Prefecture,Japan”との文字列において、“Kyoto”との単語の次の文字は、セパレータ“‐”となっている。そこで、図示の例では、“Kyoto”にセパレータ情報“‐”が対応付けて格納されている。同様に、“Prefecture”及び“City”には、セパレータ情報“,”が対応付けて格納されている。
ここで、図示の例では、“Japan”の文字列のセパレータ情報として、“End”とのデータが格納されている。これは、“Japan”の文字列が入力された後に、確定処理(Doneキー操作)が行われたことを示している。このように、予測メモリ42には、セパレータ及び単語に加えて、所定の処理が格納されていてもよい。
例えば、図示のデータが予測メモリ42に格納されている場合に、入力位置の直前の文字列が“Japan”に一致したときには、確定処理(Doneキー)が入力候補に決定される。これにより、ユーザは、文の末尾が“Japan”となる文字列を入力した場合に、該入力した文字列をスムーズに決定することができる。これは、例えば、住所や氏名等を入力する場合のように、同じ文字列を何度も入力する場合に有効である。
また、“Kyoto‐City,Kyoto‐Prefecture,Japan”との文字列において、“Kyoto”の次の単語は、“City”及び“Prefecture”である。従って、図示のように、“Kyoto”の単語情報として“City”及び“Prefecture”のインデクスが格納される。なお、単語情報は、文字列であってもよいが、図示の例のようにインデクスを単語情報とすることで、予測メモリ42のデータ量を削減することができる。同様に、“Prefecture”の単語情報には、“Japan”のインデクスが格納され、“City”の単語情報には、“Kyoto”のインデクスが格納される。
そして、図示の例では、“Kyoto‐City,Kyoto‐Prefecture,Japan”との文字列が学習された後、他の文字列の学習が行われていないことを想定しているので、上記学習により生成されたインデクス0〜4の全てについて、優先度がゼロに設定されている。
ここで、予測メモリ42に図7(a)に示すデータが格納されている状態にて、“Kyoto Station”との文字列が学習されると、予測メモリ42に格納されているデータは、図7(b)に示すような状態に更新される。
新たに文字列が学習されることにより、図7(a)の状態で学習されていたインデクス0〜3のデータの優先度はそれぞれ1になるが、インデクス0のデータの単語文字列(spell)は、新たに学習された文字列“Kyoto Station”にも含まれているので、インデクス0のデータは、優先度が0になる。
また、新たに学習された文字列“Kyoto Station”には、図7(a)の状態では格納されていなかった単語“Station”が含まれているので、“Station”との単語がインデクス4のデータとして追加されている。文字列“Kyoto Station”が学習されたということは、“Station”との単語が入力された後で、確定処理(Doneキー操作)が行われたことを示しているので、インデクス4のデータのセパレータ情報には、“End”が格納される。また、インデクス4のデータは、最新の学習結果に基づくものであるから、優先度がゼロに設定される。
そして、新たに学習された文字列“Kyoto Station”では、“Kyoto”の次のセパレータが“ ”(スペース)であり、“Kyoto”の次の単語が“Station”である。したがって、インデクス0のデータのセパレータ情報に“ ”(スペース)が追加され、インデクス0のデータの単語情報にインデクス4が追加される。
〔学習処理〕
以上のように、文字入力装置5では、図5及び図7(a)に示すようなデータ構造の予測メモリ42を持ち、文字列が新たに学習された場合には、学習部41が図7(b)に示すような態様で予測メモリ42を更新する。以下では、学習部41が文字列の学習及び予測メモリ42の更新を行う処理について図8〜12に基づいて説明する。
〔学習処理の全体の流れ〕
図8は、学習処理の一例を示すフローチャートである。上述のように、文字入力装置5では、文字列編集用メモリ36に文字列が格納された状態にて、確定処理(Doneキー操作)が行われたときに上記文字列編集用メモリ36に格納されている文字列の学習が行われる。より詳細には、確定処理(Doneキー操作)が行われると、操作取得部31が確定処理(Doneキー操作)が行われたことを学習部41に伝達する。そして、伝達を受けた学習部41が文字列編集用メモリ36から文字列を読み出すことによって、学習処理が開始される。
まず、学習部41は、文字列編集用メモリ36から読み出した文字列をセパレータと単語とに切り分ける(S1)。なお、学習部41は、セパレータで区切られる一続きの文字列を単語とみなす。また、どのような文字列をセパレータとみなすかは、予め定めておく。
これにより、上記読み出した文字列から、単語W(0)〜W(N)及びセパレータS(0)〜S(N)が取得される。なお、Nは、0以上の整数である。また、上記読み出した文字列にセパレータが含まれていない場合には、該文字列を1つの単語として取り扱う。この場合には、セパレータは格納されず、単語と「End」とが対応付けて格納される。
次に、学習部41は、予測メモリ42の全要素の優先度を所定の量下げる(S2)。具体的には、学習部41は、予測メモリ42に格納されているインデクスのデータの全てについて、優先度を1ずつ増加させる。
続いて、学習部41は、上記文字列の切り分けによって得た単語を、上記読み出した文字列の先頭から順に1単語ずつ取り出す(S3)。ここでは、取り出した単語をW(n)とする。なお、1≦n≦Nであり、nは整数である。単語W(n)を取り出した学習部41は、取り出した単語W(n)が上記文字列の最後(末尾)の単語であるか否かを判断する(S4)。
末尾の単語ではない場合(S4でNO)には、学習部41は、上記取り出した単語W(n)が上記読み出した文字列の最初(先頭)の単語であるか否かを判断する(S5)。最初の単語である場合(S5でYES)には、学習部41は、上記取り出した単語W(n)の登録処理を行う(S6)。そして、学習部41は、登録処理を行った後、再度S3に戻って単語の取り出しを行う。
一方、最初の単語ではない場合(S5でNO)には、学習部41は、上記取り出した単語W(n)の登録処理を行い(S7)、続いて、上記読み出した文字列において、単語W(n)と、該単語W(n)の直前の単語W(n−1)との接続情報を学習する(S8)。そして、学習部41は、接続情報の学習を行った後、再度S3に戻って単語の取り出しを行う。なお、S6の処理とS7の処理とは同じ処理である。
以上のように、S3〜5のループにより、上記読み出した文字列の先頭から順に取り出された各単語と、その単語の接続情報とが登録される。ここで、S3において取り出された単語W(n)が上記読み出した文字列の末尾の単語である場合(S4でYES)には、学習部41は、上記取り出した単語W(n)と、該単語W(n)の直前の単語W(n−1)との接続情報を学習し(S9)、学習処理を終了する。これにより、上記読み出した文字列に含まれる全ての単語が予測メモリ42に登録されると共に、登録された各単語間の接続情報が予測メモリ42に登録される。なお、S8の処理とS9の処理とは同じ処理である。
〔単語登録処理〕
続いて、図8のフローチャートにおける単語登録処理(S6及びS7)の詳細について、図9に基づいて説明する。図9は、単語登録処理の一例を示すフローチャートである。まず、学習部41は、取得した単語W(n)が既に予測メモリ42に登録されているか否かを確認するため、単語W(n)を予測メモリ42内で検索する(S11)。そして、学習部41は、単語W(n)が予測メモリ42内で検出されたか否かを確認する(S12)。
単語W(n)が予測メモリ42内で検出されたことが確認されなかった場合(S12でNO)には、学習部41は、単語W(n)を登録する登録先番号(i)を取得する(S13)。この登録先番号(i)がインデクスである。すなわち、単語W(n)は、インデクス(i)のデータとしてM(i)に登録される。
次に、学習部41は、M(i)に単語W(n)を登録する(S14)。具体的には、学習部41は、M(i)の単語文字列(spell)として、単語W(n)の文字列を登録する。したがって、S14の処理は、M(i)の単語文字列(spell)をM(i).spellと表すと、M(i).spell=W(n)と表記することができる。
そして、学習部41は、単語W(n)を登録したM(i)の優先度を設定する(S15)。ここでは、最も新しく登録されたインデクスのデータの優先度をゼロにすることを想定しているので、S15の処理は、M(i)の優先度(pri)をM(i).priと表すと、M(i).pri=0と表記することができる。
一方、S12において、W(n)が予測メモリ42内で検出されたことが確認された場合(S12でYES)には、学習部41は、単語文字列(spell)がW(n)であるインデクスのデータの優先度を変更する。例えば、W(n)が予測メモリ42内のM(i)に単語文字列(spell)として登録されていた場合には、学習部41は、M(i)の優先度をゼロにする(S15)。
以上のように、単語登録処理では、取得した単語W(n)が予測メモリ42に単語文字列(spell)として登録されていない場合には、単語W(n)を予測メモリ42のM(i)に登録して、M(i)の優先度をゼロにする。一方、取得した単語W(n)が予測メモリ42に単語文字列(spell)として登録されている場合には、単語W(n)が登録されているM(i)の優先度をゼロにする。
〔接続情報登録処理(セパレータ情報登録処理)〕
続いて、図8のフローチャートにおける接続情報登録処理(S8及びS9)の詳細について、図10に基づいて説明する。なお、接続情報登録処理には、セパレータ情報を登録するセパレータ情報登録処理と、単語情報を登録する単語情報登録処理とがある。図10では、セパレータ情報登録処理の一例を示している。
まず、学習部41は、上記取得した単語W(n)と、その直前の単語W(n−1)との間に位置するセパレータS(n−1)を取得する。続いて、学習部41は、直前の単語W(n−1)の登録番号(i)を取得し、M(i)の接続情報内でS(n−1)を検索する(S21)。そして、学習部41は、M(i)の接続情報内でS(n−1)が検出されたか否かを確認する(S22)。
M(i)の接続情報内でS(n−1)が検出されたことが確認されなかった場合(S22でNO)には、学習部41は、M(i)の接続情報のセパレータ情報に格納されているsep(0)〜sep(3)を、それぞれsep(1)〜sep(4)にシフトさせる(S23)。なお、図5に示すように、ここではセパレータ情報は、sep(0)〜sep(3)の4つのみである。すなわち、sep(4)にシフトさせるということは、その情報を忘れる(予測メモリ42から消去する)ということを意味する。このように、予測メモリ42に格納される接続情報は常に4つ以下となるので、学習処理を繰り返した場合であっても予測メモリ42の記憶容量が増大することがない。
一方、M(i)の接続情報内でS(n−1)が検出されたことが確認された場合(S22でYES)には、学習部41は、セパレータ情報内での優先度を変更する。すなわち、M(i)の接続情報内のsep(k)でS(n−1)が検出されたとすると、学習部41は、sep(0)〜sep(k−1)を、sep(1)〜sep(k)にシフトさせる(S25)。なお、0≦k≦3であり、kは整数である。
以上のように、S23またはS24にて、セパレータ情報がシフトされるので、セパレータ情報sep(0)〜sep(3)のうち、sep(0)が空く。学習部41は、この空いたsep(0)にセパレータS(n−1)を登録する(S24)。この処理は、M(i).sep(0)=S(n−1)と表すことができる。
ここで、上記S23及びS25の処理について図11に基づいて説明する。図11は、セパレータ情報の更新方法を説明する図である。なお、図11では、図示のように、学習前にセパレータ情報sep(0)〜sep(3)の各位置にそれぞれセパレータA〜Dが格納されていることを想定している。
図11の左側に示すように、セパレータA〜Dとは異なるセパレータXが登録された場合(図10のS23の場合)には、セパレータA〜Dは、それぞれ同図の右側にシフトされる。より詳細には、セパレータAは、sep(0)からsep(1)にシフトされ、セパレータBは、sep(1)からsep(2)にシフトされ、セパレータCは、sep(2)からsep(3)にシフトされる。そして、セパレータDは、セパレータ情報から外される(忘れられる)。そして、新規に登録されたセパレータXは、sep(0)に格納される。
一方、図11の右側に示すように、既にセパレータ情報として格納されているセパレータCが登録された場合(図10のS25の場合)には、セパレータCの左側に格納されているセパレータA及びBは、それぞれ同図の右側にシフトされる。より詳細には、セパレータAは、sep(0)からsep(1)にシフトされ、セパレータBは、sep(1)からsep(2)にシフトされる。なお、セパレータDの格納位置は変わらない。そして、新規に登録されたセパレータCは、sep(0)に格納される。
このように、学習部41は、新規に登録するセパレータの格納位置を固定し、セパレータが新規に登録される度に、既に登録されているセパレータの格納位置をシフトさせている。これにより、セパレータ情報には、常に最新の4つのセパレータが格納されることになる。
また、既に登録されているセパレータが再度登録された場合には、該登録されたセパレータは、上記新規に登録するセパレータの格納位置(sep(0))に格納される。これより、セパレータ情報内でsep(0)〜sep(3)が登録順に並ぶので、これを優先度として利用することができる。例えば、入力候補の数が候補選択キーの数よりも多い場合に、入力候補を候補選択キーの数以下に絞り込む必要が生じたときには、予測処理中に優先度順に並べ直す必要がないため高速に、最新に更新された順で入力候補を決定することができる。
〔接続情報登録処理(単語情報登録処理)〕
続いて、図8のフローチャートにおける接続情報登録処理(S8及びS9)の詳細について、図12に基づいて説明する。上述のように、接続情報登録処理には、セパレータ情報を登録するセパレータ情報登録処理と、単語情報を登録する単語情報登録処理とがある。図12は、単語情報登録処理の一例を示している。
まず、学習部41は、上記取得した単語W(n)の直前の単語W(n−1)の予測メモリ42内の番号、すなわちインデクス(i)を取得する。また、学習部41は、上記取得した単語W(n)のインデクス(j)を取得する。そして、学習部41は、直前の単語W(n−1)の接続情報(単語情報)内で単語W(n)を検索する(S31)。なお、図7(a)(b)に示すように、予測メモリ42の接続情報にはインデクスが格納されることを想定しているので、学習部41は、M(i)の接続情報(単語情報)内で単語W(n)のインデクス(j)を検索する。そして、学習部41は、M(i)の接続情報内でインデクス(j)が検出されたか否かを確認する(S32)。
M(i)の接続情報内でインデクス(j)が検出されたことが確認されなかった場合(S32でNO)には、学習部41は、M(i)の接続情報の単語情報に格納されているwd(0)〜wd(3)を、それぞれwd(1)〜wd(4)にシフトさせる(S33)。なお、図5に示すように、ここでは単語情報は、wd(0)〜wd(3)の4つのみである。すなわち、wd(4)にシフトさせるということは、その情報を忘れる(予測メモリ42から消去する)ということを意味する。
一方、M(i)の接続情報内でインデクス(j)が検出されたことが確認された場合(S32でYES)には、学習部41は、単語情報内での優先度を変更する。すなわち、M(i)の接続情報内のwd(k)でインデクス(j)が検出されたとすると、学習部41は、wd(0)〜wd(k−1)を、wd(1)〜wd(k)にシフトさせる(S35)。なお、0≦k≦3であり、kは整数である。
以上のように、S33またはS34にて、単語情報がシフトされるので、単語情報wd(0)〜wd(3)のうち、wd(0)が空く。学習部41は、この空いたwd(0)にインデクス(j)を登録する(S34)。この処理は、M(i).wd(0)=jと表すことができる。
このように、学習部41は、新規に登録する単語の格納位置を固定し、単語が新規に登録される度に、既に登録されている単語の格納位置をシフトさせている。これにより、単語情報には、常に最新の4つの単語が格納されることになる。
また、既に登録されている単語が再度登録された場合には、該登録された単語は、上記新規に登録する単語の格納位置(wd(0))に格納される。これより、単語情報内でwd(0)〜wd(3)が登録順に並ぶので、これを優先度として利用することができる。例えば、入力候補の数が候補選択キーの数よりも多い場合に、入力候補を候補選択キーの数以下に絞り込む必要が生じたときには、予測処理中に優先度順に並べ直す必要がないため高速に、最新に更新された順で入力候補を決定することができる。
〔入力候補決定処理〕
文字入力装置5では、第1候補決定部38または第2候補決定部39が、以上説明した学習処理によって更新される予測メモリ42を用いて、入力候補を決定する。以下では、入力候補決定処理について、図13から図23に基づいて説明する。
〔入力候補決定処理の全体の流れ〕
入力候補決定処理の全体の流れを図13に基づいて説明する。図13は、入力候補決定処理の一例を示すフローチャートである。
ここで、入力候補決定処理は、文字列編集用メモリ36に格納されている文字列が更新されたタイミングで実行される。具体的には、入力候補決定処理は、文字列更新部35によって文字列編集用メモリ36が更新されたタイミング、または文字列読み込み部33によって文字列編集用メモリ36が更新されたタイミングで実行される。図13では、文字列読み込み部33によって文字列編集用メモリ36が更新されたタイミングで実行される場合の処理を示していないので、まずこの場合の処理について説明する。
上述のように、文字列読み込み部33は、入力フィールドに入力されている文字列を文字列編集用メモリ36に格納する。このとき、文字列読み込み部33は、編集用候補決定部40に文字列を文字列編集用メモリ36に格納したことを伝達する。編集用候補決定部40は、文字列を文字列編集用メモリ36に格納した旨の伝達を受けると、文字列編集用メモリ36に格納された上記文字列を全消去する処理(Clearキー)と、スペースキーとを入力候補として入力候補割当部44に送る。
これにより、ユーザは、入力フィールドに入力されている文字列を全消去する操作を容易に行うことができ、また入力フィールドに入力されている文字列の後に“ ”(スペース)を入力する操作を容易に行うことができる。これは、検索サイト等でキーワード検索を行う場合に便利である。
例えば、検索キーワードAが所定の位置に入力されている状態で、該所定の位置を入力フィールドとした場合には、上記検索キーワードAの文字列が文字列読み込み部33によって文字列編集用メモリ36に読み込まれる。
ここで、上記検索キーワードAの代わりに別の検索キーワードBで検索を行う場合には、検索キーワードAを全消去する必要がある。上記の構成によれば、このような場合に、文字列を全消去する処理(Clearキー操作)を候補選択キーで行うことができるので便利である。
また、上記検索キーワードAにキーワードBを追加して検索を行う場合には、検索キーワードAの直後に“ ”(スペース)を入力する必要がある。上記の構成によれば、このような場合に、“ ”(スペース)を候補選択キーで行うことができるので便利である。なお、編集用候補決定部40は、図4の例のように、候補選択キーに常にスペースキーを割り当てる場合には、スペースキーを入力候補としない。
ここで、図13の説明に戻る。文字列読み込み部33によって文字列編集用メモリ36が更新された場合には、上述のような処理の後、図13のフローチャートのS41に示す処理が行われる。一方、文字列更新部35によって文字列編集用メモリ36が更新された場合には、S41の処理から入力候補決定処理が開始される。
すなわち、区切り文字判断部37は、文字列更新部35または文字列読み込み部33によって文字列編集用メモリ36が更新されると、文字列編集用メモリ36に格納されている文字列を読み出し、該読み出した文字列がURLであるか否かの判断を行う(S41)。読み出した文字列がURLである場合には、入力候補決定処理は、URLモードに切り換えられる。URLモードでは、第1候補決定部38及び第2候補決定部39は、URL入力時に適した入力候補を決定するようになっている。
次に、区切り文字判断部37は、上記読み出した文字列における、カーソル(入力位置)の直前の一文字を取得する(S42)。そして、区切り文字判断部37は、上記入力位置が文頭であるか、または上記取得した一文字がセパレータであるかを判断する(S43)。そして、区切り文字判断部37は、上記入力位置が文頭であるか、または上記取得した一文字がセパレータである場合には、第1候補決定部38に上記読み出した文字列を送る。一方、上記取得した一文字がセパレータ以外の文字である場合には、区切り文字判断部37は、第2候補決定部39に上記読み出した文字列を送る。
上記入力位置が文頭であるか、または上記取得した一文字がセパレータである場合(S43でYES)には、第1候補決定部38は、区切り文字判断部37が上記取得した一文字がCaps用セパレータであるか否かを判断する(S44)。なお、Caps用セパレータとは、セパレータのうち、該セパレータの次に大文字入力が行われる場合のあるセパレータであり、どのようなセパレータをCaps用セパレータとするかは、予め決められている。例えば、“.”(ピリオド)、“,”(カンマ)、及び“ ”(スペース)等をCaps用セパレータとすることができる。
そして、上記入力位置が文頭であるか、または上記取得した一文字がCaps用セパレータである場合(S44でYES)には、第1候補決定部38は、小文字入力と大文字入力とを切り換える処理(Capsキー)を入力候補として決定し、該決定した入力候補を入力候補割当部44に送る(S45)。
S45にて小文字入力と大文字入力とを切り換える処理(Capsキー)を入力候補として決定した後、またはS44にて上記入力位置が文頭でなく、かつ上記取得した一文字がCaps用セパレータではない場合(S44でNO)には、第1候補決定部38は、入力位置が文頭であるか否かを判断する(S46)。
入力位置が文頭である場合(S46でYES)には、第1候補決定部38は、入力候補割当部44に入力候補決定処理が終了したことを伝達する。そして、入力候補割当部44は、入力候補決定処理が終了した旨の伝達を受けると、入力候補を候補選択キーに表示させるために、表示用候補文字列を統一する(S48)。
一方、入力位置が文頭ではない場合(S46でNO)には、第1候補決定部38は、次単語候補を予測する(S47)。次単語候補を予測する処理は、入力位置の直前の単語に続く単語を入力候補として決定する処理である。第1候補決定部38は、上記決定した入力候補を入力候補割当部44に送ると共に、入力候補割当部44に入力候補決定処理が終了したことを伝達し、これにより処理はS48に移行する。
以上のように、S43にてカーソル(入力位置)が文頭にあるか、またはカーソル(入力位置)の直前の一文字がセパレータであると判断された場合(S43でYES)には、第1候補決定部38によって、入力候補が決定される。一方、S43にてカーソル(入力位置)の直前の一文字がセパレータ以外の文字であると判断された場合(S43でNO)には、第2候補決定部39によって入力候補が決定される。
すなわち、入力位置の直前の一文字がセパレータ以外の文字である場合(S43でNO)には、区切り文字判断部37は、第2候補決定部39に上記読み出した文字列を送る。そして、第2候補決定部39は、上記文字列を受け取ると、セパレータ候補を予測する(S49)。なお、セパレータ候補の予測とは、上記文字列において入力位置の直前の文字列に続くセパレータを入力候補として決定する処理を指す。また、第2候補決定部39は、上記決定した入力候補を入力候補割当部44に送る。
続いて、第2候補決定部39は、S49にて決定した入力候補の数がN以上であるか否かを確認する(S50)。なお、Nは、候補選択キーに割り当てることができる入力候補の最大数を示し、ゼロ以上の整数である。例えば図4の例において、候補選択キー25にスペースキーを固定的に割り当てた場合には、N=3となる。入力候補の数がN以上である場合(S50でYES)には、第2候補決定部39は、入力候補割当部44に入力候補決定処理が終了したことを伝達し、これにより処理はS48に移行する。
一方、入力候補の数がNより小さい場合(S50でNO)には、第2候補決定部39は、短縮候補を予測する(S51)。なお、短縮候補の予測とは、上記文字列において入力位置の直前の文字列を単語として完成させるための文字列を入力候補として決定する処理を指す。また、第2候補決定部39は、上記決定した入力候補を入力候補割当部44に送る。
短縮候補の予測が終了すると、第2候補決定部39は、S49及びS51にて決定した入力候補の合計数がN以上であるか否かを確認する(S52)。入力候補の数がN以上である場合(S52でYES)には、第2候補決定部39は、入力候補割当部44に入力候補決定処理が終了したことを伝達し、これにより処理はS48に移行する。
一方、入力候補の数がNより小さい場合(S52でNO)には、第2候補決定部39は、URL候補を予測する(S53)。URL候補の予測処理とは、URL入力の際に用いられる定型の文字列等を入力候補として決定する処理を指す。また、第2候補決定部39は、上記決定した入力候補を入力候補割当部44に送る。なお、URL候補の予測は、S41にてURLモードに設定されている場合にのみ実行される。S41にてURLモードに設定されていない場合には、S52の次にS55の処理が実行される。
URL候補の予測が終了すると、第2候補決定部39は、S49、S51、及びS53にて決定した入力候補の合計数がN以上であるか否かを確認する(S54)。入力候補の数がN以上である場合(S54でYES)には、第2候補決定部39は、入力候補割当部44に入力候補決定処理が終了したことを伝達し、これにより処理はS48に移行する。
一方、入力候補の数がNより小さい場合(S54でNO)には、第2候補決定部39は、次文字候補を予測する(S55)。次文字候補の予測処理とは、入力位置の直前の2文字に続く一文字候補を入力候補として決定する処理を指す。なお、S55では、S49、S51、S53、及びS55で決定された入力候補の総数がN以上となる個数だけ、1文字の入力候補が決定される。そして、第2候補決定部39は、上記決定した入力候補を入力候補割当部44に送ると共に、入力候補割当部44に入力候補決定処理が終了したことを伝達し、これにより処理はS48に移行する。
なお、上述の例は、入力候補決定処理の一例を示すものであり、入力候補決定処理は上述の例に限られず、適宜変更することが可能である。例えば、図13のフローチャートの入力候補決定処理は、入力候補数がN以上となった時点で終了するようになっている。したがって、S49、S51、S53、及びS55の処理のうち、先に実行される処理にて全ての入力候補が決定された場合、後続の処理は行われなくなる。
そこで、必要に応じて、S49、S51、S53、及びS55の処理で生成される入力候補のうち、候補選択キーにより優先して割り当てたい入力候補を生成する処理が先に実行されるように、S49、S51、S53、及びS55の処理を入れ替えればよい。例えば、S51の短縮候補予測処理とS49のセパレータ候補予測処理とを入れ替えることにより、短縮候補予測処理にて入力候補が決定された場合に、該入力候補が確実に候補選択キーに割り当てられる。
〔次単語候補予測処理〕
続いて、次単語候補予測処理の詳細について、図14に基づいて説明する。図14は、次単語候補予測処理の一例を示すフローチャートである。なお、次単語候補予測処理は、図13のフローチャートにおけるS47の処理に相当する。すなわち、次単語候補予測処理は、第1候補決定部38によって実行される。
まず、第1候補決定部38は、区切り文字判断部37から受け取った、文字列編集用メモリ36に格納されている文字列から、カーソル位置(入力位置)直前のセパレータより前のセパレータ以外で構成される文字列Wを取得する(S61)。すなわち、第1候補決定部38は、入力位置の直前の単語を取得する。
次に、第1候補決定部38は、予測メモリ42を参照し、単語文字列(spell)が文字列Wに一致するインデックスのデータをインデクス(0)のデータから昇順に検索する。ここで、単語文字列(spell)が文字列Wに一致するインデックスのデータが検出された場合には、第1候補決定部38は、該検出されたインデックスのデータから、単語情報の検索を行う(S62)。
なお、ここでは、M(i)の単語文字列(spell)が文字列Wに一致したとする。また、M(i)の単語情報をwd(j)とする。S62では、単語文字列(spell)が文字列Wに一致するM(i)の検索を行う。
単語文字列(spell)が文字列Wに一致するM(i)が検出されなかった場合(S63でNO)には、第1候補決定部38は、次単語候補予測処理を終了する。すなわち、この場合には、入力候補として次単語は出力されない。
一方、単語文字列(spell)が文字列Wに一致するM(i)が検出された場合(S63でYES)には、第1候補決定部38は、入力候補割当部44に送った入力候補の総数kが候補選択キーに割当可能な入力候補の最大数kmaxより小さいか否かを判断する(S64)。なお、kは自然数であり、kmaxは図13のNと同じ値である。
入力候補割当部44に送った入力候補の総数がkmax以上である場合(S64でNO)には、第1候補決定部38は、次単語候補予測処理を終了する。一方、入力候補割当部44に送った入力候補の総数がkmaxより少ない場合(S64でYES)には、第1候補決定部38は、M(i)の単語情報を参照し、次単語情報wd(j)がまだあるか否かを確認する(S65)。なお、jの初期値は0である。
次単語情報wd(j)がもうない場合(S65でNO)には、第1候補決定部38は、次単語候補予測処理を終了する。一方、次単語情報wd(j)がまだある場合(S65でYES)には、第1候補決定部38は、wd(1)を入力候補として決定し、該決定した入力候補を入力候補割当部44に送る(S66)。そして、処理は再度S64に移行し、第1候補決定部38は、候補数がkmaxより少ないか否かを判断する。
以上のように、次単語候補予測処理では、文字列Wに一致する単語が予測メモリ42内で検出された場合には、入力候補の総数がkmax以上となるか、または文字列Wが登録されているインデクスのデータ内の全単語情報を入力候補とするまで処理が行われる。本実施形態では、単語情報wd(j)を優先度順に記憶しておき、図14のフローチャートに示すように、優先度順に入力候補を決定している。したがって、入力候補の総数がkmax以上となったときには、最も優先度の高い入力候補が自動的に決定されている。
〔セパレータ候補予測処理〕
続いて、セパレータ候補予測処理の詳細について、図15に基づいて説明する。図15は、セパレータ候補予測処理の一例を示すフローチャートである。なお、セパレータ候補予測処理は、図13のフローチャートにおけるS49の処理に相当する。すなわち、セパレータ候補予測処理は、第2候補決定部39によって実行される。
まず、第2候補決定部39は、区切り文字判断部37から受け取った、文字列編集用メモリ36に格納されている文字列から、カーソル位置(入力位置)直前のセパレータ以外で構成される文字列Wを取得する(S71)。すなわち、第2候補決定部39は、入力位置の直前のセパレータを検出し、該セパレータの次の一文字で始まり、入力位置の直前の一文字で終わる文字列Wを取得する。なお、入力位置の前にセパレータが検出されない場合には、第2候補決定部39は、入力位置の前の全文字列を文字列Wとして取得する。
次に、第2候補決定部39は、予測メモリ42を参照し、単語文字列(spell)が文字列Wに一致するインデックスのデータをインデクス(0)のデータから昇順に検索する。ここで、単語文字列(spell)が文字列Wに一致するインデックスのデータが検出された場合には、第2候補決定部39は、該検出されたインデックスのデータから、セパレータ情報の検索を行う(S72)。
なお、ここでは、M(i)の単語文字列(spell)が文字列Wに一致したとする。また、M(i)のセパレータ情報をsep(j)とする。S72では、単語文字列(spell)が文字列Wに一致するM(i)の検索を行う。単語文字列(spell)が文字列Wに一致するM(i)が検出されなかった場合(S73でNO)には、第2候補決定部39は、セパレータ候補予測処理を終了する。すなわち、この場合には、入力候補としてセパレータは出力されない。
一方、単語文字列(spell)が文字列Wに一致するM(i)が検出された場合(S73でYES)には、第2候補決定部39は、入力候補割当部44に送った入力候補の総数がkmaxより小さいか否かを判断する(S74)。
入力候補割当部44に送った入力候補の総数がkmax以上である場合(S74でNO)には、第2候補決定部39は、セパレータ候補予測処理を終了する。一方、入力候補割当部44に送った入力候補の総数がkmaxより少ない場合(S74でYES)には、第2候補決定部39は、M(i)のセパレータ情報を参照し、セパレータ情報sep(j)がまだあるか否かを確認する(S75)。なお、jの初期値は0である。
セパレータ情報sep(j)がもうない場合(S75でNO)には、第2候補決定部39は、セパレータ候補予測処理を終了する。一方、セパレータ情報sep(j)がまだある場合(S75でYES)には、第2候補決定部39は、sep(1)を入力候補として決定し、該決定した入力候補を入力候補割当部44に送る(S76)。そして、処理は再度S74に移行し、第2候補決定部39は、候補数がkmaxより少ないか否かを判断する。
以上のように、セパレータ候補予測処理では、文字列Wに一致する単語が予測メモリ42内で検出された場合には、入力候補の総数がkmax以上となるか、または文字列Wが登録されているインデクスのデータ内の全セパレータ情報を入力候補とするまで処理が行われる。
また、本実施形態では、セパレータ情報sep(j)を優先度順に記憶しておき、図14のフローチャートに示すように、優先度順に入力候補を決定している。したがって、入力候補の総数がkmax以上となったときには、最も優先度の高い入力候補が自動的に決定されている。
〔短縮候補予測処理〕
続いて、短縮候補予測処理の詳細について、図16に基づいて説明する。図16は、短縮候補予測処理の一例を示すフローチャートである。なお、短縮候補予測処理は、図13のフローチャートにおけるS51の処理に相当する。すなわち、短縮候補予測処理は、第2候補決定部39によって実行される。
まず、第2候補決定部39は、区切り文字判断部37から受け取った、文字列編集用メモリ36に格納されている文字列から、カーソル位置(入力位置)直前のセパレータ以外で構成される文字列Wを取得する(S81)。すなわち、第2候補決定部39は、入力位置の直前のセパレータを検出し、該セパレータの次の一文字で始まり、入力位置の直前の一文字で終わる文字列Wを取得する。なお、入力位置の前にセパレータが検出されない場合には、第2候補決定部39は、入力位置の前の全文字列を文字列Wとして取得する。
次に、第2候補決定部39は、予測メモリ42を参照し、単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータを、インデクス(0)のデータから昇順に検索し(S82)、単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータが検出されたか否かを確認する(S83)。
単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータが検出されなかった場合(S83でNO)には、第2候補決定部39は、短縮候補予測処理を終了する。すなわち、この場合には、入力候補として短縮候補は出力されない。
一方、単語文字列(spell)の先頭部分が文字列Wに一致するインデクスのデータが検出された場合(S83でYES)には、第2候補決定部39は、上記検出されたインデクスのデータの優先度を検出し、既に入力候補として検出した短縮候補(設定済み候補)の中で、上記検出したインデクスのデータよりも優先度の低いものを検索する(S84)。そして、第2候補決定部39は、上記検出されたインデクスのデータの優先度が、上記設定済み候補の中で最も優先度が低いものよりも高いか否かを確認する(S85)。
なお、ここでは、M(i)の単語文字列(spell)の先頭部分が文字列Wに一致したとする。また、ここでは、上記設定済み候補をH(j)と呼び、上記設定済み候補の中で最も優先度の低いものをH(a)と呼ぶ(a≧j)。したがって、S84の処理は、M(i)より優先度の低いH(j)を検索する処理と表現することができ、S85の処理は、M(i)の優先度がH(a)の優先度よりも高いか否かを判断する処理と表現することができる。
M(i)の優先度がH(a)の優先度よりも低い場合(S85でNO)には、第2候補決定部39は、入力候補割当部44に送った入力候補の総数と、短縮候補決定処理で決定された入力候補の総数との和が候補選択キーに割当可能な入力候補の最大数kmaxより小さいか否かを判断する(S86)。
kmax以上である場合(S86でNO)には、第2候補決定部39は、S82の処理に戻って上記優先度を比較したM(i)の次のインデクスのデータ(M(i+1))から昇順に単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータを検索する。
一方、kmaxより少ない場合(S86でYES)には、第2候補決定部39は、M(i)の単語文字列(M(i).spell)を入力候補H(k)として決定する(S87)。そして、第2候補決定部39は、S82の処理に戻ってM(i)の次のインデクスのデータ(M(i+1))から昇順に、単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータを検索する。
ここで、S85において、M(i)の優先度がH(a)の優先度よりも高い場合(S85でYES)には、第2候補決定部39は、M(i)よりも優先度の低いH(a)を後ろにシフトし、M(i).spellを入力候補H(k)として決定する(S88)。なお、ここでH(a)を後ろにシフトするとは、H(a)を設定済みの入力候補の中における優先順位を下げることを指す。
続いて、第2候補決定部39は、入力候補割当部44に送った入力候補の総数と、短縮候補決定処理で決定された入力候補の総数との和が候補選択キーに割当可能な入力候補の最大数kmaxより小さいか否かを判断する(S89)。
kmax以上である場合(S89でNO)には、第2候補決定部39は、S82の処理に戻ってM(i)の次のインデクスのデータから昇順に単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータを検索する。
一方、kmaxより少ない場合(S89でYES)には、第2候補決定部39は、M(i)の単語文字列(M(i).spell)を入力候補H(k)として決定する(S90)。そして、第2候補決定部39は、S82の処理に戻ってM(i)の次のインデクスのデータから昇順に単語文字列(spell)の先頭部分が文字列Wに一致するインデックスのデータを検索する。
以上のように、短縮候補予測処理では、予測メモリ42に格納されている全ての単語文字列のうち、先頭部分が文字列Wと一致するものが検索される。そして、検出された単語文字列のうち、優先度が最も高いものが入力候補として決定される。
〔次文字候補予測処理〕
続いて、次文字候補予測処理の詳細について、図17に基づいて説明する。図17は、次文字候補予測処理の一例を示すフローチャートである。なお、次文字候補予測処理は、図13のフローチャートにおけるS55の処理に相当する。すなわち、次文字候補予測処理は、第2候補決定部39によって実行される。
まず、第2候補決定部39は、区切り文字判断部37から受け取った、文字列編集用メモリ36に格納されている文字列から、カーソル位置(入力位置)直前の2文字を取得する(S91)。なお、第2候補決定部39は、文頭より前には、スペースが入力されているものと判断する。例えば、入力位置の直前に「a」の一文字のみが入力されている場合には、第2候補決定部39は、入力位置の直前には、“ ”(スペース)、“a”と入力されていると判断する。
次に、第2候補決定部39は、入力候補割当部44に送った入力候補の総数と、次文字候補決定処理で決定された入力候補の総数との和が候補選択キーに割当可能な入力候補の最大数kmaxより小さいか否かを判断する(S92)。なお、ここでは、次文字候補決定処理で決定された入力候補をH(k)と表記する。
kmax以上である場合(S92でNO)であって、複数のH(k)が決定されている場合には、第2候補決定部39は、H(k)の文字候補部分をアルファベット順にソートする(S96)。なお、H(k)の文字候補部分とは、入力位置の直前の2文字に続く1文字の部分である。S96の処理は、必須の処理ではないが、アルファベット順にソートすることによって、候補選択キーに表示させたときに、ユーザが所望の候補選択キーを選択しやすくなるので、S96の処理を行うことが好ましい。S95にてソート処理を終了すると、第2候補決定部39は、決定したH(k)をソートされた順に入力候補割当部44に送る。
一方、kmaxより少ない場合(S92でYES)には、第2候補決定部39は、入力位置の直前の2文字に続く確率の高い文字Cを予め作成したテーブル(一文字予測メモリ43)から取得することを試みて(S93)、文字Cが取得されたか否かを確認する(S94)。
第2候補決定部39は、文字Cの取得に成功した場合(S94でYES)には、該取得した文字Cを入力候補として決定する(S95)。そして、第2候補決定部39は、S92の処理に戻って入力候補割当部44に送った入力候補の総数と、次文字候補決定処理で決定された入力候補の総数との和が候補選択キーに割当可能な入力候補の最大数kmaxより小さいか否かを判断する。
一方、文字Cの取得に失敗した場合(S94でNO)には、第2候補決定部39は、S96の処理に進んで、複数のH(k)が決定されている場合には、H(k)の文字候補部分をアルファベット順にソートし、ソートした入力候補を入力候補割当部44に送る。
以上のように、次文字候補予測処理では、図13のS49のセパレータ候補予測処理、S51の短縮候補予測処理、S53のURL候補予測処理、及びS55の次文字候補予測処理にて決定された入力候補の総数が、候補選択キーに割当可能な入力候補の最大数kmaxと等しくなるように、一文字の入力候補が決定される。
〔ULR候補予測処理〕
続いて、URL候補予測処理の詳細について図18〜図20に基づいて説明する。上述のように、URL候補予測処理は、図13のフローチャートにおけるS41の処理において、URLモードに設定された場合に実行される。そこで、まず図18に基づいてURLモードの設定処理について説明する。図18は、URLモード設定処理の一例を示すフローチャートである。なお、URLモード設定処理は、区切り文字判断部37によって実行される。
区切り文字判断部37は、文字列編集用メモリ36に格納されている文字列を読み出すと、該読み出した文字列の先頭の文字列を取得する(S101)。続いて、区切り文字判断部37は、上記取得した先頭の文字列が“http://”または“www”に一致するか否かを確認する(S102)。
そして、区切り文字判断部37は、上記取得した先頭の文字列が“http://”または“www”に一致していることを確認した場合(S102でYES)には、URLモードをセットする(S103)。これにより、図13のフローチャートにおけるS53の処理が実行されるようになる。
一方、区切り文字判断部37は、上記取得した先頭の文字列が“http://”または“www”に一致していることが確認できなかった場合(S102でNO)には、URLモードをクリアする(S104)。これにより、図13のフローチャートにおけるS53の処理が実行されなくなる。
なお、上記S101及びS102の処理は一例であり、この例に限られない。例えば、URLモードのセット及びクリアを上記とは別の文字列で判断するようにしてもよい。具体的には、先頭の文字列が“https://”に一致している場合にURLモードにセットするようにしてもよいし、“http://”、“www”、及び“https://”の一部(例えば“htt”、“http”、“:/”、“://”等)が文字列に含まれている場合にURLモードにセットするようにしてもよい。また、入力フィールドがURLの入力欄である旨の情報を情報処理装置から受信して、該情報を受信した場合にURLモードをセットするようにしてもよい。
以上のような処理によってURLモードにセットされた状態にて実行されるURL候補予測処理について、図19に基づいて説明する。図19は、URL候補予測処理の一例を示すフローチャートである。
なお、図13では、入力位置の直前の一文字がセパレータ以外の文字である場合(S43でNO)に実行されるURL候補予測処理のみを示しているが、入力位置の直前の一文字がセパレータである場合(S43でYES)にもURL候補予測処理は実行される。この場合には、URL候補予測処理は、S43とS44との間、S45とS46との間、またはS47とS48との間の何れかで実行される。図19では、入力位置の直前の一文字がセパレータ以外の文字である場合のURL候補予測処理とセパレータである場合のURL候補予測処理とを合わせて示している。以下では、まず第2候補決定部39が実行するURL候補予測処理について説明し、次に第1候補決定部38が実行するURL候補予測処理について説明する。
まず、第2候補決定部39は、カーソル(入力位置)直前の単語またはセパレータを取得する(S111)。すなわち、第2候補決定部39は、入力位置より前の全文字列を取得する。そして、第2候補決定部39は、入力位置の直前の文字列が先頭の単語であるか否かを確認する(S112)。すなわち、第2候補決定部39は、入力位置よりも前にセパレータがあるか否かを確認する。セパレータがない場合には、入力位置の直前の文字列が先頭の単語(または単語の一部)であると判断する。
入力位置の直前の文字列が先頭の単語(または単語の一部)である(S112でYES)には、第2候補決定部39は、入力中文字列W、すなわち入力位置の直前の文字列における先頭部分が“http://”または“www”の先頭部分に一致するか否かを確認する(S113)。そして、第2候補決定部39は、一致していない場合(S113でNO)には、入力候補を決定せずにURL候補予測処理を終了する。なお、ここでは“http://”及び“https://”については、特別に1単語とみなしている。
一方、入力位置の直前の文字列における先頭部分が“http://”または“www”の先頭部分に一致する場合(S113でYES)には、第2候補決定部39は、短縮候補“http://”または“www”を入力候補H(k)に設定し、該設定した入力候補H(k)を入力候補割当部44に送る。なお、短縮候補を入力候補H(k)に設定するとは、入力位置の直前の文字列を、単語として完成させるための文字列を入力候補として決定することを指す。この場合には、入力位置の直前の文字列を“http://”または“www”として完成させるための文字列が入力候補として決定される。
ここで、S112において、入力位置の直前の単語が先頭の単語ではない(S112でNO)ことを確認した場合には、第2候補決定部39は、カーソル(入力位置)以前には“://”以後の“/”がないか否かを確認する(S115)。すなわち、第2候補決定部39は、入力位置より前の全文字列に、“://”との文字列が含まれており、かつ“://”の後であって入力位置より前の文字列に“/”が含まれていないかどうかを確認する。
入力位置より前の全文字列に、“://”との文字列が含まれており、かつ“://”の後であって入力位置より前の文字列に“/”が含まれていない場合(S115でYES)には、第2候補決定部39は、セパレータの後ろが3文字以上であるか否か、すなわち入力位置の直前にあるセパレータの次の一文字から、入力位置の直前の一文字までの間の文字列が、3文字以上であるか否かを確認する(S116)。
3文字以上である場合(S116でYES)には、第2候補決定部39は、“.”(ピリオド)を入力候補として決定する(S117)。そして、第2候補決定部39は、上記決定した入力候補を入力候補割当部44に送り、URL候補予測処理を終了する。
なお、ここでは、セパレータの後ろが3文字以上でピリオドを入力候補とする例を示しているが、3文字に限定されず、任意の文字数でピリオドを入力候補とすることができる。しかしながら、一般に、“://”の後に“/”が含まれていない場合には、3文字以上の文字列が入力された後でピリオドを入力することが多いので、セパレータの後ろが3文字以上となったタイミングでピリオドを入力候補とすることが好ましい。
一方、入力位置の直前にあるセパレータの次の一文字から、入力位置の直前の一文字までの間の文字列が2文字以下である場合(S116でNO)には、第2候補決定部39は、入力位置の直前の文字列が“.com”または“.net”であるか否かを確認する(S120)。なお、図19では、S116の次に、カーソル(入力位置)直前が“.”であるか否かを確認するステップ(S118)が挿入されているが、これは第1候補決定部38がURL候補予測処理を行う場合のみに実行されるステップである。第1候補決定部38が実行するURL候補予測処理については後述する。
S120において、入力位置の直前の文字列が“.com”または“.net”である場合(S120でYES)には、第2候補決定部39は、セパレータ候補“/”を入力候補H(k)として決定する(S121)。一方、入力位置の直前の文字列が“.com”または“.net”ではない場合(S120でNO)には、第2候補決定部39は、入力候補を決定せずにURL候補予測処理を終了する。
ここで、S115において、入力位置より前の文字列に、“://”との文字列が含まれており、かつ“://”の後であって入力位置より前の文字列に“/”が含まれている場合(S115でNO)には、第2候補決定部39は、セパレータの後ろが2文字以上であるか否か、すなわち入力位置の直前にあるセパレータの次の一文字から、入力位置の直前の一文字までの間の文字列が、2文字以上であるか否かを確認する(S122)。
2文字以上である場合(S122でYES)には、第2候補決定部39は、“.”(ピリオド)を入力候補として決定する(S117)。そして、第2候補決定部39は、上記決定した入力候補を入力候補割当部44に送り、URL候補予測処理を終了する。一方、入力位置の直前にあるセパレータの次の一文字から、入力位置の直前の一文字までの間の文字列が1文字である場合(S122でNO)には、第2候補決定部39は、入力候補を決定せずにURL候補予測処理を終了する。
なお、ここでは、セパレータの後ろが2文字以上でピリオドを入力候補とする例を示しているが、2文字に限定されず、任意の文字数でピリオドを入力候補とすることができる。しかしながら、一般に、“://”の後に“/”が含まれている場合には、2文字以上の文字列が入力された後でピリオドを入力することが多いので、セパレータの後ろが2文字以上となったタイミングでピリオドを入力候補とすることが好ましい。
続いて、第1候補決定部38が実行するURL候補予測処理について説明する。第1候補決定部38が実行するURL候補予測処理は、図19のS115から開始される。すなわち、第1候補決定部38は、まず入力位置より前の文字列に“://”以後の“/”がないか否かを確認する(S115)。
入力位置より前の全文字列に、“://”との文字列が含まれており、かつ“://”の後であって入力位置より前の文字列に“/”が含まれていない場合(S115でYES)には、第1候補決定部38は、カーソル(入力位置)直前が“.”であるか否かを確認する(S118)。
すなわち、第1候補決定部38が実行するURL候補予測処理では、入力位置の直前はセパレータであるから、S116の処理は実行されず、S115でYESの場合には、S118の処理が実行される。同様に、S115でNOの場合には、S122の処理は実行されず、S123の処理が実行される。
入力位置直前が“.”ではない場合(S118でNO)には、第1候補決定部38は、入力候補を決定せずにURL候補予測処理を終了する。一方、入力位置直前が“.”である場合(S118でYES)には、次単語候補として“com”と“net”とを出力する(S119)。すなわち、第1候補決定部38は、“com”及び“net”との文字列をそれぞれ入力候補として決定し、決定した入力候補を入力候補割当部44に送り、URL候補予測処理を終了する。なお、入力候補として決定する文字列は、“com”及び“net”の何れか一方でもよい。また、上記の例の他に“org”などを入力候補としてもよい。
ここで、S115において、入力位置より前の全文字列に、“://”との文字列が含まれており、かつ“://”の後であって入力位置より前の文字列に“/”が含まれている場合(S115でNO)には、第1候補決定部38は、カーソル(入力位置)直前が“.”であるか否かを確認する(S123)。
入力位置直前が“.”ではない場合(S123でNO)には、第1候補決定部38は、入力候補を決定せずにURL候補予測処理を終了する。一方、入力位置直前が“.”である場合(S123でYES)には、次単語候補として“htm”と“html”とを出力する(S124)。すなわち、第1候補決定部38は、“htm”及び“html”との文字列をそれぞれ入力候補として決定し、決定した入力候補を入力候補割当部44に送り、URL候補予測処理を終了する。なお、入力候補として決定する文字列は、“htm”及び“html”の何れか一方でもよく、また“asp”等の文字列を入力候補としてもよい。
以上のように、URL候補予測処理では、入力位置の直前の一文字がセパレータであるか否かに応じて、また入力位置の直前のセパレータから入力位置の直前の一文字までの文字数に応じて、さらに“://”の後に“/”があるか否かに応じて入力候補が動的に決定されるようになっている。これにより、入力状況に応じた適切な入力候補が候補選択キーに割り当てられることになるので、ユーザはURLを容易に入力することができる。
〔URL予測の具体例〕
ここで、上述のURL候補予測処理にて入力候補が決定される具体例を図20に基づいて説明する。図20は、URL候補予測処理にて決定される入力候補の一例を示す図である。なお、図20は、“http://www.prediction.com/index.html”を入力する場合における、入力文字列と、該入力文字列が入力された(文字列編集用メモリ36に格納された)状態にて決定される入力候補の一例とを示している。
図示のように、“ht”との文字列を入力する(文字列編集用メモリ36に格納する)と、“ht”は、“http://”及び“https://”の先頭部分と一致するので、図19のS113及びS114の処理により、“http://”及び“https://”が入力候補として決定される。なお、ここでは、入力文字列の先頭部分が“ht”と一致した場合にURLモードに設定されることを想定している。
次に、“http://www”との文字列を入力する(文字列編集用メモリ36に格納する)と、“http://www”との文字列には、“://”の後に“/”がなく、入力位置の直前のセパレータ“/”(2つ目)の後ろが3文字(www)であるから、図19のS115〜S117の処理により、“.”(ピリオド)が入力候補として決定される。
続いて、“http://www.prediction”との文字列を入力する(文字列編集用メモリ36に格納する)と、“http://www.prediction”との文字列には、“://”の後に“/”がなく、入力位置の直前のセパレータ“.”の後ろが3文字以上(prediction)であるから、図19のS115〜S117の処理により、“.”(ピリオド)が入力候補として決定される。なお、“prediction”の“pre”まで入力した段階で“.”(ピリオド)が入力候補として決定されるようになる。
次に、“http://www.prediction.”との文字列を入力した(文字列編集用メモリ36に格納した)場合には、“http://www.prediction.”との文字列には、“://”の後に“/”がなく、入力位置の直前が“.”であるから、図19のS115、S118、及びS119の処理により、“com”、“net”、及び“org”が入力候補として決定される。
続いて、“http://www.prediction.com”との文字列を入力した(文字列編集用メモリ36に格納させた)場合には、“http://www.prediction.com”との文字列には、“://”の後に“/”がなく、入力位置の直前が“.”ではなく“.com”であるから、図19のS115、S118、S120、及びS121の処理により、“/”が入力候補として決定される。
次に、“http://www.prediction.com/index”との文字列を入力した(文字列編集用メモリ36に格納させた)場合には、“http://www.prediction.com/index”との文字列には、“://”の後に“/”があり、入力位置の直前のセパレータ“/”の後ろが2文字以上であるから、図19のS115、S122、及びS117の処理により、“.”が入力候補として決定される。なお、“index”の“in”まで入力した段階で“.”が入力候補として決定されるようになる。
そして、“http://www.prediction.com/index.”との文字列を入力した(文字列編集用メモリ36に格納させた)場合には、“http://www.prediction.com/index.”との文字列には、“://”の後に“/”があり、入力位置の直前が“.”であるから、図19のS115、S123、及びS124の処理により、“htm”、“html”、及び“asp”が入力候補として決定される。
〔候補文字列生成処理〕
続いて、以上のような処理によって決定された入力候補を候補選択キーに表示させるための候補文字列生成処理について、図21に基づいて説明する。候補文字列生成処理は、第1候補決定部38が次単語候補を入力候補として決定したとき(図13のS47)、及び第2候補決定部39がセパレータ候補、短縮候補、または次文字候補を入力候補として決定したとき(図13のS51、S55)に実行する処理である。ここでは、まず第2候補決定部39が短縮候補を入力候補として決定したときに実行する処理について説明する。
図21は、候補文字列生成処理の一例を示すフローチャートである。第2候補決定部39は、短縮候補を入力候補として決定したときに、短縮候補単語Hと入力済み文字列Wとを取得する(S131)。短縮候補単語Hとは、短縮候補予測処理にて検出された単語であり、入力済み文字列Wとは、上記短縮候補単語Hを構成する文字列のうち、既に入力済みの文字列であり、入力位置の直前の文字列(入力位置直前のセパレータの次文字から入力位置直前の文字までの文字で構成される文字列)である。
次に、第2候補決定部39は、短縮候補単語Hから入力済み文字列Wを除いた後半の文字列Sを求める(S132)。したがって、上記のようにして求めた文字列Sを入力位置に入力することにより、入力済み文字列Wが短縮候補単語Hとして完成されることになる。すなわち、上記文字列Sが入力候補である。ここでは、Sを入力候補の文字列と呼ぶ。
続いて、第2候補決定部39は、短縮候補単語Hが8文字以下であるか否かを判断する(S133)。これは、ここでは候補選択キーに表示可能な文字数が8文字であることを想定しているためである。すなわち、短縮候補単語Hの文字数が候補選択キーに表示可能な文字数を越えた場合には、そのままでは候補選択キーに表示することができないので、S133では短縮候補単語Hの文字数が候補選択キーに表示可能な文字数を超えているか否かが判断される。もちろん、候補選択キーに表示可能な文字数が変われば、S133で短縮候補単語Hの文字数と比較する数値もそれに合わせて変更される。なお、以下では、候補選択キーに表示可能な文字数を表示可能文字数Lと呼ぶ。
短縮候補単語Hが8文字以下である場合(S133でYES)には、第2候補決定部39は、文字列(W)Sを生成する(S134)。すなわち、第2候補決定部39は、入力済み文字列Wと入力候補の文字列Sとを結合させた文字列を生成する。このように、入力候補の文字列と入力済み文字列とが組み合わされた文字列を、ここでは候補文字列と呼ぶ。
なお、入力済み文字列Wは、短縮候補単語Hの入力済み部分であり、入力候補の文字列Sは短縮候補単語Hの未入力部分であるから、S134で生成される候補文字列は短縮候補単語Hの文字列と一致する。
ここで、入力済み文字列Wと入力候補の文字列Sとを結合させた文字列を表示させるときには、入力済み文字列Wと入力候補の文字列Sとがユーザに識別できるように表示する。すなわち、文字列(W)SのWに括弧を付しているのは、入力済み文字列Wと入力候補の文字列Sとを識別可能にすることを示している。なお、入力済み文字列Wと入力候補の文字列Sとは、ユーザが識別可能に表示されていればよく、その表示方法は特に限定されないが、ここでは入力済み文字列Wと入力候補の文字列Sとを色分けして表示することを想定している。
次に、第2候補決定部39は、入力候補の文字列Sと同じものが既に入力候補に設定されているか否かを確認する(S135)。入力候補の文字列Sと同じものが入力候補に設定されている場合(S135でYES)には、第2候補決定部39は、入力候補の文字列Sを入力候補とせずに候補文字列生成処理を終了する。
一方、入力候補の文字列Sと同じものが既に候補に設定されていない場合(S135でNO)には、第2候補決定部39は、文字列(W)Sを候補H(k)に代入する(S136)。これにより、文字列(W)Sが候補選択キーに表示される。そして、第2候補決定部39は、入力候補の決定後、候補文字列生成処理を終了する。
ここで、S133において、短縮候補単語Hが9文字以上である場合(S133でNO)には、第2候補決定部39は、入力済み文字列Wが3文字以下であるか否かを判断する(S137)。
これは、ここでは短縮候補単語Hの全体を候補選択キーに表示できない場合に、短縮候補単語Hを候補選択キーに表示するときには、入力済み文字列を3文字で示すことを想定しているためである。具体的には、上記の場合に入力済み文字列が4文字以上であるときには、該入力済み文字列を(‥+入力済み文字列の最後の一文字)で表すことを想定している。例えば、入力済み文字列が「abcde」である場合には、これを「‥e」と表示する。
入力済み文字列Wが3文字以下である場合(S137でYES)には、第2候補決定部39は、入力候補の文字列Sの長さが、{表示可能文字数L−入力済み文字列Wの文字数len(W)}となるように、後部を削除した入力候補の文字列S’を求める。すなわち、第2候補決定部39は、入力候補の文字列Sの先頭からL−len(W)文字分の文字列を入力候補の文字列S’とする。なお、S137の処理は、S’=substr(S,0,L−len(W))と表される。したがって、この場合には、入力済み文字列Wの全文字と、入力候補の文字列Sの先頭部分S’とが入力候補となる。そして、第2候補決定部39は、入力候補の文字列S’を生成すると、S135の処理に移行する。
ここで、S137において、入力済み文字列Wが4文字以上である場合(S137でNO)には、第2候補決定部39は、入力済み文字列Wの省略形W’の長さKを求める(S140)。具体的には、第2候補決定部39は、K=L−len(S)の式で文字列Wの省略形W’の長さ(文字数)Kを求める。
続いて、第2候補決定部39は、上記求めたKの値が3未満であるか否かを判断する(S141)。3未満である場合(S141でYES)には、第2候補決定部39は、Wの省略形W’を、“‥”+“Wの最後の一文字”による3文字にする(S142)。S142の処理は、W’=“‥”+substr(W,len(W)−1,1)と表される。
一方、Kが3以上である場合(S141でNO)には、第2候補決定部39は、Wの省略形W’を、“‥”+“Wの最後の(K−2)文字”にする(S143)。S143の処理は、W’=“‥”+substr(W,len(W)−(K−2),K−2)と表される。
以上のようにして、S142またはS143にてWの省略形W’を求めた第2候補決定部39は、入力候補の文字列Sの長さがL−len(W’)になるように、末尾の文字列を削除して文字列S’を求める(S144)。S144の処理は、S’=substr(S,0,L−len(W’))と表される。
そして、第2候補決定部39は、上記のようにして求めた文字列S’とWの省略形W’とを用いて候補文字列(W’)S’を生成する(S145)。候補文字列(W’)S’を生成した第2候補決定部39は、S135の処理に移行する。
以上のように第2候補決定部39が候補文字列を生成することにより、入力済み文字列が候補選択キーに表示される。これにより、ユーザはどの候補選択キーを選べばどのような単語が入力されるかを認識しやすくなり、ユーザの操作性が向上する。
また、上記S135及びS136の処理によれば、候補選択キーに表示可能な最大文字数以下の文字数だけ切り出して入力候補が決定されることにより、複数の入力候補の文字列が同一になった場合には、同一の文字列からなる入力候補の何れか1つのみが上記候補選択キーに割り当てられる。これにより、複数の候補選択キーに同じ文字列が割り当てられることがなくなるので、候補選択キーを有効に利用することができる。
同様に、第2候補決定部39がセパレータ候補または次文字候補を入力候補として決定したときには、H=W+S(Sは一文字候補)という候補を生成した後、図21に示す処理が実行される。これにより、一文字候補の直前の文字列と、該文字列に続く一文字候補とが候補選択キーに表示される。また、第1候補決定部38が次単語候補を入力候補として決定したときには、W=“”(空文字列)として、図21に示す候補文字列処理が実行される。なお、セパレータ候補及び次単語候補については、候補文字列生成処理を行わない構成としてもよい。
〔候補文字列統一処理〕
続いて、図13のS48にて実行される候補文字列統一処理の詳細について図22に基づいて説明する。図22は、候補文字列統一処理の一例を示すフローチャートである。候補文字列統一処理は、入力候補割当部44によって実行される。
すなわち、入力候補割当部44は、第1候補決定部38または第2候補決定部39から入力候補決定処理が終了した旨の伝達を受けると、第1候補決定部38または第2候補決定部39から受け取った全ての候補文字列を取得する(S151)。上述のように、候補文字列とは、入力候補の文字列と入力済み文字列とが組み合わされた文字列である。ここではこの候補文字列をH(i)(0≦i≦C−1)と表記する。iはゼロ以上の整数であり、Cは候補選択キーに割当可能な候補数である。
続いて、入力候補割当部44は、上記取得した候補文字列H(i)が複数である場合に、検出された候補文字列に含まれる入力済み文字列W’の中で最も短い(文字数が少ない)ものをWsとする(S152)。S152の処理は、Ws=min(W’(i))と表せる。
そして、入力候補割当部44は、上記取得した各候補文字列の入力済み文字列W’を上記Wsに置き換える(S153)。S153の処理は、W’(i)=W’sと表せる。候補文字列の入力済み文字列W’を上記Wsに置き換えた後、入力候補割当部44は、上記置き換え後の候補文字列を含む全ての入力候補を入力候補表示制御部34に送って、候補選択キーに表示させる。
以上のように、候補文字列統一処理では、複数の候補選択キーに表示する文字列が入力済み文字列W’を含むときには、各候補選択キーに表示する上記直前文字列の末尾の文字列を最も短い入力済み文字列W’、すなわちWsに統一する。これにより、候補選択キーに表示される入力済みの文字列が全ての入力候補キーで等しい長さで表示されるので、ユーザは入力済み文字列と、入力位置に入力される入力候補の文字列とを識別しやすくなる。
なお、Wsの長さは、必ずしも最も短い入力済み文字列に統一する必要はなく、全ての入力候補において、入力済み文字列の長さが統一されていれば、ユーザは入力済み文字列と、入力位置に入力される入力候補の文字列とを識別しやすくなる。しかしながら、最も短いものに統一することにより、表示される入力候補の文字列を長くすることができるので、入力済み文字列は、最も短いものに統一することが好ましい。
〔候補表示の具体例〕
ここで、上述の候補文字列生成処理及び候補文字列統一処理にて候補文字列が生成される具体例を図23に基づいて説明する。図23は、候補文字列生成処理及び候補文字列統一処理にて決定される候補文字列の一例を示す図である。なお、図23では、予測メモリ42内に“internet”、“international”、及び“internationalization”の3語が登録されている場合における、入力文字列と、該入力文字列が入力された(文字列編集用メモリ36に格納された)状態にて表示される候補文字列の一例とを示している。
ここで、“int”との文字列を入力する(文字列編集用メモリ36に格納する)と、“int”は、“internet”、“international”、及び“internationalization”の先頭部分と一致するので、図16に示す短縮候補決定処理により、これらの3単語が入力候補として決定される。すなわち、上記の3単語が、図21における短縮候補単語Hということになる。
ここで、“internet”は8文字(len(H)=8)、“international”は13文字(len(H)=13)、そして“internationalization”は20文字(len(H)=20)である。また、ここでは“int”が入力済み文字列Wということになる。
また、入力済み文字列が3文字であるから、“internet”の入力候補の文字列Sは“ernet”(len(S)=5)であり、“international”の入力候補の文字列Sは“ernational” (len(S)=10)であり、“internationalization”の入力候補の文字列Sは“ernationalization” (len(S)=17)である。
したがって、短縮候補単語“internet”は、図21のS133及びS134の処理によって、入力済み文字列“int”と、入力候補の文字列“ernet”とが組み合わされた候補文字列“(int)ernet”として表示される。なお、“int”に付した括弧は、“int”と“ernet”とを識別可能に表示することを示している。実際には、入力済み文字列と、入力候補の文字列とは、括弧を表示する態様の他、色分けして表示する等の任意の表示方法によって識別可能に表示される。以下の記載においても同様である。
これに対し、短縮候補単語“international”及び“internationalization”は、図21のS133及びS137の処理を経由してS138の処理に供される。ここで、短縮候補単語“international”及び“internationalization”の両方において、S’が“ernat”となる。したがって、S139の処理では、“international”及び“internationalization”の両方において、同じ候補文字列“(int)ernat”が生成されることになる。
ここで、図21の候補文字列生成処理は、1つの短縮候補単語Hが検出される度に実行されるようになっており、1つの候補文字列が決定されると、S135の処理によって同じ候補文字列は生成されないようになっている。したがって、この場合には、“international”及び“internationalization”のうち、先に短縮候補単語Hとして決定された方のみが候補文字列“(int)ernat”として決定される。なお、“international”及び“internationalization”の何れが候補文字列として決定された場合であっても、同じ候補文字列が表示される。また、何れの単語に由来する候補文字列が表示された場合であっても、選択された場合には同じ文字列(この場合には“ernat”)が入力される。
以上のようにして、2つの候補文字列“(int)ernet”及び“(int)ernat”が生成される。ここでは、入力候補数は3つ(N=3)であることを想定しているので、図13のS52及びS55の処理により、一文字候補が入力候補として決定される。すなわち、入力位置の直前の2文字“nt”の次に入力される可能性の高い一文字が一文字予測メモリ43から読み出されて入力候補として決定される。図示の例では、“nt”の次に入力される可能性の高い一文字が“e”であることを想定している。
そして、一文字候補が入力候補として決定されると、上述のように、図21においてH=W+Sとして候補文字列が生成される。すなわち、ここでは入力済み文字列Wが“int”であることを想定しているので、図21のS133及びS134の処理にて、“(int)e”との文字列が候補文字列として生成される。
次に、“intern”との文字列を入力する(文字列編集用メモリ36に格納する)と、図21のS133〜S135の処理により、短縮単語候補“internet”から“(intern)et”が候補文字列として生成される。また、図21のS133、S137、S140、S141、S143、S145、及びS146の処理によれば、短縮候補単語“international”及び“internationalization”の両方において、“(‥n)ation”が候補文字列となるので、S135の処理でこれらの何れか一方が候補文字列として決定される。
そして、残った1つの入力候補として一文字候補が決定される。ここでは、入力位置の直前の2文字“rn”の次に入力される可能性の高い一文字が“i”であることを想定している。また、一文字候補は、候補文字列生成処理に供される。この場合には、候補文字列は“(intern)i”となる。
以上のように、“intern”との文字列を入力した状態では、“internet”から“(intern)et”、“international”及び“internationalization”から“(‥n)ation”、そして一文字候補から“(intern)i”がそれぞれ候補文字列として生成される。ここで、上記3つの候補文字列には、異なる長さの入力済み文字列(“intern”と“‥n”)が含まれている。
したがって、図22の候補文字列統一処理によって、最も短い入力済み文字列に統一される。すなわち、この場合には、“‥n”が最も短い入力済み文字列であるから、入力済み文字列を含む全ての候補文字列について、入力済み文字列が“‥n”に置き換えられる。これにより、図示のように、“(‥n)et”、“(‥n)ation”、及び“(‥n)i”の3つの候補文字列が表示される。
次に、“interne”との文字列を入力する(文字列編集用メモリ36に格納する)と、図21のS133〜S135の処理により、短縮単語候補“internet”から“(interne)t”が候補文字列として生成される。ここで、入力済み文字列“interne”は、“international”及び“internationalization”の何れの先頭部分とも一致しないので、これらの単語は短縮候補とならない。
そこで、残る2つの入力候補として、一文字候補が決定される。ここでは、入力済み文字列“interne”の末尾2文字が“ne”であるから、“ne”の次に入力される可能性の高いものから順に一文字候補に決定される。ここでは、“s”と“a”とが一文字候補として決定されたことを想定している。これらの一文字候補は、候補文字列生成処理に供される。この場合には候補文字列は“(interne)s”及び“(interne)a”と決定される。
以上のように、“interne”との文字列を入力した状態では、“internet”から“(interne)t”、一文字候補から“(interne)s”及び“(interne)a”が候補文字列として決定されて、図23のように表示される。なお、図示のように、短縮候補と一文字候補とは特に区別されずに表示される。
一方、“internat”との文字列を入力する(文字列編集用メモリ36に格納する)と、入力済み文字列“internat”は、“internet”の先頭部分と一致しないので短縮候補とならない。この場合には、“international”及び“internationalization”が短縮候補となる。
図21の処理に従って短縮候補“international”及び“internationalization”から候補文字列を生成した場合には、“international”及び“internationalization”の両方において、“(‥n)ional”との候補文字列が生成される。したがって、この場合にも、“international”及び“internationalization”からは、“(‥n)ional”との候補文字列のみが生成される。
そこで、残る2つの入力候補として、一文字候補が決定される。ここでは、“e”と“i”とが一文字候補として決定されたことを想定している。これらの一文字候補は、候補文字列生成処理に供されるので、この場合には候補文字列は“(‥ernat)e”及び“(‥ernat)i”と決定される。
このようにして決定された上記3つの候補文字列では、入力済み文字列の長さが異なっているので、最も短いものに統一される。これにより、図23に示すように、“(‥n)ional”、“(‥n)e”、及び“(‥n)i”が入力候補として表示される。
続いて、“internati”との文字列を入力する(文字列編集用メモリ36に格納する)と、“internati”との入力済み文字列は、“international”及び“internationalization”の先頭部分と一致するので、“international”及び“internationalization”が短縮候補となる。
図21の処理に従って短縮候補“international”及び“internationalization”から候補文字列を生成すると、“international”からは“(‥n)onal”との候補文字列が生成され、“internationalization”からは“(‥n)onali”との候補文字列が生成される。すなわち、“internati”まで入力することにより、“international”と“internationalization”とが別の候補文字列となるので、これら2つの単語に由来する候補文字列がそれぞれ別の入力候補として表示されることになる。
以下、上記と同様に、一文字候補が決定され、候補文字列統一処理が行われることにより、図23に示すように、“(‥i)onal”、“(‥i)onali”、及び“(‥i)o”が候補文字列として表示される。なお、“(‥i)o”は、短縮候補である。
ここで、“international”との文字列を入力する(文字列編集用メモリ36に格納する)と、“international”との入力済み文字列は、“international”に完全に一致するので、図13のS49の処理、すなわちセパレータ候補予測処理によって、“international”の次に入力されるセパレータの有無が検索される。ここでは、“international”のセパレータ情報として、“,”が登録されていることを想定しているので、“,”が入力候補として決定される。
また、“international”との入力済み文字列は、“internationalization”の先頭部分に一致するので、“internationalization”が短縮候補となる。図21の処理に従って、“internationalization”から候補文字列を決定すると、“(‥l)izati”との候補文字列が決定される。
以上の処理により、2つの入力候補が決定されるので、残り1つの入力候補を埋めるために一文字候補が決定される。ここでは、“i”が一文字候補として決定されたことを想定している。そして、上記決定された一文字候補は、候補文字列生成処理により、“(ational)i”との候補文字列となる。
これにより、3つの入力候補が全て揃うので、上記決定された3つの入力候補について図22の候補文字列統一処理が行われ、図23に示すような候補文字列、すなわち“(‥l)izati”、“(‥l),”、及び“(‥l)i”が表示される。このように、セパレータを入力候補とする場合にも、セパレータと併せて入力済み文字列を表示するようにしてもよい。
続いて、“internationaliz”との文字列を入力する(文字列編集用メモリ36に格納する)と、“internationaliz”との入力済み文字列は、“internationalization”の先頭部分に一致するので、“internationalization”が短縮候補となる。図21の処理に従って “internationalization”から候補文字列を決定すると、“(‥z)ation”との候補文字列が決定される。
そして、残り2つの入力候補として一文字候補が決定される。ここでは、“a”と“e”とが入力候補として決定されたことを想定している。そして、上記決定された一文字候補は、候補文字列生成処理により、入力済み文字列を含む候補文字列となる。
これにより、3つの入力候補が全て揃うので、上記決定された3つの入力候補について図22の候補文字列統一処理が行われ、図23に示すような候補文字列、すなわち“(‥z)ation”、“(‥z)a”、及び“(‥z)e”が表示される。このように、“internationaliz”まで入力された段階で、“internationalization”との単語を完成させるための文字列が最後まで表示される。
最後に、“internationalization”との文字列を入力する(文字列編集用メモリ36に格納する)と、“internationalization”との入力済み文字列は、“internationalization”に完全に一致するので、セパレータ候補予測処理によって、“internationalization”の次に入力されるセパレータの有無が検索される。ここでは、“internationalization”のセパレータ情報として、“ ”(スペース)が登録されていることを想定しているので、“ ”(スペース)が入力候補として決定される。
そして、残り2つの入力候補として一文字候補が決定される。ここでは、“i”と“s”とが入力候補として決定されたことを想定している。そして、上記決定された一文字候補は、候補文字列生成処理により、入力済み文字列を含む候補文字列となる。
これにより、3つの入力候補が全て揃うので、上記決定された3つの入力候補について図22の候補文字列統一処理が行われ、図23に示すような候補文字列、すなわち“(‥n)_”、“(‥n)i”、及び“(‥n)s”が表示される。なお、図23では、スペースをアンダーライン(_)で示している。このように、スペースを何らかの記号で表すようにしてもよいし、図4に示すように「Space」との文字列を表示してもよい。要は、ユーザが、当該候補選択キーの操作によってスペースが入力されることを認識できるようにしておけばよい。
〔具体例〕
続いて、図3に示す遠隔操作装置4にて、図4に示す入力ウインドウ20を用いて文字入力を行った場合の表示例について、図24〜図41に基づいて説明する。
〔候補選択キーに表示された入力候補の入力例〕
図24は、候補選択キー25に割り当てられた入力候補の入力を行う方法を説明する図である。ここでは、“Hollywood”との単語が予測メモリ42に登録されており、“Hollywood”の単語情報に“movies”及び“los”が登録されているものとする。
また、同図(a)に示すように、入力枠21には、“Hollywood”との文字列の次にスペースが入力されており、スペースの次にカーソルが表示されている。このカーソルの位置が入力位置である。
上述のように、文字入力装置5では、文字列編集用メモリ36に格納されている文字列が更新されると、文字列表示制御部32が文字列編集用メモリ36に格納されている文字列を入力枠21に表示するようになっている。したがって、入力枠21には、文字列編集用メモリ36に格納されている最新の文字列が表示されている。そして、この文字列編集用メモリ36に格納されている最新の文字列において、上記カーソルの位置が入力位置に設定されている。
同図(a)の例では、入力位置の直前がスペースであるから、図13のS41〜S45の処理により、大文字と小文字とを切り換える処理(Capsキー)が候補選択キー25に割り当てられている。また、ここでは、“Hollywood”の単語情報に“movies”及び“los”が登録されていることを想定しているので、図13のS41〜S46の処理により、“movies”及び“los”が候補選択キー25に割り当てられている。
具体的には、図示の例では、Capsキーが「A」の文字が表示されている候補選択キー25に割り当てられており、“movies”が「B」の文字が表示されている候補選択キー25に割り当てられており、“los”が「C」の文字が表示されている候補選択キー25に割り当てられている。また、「D」の文字が表示されている候補選択キー25にはスペースキーが固定的に割り当てられている。
ここで、図3に示す遠隔操作装置4の候補決定ボタン15のうち、「B」の文字が付された候補決定ボタン15が押下されると、図24(c)に示すように、「B」の文字が表示されている候補選択キー25に割り当てられている入力候補“movies”が入力位置に入力される。このように、候補決定ボタン15を使用することにより、“movies”との文字列をワンタッチで入力することができる。
なお、図24(b)に示すように、「B」の文字が表示されている候補選択キー25にフォーカス26を合わせた状態で、遠隔操作装置4の決定ボタン11を押下した場合であっても、図24(c)に示すように、「B」の文字が表示されている候補選択キー25に割り当てられている入力候補“movies”が入力位置に入力される。この場合であっても、文字入力キー23から一文字一文字を選択しながら“movies”を入力する場合と比べて、容易かつ迅速に入力を行うことができる。
〔Capsキーの動的な割り当てを行うときの表示例〕
図25は、Capsキーを候補選択キー25に割り当てるときの表示例を示す図である。同図(a)では、入力枠21に文字が表示されておらず、カーソルが入力枠の左端に表示されている。すなわち、同図(a)は、入力位置が文頭である状態を示している。
文字入力装置5では、図13のS44及びS45の処理により、入力位置が文頭である場合には、同図(a)に示すように、候補選択キー25に大文字と小文字とを切り換える処理すなわちCapsキーが割り当てられる。図示の例では、図24(a)の例と同様に、「A」の文字が表示されている候補選択キー25に割り当てられている。このように、特定の処理を候補選択キー25の特定の位置に割り当てることで、ユーザがキーの割り当て位置を認識しやすくなるので好ましい。
ここで、図25(a)の状態にて、「A」の文字が表示されている候補選択キー25に入力操作を行うと、入力ウインドウ20は同図(b)に示す表示状態に更新される。なお、候補選択キー25に入力操作を行うとは、図24で説明したように、候補選択キー25に対応する候補決定ボタン15を押下するか、またはフォーカス26を合わせて決定ボタン11を押下する操作を指す。
図25(b)では、編集処理キーのCapsキーの表示が「Caps ON」に切り換わっている。また、文字入力キーが大文字に切り換わっている。なお、ここでは、入力位置は文頭のまま変わらないので、「A」の文字が表示されている候補選択キー25には引き続きCapsキーが割り当てられている。
また、文字入力装置5では、図13のS44及びS45の処理により、入力位置の直前がCaps用セパレータである場合にも、候補選択キー25にCapsキーが割り当てられる。したがって、図25(c)に示すように、入力枠21内に文字列が入力されている場合であって、入力位置の直前がスペース(Caps用セパレータ)である場合にも、候補選択キー25にCapsキーが割り当てられる。
〔スペースキーの動的な割り当てを行うときの表示例〕
図26は、スペースキーを候補選択キー25に動的に割り当てるときの表示例を示す図である。同図(a)では、入力枠21“m”の一文字が表示されており、“m”の次にカーソルが表示されている。ここで、同図(a)の候補選択キー25には、スペースキーが割り当てられていない。すなわち、上述の例では、スペースキーを候補選択キー25に固定的に割り当てる態様を示していたが、ここではスペースキーを候補選択キー25に固定的に割り当てず、必要に応じてスペースキーを候補選択キー25に動的に割り当てる例を示している。ただし、候補選択キー25にスペースが割り当てられていない場合にもスペースを入力できるよう、図示の例では編集処理キー24としてスペースキーを配置している(改行キーの上側)。
また、図示のように、「A」〜「D」の候補選択キー25には、それぞれ“movies”、“msn”、“mail”、及び“map”と表示されている。すなわち、図26の例では、少なくともこれら4単語が予測メモリ42に格納されていることを想定している。このように、スペースキーを固定的に割り当てない場合には、スペースキーの入力される確度が低いときに、スペースキー以外の入力候補を候補選択キーに割り当てることができ、候補選択キーをより有効に活用することができる。
そして、同図(a)の状態にて、「A」の候補選択キー25に入力操作を行ったときの表示例が同図(b)である。図示のように、「A」の候補選択キー25に入力操作を行うことにより、入力枠21には、「A」の候補選択キー25に割り当てられていた入力候補“movies”が入力される。
ここで、同図(b)の状態では、カーソルの直前の文字列が予測メモリ42に格納されている単語“movies”に完全に一致する。したがって、図13のS49の処理、すなわちセパレータ候補予測処理にて、“movies”に続くセパレータ候補が入力候補として決定される。したがって、予測メモリ42内において、“movies”に続くセパレータとしてスペースが格納されている場合には、図示のように候補選択キー25には、スペースキーが割り当てられることになる。
なお、スペースキーは、短縮候補や次単語候補の入力候補と紛れないように、候補選択キー25の予め決まった位置に表示させることが好ましい。ここでは、スペースキーを常に「D」の候補選択キー25に割り当てるようにしている。
〔セパレータと単語とを分けて学習するメリット〕
図5から11に基づいて説明したように、文字入力装置5では、ユーザが入力した文字列をそのまま予測メモリ42に格納するのではなく、ユーザが入力した文字列からセパレータと単語とを切り出し、単語と該単語に続くセパレータとを対応付けて記憶すると共に、セパレータを挟んで連続する2単語を対応付けて記憶する。これにより、入力されるセパレータが変化した場合にも柔軟に対応することができる。ここでは、セパレータと単語とを分けて学習するメリットについて、図27に基づいて説明する。
同図(a)では、“Tokyo,Japan”及び“Tokyo.place”の2つの文字列を学習させた状態にて、“Tokyo”と入力した場合の表示例を示している。“Tokyo,Japan”及び“Tokyo.place”を学習させた場合には、図8に示す学習処理により、学習部41は、“Tokyo”、“Japan”及び“place”の単語を予測メモリ42に格納すると共に、“Tokyo”のセパレータ情報として“,”及び“.”を格納する。また、“Tokyo”の単語情報として“Japan”及び“place”を格納する。
ここで、“Tokyo”と入力した状態では、カーソル直前の文字列が予測メモリ42内の単語“Tokyo”に一致するので、図示のように、“Tokyo”に対応付けられているセパレータ“,”及び“.”が候補選択キー25に割り当てられる。なお、ここでは「D」の候補選択キー25にはスペースキーが固定的に割り当てられているものとする。
そして、同図(a)の状態にて、「D」の候補選択キー25を操作して“Tokyo”の次にスペースを入力した状態を同図(b)に示している。図示のように、“Tokyo”の単語情報として予測メモリ42に格納されている“Japan”及び“place”が候補選択キー25に割り当てられる。
すなわち、文字入力装置5では、“Tokyo”の次が、上記学習したセパレータ“,”または“.”でない場合にも、“Tokyo”の次単語候補として、“Japan”及び“place”が決定されるようになっている。つまり、文字入力装置5では、単語の次に、学習していない任意のセパレータが入力された場合であっても、その単語の次に続く単語の候補を出力することができる。
〔短縮候補とセパレータ候補と一文字候補との混在表示〕
文字入力装置5では、図13のフローにしたがって入力候補を決定するので、CapsキーやDoneキーなどの操作キーに対応する候補、次単語候補、セパレータ候補、短縮候補、URL候補、及び次文字候補が候補選択キー25に動的に割り当てられる。すなわち、文字入力装置5では、上記のような入力候補決定方法を組み合わせることにより、状況に応じた適切な入力候補が候補選択キー25に動的に割り当てられるようにしている。
図28は、“music”との単語が予測メモリ42に登録されている場合に、“mu”と入力したときの表示例を示している。入力済み文字列“mu”が登録単語“music”の先頭部分に一致しているので、図示のように“music”が候補選択キー25に割り当てられる。また、入力済み文字列“mu”に続くと予測される一文字が一文字候補として、「B」及び「C」の候補選択キー25に割り当てられている。なお、「D」の候補選択キー25には、スペースキーが固定的に割り当てられている。
このように、文字入力装置5では、図13に示すような、多様な入力候補決定処理を組み合わせて実行するので、決定される入力候補も多様な候補が組み合わされて出力される。これにより、候補選択キー25に割り当てる入力候補が入力状態に応じて適切に決定される。図示の例では、候補選択キー25が「A」〜「D」の4つしかないので、入力状態に応じて入力候補を切り換えることは重要である。
特に、文字入力装置5では、直前文字列に基づいて入力候補を決定すると共に、入力位置の直前の文字列であって所定の文字数の文字列に対応付けて記憶されている一文字候補を入力候補として決定している。
一文字候補は、所定の文字数の文字列に対応付けて記憶されている一文字であるから、任意の文字の組み合わせに対して一文字候補を用意しておくことができる。すなわち、一文字候補であれば、入力位置の直前の文字列がどのような文字列であっても入力候補として決定することができる。
したがって、上記の構成によれば、直前文字列が予め記憶している単語と一致しない場合であっても入力候補を候補選択キーに割り当てることができ、また予め記憶している単語がユーザの入力したい単語と異なっている場合であっても、ユーザの文字入力の一助となる一文字候補を候補選択キーに割り当てることができる。その結果、ユーザの所望の文字列を、候補選択キーを用いて簡単な操作で迅速に入力することができる。
〔URL入力時の表示例〕
次に、URLモードにて入力を行う場合の表示例について図29に基づいて説明する。図29は、“http://abc.com/”とのアドレスを入力する場合の表示例を示している。同図の左端の図では、入力枠21に“http://abc”との文字列が入力されている。この場合には、入力済み文字列の先頭部分が“http://”に一致するので、図18の処理によってURLモードに設定される。
また、図示の例では、カーソルより前に“//”以後の“/”がなく、カーソルより前のセパレータ(この場合には“/”)からカーソル直前までの文字数が3文字であるから、図19のS115、S116、及びS117の処理により、セパレータ候補として“.”が決定されることになる。これにより、図示のように、候補選択キー25に“.”が割り当てられることになる。
図29の左端の図に示す状態において、“.”を入力すると、入力ウインドウ20は、同図の中央に示す状態に切り替わる。すなわち、カーソルより前に“//”以後の“/”がなく、カーソル直前が“.”であることから、図19のS115、S118、及びS119の処理により、候補選択キー25に“com”及び“net”が割り当てられ、図示のように表示される。
そして、図29の中央に示す状態において、“com”を入力すると、入力ウインドウ20は、同図の右端に示す状態に切り替わる。すなわち、カーソルより前に“//”以後の“/”がなく、カーソル直前が“com”であることから、図19のS115、S120、及びS121の処理により、候補選択キー25に“/”が割り当てられ、図示のように表示される。
すなわち、文字入力装置5によれば、“http://abc”と入力された状態から、候補選択キー25に2回の入力操作を行うだけで、“http://abc.com/”とのアドレスを入力することができる。このように、文字入力装置5を用いることによって、ユーザはURLの入力を簡単なキー操作で迅速に行うことができる。
〔入力候補の表示例〕
文字入力装置5では、候補選択キー25に表示可能な文字数が限られているので、入力候補の表示方法に工夫を施すことにより、限られた文字数でもユーザに分かり易い表示が実現されている。ここでは、図30に基づいて入力候補の表示例について説明する。図30は、入力候補の表示例を示す図である。
同図(a)は、“index”、“is”、及び“ice”との3つの単語が予測メモリ42に格納されている場合に、“i”との文字を入力したときの表示例を示している。この場合には、“i”で始まる“index”、“is”、及び“ice”が短縮候補として選択されて、さらに入力候補に決定される。そして、図21に示す候補文字列決定処理によって候補文字列が生成され、該生成された候補文字列が候補選択キー25に表示されている。
ここでは、「A」〜「D」の候補選択キー25に表示可能な文字数が8文字であることを想定しているので、上記3つの単語は、入力済みの文字“i”を含めた単語の全文字列が候補選択キー25に表示されている。
ここで、上記3つの単語に加えて、“ichinomotostation”及び“ichinomotocho”の2単語を学習させた場合に、“i”との文字を入力したときの表示例を同図(b)に示す。“ichinomotostation”及び“ichinomotocho”は、いずれも単語の文字数が8文字を超えているので、単語の全文字列を候補選択キー25に表示させることはできない。
上記2単語については、その先頭部分のみを表示させることが考えられるが、“ichinomotostation”及び“ichinomotocho”の先頭8文字は、いずれも“ichinomo”で共通している。したがって、“ichinomotostation”及び“ichinomotocho”の先頭8文字を両方とも候補選択キー25に表示した場合には、同じ表記の候補選択キー25が2つ表示される。そして、その一方には、“ichinomotostation”が割り当てられており、他方には“ichinomotocho”が割り当てられている状態となる。このような状態では、ユーザはいずれの候補選択キー25を選択すればよいのか判断に困ることになるので好ましくない。
そこで、文字入力装置5では、図21のS135の処理により、同一の文字列からなる複数の候補文字列が決定されないようにしている。したがって、図30(b)に示すように、“ichinomotostation”及び“ichinomotocho”の2つの単語が登録されている場合であっても、これらの単語に対応する候補選択キー25は、“ichinomo”との候補文字列が表示された「A」の候補選択キー25のみとなる。これにより、ユーザがどの候補選択キー25を選択すればよいのか判断に困ることがなくなる。
なお、“ichinomo”との文字列が表示された「A」の候補選択キー25に入力操作を行うことによって、入力ウインドウ20は、同図(c)に示す状態に更新される。図示のように、入力枠21には、“ichinomo”との文字列が表示されており、「A」の候補選択キー25には“‥otosta”との文字列が表示されており、「B」の候補選択キー25には“‥otocho”との文字列が表示されている。
このように、文字入力装置5では、単語の一部が切り出されて候補文字列となることによって、候補選択キー25に表示される候補文字列が同じになる場合には、その1つのみを候補選択キー25に割り当てるようにしている。
そして、複数の入力候補に対応する候補文字列が表示されている候補選択キー25が入力操作を受けた場合には、同図(c)に示すように、候補文字列に含まれる入力候補の文字列のみ(この例では“ichinomo”)を入力するようにしている。
これにより、ユーザは、“ichinomotostation”を入力する場合には、「A」の候補選択キー25を用いればよく、一方“ichinomotocho”を入力する場合には、「B」の候補選択キー25を用いればよいことを容易に認識することができる。
なお、文字入力装置5では、候補選択キー25に入力操作を行った場合には、当該候補選択キー25に表示されている候補文字列のうち、入力候補の文字列のみが入力されるようにしている。すなわち、文字入力装置5では、図30の例のように、複数の入力候補が同じ候補文字列となる場合に限らず、常に候補選択キー25に表示されている候補文字列のうち、入力候補の文字列のみが入力されるようにしている。
これについて、図31に基づいて説明する。図31では、“ichinomotocho”、“index”、及び“is”の3つの単語が予測メモリ42に格納されている場合の表示例を示している。同図(a)に示すように、“i”の文字が入力されると、“ichinomotocho”、“index”、及び“is”が短縮候補に決定されて候補選択キー25に割り当てられる。このとき、“ichinomotocho”は、候補選択キー25に表示可能な文字数を超えているので、その先頭部分“ichinomo”のみが表示される。
そして、同図(a)の状態にて、“ichinomo”との候補文字列が表示されている候補選択キー25を選択すると、入力ウインドウ20は、同図(b)に示す状態に更新される。すなわち、図示のように、入力枠21には、候補選択キー25に表示されていた“ichinomo”との文字列が表示されている。そして、候補選択キー25には、“ichinomo”との入力済み文字列を単語“ichinomotocho”として完成させるための入力候補“‥otocho”が割り当てられている。
このように、文字入力装置5では、候補文字列の文字数が候補選択キー25の表示可能文字数を超える場合には、上記候補文字列に含まれる入力候補の文字列の先頭部分を候補選択キー25に割り当てる。そして、割り当てられた上記先頭部分のみを先に確定させた後、上記先頭部分に続く後半部分を入力候補として候補選択キー25に割り当てている。
なお、候補文字列に含まれる入力候補の文字列の先頭部分のみを候補選択キー25に表示させた場合に、その先頭部分に続く単語が1つしかないときには、先頭部分が割り当てられた候補選択キー25に入力操作を行うことにより、上記の単語の全文字列を入力するようにしてもよい。例えば、図31(a)の状態にて、「A」の候補選択キー25に入力操作を行うことにより、“ichinomotocho”の全文字列が入力されるようにしてもよい。
しかしながら、この場合には、“ichinomo”と表示されている候補選択キー25に入力操作を行っているのに、“ichinomotocho”との文字列が入力されるので、ユーザが混乱するおそれがある。そのため、文字入力装置5では、常に、候補選択キー25に表示されている候補文字列のうち入力候補の文字列のみが入力されるようにしている。
また、文字入力装置5では、候補選択キー25に候補文字列、すなわち入力候補の文字列と入力済み文字列とを組み合わせた文字列を表示している。これにより、ユーザは単語の完成形を認識し易くなるので所望の入力候補を選び易い。また、文字入力装置5では、候補選択キー25に表示させる入力済み文字列の長さが全ての入力候補で同じになるようにしている。
図32は、入力済み文字列の長さを全ての入力候補で同じにしたときの表示例を示す図である。同図(a)は、“ichinomotostation”、“ichinomotocho”、“index”、及び“is”が予測メモリ42に格納されている状態で“i”を入力した場合の表示例を示している。図示のように、全ての入力候補には、入力済み文字列“i”が表示されている。
なお、図24〜図41では、入力済み文字列と入力候補とを特に区別することなく表示する例を示しているが、入力済み文字列と入力候補とは、例えば表示色を変える等してユーザが入力済み文字列と入力候補とを識別できるように表示することが好ましい。
ここで、図32(a)の状態にて、“ichinomo”と表示されている候補選択キー25に入力操作を行うと、同図(b)の状態となる。図示のように、“ichinomo”との入力済み文字列に先頭部分が一致する単語“ichinomotostation”及び“ichinomotocho”が候補選択キー25に割り当てられている。また、「C」の候補選択キー25には、一文字候補“n”が割り当てられている。
同図(b)に示すように、全ての候補選択キー25において、入力済み文字列が“‥o”となっている。これにより、ユーザは、入力済み文字列と入力候補とを識別し易くなる。このような表示は、図21の候補文字列生成処理にて実現される。
〔一文字候補の選択方法について〕
上述のように、一文字候補は、文字の連鎖確率に基づいて予め作成されたデータベース(一文字予測メモリ43)を用いて、入力位置の直前2文字に続く確率の高い一文字の入力候補である。
ここで、一文字候補を候補選択キー25に割り当てる理由は、ユーザ操作の手数を減らすためである。したがって、フォーカス26から少ない操作数で入力できる文字、すなわちフォーカス26近傍の文字を候補選択キー25に割り当てるメリットは少なく、フォーカス26から遠い文字を候補選択キー25に割り当てることが好ましい。
そこで、第2候補決定部39が、一文字候補を入力候補として決定するときに、入力ウインドウ20上のフォーカス26の位置を取得し、フォーカス26の位置から遠い文字を優先的に選択候補として決定するようにしてもよい。これについて、図33に基づいて説明する。図33は、フォーカス26の位置から遠い文字を優先的に選択候補として決定する方法を説明する図である。
図示のように、入力枠21には、“pk”の2文字が入力されている。また、図示のように、フォーカス26は、文字入力キー23の「k」の文字に合わされている。このような場合に、一文字候補を決定するときには、第2候補決定部39は、一文字予測メモリ43から“pk”の2文字に続く確率の高い一文字を、その確率が高い順に読み出す。ここでは、確率の高い順に、“e”、“i”、“s”、及び“a”の4文字が読み出されたとする。
ここで、第2候補決定部39は、操作取得部31にフォーカス26の現在位置を通知するように要求する。ここでは、図示のように、フォーカス26は、文字入力キー23の「k」の文字に合わされているので、その旨が操作取得部31から第2候補決定部39に通知される。通知を受けた第2候補決定部39は、フォーカス26の近傍の文字が上記読み出した一文字候補に含まれているか否かを確認する。
なお、上記近傍の文字については、予め定めておけばよい。例えば、フォーカス26の位置の上下または左右に隣接する位置がフォーカス26の近傍であると予め定めておくことで、フォーカス位置の近傍か否かの判断を行うことができる。図33に示すように、フォーカス26は、「e」の文字入力キー23と上下方向に隣接している。したがって、「e」の文字入力キー23は、遠隔操作装置4の「上」の方向ボタン12を1回押下し、そこで決定ボタン11を押下することで入力することができる。すなわち、「e」の文字入力キー23は、方向ボタン12と決定ボタン11とを用いた場合であっても、それほどの手間をかけずに入力することができる。
そこで、第2候補決定部39は、このような近傍の文字を一文字候補から外し、図33に示すようにフォーカス26からより離れた(入力操作に手数がかかる)文字を入力候補として決定している。具体的には、一文字予測メモリ43から読み出した“e”、“i”、“s”、及び“a”のうち、“e”を除外した“i”、“s”、及び“a”が入力候補として決定されている。これにより、次にユーザが“e”を入力する場合にも操作の手数は少なくて済み、“i”、“s”、及び“a”を入力する場合にもユーザ操作の手数が少なくて済む。
なお、上記近傍の文字とは、フォーカス26を上記文字に合わせるために必要な操作の回数が少ない文字を指し、物理的なキー配置の遠近のみを指すわけではない。言い換えれば、遠隔操作装置4の方向ボタン12の押下回数が少ない文字が上記近傍の文字である。したがって、例えばフォーカス26が斜め方向に移動可能である場合には、文字入力キーの上下左右斜めに隣接する8文字を近傍の文字として扱うようにしてもよい。
また、上記の例では、現在のフォーカス26の位置から、遠隔操作装置4の方向ボタン12を一回押下することで入力可能となる文字を近傍の文字として取り扱う例を示したが、近傍の文字の設定方法はこの例に限られない。例えば、遠隔操作装置4の方向ボタン12を2回押下することで入力可能となる文字を近傍の文字として取り扱うようにしてもよいし、3回押下することで入力可能となる文字を近傍の文字として取り扱うようにしてもよい。
〔読み込んだ文字列の編集〕
上述のように、文字入力装置5は、入力フィールドにすでに文字列が入力されていた場合には、文字列読み込み部33が上記入力されていた文字列を読み込んで文字列編集用メモリ36に格納する。これにより、上記入力されていた文字列にさらに文字列を追加する等の編集操作を行うことができる。ここでは、入力フィールドに入力済みの文字列を読み込んだときの表示例について図34に基づいて説明する。
同図(a)は、ウェブページの画面を示している。より詳細には、キーワードを入力して、該入力したキーワードに関連する情報を、インターネットを介して検索する検索サイトの画面を示している。ここでは、図示のように、検索キーワードを入力するためのテキストボックス51には、“abc”との文字列が入力されている。
ここで、テキストボックス51を入力フィールドに設定した場合には、同図(b)に示す入力ウインドウ20が、上記ウェブページが表示されている画面と同じ画面に表示される。図示のように、入力枠21には、テキストボックス51に入力されていた文字列“abc”が表示されている。また、図示のように「A」の候補選択キー25には、Clearキーが割り当てられており、「D」の候補選択キー25には、スペースキーが割り当てられている。
したがって、ユーザは、テキストボックス51に入力されていた文字列“abc”を消去して別のキーワードで検索を行いたい場合には、「A」の候補選択キー25に操作入力を行えばよく、文字列“abc”に、別の検索キーワードを加えて検索を行いたい場合には、「D」の候補選択キー25に操作入力を行えばよい。いずれにせよ、ユーザは、ワンタッチで必要な操作を行うことができる。
〔Doneキーの表示例〕
文字入力装置5では、文字列を入力し、Doneキーを操作して該文字列を確定することによって、上記入力した文字列が入力フィールドに入力されるようになっている。そして、Doneキーに対する操作をトリガとして学習処理を行うようになっており、Doneキー操作を行う直前に入力された単語と、Doneキー操作とを対応付けて記憶するようにしている(図7(b)等参照)。そして、Doneキー操作を行う直前に入力された単語が入力された場合には、Doneキーを入力候補として候補選択キー25に割り当てるようにしている。
ここでは、Doneキーを候補選択キー25に割り当てた場合の表示例である図35について説明する。なお、ここでは“Taro Sato”との文字列が入力されて確定された(Doneキーが操作された)ことが学習部41によって既に学習済みであることを想定している。
“Taro Sato”との文字列が入力されると、予測メモリ42から、入力位置の直前の単語“Sato”のセパレータ情報が読み出される。ここでは、“Taro Sato”との文字列が入力されて確定された(Doneキーが操作された)ことが学習部41によって既に学習済みであることを想定しているので、“Sato”との単語のセパレータ情報には、“End”との情報が格納されている(図7(a)参照)。
すなわち、予測メモリ42では、“Sato”の次には、Doneキー操作が行われることが対応付けて記憶されている。このような場合に、第2候補決定部39は、Doneキーを入力候補として決定する。これにより、図35に示すように、候補選択キー25に「Done」との文字列が表示される。そして、「Done」との文字列が表示されている候補選択キー25に入力操作を行うことにより、文字列の入力を確定することができる。
〔日本語入力の例〕
上記では、アルファベットを入力する例について説明したが、文字入力装置5では、アルファベットに限らず、様々な文字の入力を行うことができる。ここでは、アルファベット以外の入力例として、日本語入力を行う場合について図36〜図41に基づいて説明する。
日本語入力を行う場合も、文字入力装置5が行う処理の内容はほぼ同様である。すなわち、日本語入力を行う場合においても、図13のフローチャートに示す流れで入力候補が決定される。これにより、例えば図36に示すような入力候補が候補選択キー25に表示されることになる。
図36は、日本語入力を行う場合の入力ウインドウ20の表示例を示している。図示のように、モード切り換えキー22が「かな」となっており、文字入力キー23にはひらがなと句読点が表示されている。また、編集処理キー24では、Capsキーの代わりに仮名漢字変換を行うための変換キーが表示されている。ここでは、“こ”で始まる単語として、“コントロール”及び“子供”の2単語が予測メモリ42に登録されていることを想定している。
なお、日本語入力を行う場合には、このように平仮名、カタカナ、及び漢字等が混在するので、予測メモリ42には、単語の綴りに加えて単語の読みについても登録が行われている。すなわち、入力済み文字列と登録単語(または登録単語の先頭部分)とが一致した場合に加え、入力済み文字列の読みと登録単語(または登録単語の先頭部分)の読みとが一致した場合にも、入力済み文字列と登録単語とが一致したと判断する。この点では、日本語入力とアルファベット入力とは異なっている。
図示のように、入力枠21には、“こ”との文字が入力されているので、上記登録されている“コントロール”及び“子供”が候補選択キー25に割り当てられて表示される。また、アルファベットと同様に一文字予測も行うことができる。図示の例において、「C」の候補選択キー25には、“こ”に続く一文字候補として“は”が表示されている。
なお、同図では「D」の候補選択キー25には、スペースキーを割り当てる例を示しているが、日本語入力を行う場合には、スペースキーを用いる頻度がアルファベット入力時ほど多くないので、他の入力候補を割り当てるようにしてもよい。
また、日本語入力を行う場合においても、候補選択キー25に表示された候補文字列のうち、入力候補の文字列のみが入力されるようにすることが好ましい。これについて図37に基づいて説明する。図37(a)は、“お茶の水”との単語が予測メモリ42に登録されている状態にて、“お”との文字を入力したときの表示例を示す図である。なお、ここでは、候補選択キー25に表示可能な最大文字数が、全角文字で3文字であることを想定している。
同図(a)に示すように、“お”との文字を入力することにより、入力枠21内には、“お”との文字が表示される。“お”との文字は、予測メモリ42に登録されている“お茶の水”との単語の先頭部分と一致するので、“お茶の水”が入力候補として決定される。
ここでは、候補選択キー25に表示可能な最大文字数は3文字であることを想定しているから、全角文字4文字で構成される“お茶の水”の全文字列を表示することはできない。そこで、同図(a)に示すように、“お茶の水”の先頭三文字、すなわち“お茶の”を候補選択キー25に表示する。
ここで、“お茶の”と表示された候補選択キー25に入力操作を行うと、入力ウインドウ20は、同図(b)に示すような状態に切り替わる。すなわち、候補選択キー25に表示されていた“お茶の”との文字が入力枠21に入力されると共に、入力済み文字列“お茶の”に続く“水”との文字が、入力済みの“お茶の”との文字列の省略形である“…の”との文字列と併せて表示されている。
また、日本語入力を行う場合においても、入力済み文字列の長さは全ての候補選択キー25でそろえることが好ましい。図38は、“コントロールパネル”及び“コントロールプラス”との単語が予測メモリ42に格納されている場合に、“コントロール”と入力したときの表示例を示している。
この場合には、予測メモリ42に登録されている“コントロールパネル”及び“コントロールプラス”との単語の先頭部分と、入力済み文字列“コントロール”とが一致するので、“コントロールパネル”及び“コントロールプラス”とが入力候補に決定される。これにより、2つの入力候補が決定されるので、残る1つの入力候補として、一文字候補が決定される。ここでは、入力位置の直前2文字である“ール”に続く一文字候補として“セ”が決定されたものとする。
これにより、3つの入力候補の全てが決定されるが、“コントロールパネル”及び“コントロールプラス”は、何れも候補選択キー25に表示可能な文字数を超えているので、単語を構成する全文字数を表示することはできない。
そこで、図示のように“コントロールパネル”及び“コントロールプラス”については、入力済み文字列“コントロール”をその省略形である“…ル”に変換して、候補文字列をそれぞれ“…ルパネル”及び“…ルプラス”と表示する。また、一文字候補“セ”については、入力済み文字列を最大限まで表示する場合には“…トロールセ”との候補文字列となるが、候補選択キー25に含まれる入力済み文字列の長さが異なっていると、入力済み文字列と入力候補との境界がユーザに認識され難いので、全ての入力候補において、入力済み文字列を“…ル”に統一している。
また、日本語入力を行う場合においても、アルファベット入力を行う場合と同様に、入力フィールドの文字列を読み込んだときにClearキーやスペースキーを候補選択キー25に割り当てる。図39は、日本語入力を行う場合に、入力フィールドの文字列を読み込んだときの表示例を示す図である。
ここでは、図34(a)と同様に、キーワードを入力して、該入力したキーワードに関連する情報を、インターネットを介して検索する検索サイトの画面において、検索キーワードを入力するためのテキストボックス51を入力フィールドにする例を説明する。なお、ここでは図39(a)に示すようにテキストボックス51には“奈良”との文字列が入力されていることを想定している。
そして、図39(a)に示すようにテキストボックス51を入力フィールドに設定したときには、同図(b)に示す入力ウインドウ20が表示される。図示のように、テキストボックス51に入力されていた“奈良”との文字列が入力枠21に表示されている。また、図示のように、候補選択キー25には、Clearキーとスペースキーとが割り当てられている。
これにより、“奈良”との文字列をワンタッチで消去して別の検索キーワードを入力することもできる。また、ワンタッチで“奈良”との文字列の後にスペースを入力することができるので、検索キーワードの追加も容易に行うことができる。
また、日本語入力を行う場合においても、アルファベット入力を行う場合と同様に、単語を入力した後で確定操作(Doneキー操作)を行うことにより、確定操作の直前に入力された単語とDoneキーとを対応付けて予測メモリ42に格納する。これにより、確定操作の直前に入力された単語が入力された場合に、Doneキーを候補選択キー25に割り当てることができる。
図40は、“太郎”との単語の後に確定操作が行われたことを学習した後で、“佐藤 太郎”との文字列を入力した場合の表示例を示す図である。図示のように、入力枠21には、“佐藤 太郎”との文字列が表示されていると共に、候補選択キー25にはDoneキーが割り当てられている。これにより、ユーザは“佐藤 太郎”との文字列をワンタッチで確定させることができる。
また、日本語入力を行う場合には、仮名漢字変換を行うための変換キーを候補選択キー25に割り当てるようにしてもよい。これについて、図41に基づいて説明する。図41は、変換キーを候補選択キー25に割り当てた場合の表示例を示す図である。
図示のように、入力枠21には、“てん”との文字列が入力されている。また、図示のように、候補選択キー25には、変換キーが割り当てられている。これにより、“てん”との入力済み文字列をワンタッチでカタカナまたは漢字に変換することができる。
なお、変換キーは、例えば入力位置の直前の2文字が、仮名漢字変換が行われていない場合に、候補選択キー25に割り当てるようにすればよい。これは、平仮名二文字を漢字にする場合が比較的多いと考えられるためである。もちろん、入力位置の直前の一文字が、仮名漢字変換が行われていない場合に、候補選択キー25に割り当てるようにしてもよい。
〔候補選択キー25に割り当てる機能の例〕
上述の例では、候補選択キー25にCapsキー、Doneキー、Clearキー、及び変換キー等の編集用キーを割り当てる例を示したが、これら以外の機能を候補選択キー25に割り当てるようにしてもよい。
例えば、図4に示すQuitキー、Lキー及びRキー、Deleteキー、改行キー、及び入力モード切換キー22の少なくとも1つを必要に応じて候補選択キー25に割り当てるようにしてもよい。また、ここに挙げたもの以外にも、文字列の入力及び編集に使用する任意の機能を候補選択キー25に割り当てることができる。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔ソフトウェアによる実現方法〕
最後に、文字入力装置5の各ブロック、特に区切り文字判断部37、第1候補決定部38、第2候補決定部39、編集用候補決定部40、学習部41、及び入力候補割当部44は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、文字入力装置5は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである文字入力装置5の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記文字入力装置5に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、文字入力装置5を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
以上のように、本発明の文字入力装置は、入力位置より前の文字列に基づいて、入力位置に入力する文字列を入力候補として決定すると共に、該決定した入力候補を割り当てた候補選択キーを表示部にユーザが選択可能に表示し、該表示された候補選択キーが選択された場合に、該選択された候補選択キーに割り当てられた入力候補の文字列を上記入力位置に入力する文字入力装置において、文字入力に付随する処理であって、ユーザが利用可能な処理を上記候補選択キーに割り当てる処理候補決定手段を備えていることを特徴としている。
また、本発明の文字入力制御方法は、入力位置より前の文字列に基づいて、入力位置に入力する文字列を入力候補として決定すると共に、該決定した入力候補を割り当てた候補選択キーを表示部にユーザが選択可能に表示し、該表示された候補選択キーが選択された場合に、該選択された候補選択キーに割り当てられた入力候補の文字列を上記入力位置に入力する文字入力装置の文字入力制御方法において、文字入力に付随する処理であって、ユーザが利用可能な処理を上記候補選択キーに割り当てる処理候補決定ステップを含むことを特徴としている。
上記の構成によれば、文字列を入力するための入力候補が候補選択キーに割り当てられると共に、文字入力に付随する処理が候補選択キーに割り当てられる。なお、文字入力に付随する処理は、文字列の入力以外の処理であって、入力済み文字列の全消去、一文字消去、改行、確定、入力位置の移動、小文字入力と大文字入力との切り換え(アルファベット入力の場合)、仮名漢字変換(日本語入力の場合)等の処理を含む、文字入力装置で一般的に用いられる処理(機能)である。
このように、文字入力を行う場合には、単に文字列を入力するのみならず、上記のような様々な処理を行う。従来は、このような処理を、文字列を入力する場合と同様に、各処理が割り当てられた特定の入力キー等を用いて実行させていた。すなわち、従来は、文字入力に付随する処理が特定のキーに固定的に割り当てられていた。
これに対し、上記本発明の構成によれば、文字入力処理に付随する処理のうち、ユーザが利用可能な処理が候補選択キーに割り当てられる。したがって、本発明の構成によれば、文字入力に付随する処理も候補選択キーを用いて簡単かつ迅速に実行させることができ、これによりユーザは簡単かつ迅速に文字入力を行うことができる。
なお、ここで、文字列とは、一文字または一続きの複数文字を指す。また、ここでは、文字列に記号及び数字等も含むものとする。
また、上記文字入力装置は、入力確定処理を行うことによって、編集対象の文字列を記憶する文字列記憶部に記憶されている文字列が自装置の外部に出力されるようになっており、単語と該単語の入力後に実行される上記入力確定処理とを対応付けて記憶する連鎖処理記憶部を備え、上記処理候補決定手段は、上記入力位置の直前の文字を末尾とし、区切り文字を含まない一続きの文字列である直前文字列が、上記連鎖処理記憶部に記憶されている単語と一致した場合に、上記入力確定処理を上記候補選択キーに割り当てることが好ましい。
上記の構成によれば、入力確定処理を行うことによって、上記文字列記憶部に記憶されている文字列が自装置の外部に出力されるようになっている。なお、自装置の外部とは、文字入力装置によって文字を入力する対象となる入力フィールドである。すなわち、上記の構成によれば、文字入力装置内で文字列が完成された状態にて確定処理が行われ、これにより入力フィールドに上記完成した文字列が入力されるようになっている。
ここで、文字入力を行う場合には、例えば自分の名前や住所、挨拶文等のように、同じ文字列を繰り返し入力することがある。このような場合に、名前や住所、挨拶文等の文字列を予め記憶し、これらの文字列を入力候補として候補選択キーに割り当てることで入力操作を簡略化することができる。このように、予め記憶した文字列を候補選択キーに割り当てることは、従来から行われていた。
これに対し、上記本発明の構成によれば、単語を記憶するだけではなく、単語と該単語の入力後に実行される入力確定処理とを対応付けて記憶している。そして、直前文字列が、連鎖処理記憶部に記憶されている単語と一致した場合に、入力確定処理を候補選択キーに割り当てている。
すなわち、上記本発明の構成によれば、文字列を入力した後の確定処理まで候補選択キーで実行させることが可能になっている。これにより、ユーザは、文字列の入力とその確定処理とを簡単な操作で迅速に行うことができる。
また、上記処理候補決定手段は、英字を入力する際に、入力位置が文頭であるか、または入力位置の直前がスペースまたはピリオドである場合に、小文字入力と大文字入力との切り換え処理を上記候補選択キーに割り当てることが好ましい。
英字(アルファベット)を入力する場合には、文頭及びスペースまたはピリオドの直後を大文字で入力することがある。そこで、上記の構成では、英字を入力する際に、入力位置が文頭であるか、または入力位置の直前がスペースまたはピリオドである場合に、小文字入力と大文字入力との切り換え処理を上記候補選択キーに割り当てている。したがって、ユーザは、小文字入力から大文字入力への変換を、候補選択キーを用いて簡単な操作で迅速に行うことができる。
また、上記の構成によれば、入力位置が文頭であるか、または入力位置の直前がスペースまたはピリオドである場合に、上記処理を候補選択キーに割り当てるので、それ以外の場合には単語の候補等を候補選択キーに割り当てることが可能になる。
すなわち、上記の構成によれば、小文字入力と大文字入力との切り換え処理が行われる確度が高いときに候補選択キーに割り当て、それ以外のときには他の入力候補を選択候補キーに割り当てることが可能になるので、候補選択キーを有効に活用することができる。
また、上記文字入力装置は、文字列を自装置の外部から読み込む文字列読み込み手段を備え、上記処理候補決定手段は、上記文字列読み込み手段が、自装置の外部から文字列を読み込んだときに、上記読み込んだ文字列の全消去処理を上記候補選択キーに割り当てることが好ましい。
文字列を自装置の外部から読み込むことができれば、読み込んだ文字列を文字入力装置にて加工、編集して再出力することが可能になるので好ましい。しかしながら、読み込んだ文字列を使用しない場合も考えられる。この場合には、ユーザは読み込んだ文字列を消去するという余計な手間をかける必要がある。
上記の構成によれば、自装置の外部から文字列を読み込んだときに、上記読み込んだ文字列の全消去処理を上記候補選択キーに割り当てている。したがって、上記の構成によれば、読み込んだ文字列を使用しない場合に、上記読み込んだ文字列を、候補選択キーを用いて簡単な操作で迅速に全消去することができる。
また、本発明の文字入力装置は、入力位置より前の文字列に基づいて、入力位置に入力する文字列の候補である入力候補を割り当てた候補選択キーを、表示部にユーザが選択可能に表示し、上記表示された候補選択キーが選択された場合に、該選択された候補選択キーに割り当てられた入力候補の文字列を上記入力位置に入力する文字入力装置において、上記入力位置の直前の文字を末尾とし、区切り文字を含まない一続きの文字列である直前文字列に基づいて上記入力候補を決定する入力候補決定手段と、所定の文字数の文字列と、該文字列に続けて入力される1文字である一文字候補とを対応付けて予め記憶する一文字候補記憶部と、上記一文字候補記憶部を参照し、上記入力位置の直前の上記所定の文字数の文字列に対応付けて記憶されている一文字候補を入力候補として決定する一文字候補決定手段とを備えていることを特徴としている。
また、本発明の文字入力制御方法は、入力位置より前の文字列に基づいて、入力位置に入力する文字列の候補である入力候補を割り当てた候補選択キーを、表示部にユーザが選択可能に表示し、上記表示された候補選択キーが選択された場合に、該選択された候補選択キーに割り当てられた入力候補の文字列を上記入力位置に入力する文字入力装置の文字入力制御方法において、上記入力位置の直前の文字を末尾とし、区切り文字を含まない一続きの文字列である直前文字列に基づいて上記入力候補を決定する入力候補決定ステップと、所定の文字数の文字列と、該文字列に続けて入力される1文字である一文字候補とを対応付けて予め記憶する一文字候補記憶部を参照し、上記入力位置の直前の上記所定の文字数の文字列に対応付けて記憶されている一文字候補を入力候補として決定する一文字候補決定ステップとを含むことを特徴としている。
ここで、直前文字列に基づいて入力候補を決定する場合には、直前文字列と予め記憶している単語の少なくとも一部とが一致する必要がある。言い換えれば、直前文字列と少なくとも一部が一致する単語を予め記憶していなければ入力候補は決定されない。また、直前文字列と予め記憶している単語の少なくとも一部とが一致した場合であっても、該一致した単語がユーザの入力しようとする単語と異なっていた場合には、候補選択キーは使用されない。
そこで、上記の構成によれば、直前文字列に基づいて入力候補を決定すると共に、入力位置の直前の文字列であって所定の文字数の文字列に対応付けて記憶されている一文字候補を入力候補として決定している。
一文字候補は、所定の文字数の文字列に対応付けて記憶されている一文字であるから、任意の文字の組み合わせに対して一文字候補を用意しておくことができる。すなわち、一文字候補であれば、入力位置の直前の文字列がどのような文字列であっても入力候補として決定することができる。
したがって、上記の構成によれば、直前文字列が予め記憶している単語と一致しない場合であっても入力候補を候補選択キーに割り当てることができ、また予め記憶している単語がユーザの入力したい単語と異なっている場合であっても、ユーザの文字入力の一助となる一文字候補を候補選択キーに割り当てることができる。その結果、ユーザの所望の文字列を、候補選択キーを用いて簡単な操作で迅速に入力することができる。
また、上記文字入力装置は、上記表示部に表示させた各文字に対応する文字入力キーを、隣接する文字入力キーの間でフォーカスを移動させながら選択することによって上記入力位置への文字の入力がなされるようになっており、上記一文字候補決定手段は、上記一文字候補を入力候補として決定する場合には、上記表示部において、フォーカスされている文字入力キーの位置から遠い文字入力キーに対応する文字の一文字候補を優先して入力候補とすることが好ましい。
上記文字入力装置には、様々な文字入力方法を採用することができるが、例えば表示部に文字入力キーを表示させ、隣接する文字入力キーの間でフォーカスを移動させながら選択することによって文字入力を行う構成とすることができる。この場合には、フォーカス位置から近い文字を入力する場合にはあまり手数はかからないが、遠い文字ほど入力に手数がかかることになる。すなわち、ここで、フォーカスされている文字入力キーの位置から遠い文字入力キーとは、該文字入力キーの文字を選択するために必要な手数(操作数)が多い文字入力キーということを指す。
そこで、上記の構成によれば、フォーカスされている文字入力キーの位置から遠い文字入力キーに対応する文字の一文字候補を優先して入力候補としている。これにより、次にユーザが入力する文字がフォーカス位置の近くである場合には操作の手数は少なくて済み、フォーカス位置から遠い文字を入力する場合にも候補選択キーを用いることによってユーザ操作の手数が少なくて済む。