説明

文字検索装置、文字検索システム、文字検索方法、入力端末装置、検索サーバおよびプログラム

【課題】複数の入力フィールドに対して文字入力する場合であっても、効率的な文字入力を行うことができる。
【解決手段】入力端末装置が、文字入力領域の入力内容を検出し、文字入力領域を識別する識別部と、識別部によって識別された文字入力領域を表すノードセパレータと、検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部とを備え、検索サーバが、互いに係り受け関係にある単語を、文字入力領域と対応付けられたノードとして木構造に構成した辞書データを利用して、入力端末装置から受信する検索キーのノードセパレータに基づき、検索キーに含まれる入力内容の文字入力領域に対応する辞書データのノードを検出し、ノードとしての単語を変換候補を、入力端末装置に表示させる

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字検索システム、文字検索方法、入力端末装置、検索サーバおよびプログラムに関し、特に、コールセンタなどにおける入力作業に好適な文字検索装置、文字検索システム、文字検索方法、入力端末装置、検索サーバおよびプログラムに関する。
【背景技術】
【0002】
コンピュータなどの装置に自然言語としての文字を入力する場合、言語の種類に応じた入力変換を行うことで、キーボードなどから入力された文字を自然言語に変換することが一般的に行われている。
このような入力変換としては、キーボードなどから入力された未確定文字を検索キーとして辞書データを検索して変換候補を検出し、変換候補の中からユーザによって選択された文字を確定文字として入力する方法が一般的である。
例えば、先行して入力された文字の係り受け関係を考慮して、次に続く文字を検索し、関連性のある文字を入力する方法などがある(例えば、特許文献1参照)。
この特許文献1に記載されているものは、連続して入力される文字の関係性をバッファメモリに一時的に記憶させ、一時的に記憶されている文字の次に続く文字を予測手段が予測し、予測した文字を変換候補としてユーザに表示するものである。これによりユーザは、変換するための文字の全てを入力しなくても、予測された変換候補の中から入力したい変換候補を選択することによって、連続した文字を入力することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−233605号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、このような入力変換において、複数の入力フィールドごとに各入力フィールドに適した文字を入力しなければならない場合、複数の文字が関連付けられている辞書データを利用して、複数の入力フィールドにわたって関連性のある文字の変換候補をユーザに提供する際に、以下のような不都合があった。
例えば、住所を入力する場合において、県名を入力する入力フィールド、市名を入力する入力フィールド、区名を入力する入力フィールド等のように、入力フィールドごとに予め指定された属性の文字列を入力する場合がある。このとき、「神奈川県横浜市港北区日吉」という住所情報を入力する際に、県名の入力フィールドに「神奈川県」を、市名の入力フィールドに「横浜市」を、区名の入力フィールドに「港北区」を、その他の入力フィールドに「日吉」を、それぞれ入力する必要がある。
【0005】
ここで、各ノードの単語として「神奈川県」、「横浜市」、「港北区」、「日吉」が関連付けられているノード列と、「神奈川県立」「第一高等学校」が関連付けられているノード列を記憶する所在を表す情報を含む辞書データを利用して、県名の入力フィールドに「神奈川県」が入力された場合、「神奈川県」に続く文字列として、ノード間で連結されている「横浜市」と「立(神奈川県立の“立”と対応する部分)」の変換候補が検索される。これは、「神奈川県」と「神奈川県立」の単語が、例えば、木構造で構成されているデータ構造において同じ階層のノードに対応する単語であって、単語の前半部分に同一の文字列である“神奈川県”を含んでいるためである。
これにより、市名の入力フィールドに対して、神奈川県立の「立」という変換候補と、「横浜市」という変換候補が出力されてしまい、各入力フィールドに適した変換候補を出力できない問題がある。
また、県名の入力フィールドに「神奈川県」と入力された後に「横浜市」という変換候補が検索され、県名の入力フィールドの変換候補として出力された場合、ユーザによって「横浜市」が選択されると、県名の入力フィールドに「神奈川県横浜市」と入力されてしまい、各入力フィールドに適した変換候補を出力できない問題がある。
【0006】
本発明は、このような事情を考慮してなされたものであり、その目的は、複数の入力フィールドに対して文字入力する場合であっても、より効率的な文字の検索を行うことができる文字検索装置、文字検索システム、文字検索方法、入力端末装置、検索サーバおよびプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上述した課題を解決するために、本発明は、複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付ける入力部と、 前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別部と、前記識別部によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部と、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する読み補完辞書記憶部と、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部と、前記ノードセパレータ付与部によって生成された前記検索キーの前記ノードセパレータに基づき、前記読み補完辞書データあるいは前記表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記サーバ通信部を介して前記入力端末装置に送信する検索部と、を備えることを特徴とする。
【0008】
上述した課題を解決するために、本発明は、文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムであって、前記入力端末装置は、複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付ける入力部と、前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別部と、前記識別部によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部と、前記ノードセパレータ付与部によって生成された前記検索キーを前記検索サーバに送信する端末通信部と、を備え、前記検索サーバは、前記端末通信部とデータ通信を行うサーバ通信部と、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する読み補完辞書記憶部と、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部と、前記サーバ通信部を介して前記入力端末装置から受信する前記検索キーの前記ノードセパレータに基づき、前記読み補完辞書データあるいは前記表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記サーバ通信部を介して前記入力端末装置に送信する検索部と、を備えることを特徴とする。
【0009】
また、前記入力端末装置の前記識別部は、前記文字入力領域に文字が入力されていない状態において、識別される前記文字入力領域の入力内容として、文字が入力されていないことを表す入力内容を検出し、前記入力端末装置の前記ノードセパレータ付与部は、前記識別部によって、前記文字が入力されていないことを表す入力内容が検出された場合、前記文字が入力されていないことを表す空欄情報と前記ノードセパレータとを関連付けた前記検索キーを生成することを特徴とする。
【0010】
また、上述した課題を解決するために、本発明は、前記入力端末装置の前記識別部は、前記入力部を介して前記文字入力領域が指定された場合、当該文字入力領域よりも上位となる他の前記入力領域がある場合、当該上位となる他の前記入力領域の入力内容を、変換処理が完了した確定内容として検出し、前記入力端末装置の前記ノードセパレータ付与部は、前記検索キーに含まれる前記入力内容が、前記確定内容であること、あるいは変換処理が完了する以前の未確定内容であることを表す情報に基づき、前記検索キーを生成することを特徴とする。
【0011】
また、上述した課題を解決するために、本発明は、文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける文字検索方法であって、前記入力端末装置の入力部が、複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付け、前記入力端末装置の識別部が、 前記文字入力領域の入力内容を検出し、前記文字入力領域を識別し、前記入力端末装置のノードセパレータ付与部が、前記識別部によって識別される文字入力領域を区分するノードセパレータと、前記検出された入力内容とを関連付けた検索キーを生成し、前記入力端末装置の端末通信部が、前記ノードセパレータ付与部によって生成された前記検索キーを前記検索サーバに送信し、前記検索サーバのサーバ通信部が、前記入力端末装置から送信された前記検索キーを受信し、前記検索サーバの検索部が、前記サーバ通信部を介して前記入力端末装置から受信する前記検索キーの前記ノードセパレータに基づき、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した前記読み補完辞書データを記憶する読み補完辞書記憶部から読み出される読み補完辞書データ、あるいは、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部から読み出される表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記サーバ通信部を介して前記入力端末装置に送信することを特徴とする。
【0012】
また、上述した課題を解決するために、本発明は、文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける前記入力端末装置であって、複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付ける入力部と、前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別部と、前記識別部によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部と、前記ノードセパレータ付与部によって生成された前記検索キーを前記検索サーバに送信する端末通信部と、を備えることを特徴とする。
【0013】
また、上述した課題を解決するために、本発明は、文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける前記検索サーバであって、前記入力端末装置において前記文字の入力又は前記文字領域の指定入力が入力される複数の文字入力領域を区分するノードセパレータと前記入力フィールドの入力内容とを関連付けた検索キーを、前記入力端末装置から受信する受信部と、前記入力端末装置に情報を送信する送信部と、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する読み補完辞書記憶部と、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部と、前記受信部を介して前記入力端末装置から受信する前記検索キーの前記ノードセパレータに基づき、前記読み補完辞書データあるいは前記表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記送信部を介して前記入力端末装置に送信する検索部と、を備えることを特徴とする。
【0014】
また、上述した課題を解決するために、本発明は、文字が入力されるコンピュータと、ネットワークを介して接続される前記コンピュータから受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける前記コンピュータを、複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付けさせる入力手段、前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別手段と、前記識別手段によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与手段、前記ノードセパレータ付与手段によって生成された前記検索キーを前記検索サーバに送信する端末通信手段、として機能させるためのプログラムである。
【0015】
また、上述した課題を解決するために、本発明は、文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索するコンピュータを備える文字検索システムにおける前記コンピュータを、前記入力端末装置において前記文字の入力又は前記文字領域の指定入力が入力される複数の文字入力領域を区分するノードセパレータと前記入力フィールドの入力内容とを関連付けた検索キーを、前記入力端末装置から受信する受信手段、前記検索キーの前記ノードセパレータに基づき、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した前記読み補完辞書データを記憶する読み補完辞書記憶手段から読み出される前記読み補完辞書データ、あるいは、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶手段から読み出される前記表記補完辞書データのうち、少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記入力端末装置に送信する手段、として機能させるためのプログラムである。
【発明の効果】
【0016】
この発明によれば、複数の入力フィールドにわたって入力される文字を、各入力フィールドに入力された文字として組み合わせた検索キーを利用して、辞書データを検索することで、各入力フィールドに適した文字を検索して、変換候補として表示することができる。
【図面の簡単な説明】
【0017】
【図1】本実施形態に係る文字検索システムの一例を示すブロック図である。
【図2】本実施形態に係る出力部に表示される入力画面の一例を示す概略図である。
【図3】本実施形態に係る読み補完辞書記憶領域に記憶されている読み補完辞書データの一例を示す概念図である。
【図4】本実施形態に係る表記補完辞書記憶領域に記憶されている表記補完辞書データの一例を示す概念図である。
【図5】本実施形態に係る文字検索方法の一例を示すフローチャートである。
【図6】本実施形態に係る文字検索方法の一例を示すフローチャートである。
【図7】図5、6に示す文字検索方法による検索結果の表示例示す概略図である。
【図8】図5、6に示す文字検索方法による検索結果の表示例示す概略図である。
【図9】本実施形態に係る読み補完辞書記憶領域に記憶されている読み補完辞書データの一例を示す概念図である。
【図10】本実施形態に係る表記補完辞書記憶領域に記憶されている表記補完辞書データの一例を示す概念図である。
【図11】本実施形態に係る文字検索方法の他の例を示すフローチャートである。
【図12】図11に示す文字検索方法において出力部に表示される入力画面の一例を示す概略図である。
【図13】図11に示す文字検索方法の説明を助ける参考図である。
【図14】本実施形態に係る読み補完辞書記憶領域に記憶されている読み補完辞書データの他の例を示す概念図である。
【図15】本実施形態に係る表記補完辞書記憶領域に記憶されている表記補完辞書データの他の例を示す概念図である。
【図16】本実施形態による、候補抽出処理(検索処理)の動作を説明するためのフローチャートである。
【図17】本実施形態による、先頭未確定処理の動作を説明するためのフローチャートである。
【図18】先頭未確定処理での各種例を示す概念図である。
【図19】実施形態による、先頭確定処理の動作を説明するためのフローチャートである。
【図20】先頭確定処理での各種例を示す概念図である。
【図21】実施形態による、余剰一致処理の動作を説明するためのフローチャートである。
【図22】余剰一致処理での各種例を示す概念図である。
【図23】実施形態による、出力処理の動作を説明するためのフローチャートである。
【図24】出力処理での各種例を示す概念図である。
【図25】実施形態による、出力例を説明するための模式図である。
【図26】従来例を説明する概略図である。
【図27】従来例を説明する概略図である。
【発明を実施するための形態】
【0018】
[第1の実施形態]
以下、本発明の一実施形態を、図面を参照して説明する。図1は、本実施の形態に係る文字検索システムの一例を示すブロック図である。
図1に示す通り、文字検索システム1は、文字が入力される入力端末装置100と、ネットワーク200を介して入力端末装置100と接続され、入力端末装置100から受信する文字に応じた変換候補を検索する検索サーバ300を備える。
【0019】
入力端末装置100は、入力部101と、制御部102と、出力部103と、端末通信部104と、端末記憶部105とを備える。制御部102は、識別部106と、ノードセパレータ付与部107を備える。
【0020】
入力部101は、ユーザの操作指示が入力される部分であって、入力される操作指示に応じた信号を制御部102に出力する。入力部101は、例えば、文字が入力されるキーボードと、入力フィールド(文字入力領域)の指定や変換候補の選択がユーザによって行われるポインティングデバイス等を含む。本実施の形態において、入力部101は、ポインティングデバイス等を介してユーザによって指定された任意の入力フィールドの指定入力を受け付ける。また、入力部101は、キーボードを介してユーザによって入力される文字の入力を受け付ける。入力部101は、いわゆるFEP(Front End Processor)の動作により、キーボードからの入力に応じた入力変換を行う。なお、入力部101によって入力された文字入力と指定入力を含めて、以下入力内容という。例えば、入力フィールドに文字が入力されている場合は、入力されている文字が入力内容であって、入力フィールドが指定されている場合、指定されている入力フィールドであることを表す情報と共に、入力されている文字がある場合は当該入力されている文字が入力内容である。
また、入力部101は、ユーザの操作指示の入力を受け付け、当該操作指示に応じたイベントを検出する。ここで、イベントとは、ユーザの操作指示を表すものである。例えば、ポインティングデバイスを介してユーザがポインタを特定の入力フィールドに合わせた場合、入力部101は、当該入力フィールドが特定されたことを表すイベントを検出する。また、キーボードを介してユーザにより特定の入力フィールドに文字が入力された場合、文字が入力されたことを表すイベントを検出する。
【0021】
制御部102は、例えば、CPU(Central Processing Unit:中央演算処理装置)や、ワークエリアとなるメモリなどから構成され、端末記憶部105に格納されているプログラムを読み出して実行することで、入力端末装置100の各部を制御する。
【0022】
出力部103は、例えば、図2に示すような、予め用意された入力画面を表示するディスプレイであって、入力部101を介してユーザによって入力される操作指示に従い、入力フィールドに入力される文字を表示する。ここで、図2は、出力部103に表示される入力画面の一例を説明する概略図である。図2に示す通り、出力部103は、複数の入力フィールド501〜504を表示し、入力部101を介して指定された各入力フィールド501〜504に対して入力された文字と、本実施の形態に係る文字検索システム1によって検索された検索結果である変換候補を表示する。本実施の形態において、複数の入力フィールド501〜504は、第1区分入力フィールド501、第2区分入力フィールド502、第3区分入力フィールド503、第4区分入力フィールド504を含んでおり、それぞれ、予め決められた属性の文字が入力されるようになっている。入力フィールド501〜504には、各入力フィールドを識別するための識別子が付与されており、第1区分入力フィールド501には識別子「F1」、第2区分入力フィールド502には識別子「F2」、第3区分入力フィールド503には識別子「F3」、第4区分入力フィールド504には識別子「F4」が付与されている。
【0023】
端末通信部104は、ネットワーク200を介して検索サーバ300と通信可能に接続され、入力端末装置100によって生成される検索キーを検索サーバ300に送信する。また、端末通信部104は、検索サーバ300から送信された検索結果を受信し、出力部103に出力する。
【0024】
端末記憶部105は、例えば、ハードディスク装置などの記憶装置から構成され、例えば、各入力フィールドに入力された文字を一時的に記憶する。
【0025】
識別部106は、入力部101から入力フィールド501〜504に対して入力された入力内容を検出し、入力フィールド501〜504を識別する。
例えば、識別部106は、入力部101によってイベントが検出されると、検出されたイベントに基づき、文字を入力するための入力フィールドとしてユーザによって指定された入力フィールドを検出する。識別部106は、入力部101を介して入力フィールド501〜504のうち、いずれか1つが指定されると、この指定された入力エリアに対応づけされている識別子を検出する。例えば、識別部106は、第1区分入力フィールド501が指定された場合、識別子「F1」を検出し、第2区分入力フィールド502が指定された場合、識別子「F2」を検出する。
また、識別部106は、入力部101によってイベントが検出されると、検出されたイベントに基づき、文字を入力するための入力フィールドとして指定された入力フィールドに対して、入力部101から文字が入力されたか否かを判断する。識別部106は、指定された入力フィールドに文字が入力されていない状態である場合、その入力フィールドに文字が入力されていないことを表す入力内容(以下、Null文字という)を検出する。またここで、文字が入力されていないことを表すNull文字は、空欄情報という。
【0026】
また、識別部106は、指定された入力フィールドに文字が入力された場合、入力された文字の入力内容が確定文字であること、未確定文字であること、あるいは確定文字と未確定文字の両方を含む内容であることを検出する。ここで、確定文字とは、入力内容としての文字が変換処理が完了した確定内容であることを表す文字であって、未確定文字とは、変換処理が完了する以前の未確定内容であることを表す文字である。識別部106は、例えば、特定の入力フィールドが指定された場合、指定された入力フィールドよりも上位の入力フィールドの入力内容は、確定文字と認識する。また、識別部106は、指定された入力フィールドに文字が入力された場合、この文字を未確定文字と識別し、入力された文字の変換処理を完了する指示(確定指示)が入力された場合、確定された文字を確定文字と識別する。
【0027】
さらに、識別部106は、複数の入力フィールド501〜504を、例えば、第1区分入力フィールド501、第2区分入力フィールド502、第3区分入力フィールド503、第4区分入力フィールド504の入力内容を、それぞれの識別子と関連付けて識別し、入力部101によって指定された入力フィールドより前の順番(上位)として関連付けられている入力フィールドの入力内容を検出する。
また、識別部106は、指定された入力フィールドの識別子に基づき、当該入力フィールドよりも上位の入力フィールドがあるか否かを判断し、上位の入力フィールドがある場合は、この上位にある入力フィールドの入力内容と、入力フィールドの識別子とを関連付けて、上位の入力フィールドの入力内容を確定文字として検出する。例えば、第3区分入力フィールド503が指定されている場合、識別部106は、第3区分入力フィールド503の識別子「F3」とその入力内容とを関連付けて検出する。さらに、その上位の入力フィールドである第1区分入力フィールド501の識別子「F1」とその入力内容とを関連付けて検出し、第2区分入力フィールド502の識別子「F2」とその入力内容とを関連付けて検出する。
【0028】
また、識別部106は、入力フィールド501〜504に入力されている未確定文字を確定するための確定指示が入力部101によって入力された場合、変換処理を完了し、変換処理が完了した際の入力フィールドの入力内容を確定内容として検出する。さらに、識別部106は、指定されている入力フィールドよりも前の順番として関連付けられている入力フィールドの入力内容は、確定内容として検出する。例えば、入力部101を介して文字を入力するための入力フィールドとして第2区分入力フィールド502が指定されている場合、第2区分入力フィールド502よりも前の順番(上位)として関連付けられている第1区分入力フィールド501に、文字が入力されている場合、当該文字を確定文字として検出し、文字が入力されていない場合、入力内容としてNull文字を確定文字として検出する。
さらに、識別部106は、入力フィールド501〜504の入力内容を検出した場合、この入力内容を、入力フィールドの識別子と関連付けて、端末記憶部105に一時的に記憶させる。
【0029】
ノードセパレータ付与部107は、識別部106によって識別された入力フィールドと、識別された入力フィールドの入力内容に基づき、識別された入力フィールドを区分するノードセパレータと、各入力フィールドの入力内容とを関連付けた検索キーを生成する。ノードセパレータ付与部107は、入力内容が検出された入力フィールド501〜504ごとに、検出された入力内容の先頭にノードセパレータを付与し、ノードセパレータが付与された入力内容を入力フィールド501〜504の順番に従って関連付けられた検索キーを生成する。
例えば、ノードセパレータ付与部107は、識別部106によって検出され、端末記憶部105に一時的に記憶されている入力フィールドの入力内容を、読み出す。ここで、端末記憶部105に一時的に記憶されている入力フィールドの入力内容は、入力フィールドの入力内容と、入力フィールドの識別子とが関連付けられている情報である。
ノードセパレータ付与部107は、確定文字と未確定文字とを分離した上で、確定文字がある場合は、入力内容と関連付けられている各入力フィールド501〜504の識別子を参照して、入力フィールドの入力内容の先頭にノードセパレータを付与し、上位の入力フィールドの入力内容から順番に連結させて、確定部の検索キーを生成する。ここで、ノードセパレータは、「/(例えば、“スラッシュ”を表す文字であり、ここでは「ひらがな」の文字とみなして取り扱う)」であって、確定文字に付与されるノードセパレータは、確定文字である。
一方、未確定文字がある場合、ノードセパレータ付与部107は、入力内容と関連付けられている各入力フィールド501〜504の識別子を参照して、当該未確定文字の前に、同じ入力フィールドの確定文字があるか否かを判断する。確定文字がない場合、ノードセパレータ付与部107は、当該未確定文字が入力フィールドの先頭であることを判断し、当該未確定文字の先頭にノードセパレータを付与して、未確定部の検索キーとして生成する。なお、未確定文字に付与されるノードセパレータは、未確定文字である。
一方、確定文字がある場合、当該未確定文字には、ノードセパレータを付与せず、未確定部の検索キーとして生成する。なお、これは、1つの入力フィールドに確定文字と未確定文字とを含む状態であって、入力フィールドの先頭である確定文字の先頭にノードセパレータが付与される。
ここで、ノードセパレータ付与部107は、未確定文字の後ろ(下位)に確定文字がある場合、この未確定文字の後ろの確定文字を削除する。
【0030】
また、ノードセパレータ付与部107は、各入力フィールド501〜504の入力内容に応じて、確定文字からなる確定部と、未確定文字からなる未確定部とを含む検索キーを生成する。
さらに、ノードセパレータ付与部107は、入力内容の中にノードセパレータ「/」と同じ文字が入力されていることを検出した場合、後述するエスケープ処理を行い、検索キーを生成する。
【0031】
また、ノードセパレータ付与部107は、検索部307によって検索された検索結果を受け取った際、検索結果に含まれるノードセパレータを削除して出力部103に出力させる。ここで、ノードセパレータ付与部107が、入力内容の中にノードセパレータ「/」と同じ文字を検出した場合、後述するアンエスケープ処理を行う。
【0032】
ここで、ノードセパレータは、入力される内容(文字あるいは空欄情報)を、入力フィールドごとに区分する情報である。また、ノードセパレータは、検索キーの確定部に確定文字が含まれている場合、それぞれ関連付けられている入力フィールドの順番に従って、当該確定文字の先頭から順番に入力フィールドを特定する。一方、検索キーの未確定部に未確定文字が含まれている場合、確定部に含まれているノードセパレータが先に入力フィールドの順番に従って対応付けられ、未確定部分に含まれるノードセパレータが、確定文字と対応付けられている入力フィールドの後に続く入力フィールドを特定する。
例えば、検索キーの確定部のみに2つのノードセパレータが含まれている場合、確定文字の最初のノードセパレータは、以下に続く文字が第1区分入力フィールド501の確定文字であることを表し、2番目のノードセパレータは、以下に続く文字が第2区分入力フィールド502の確定文字であることを表している。
【0033】
検索サーバ300は、サーバ通信部301と、サーバ記憶部302と、検索部307を備える。
サーバ通信部301は、ネットワーク200を介して入力端末装置100の端末通信部104と接続され、端末通信部104から送信される検索キーを受信し、検索部307に出力する。また、サーバ通信部301は、検索部307によって検索キーに基づき検索された検索結果を端末通信部104に送信する。
【0034】
サーバ記憶部302は、読み補完辞書記憶領域303と、表記補完辞書記憶領域304と、プログラム格納領域305とを備える。
読み補完辞書記憶領域303および表記補完辞書記憶領域304には、入力端末装置100から受信した検索キーに基づき、変換候補を検索する際に用いられる辞書データが格納されている。本実施形態では、入力端末装置100の入力部101から入力される文字として、自然言語としての日本語が入力されるものとし、読み補完辞書記憶領域303および表記補完辞書記憶領域304には、このような、日本語入力変換の際に参照される辞書データが格納される。
【0035】
読み補完辞書記憶領域303は、文字が変換処理される前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する。ここで、図3を用いて読み補完辞書データの一例について説明する。図3は、読み補完辞書データの構成の一例を示す概念図である。
【0036】
図3に示すように、読み補完辞書データは、例えば、辞書の要素である単語の「読み」を結節点(ノード)とした、樹状の階層構造(木構造)のバイナリデータによって構成されている。本実施の形態において、「第1区分」となる係り側の単語(ノード)のそれぞれに、係り受けの関係の受け側となる文節を構成する「第2区分」を示す単語(ノード)とが連結された構成(ノード列)となっている。また、「第2区分」となる係り側の単語(ノード)のそれぞれに、係り受けの関係の受け側となる文節を構成する「第3区分」を示す単語(ノード)とが連結された構成(ノード列)となっている。
【0037】
ここで、第1区分、第2区分、第3区分としてのノードは、それぞれ、第1区分入力フィールド501、第2区分入力フィールド502、第3区分入力フィールド503と対応付けられており、各入力フィールドに入力される単語として適した単語によって構成されている。また、読み補完辞書データは、入力される単語の「読み」に基づく辞書であって、各ノードには、読みを表すひらがなが単語として示されており、各単語の前にノードセパレータを示す「/」が付与された見出し語が各ノードの単語を構成している。
【0038】
ここで、読み補完辞書データの“入力フィールドに入力される単語として適した単語”とは、各入力フィールドに入力される文字の変換候補として好ましい単語であって、例えば、各入力フィールドに入力される必要がある単語や、単語の意味あるいは属性が各入力フィールドに入力される単語として対応している単語である。県名が入力される必要がある入力フィールドに対しては、県名の読みに対応する単語が対応づけられており、対処事項を入力するための入力フィールドに対しては、「でんわにてたいおうした」「しゅっちょうにてたいおうした」等の対処事項の一例の読みに対応する単語が対応付けられている。
例えば、読み補完辞書データは、図3に示す通り、第1区分として、見出し語が「/とうきょうと」であるノードと、見出し語が「/とうきょうとちょう」であるノードとを含み、これらのノードは、入力端末装置100の出力部103の第1区分入力フィールド501に入力される単語の「読み」を表すノードとして対応付けられている。
【0039】
表記補完辞書記憶領域304は、読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書データであって、互いに係り受け関係にある単語を、読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する。ここで、図4を用いて表記補完辞書データの一例について説明する。図4は、表記補完辞書データの構成の一例を示す概念図である。
【0040】
図4に示す通り、表記補完辞書データは、読み補完辞書データと同一の階層構造(木構造)によって構成されており、読み補完辞書データの各ノードに示された読みに対応する表記を示す単語を、表記補完辞書データの各ノードの見出し語として、読み補完辞書データのノードと対応する位置に構成している。
表記補完辞書データは、辞書の要素である単語の「表記」をノードとした、木構造のバイナリデータによって構成されており、「第1区分」となる係り側の単語(ノード)のそれぞれに、係り受けの関係の受け側となる文節を構成する「第2区分」を示す単語(ノード)とが連結された構成(ノード列)となっている。また、「第2区分」となる係り側の単語(ノード)のそれぞれに、係り受けの関係の受け側となる文節を構成する「第3区分」を示す単語(ノード)とが連結された構成(ノード列)となっている。
表記補完辞書データは、読み補完辞書データの各ノードを構成する単語が変換処理された後の「表記」に基づく辞書であって、各ノードには、「読み」に対応する漢字が単語として示されており、各単語の前にノードセパレータを示す「/」が付与された見出し語が各ノードの単語を構成している。
例えば、表記補完辞書データは、第1区分として、見出し語が「/東京都」であるノードと、見出し語が「/東京都庁」であるノードとを含み、これらのノードは、入力端末装置100の出力部103の第1区分入力フィールド501に入力される単語の変換候補として対応付けられている。
【0041】
つまり、表記補完辞書データは、読み補完辞書データに含まれている係り側の単語と、それに連結される受け側の単語群を構成しているノードが、各ノードの表記に基づいて構成されている辞書データである。例えば、読み補完辞書データにおいて、読みが「/とうきょうと」であるノードにリンクする表記補完辞書データでのノードでは、“とうきょうと”の変換後の表記である「/東京都」が対応付けられている。
【0042】
ここで、読み補完辞書データおよび表記補完辞書データの各ノードに付されている丸記号(○の中にアルファベット)は、読み補完辞書データと表記補完辞書データとのノード間のリンクを表すリンクポインタである。つまり、読み補完辞書データと表記補完辞書データとの間において、同じ丸記号(同じアルファベット)のリンクポインタが設定されているノード同士は、相互に参照可能であることを示している。このように、一対の読み補完辞書データと表記補完辞書データとは、ノード単位でリンクされている。
プログラム格納領域305には、検索部307が検索を実行するためのプログラムが格納される。
【0043】
検索部307は、サーバ通信部301を介して入力端末装置100から検索キーを受信し、読み補完辞書記憶領域303または表記補完辞書記憶領域304を参照して検索キーに応じた検索を行う。
例えば、検索部307は、検索キーに確定部が含まれている場合、この確定部の内容に沿って、表記補完辞書記憶領域304の表記補完辞書データの「root」から下位に向かって検索する。ここで、検索キーに確定部と未確定部の両方が含まれている場合、表記補完辞書データのリンクポインタを参照して、同じリンクポインタが付されている読み補完辞書記憶領域303の読み補完辞書データから、未確定部の未確定文字の照合を行い、該当するリンクポインタを介して表記補完辞書データから検索結果を得る。
一方、検索部307は、検索キーに未確定部のみが含まれている場合、未確定部の内容に沿って、読み補完辞書記憶領域303の読み補完辞書データの「root」から下位に向かって検索する。なお、詳細については後述する。なお、ここでは、「root」が最上位であり、「root」の配下に属するノードの階層が増えるごとに下位である。
【0044】
また、検索部307は、読み補完辞書記憶領域303から、入力フィールド501〜504のうち検索対象の入力フィールドとして特定された入力フィールドに対応する読み補完辞書データのノードを検出する。
例えば、確定部の入力内容が「/東京都庁」、未確定部の入力内容が「/だ」からなる検索キーが入力された場合、検索部307は、確定部と未確定部のそれぞれから1つのノードセパレータを検出し、第1区分入力フィールド501の確定文字として「東京都庁」と関連づけられた第2区分入力フィールド502を、検索対象の入力フィールドとする。つまり、検索部307は、検索対象の入力フィールド502に対応する読み補完辞書データのノードとして、リンクポインタ(e)の見出し語「/だいいちほんちょうしゃ」と、リンクポインタ(f)の見出し語「/だいにほんちょうしゃ」と、リンクポインタ(g)の見出し語「/だいさんほんちょうしゃ」を検出する。
【0045】
さらに、検索部307は、表記補完辞書記憶領域304から、検出された読み補完辞書データのノードの単語と対応関係にある表記補完辞書データのノードの単語を検出する。
例えば、検索部307は、読み補完辞書データのノードとして、リンクポインタ(e)の見出し語「/だいいちほんちょうしゃ」と、リンクポインタ(f)の見出し語「/だいにほんちょうしゃ」と、リンクポインタ(g)の見出し語「/だいさんほんちょうしゃ」を検出した場合、検出されたノードと対応関係にあるノードを、リンクポインタに基づき表記補完辞書データから検出する。つまり、検索部307は、リンクポインタ(e)の見出し語「/第一本庁舎」と、リンクポインタ(f)の見出し語「/第二本庁舎」と、リンクポインタ(g)の見出し語「/第三本庁舎」とを検出する。
【0046】
検索部307は、検出した表記補完辞書データのノードの単語、および検出された単語のノード区分(例えば、第1区分、第2区分、第3区分、第4区分)を表す情報(例えば、識別子F1〜F4)を、検索結果としてサーバ通信部301に出力する。つまり、検索部307は、検索対象の入力フィールドの変換候補として、表記補完辞書データから検出された全ての単語を検索結果として出力する。なお、詳細については後述する。
【0047】
次に、図5、6を用いて、本実施形態に係る文字検索システム1による文字検索方法の一例について説明する。図5は、本実施形態に係る入力端末装置100によって検索キーが生成される方法の一例について説明するためのフローチャートである。
【0048】
図5に示す通り、入力部101を介してユーザによって、文字を入力するために、ポインタが特定の入力フィールドに合わせられると、入力部101によってこのイベントが検出される。識別部106は、入力部101から検出されたイベントに基づき、指定された入力フィールドを識別する(ステップST1)。例えば、識別部106は、指定されている入力フィールドの識別子を検出する。
そして、識別部106は、文字を入力するために指定されている入力フィールドに、入力部101を介して文字が入力されたか否かを検出し、文字入力が検出された場合、入力された文字が確定文字であるか否かを検出する。
例えば、入力部101から確定指示が入力され、入力された文字が確定された場合、識別部106は、識別子と関連付けた確定文字として検出し、記憶部105に一時的に記憶させる。
ここで、確定指示が入力されていない文字がある場合、識別部106は、その文字を未確定文字として検出する。入力部101を介して文字が入力されていない場合、識別部106は、文字が入力されていないことを表すNull文字を検出する。そして、識別部106は、検出された未確定文字あるいはNull文字と、当該入力フィールドの識別子と関連づけて、記憶部105に一時的に記憶させる。なお、Null文字も、確定文字あるいは未確定文字のいずれかであって、識別部106によって識別される。
このようにして、識別部106は、指定された入力フィールドの入力内容を取得し(ステップST2)、取得した入力内容を入力フィールドの識別子と関連付けておく。
【0049】
次いで、識別部106は、指定されている入力フィールドの上位の入力フィールドの入力内容を検出し、ステップST2と同様にして、検出された入力内容(確定文字、あるいは確定文字として扱われるNull文字)と、当該入力内容が検出された入力フィールドの識別子と関連づけて、記憶部105に一時的に記憶させる(ステップST3)。
そして、ノードセパレータ付与部107は、一時記憶されている確定文字に関する情報を端末記憶部105から読み出し、入力内容と入力フィールドの識別子を確認する。ノードセパレータ付与部107は、識別部106によって、ステップST1において識別された入力フィールドと、ステップST2〜3において検出された入力内容に基づき、検出された入力内容に対して、対応する入力フィールドを区分するノードセパレータを付与する(ステップST4)。なお、確定文字の前に付与されるノードセパレータは、確定文字として用いられ、未確定文字の前に付与されたノードセパレータは、未確定文字として用いられる。
さらに、ノードセパレータ付与部107は、検出された入力内容に応じて、確定部および未確定部からなる検索キーを生成し(ステップST5)、端末通信部104に出力する。端末通信部104は、ネットワーク200を介して検索キーを検索サーバ300のサーバ通信部301に送信する(ステップST6)。
【0050】
次に、図6を用いて、図5に続く文字検索方法の一例について説明する。図6は、図5に続く文字検索方法の一例について説明するためのフローチャートである。
図6に示す通り、サーバ通信部301が、検索キーを受信すると(ステップST21)、検索部307は、受信した検索キーに基づき、検索キーの確定部に確定文字が含まれているか否かを検出する(ステップST22)。検索キーの確定部に確定文字が含まれている場合(ステップST22−YES)、検索部307は、検索キーの確定部に含まれているノードセパレータを検出する(ステップST23)。
また、検索部307は、受信した検索キーに基づき、検索キーの未確定部に未確定文字が含まれているか否かを検出する(ステップST24)。検索キーの未確定部に未確定文字が含まれている場合(ステップST24−YES)、検索部307は、検索キーの未確定部に含まれているノードセパレータを検出する(ステップST25)。
【0051】
次いで、検索部307は、検索キーに基づき、検索処理(詳細については後述する)を行う(ステップST26)。そして、検索部307は、検索処理によって得られた検索結果を出力する出力処理(詳細については後述する)を行い、出力処理がなされた検索結果を、サーバ通信部301を介して入力端末装置100に送信する(ステップST27)。
入力端末装置100は、端末通信部104を介して検索結果を受信して制御部102へ出力する。ノードセパレータ付与部107は、検索結果からノードセパレータを削除する。そして、ノードセパレータ付与部107は、検索結果のノード区分に対応する入力フィールドを特定し、当該入力フィールドの変換候補として、ノードセパレータが削除された単語を変換候補として力部103に出力させる(ステップST30)。
【0052】
ここで、図5、6に示した文字検索方法によって検索される変換候補の表示例を図7を用いて説明する。図7は、本実施形態に係る文字検索方法によって検索される変換候補を表示する入力画面の一例を示す概略図である。
【0053】
図7に示す通り、入力部101を介してユーザによって、例えば、ポインタが第1区分の入力フィールド上に移動されてクリックされることにより、入力部101は、このイベントを検出する。ここで、識別部106は、指定された第1区分入力フィールド501に文字が入力されていない状態であるので、指定された入力フィールドの識別子と関連付けた未確定Null文字を検出する。これにより、ノードセパレータ付与部107は、文字が入力されていないことを表す空欄情報と、ノードセパレータとを関連付けて未確定文字「/ 」(ここでは、本実施形態の説明のため、“/”の後ろに未確定Null文字を表すスペースを示している)を生成し、未確定部に未確定文字「/ 」を含む検索キーを作成する。
【0054】
この検索キーを受信した検索部307は、未確定部から1つのノードセパレータを検出し、検出されたノードセパレータが表す入力フィールドを検索対象の入力フィールドとして特定する。ここで、検索キーからは1つのノードセパレータのみが検出されているため、検索部307は、順番付けられた入力フィールド501〜503のうち、順番付けにおいて最も先頭(文頭)に位置する第1区分入力フィールド501を、検索対象の入力フィールドとして特定する。
これにより、検索部307は、第1区分入力フィールド501と対応する読み補完辞書データのノードとして、リンクポインタ(a)、(b)のノードを検出し、リンクポインタによって対応付けられている表記補完辞書データのリンクポインタ(a)のノードの見出し語「/東京都」と、リンクポインタ(b)のノードの見出し語「/東京都庁」とを検出する。そして、検索部307は、検出された「/東京都」および「/東京都庁」と、これら検出された単語のノード区分(第1区分)を表す情報を付与した検索結果をサーバ通信部301に出力する。
そして、出力部103は、検出された検索結果からノードセパレータ「/」が削除された「東京都」および「東京都庁」を、図7に示す通り、第1区分入力フィールド501の変換候補として表示する。
【0055】
次に、図5、6に示した文字検索方法によって検索される変換候補の他の表示例を図8を用いて説明する。図8は、本実施形態に係る文字検索方法によって検索される変換候補を表示する入力画面の他の例を示す概略図である。なお、図8は、図7に示す文字検索方法によって検索された変換候補のうち「東京都」がユーザによって確定された場合に引き続く文字検索方法の一例である。
【0056】
例えば、図8に示すように変換候補のうち「東京都」が確定された場合、識別部106は、第1区分入力フィールド501の確定内容が「東京都」であることを検出し、当該内容に識別子「F1」を関連付けて、端末記憶部105に一時的に記憶させる。
そして、図8に示すように、入力部101を介して、ユーザにより文字を入力するための入力フィールドとして第2区分入力フィールド502が指定されると、入力部101は、このイベントを検出する。当該第2区分入力フィールド502に文字が入力されていない状態において、識別部106は、識別子「F2」と関連付けられた未確定Null文字を検出する。
次いで、ノードセパレータ付与部107は、端末記憶部105に記憶されている確定文字「東京都」を読み出し、関連付けられている識別子を参照して、読み出した確定文字と、検出された未確定Null文字が異なる入力フィールドの入力内容であるか否かを検出する。ここで両者は異なる入力フィールドであるため、ノードセパレータ付与部107は、「東京都」にノードセパレータを付与して「/東京都」を生成し、空欄情報にノードセパレータを付与して「/ 」を生成する。
このようにして、ノードセパレータ付与部107は、確定部に確定文字「/東京都」を含み、未確定部に未確定文字「/ 」を含む検索キーを作成する。
【0057】
この検索キーを受信した検索部307は、検索キーの確定部から1つのノードセパレータ、未確定部から1つのノードセパレータをそれぞれ検出し、検索対象の入力フィールドを特定する。ここで、検索キーから検出されたノードセパレータは2つであって、確定部において検出された1つのノードセパレータが、順番付けられた入力フィールド501〜503のうち、順番付けにおいて最も先頭に位置する第1区分入力フィールド501であることを表している。このため、検索部307は、未確定部において検出された1つのノードセパレータが、確定部において検出されたノードセパレータが表す入力フィールドの次の順番となる第2区分入力フィールド502を表していることを検出する。これにより、検索部307は、未確定部において検出されたノードセパレータが表す第2区分入力フィールド502を、検索対象の入力フィールドとして特定する。
【0058】
これにより、検索部307は、第1区分入力フィールド501の確定内容「/東京都」が関連付けられた第2区分入力フィールド502と対応する読み補完辞書データのノードとして、図3に示す通り、リンクポインタ(c)、(d)のノードを検出する。そして、検索部307は、図4に示す通り、リンクポインタ(c)、(d)によって対応付けられている表記補完辞書データのリンクポインタ(c)のノードの見出し語「/江東区」と、リンクポインタ(d)のノードの見出し語「/中央区」を検出する。そして、検索部307は、検出された「/江東区」および「/中央区」と、これら検出された単語のノード区分(第2区分)を表す情報を付与した検索結果をサーバ通信部301に出力する。
そして、出力部103は、検出された検索結果からノードセパレータ「/」を削除された「江東区」および「中央区」を、図8に示す通り、第2区分入力フィールド502の変換候補として表示する。
次いで、第2区分入力フィールド502に「こ」が入力された場合、確定部が「/東京都」、未確定部が「/こ」からなる検索キーが生成され、検索部307によって、第2区分入力フィールドの出力候補語として「/江東区」が得られ、サーバ通信部301に出力される。そして、検索結果から、ノードセパレータ「/」が削除され、第2区分入力フィールド502には、「江東区」のみが表示される。
【0059】
上述の通り、本実施形態に係る文字検索システム1は、複数の入力フィールド501〜503を識別し、入力フィールド501〜503ごとに検出された入力内容に応じて検索キーを作成することができる。また、入力フィールド501〜503のうち任意の入力フィールドが指定された状態で、文字が入力されていない状態であっても、文字が入力されていないことを表す入力内容であるNull文字にノードセパレータを付与して検索キーを生成することができる。
これにより、例えば、図7に示す通り、入力フィールドを指定することによって、読み補完辞書記憶領域303および表記補完辞書記憶領域304において、複数の入力フィールド501〜503と対応付けられたノードから、指定された入力フィールドに対応する単語を検索し、変換候補として入力画面に表示することができる。よって、ユーザは、入力フィールドに何らかの文字を入力せずとも、変換候補を得ることでき、入力作業を効率的に行うことができる。
【0060】
一方、本実施形態に係る文字検索システム1によらない場合では、図26に示す通り、入力フィールドが指定され、文字が入力されていない状態においては、何れの変換候補も表示されないため、ユーザは何らかの文字を入力しなければならない。また、読みがわからない文字を入力する場合や、誤った読みを入力した場合は、ユーザの所望する変換候補が表示されない問題が考えられる。しかし、本実施形態に係る文字検索システム1は、文字が入力されていない状態であっても、入力フィールドが指定されることで、変換候補を表示するようにしたため、このような問題を解決することができる。
【0061】
また、本実施の形態に係る文字検索システム1では、複数の入力フィールド501〜501を表すノードセパレータが、それぞれの入力フィールド501〜503に入力されている入力内容と関連づけられた検索キーが、ノードセパレータ付与部107によって作成される。これにより、検索部307は、読み補完辞書記憶領域303および表記補完辞書記憶領域304において、各入力フィールド501〜503と対応付けられているノード区分に従って、変換候補を検索することができる。よって、読み補完辞書記憶領域303および表記補完辞書記憶領域304のように、木構造において各ノードが関連付けられた辞書データを用いて変換候補を検索し、入力画面に表示する場合であっても、入力フィールドに適した変換候補を検索することができる。
【0062】
一方、本実施形態に係る文字検索システム1を用いない場合では、図27に示す通り、先の第1区分入力フィールドにおいて確定文字「東京都」が入力されている状態で、第2区分入力フィールドが指定された場合であっても、確定文字「東京都」を含む「東京都庁」が変換候補として検索されてしまい、「東京都」と関連付けられた「江東区」「中央区」より上部に「庁」が表示される問題が考えられる。ここで、「庁」がユーザによって選択された場合、入力が必要とされていない文字が入力フィールドに入力されてしまい、入力のやり直しが必要となる不都合が生じる場合が考えられる。しかし、本実施形態に係る文字検索システム1は、入力フィールドごとに関連付けられた変換候補を検索するようにしたので、誤った入力フィールドに、変換候補が表示される問題を解決することができる。
【0063】
[第2の実施形態]
次に、本実施形態に係る文字検索システム1の他の例について説明する。なお、上記実施の形態と同様の構成や機能についての詳細な説明は省略する。
図9は、本実施形態に係る読み補完辞書記憶領域303に記憶されている読み補完辞書データの他の例を示す概略図である。
図9に示す読み補完辞書データは、上述の通り、辞書の要素である単語の「読み」をノードとした木構造のバイナリデータによって構成され、「root」以下に「第1区分」、「第2区分」、「第3区分」のノードが、それぞれ係り受けの関係に従って連結されている。
【0064】
ここで、「第1区分」のリンクポインタ(b)のノードの見出し語は、「/ぱそこん¥/ぴーしーそふと」であって、文頭にノードセパレータ「/」を、文中にエスケープ文字「¥」と、ノードセパレータ「/」とを含んでいる。また、「第2区分」のリンクポインタ(e)のノードの見出し語は、「/ 」であって、文頭にノードセパレータ「/」を、文中には空を表すNull文字とを含んでいる。さらに、「第3区分」のリンクポインタ(j)のノードの見出し語は、「/げーむ¥/しゅうへんきき」であって、文頭にノードセパレータ「/」を、文中にエスケープ文字「¥」と、ノードセパレータ「/」とを含んでいる。
またここでは、「root」を最上流として、「root」配下に属するノードが、その「root」からの階層が増えるにつれて下流となっており、このノードの階層と入力フィールドの区分(第1区分、第2区分、第3区分)とが対応している。
【0065】
図10は、本実施形態に係る表記補完辞書記憶領域304に記憶されている表記補完辞書データの他の例を示す概略図である。
図10に示す表記補完辞書データは、上述の通り、読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書データであって、互いに係り受け関係にある単語を、読み補完辞書データと対応付けられたノードとして木構造に構成されており、「第1区分」、「第2区分」、「第3区分」のノードが、それぞれ係り受けの関係によって連結されている。
ここで、「第1区分」のリンクポインタ(b)のノードの見出し語は、「/パソコン¥/PCソフト」であって、文頭にノードセパレータ「/」を、文中にエスケープ文字「¥」と、ノードセパレータ「/」とを含んでいる。また、「第2区分」のリンクポインタ(e)のノードの見出し語は、「/ 」であって、文頭にノードセパレータ「/」を、文中には空欄情報を表すNull文字とを含んでいる。さらに、「第3区分」のリンクポインタ(j)のノードの見出し語は、「/ゲーム¥/周辺機器」であって、文頭にノードセパレータ「/」を、文中にエスケープ文字「¥」と、ノードセパレータ「/」とを含んでいる。
【0066】
次に、図11を用いて、本実施形態に係る文字検索システム1による文字検索方法の他の例について説明する。なお、図5、6に示した本実施形態に係る文字検索方法と同様の構成や機能についての詳細な説明は省略する。
図11は、本実施形態に係る文字検索システム1による文字検索方法の他の例について説明するためのフローチャートである。図12は、図11を説明する際に、出力部103によって表示される入力画面の一例を示す概略図である。図13は、図11に係る文字検索方法の一例を説明するための図である。
【0067】
まず図11に示す通り、ステップST2、3(図5参照)において識別部106によって入力フィールド501〜504の入力内容が検出されると(ステップST41)、ノードセパレータ付与部107は、検出された入力内容に、エスケープ文字「¥」あるいはノードセパレータ「/」があるか否かを検出する(ステップST42)。エスケープ文字「¥」あるいはノードセパレータ「/」が検出された場合(ステップST42−YES)、ノードセパレータ付与部107は、エスケープ処理を行う(ステップST43)。
ここで、エスケープ処理とは、入力内容にエスケープ文字「¥」あるいはノードセパレータ「/」が含まれていた場合、検出されたエスケープ文字「¥」あるいはノードセパレータ「/」の直前あるいは直後にエスケープ文字「¥」を付与して、入力内容に含まれているエスケープ文字「¥」あるいはノードセパレータ「/」を、エスケープ対象文字(例えば、「¥¥」「¥/」あるいは「/¥」)に置き換える処理である。この処理により、「/」を、入力フィールド間を区分するノードセパレータとすべきか、あるいはユーザによって入力された文字として認識するべきかを把握することができる。
【0068】
例えば、図12に示す通り、出力部103は、入力画面において、第1区分入力フィールド501に確定文字「パソコン/PCソフト」を表示する。ここで、第2区分入力フィールド502には何も入力されていない状態であるため何も表示されていない。また、第3区分入力フィールド503は、文字を入力するためにユーザによって指定されている入力フィールドであり、未確定文字「げ」が表示される。
図12に示すような状態において、識別部106は、図13(a)に示すような入力内容を検出する。つまり、識別部106は、第1区分入力フィールド501の入力内容として、確定文字「パソコン/PCソフト」を検出し、第2区分入力フィールド502の入力内容として確定文字「確定Null文字」を検出し、第3区分入力フィールド503の入力内容として未確定文字「げ」を検出する。
これにより、ノードセパレータ付与部107は、第1区分入力フィールド501の入力内容である確定文字「パソコン/PCソフト」にノードセパレータと同じ文字「/」があることを検出する。そして、ノードセパレータ付与部107は、「パソコン/PCソフト」をエスケープ処理して、「パソコン¥/PCソフト」とする。
【0069】
次いで、図11に戻って、ノードセパレータ付与部107は、エスケープ処理された第1区分入力フィールド501の確定文字「パソコン¥/PCソフト」に対してノードセパレータ「/」を付与して、確定文字「/パソコン¥/PCソフト」を生成する。また、ノードセパレータ107は、第2区分入力フィールド501の確定文字「確定Null文字」(空欄情報を意味する)に対してノードセパレータ「/」を付与して確定文字「/ 」を生成し、第3区分入力フィールド503の未確定文字「げ」に対してノードセパレータ「/」を付与して未確定文字「/げ」を生成する(ステップST44)。
そして、ノードセパレータ付与部107は、図13(b)に示すように、確定文字「/パソコン¥/PCソフト」と確定文字「/ 」を、入力フィールド501〜503の順に従って並べて、確定部の確定文字「/パソコン¥/PCソフト/ 」を生成する。次いで、ノードセパレータ付与部107は、確定部の確定文字「/パソコン¥/PCソフト/ 」と、未確定部の未確定文字「/げ」からなる検索キーを生成する。
【0070】
検索部307は、当該検索キーに基づき、検索処理(詳細については後述する)を行い、図13(c)に示す検索結果を得る(ステップST45)。
すなわち、検索部307は、確定文字「/パソコン¥/PCソフト/ 」にエスケープ対象文字「¥/」が含まれるか否かを検出する。検索部307は、「/パソコン¥/PCソフト/ 」から、ノードセパレータを含むエスケープ対象文字を検出すると、検索キーの確定部の確定文字「/パソコン¥/PCソフト/ 」からエスケープ対象文字を除いてノードセパレータを検出する。ここで、検索部307は、パソコンの直前に付されたノードセパレータと、「ソフト」の直後であって、Null文字(空欄情報)の直前に付されたノードセパレータを検出する。
一方、検索部307は、検索キーの未確定部の未確定文字に対しても同様にして、エスケープ対象文字が含まれるか否かを判断し、含まれている場合は、エスケープ対象を除いてノードセパレータを検出する。ここで、検索部307は、「げ」の直前に付されているノードセパレータを検出する。
【0071】
次いで、検索部307は、検索キーから検出されたノードセパレータが3つであることを検出する。ここで、確定部において検出された2つのノードセパレータが、最も先頭に位置する第1区分入力フィールド501と次に位置する第2区分入力フィールド502であることを表している。このため、検索部307は、未確定部において検出された1つのノードセパレータが、確定部において検出されたノードセパレータによって表される入力フィールドの次の順番となる第3区分入力フィールド503を表していることを検出する。これにより、検索部307は、未確定部において検出されたノードセパレータが表す第3区分入力フィールド503を、検索対象の入力フィールドとして特定する。
【0072】
これにより、検索部307は、例えば、読み補完辞書データにおいて、第1区分の「/ぱそこん¥/ぴーしーそふと」のノードと、第2区分の「/ 」のノードと関連付けられた第3区分のノードとして、図9に示す通り、リンクポインタ(h)、(i)、(j)のノードを検出する。そして、検索部307は、図10に示す通り、リンクポインタ(h)、(i)、(j)によって対応付けられている表記補完辞書データのリンクポインタ(h)のノードの見出し語「/ゲームソフト」と、リンクポインタ(i)のノードの見出し語「/ゲーム本体」と、リンクポインタ(j)のノードの見出し語「/ゲーム¥/周辺機器」を検出する。そして、検索部307は、検出された「/ゲームソフト」「/ゲーム本体」および「/ゲーム¥/周辺機器」と、これら検出された単語のノード区分(第3区分)を表す情報を付与した検索結果をサーバ通信部301に出力する。
【0073】
そして、検索部307は、検索処理によって得られた検索結果に対して出力処理(詳細については後述する)を行い、出力処理がなされた検索結果を、サーバ通信部301を介して入力端末装置100に送信する(ステップST46)。
検索結果を受信した入力端末装置100において、ノードセパレータ付与部107が、検索結果「/ゲームソフト」「/ゲーム本体」および「/ゲーム¥/周辺機器」からノードセパレータを削除し(ステップST47)、さらに、検索結果「/ゲームソフト」「/ゲーム本体」および「/ゲーム¥/周辺機器」にエスケープ文字が含まれているか否かを検出する(ステップST48)。エスケープ文字が含まれていた場合、検索部307は、アンエスケープ処理を行う(ステップST49)。出力部103は、検出された検索結果からノードセパレータ「/」が削除され、アンエスケープ処理がなされた「ゲームソフト」「ゲーム本体」および「ゲーム/周辺機器」を、図12に示す通り、第3区分入力フィールド503の変換候補として表示する。
ここで、アンエスケープ処理とは、ノードセパレータを削除する際に、エスケープ対象文字が検出された場合、エスケープ対象文字をノードセパレータとする処理である。よって、「/ゲーム¥/周辺機器」は、ノードセパレータを削除する際、エスケープ対象文字「¥/」をノードセパレータ「/」に置き換えられ、文頭のノードセパレータが削除される。
【0074】
上述の通り、本実施形態に係る文字検索システム1は、複数の入力フィールド501〜503を識別し、入力フィールド501〜503ごとに検出された入力内容に応じて検索キーを作成することができる。また、入力フィールド501〜503のうち任意の入力フィールドが指定された状態で、指定された入力フィールドよりも前の順番である入力フィールドの入力内容を確定内容として検出することができる。さらに、確定内容として検出された入力内容が、空欄情報であっても、空欄情報とノードセパレータとを関連付けて検索キーを生成することができる。
これにより、例えば、図12に示すように、第1区分入力フィールド501に文字が入力され、第2区分入力フィールド502に文字が入力されていない状態において、第3区分入力フィールド503にポインタが位置している状態であっても、識別部106が、指定された第3区分よりも前の順である第1区分入力フィールド501と第2区分入力フィールド502の入力内容として、それぞれ入力されている文字(パソコン/PCソフト)と、空欄情報とを検出する。よって、第2区分入力フィールド502のように、文字が入力されていない場合であっても、空欄情報に入力フィールドを表すノードセパレータが関連付けられた検索キーが生成されるため、途中の入力フィールドにおいて、文字が入力されていない状態であっても、検索することができる。
【0075】
一方、一般的な辞書データは、木構造からなるノードによって関連付けられている単語を、ノードに対応する単語同士を関連付けて記憶しているものが多く、“NULL文字”を含む関連付けがなされていない場合が多い。この場合、入力された文字において“NULL文字”が含まれている場合、これを検索キーとして、辞書データから変換候補を検索することができない問題が考えられる。
これに対して、本実施形態に係る文字検索システムは、上記問題を解決することができる。
【0076】
なお、本実施形態に係る入力端末装置100は、例えば、コールセンタなどでの入力業務に用いる入力端末装置であって、ワークステーションやパーソナルコンピュータなどの情報処理装置から構成されるものが好ましい。また、本実施形態に係る入力端末装置100にあっては、携帯電話のユーザサポート業務を行うコールセンタにおいて、ユーザに対する電話応答時に頻出する語彙を基に、読み補完辞書記憶領域303の読み補完辞書データと、表記補完辞書記憶領域304の表記補完辞書データが構成されているものであってもよい。
これにより、電話による応対の内容をリアルタイムに入力する必要のあるコールセンタの作業などにおいて、より効率的な文字入力を実現することができる。
【0077】
[第3の実施形態]
次に、本実施形態に係る文字検索システム1の他の例について説明する。なお、上記実施の形態と同様の構成や機能についての詳細な説明は省略する。
図14は、本実施形態に係る読み補完辞書記憶領域303に記憶されている読み補完辞書データの他の例を示す概略図である。
図14に示す読み補完辞書データは、上述の通り、辞書の要素である単語の「読み」をノードとした木構造のバイナリデータによって構成され、「root」以下に「第1区分」、「第2区分」、「第3区分」「第4区分」のノードが、それぞれ係り受けの関係に従って連結されている。
【0078】
ここで、「第1区分」〜「第3区分」のノードは、それぞれ1つのノードが、各区分のノードとして対応付けられている。なお、「第1区分」〜「第3区分」は、それぞれ、電気製品のカテゴリ、カテゴリに応じた家電製品の種類、家電製品の品番を入力するための入力フィールドとして対応づけられており、詳細について、上記実施形態と同様である。
一方、「第4区分」のノードは、少なくとも2以上の階層からなる複数のノードを部分木とした木構造に構成されている。例えば、主語となる係り側の単語(ノード)のそれぞれに、係り受けの関係の受け側となる文節を構成する助詞と述語を示す単語(ノード)とが連結された構成(ノード列)となっている。この構成により、文法的に互いに係り受け関係にある単語が、相関的な位置で連結されている状態を示すデータによって辞書が構築される。
ここで、「第4区分」の複数のノードにおいて、先頭のリンクポインタ(g)のノードの見出し語は、「/がめん」であって、文頭にノードセパレータ「/」を含んでいる。一方、このリンクポインタ(g)のノードより下位の階層であるリンクポインタ(h)〜(l)のノードは、文頭にノードセパレータ「/」を含んでいない。
【0079】
図15は、本実施形態に係る表記補完辞書記憶領域304に記憶されている表記補完辞書データの他の例を示す概略図である。
図15に示す表記補完辞書データは、上述の通り、読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書データであって、互いに係り受け関係にある単語を、読み補完辞書データと対応付けられたノードとして木構造に構成されており、「第1区分」、「第2区分」、「第3区分」「第4区分」のノードが、それぞれ係り受けの関係によって連結されている。
【0080】
表記補完辞書データも、読み補完辞書データと同様、「第1区分」〜「第3区分」のノードは、それぞれ1つのノードが、各区分のノードとして対応付けられている。一方、「第4区分」のノードは、少なくとも2以上の階層からなる複数のノードを部分木とした木構造に構成されている。
ここで、「第4区分」の複数のノードにおいて、先頭のリンクポインタ(g)のノードの見出し語は、「/画面」であって、文頭にノードセパレータ「/」を含んでいる。一方、このリンクポインタ(g)のノードより下位の階層であるリンクポインタ(h)〜(l)のノードは、文頭にノードセパレータ「/」を含んでいない。
【0081】
次に、図16〜25を用いて、図14、15に示した読み補完辞書データおよび表記補完辞書データを用いた検索処理の一例について説明する(第1、第2の実施形態において「後述する」とした検索処理に相当)。
図16において、検索部307は、検索キーのノードセパレータ「/」の下位に続く文字列の先頭が「ひらがなのみ」からなる「未確定部」であるか否かを判断する(S301)。そして、検索キーのノードセパレータ「/」の下位の文字列の先頭が「ひらがなのみ」で、かつ「未確定部」である場合には(S301:Yes)、「先頭未確定処理」(S500)に進み、「ひらがなのみ」からなる「未確定部」でない場合(S301:No)には、「先頭確定処理」(S600)に進む。なお、ノードセパレータ「/」をひらがなの文字として認識するため、検索部307は、ステップS301において、ノードセパレータ「/」を含めて、「ひらがなのみ」からなる「未確定部」であるか否かを判断するものであってもよい。
【0082】
次に、上記ステップS500の「先頭未確定処理」について図17を参照して説明する。検索部307は、まず、「読み補完辞書」から係り側ノードを一つ取得する(S501)。これをノードxとする。なお、以降、アルファベット小文字を用いて「ノードx」と記載した場合には、読み補完辞書のノードを表し、アルファベット大文字を用いて「ノードX」と記載した場合には、ノードxと対応する、表記補完辞書のノードを表すものとする。
【0083】
ノードxと検索キーとの間に何らかの「前方一致」がある場合、検索キーとノードxとの長短に応じて、包含関係を次のように定義する。
検索キー ⊂ ノードx 部分一致
検索キー = ノードx 完全一致
検索キー ⊃ ノードx 余剰一致
【0084】
また、読み補完辞書および表記補完辞書は、各々、図14および図15に示すように構成されているものとする。ノードxが「がめん」の場合を例に、検索キーとの部分一致、完全一致、余剰一致の例は、図18(a)に示す通りである。
なお、前方一致とは検索キーとノードxとの一致判断にあたり、常に先頭部分(文字列左端)の一致を条件とすることをいう。部分一致だが前方一致ではない例と、余剰一致だが前方一致ではない例とを、図18(b)に示す。
【0085】
検索キーとノードxに何らの一致(前方一致)もない場合(S502:No)検索部307は、読み補完辞書に比較すべきノードが残っていないか確認する(S506)。比較すべきノードが残っていれば(S506:No)、ステップS501へ戻る。
一方、比較すべきノードが残っていない場合(S506:Yes)は、当該先頭未確定処理を終了する。
【0086】
また、検索キーとノードxとがいずれかの形で前方一致すれば(S502:Yes)、検索部307は、ノードxと対応する表記補完辞書のノードX(大文字X)を取得する(S503)。
そして、部分一致の場合(S504:Yes)、検索部307は、ノードXを結果テーブル(サーバ記憶部302)に追加する(S505)。その例を図18(c)に示す。
その後、比較すべき候補がまだ残っていれば(S506:No)、S501へ戻る。全てのノードxについて比較が終了していれば(S506:Yes)、当該先頭未確定処理を終了する。
【0087】
一方、完全一致の場合(S504:No、S507:Yes)、検索部307は、受け側ノード列を含めて、ノードXを結果テーブル450に追加する(S508)。その例を図18(d)に示す。
その後、比較すべき候補がまだ残っていれば(S506:No)、S501へ戻る。全てのノードxについて比較が終了していれば(S506:Yes)、先頭未確定処理を終了する。
【0088】
また、部分一致でも完全一致でもない場合には、余剰一致となる(S507:No)。検索部307は、ノードxの受け側ノード列yを取得する(S509)。次いで、検索部307は、検索キーからノードxを削除した余りがノード列yに、前方一致を条件として含まれるか(部分一致ないし完全一致するか)判断する(S510)。そして、含まれれば(S510:Yes)、ノード列yと対応する表記補完辞書のノード列Yを取得し(S511)、ノードX+ノードYを結果テーブル(サーバ記憶部302)に追加する(S512)。
【0089】
その後、比較すべき受け側ノード列候補がまだ残っていれば(S513:No)、S509へ戻る。一方、全てのノード列yについて比較が終了していれば(S513:Yes)、S506へ進む。余りが部分一致の例を図18(e)に示し、余りが完全一致の例を図18(f)に示す。
【0090】
一方、検索キーからノードxを削除した余りがノード列yに含まれなければ(S510:No)、直接、S513へ進む。この例を図18(g)に示す。
その後、比較すべき受け側ノード列候補がまだ残っていれば(S513:No)、S509へ戻る。全てのノード列yについて比較が終了していれば(S513:Yes)、S506へ進む。
【0091】
次に、上記ステップS600の「先頭確定処理」について図19を参照して説明する。
このフローで処理される検索キーには、「確定部のみ」の場合と「確定部+未確定部」の場合とがある。検索部307は、表記補完辞書から係り側ノードXを1つ取得する(S601)。係り側ノードXと検索キーとの間の包含関係の定義は、「先頭未確定処理」の場合と同様である。
検索キー ⊂ ノードX 部分一致
検索キー = ノードX 完全一致
検索キー ⊃ ノードX 余剰一致
【0092】
また、先頭確定処理においても、一致判断は「前方一致」を条件とする。図20(a)にその例を示す。
【0093】
検索キーとノードXとの間に何らの一致もない場合(S602:No)、検索部307は、表記補完辞書に、検索キーと比較すべきノードXが残っていないか確認する(S606)。そして、比較すべきノードXが残っていれば(S606:No)、S601へ戻る。
【0094】
一方、比較すべきノードが残っていない場合には(S606:Yes)、当該先頭確定処理を終了する。
一方、部分一致の場合には(S604:Yes)、検索部307は、ノードXを結果テーブル(サーバ記憶部302)に追加する。その例を図20(b)に示す。すなわち、検索キー「画」に対して、「画面」が結果テーブルに追加される。
そして、比較すべき候補がまだ残っていれば(S606:No)、S601へ戻る。全てのノードXについて比較が終了していれば(S606:Yes)、当該先頭確定処理を終了する。
【0095】
一方、完全一致の場合(S604:No、S607:Yes)、検索部307は、受け側ノード列を含めて、ノードXを結果テーブルに追加する(S608)。その例を図20(c)に示す。
次いで、検索部307は表記補完辞書に比較すべきノードが残っていないか確認する(S606)。比較すべきノードが残っていれば(S606:No)、S601へ戻る。一方、比較すべきノードが残っていない場合には(S606:Yes)、当該先頭確定処理を終了する。
【0096】
また、部分一致でも完全一致でもない場合は余剰一致となる(S607:No)。
ここで、図21を参照して余剰一致処理について説明する。なお、ここでは、Yが2である場合について説明したが、YがN(例えば、Nは3以上)の場合は、図21に示す処理を再帰的に実行することにより、余剰一致処理を行う。
検索部307は、まず、ノードXの受け側ノード列Y(Y1+Y2)を一組取得する(S701)。その例を図20(a)に示す。
次いで、検索部307は、検索キーに含まれるノードセパレータ「/」の下位の文字列から係り側ノードXを削除した余りキーαが「ひらがなのみ」からなる「未確定部」であるか否か判断する(S702)。ここで、図22(b)にS702がYesの例を示し、図22(c)にS702がNoの例を示す。
【0097】
余りαが「ひらがなのみ」からなる「未確定部」である場合には(S702:Yes)、検索部307は、読み補完辞書から、ノード列Yと対応するノード列yを検索して取得する(S703)。そして、検索部307は、余りキーαがノード列yと部分一致ないし完全一致するか判定する(S704)。
【0098】
そして、余りキーαがノード列yと部分一致ないし完全一致する場合(S704:Yes)、検索部307は、受け側ノード列を含めて、ノードX+Yを結果テーブル450に追加する(S705)。この例を図22(d)に示す。その後、S706へ進む。
【0099】
一方、余りキーαとノード列yとが部分一致も完全一致もしない場合(S704:No)、すなわち、図22(e)に示すような場合には、直接、S706へ進む。
その後、比較すべき受け側ノード列Yがまだ残っていれば(S706:No)、S701へ戻る。一方、全てのノード列Yについて比較が終了していれば(S706:Yes)、当該余剰一致処理を終了する。
【0100】
また、余りキーαの中に確定文字列があるか、未確定部のみであっても、ひらがなだけではない場合(S702:No)、検索部307は、余りキーαがノード列Yのうち、前方のノードY1と部分一致または完全一致するか判定する(S707)。そして、余りキーαがノードY1と部分一致または完全一致する場合(S707:Yes)、検索部307は、受け側ノード列を含めて、ノードX+ノードYを結果テーブル450に追加する(S708)。この例を図22(f)に示す。その後、S706へ進む。
【0101】
その後、比較すべき受け側ノード列Yがまだ残っていれば(S706:No)、S701へ戻る。一方、全てのノード列Yについて比較が終了していれば(S706:Yes)、当該余剰一致処理を終了する。
【0102】
一方、余りキーαがノードY1と部分一致も完全一致もしない場合(S707:No)、検索部307は、余りキーαがノードY1を包含するか否か判定する(S709)。そして、余りキーαがノードY1を包含しない場合(S709:No)、すなわち、図22(g)に示すような場合には、S706へ進む。
【0103】
一方、余りキーαがノードY1を包含する場合(S709:Yes)、検索部307は、余りキーαから更にノードY1を除いた余りキーβを作成し、余りキーβが「ひらがなのみ」からなる「未確定部」であるか否か判定する(S710)。
余りキーβがひらがなのみからなる未確定部である場合(S710:Yes)、検索部307は、Y2と対応するノードy2を読み補完辞書から取得し(S711)、余りキーβがノードy2と部分一致または完全一致するか判定する(S712)。そして、余りキーβがノードy2と部分一致または完全一致する場合(S712:Yes)、検索部307は、ノードX+ノードYを結果テーブル(サーバ記憶部302)に追加する(S713)。その例を図22(h)に示す。その後、S706へ進む。
【0104】
一方、余りキーβがノードy2と部分一致も完全一致もしない場合(S712:No)、すなわち、図22(i)に示すような場合には、S706へ進む。
その後、比較すべき受け側ノード列Yがまだ残っていれば(S706:No)、S701へ戻る。一方、全てのノード列Yについて比較が終了していれば(S706:Yes)、当該余剰一致処理を終了する。
【0105】
一方、余りキーβが「ひらがなのみ」からなる「未確定部」でない場合(S710:No)、検索部307は、余りキーβがY2と部分一致または完全一致するか判定する(S714)。そして、余りキーβとY2とが部分一致でも完全一致でもない場合(S714:No)、S706へ進む。図22(j)に部分一致でも完全一致でもない場合の例を示す。
【0106】
一方、余りキーβとY2が部分一致または完全一致の場合(S714:Yes)、検索部307は、ノードX+ノードYを結果テーブル450に追加し(S713)、S706へ進む。ノードX+ノードYの結果テーブル(サーバ記憶部302)への追加例を図22(k)に示す。
【0107】
その後、比較すべき受け側ノード列Yがまだ残っていれば(S706:No)、S701へ戻る。一方、全てのノード列Yについて比較が終了していれば(S706:Yes)、当該余剰一致処理を終了する。
そして、当該余剰一致処理を終了した検索部307は、図19のS606に戻り、全てのノードXについて比較が終了していれば(S606:Yes)、当該先頭確定処理を終了する。
【0108】
ここで、検索の一例について、図14、図15を用いてさらに説明をする。
第1区分入力フィールド501に、「か」が未確定文字として入力されている場合、検索部307は、「/か」を基に、読み補完辞書記憶領域303の辞書データを参照し、「か」に続く「かでん」を得る。次いで、検索部307は、読み補完辞書記憶領域303の「かでん」のノードに対する表記補完辞書記憶領域304のノードを参照して「家電」を得て、候補語として得る。そして、この候補語「家電」が第1区分入力フィールド501に表示される。
次に、ユーザが第2区分入力フィールド502にポインタを合わせると、入力部101は、第2区分入力フィールド502が指定されたことを表すイベントを検出する。これにより、識別部106は、上位の第1区分入力フィールド501から「家電」を確定文字として検出し、第2区分入力フィールド502から、未確定文字を示すNull文字を検出する。これにより、検索部307は、確定部が「/家電」未確定部が「/」である検索キーに基づき、検索処理を行い、「家電」に続くノードが「テレビ」と「冷蔵庫」であることを得る。そして、検索部307は、候補語として「テレビ」と「冷蔵庫」を候補語として表示する。
【0109】
次いで、ポインタが候補語として表示されている「テレビ」を指定した状態で、Enterキー(確定指示)が押されると、第2区分入力フィールド502の確定文字として、「テレビ」が入力される。そして、ユーザによって第3区分入力フィールド503にポインタが合わせられると、入力部101は、第3区分入力フィールド503が指定されたことを表すイベントを検出する。これにより、上位の第1区分入力フィールド501の入力内容である「家電」と、第2区分入力フィールド502の入力内容である「テレビ」が確定文字となる。検索部307は、確定部が「/家電/テレビ」未確定部が「/」である検索キーに基づき、検索処理を行い、「テレビ」の後ろに続く文字として、「XY206−A」、「XY210−B」を得て、候補語として表示する。
【0110】
なお、上述した例において、第1区分入力フィールド501に「家電」が確定文字として入力された後、第2区分入力フィールド502に、例えば、「て」が未確定文字として入力された場合には、「/家電(確定部)/て(未確定部)」を検索キーとし、検索処理を行う。つまり、検索部307は、表記補完辞書記憶領域304の辞書データを参照して「家電」を検索した後、後ろに続く文字が未確定文字であるので、「かでん」の後ろに続くノードの「て」を読み補完辞書記憶領域303を参照し、「てれび」を検出する。次いで、検索部307は、この「てれび」に対応するノードの表記補完辞書記憶領域304を参照し、「テレビ」を得て、第2区分入力フィールド502に「テレビ」を表示する。
【0111】
なお、第1区分入力フィールド501に何も文字が入力されていない状態でポインタが位置する場合には、「/」を検索キーとし(ここでは、「/」は未確定文字と見なす)、読み補完辞書記憶領域303の第1区分のノード「かでん」に応じた表記補完辞書記憶領域304の第1区分のノード「家電」を得て、第1区分入力フィールド501に候補語として表示する。
【0112】
このように、ポインタが現在位置している入力フィールドよりも上位の入力フィールドまでの入力内容を検索キーとし、読み補完辞書記憶領域303および表記補完辞書記憶領域304を参照して検索する。
【0113】
次に、入力端末装置100の出力部103が、検索部307によって得られた検索結果を候補表示するための出力処理(整形処理)について図23を用いて説明する。以下、説明を容易にするため、検索キーが「確定部のみ」、「確定部+未確定部」、「未確定部のみ」の場合に分けて説明する(第1、第2の実施形態において「後述する」とした出力処理に相当)。
【0114】
<検索キーが確定部のみの場合>
出力部103は、まず、検索サーバ300から受信した検索結果の文字列から、検索キーの「確定部」を削除する(S401)。次に、削除した結果、検索キーの「未確定部」と完全一致することになった出力候補語があるか判定する(S402)。この例では、検索キーに「未確定部」を含まないので、S402は自動的にNoとなる。この結果、図24(a)に示すような出力が得られる(S404)。また、このように整形された候補語の画面表示例を図25(a)に示す。
【0115】
<検索キーが「確定部+未確定部」の場合>
出力部103は、まず、結果テーブル450の文字列から検索キーの「確定部」を削除する(S401)。さらに、確定部削除の結果、出力候補語の中に検索キーの未確定部と完全一致する出力候補語がある場合(S402:Yes)、当該完全一致する出力候補語を候補語から削除する(S403)。
【0116】
図24(b)に示す例1では、検索キーの未確定部「が」が、確定部削除後の候補語のノード列「が−映らない」「が−割れた」のうち「が」と一致する。しかし、完全一致ではないので(S403:No)、「が−映らない」「が−割れた」がそのまま候補語が出力される(S404)。このように整形された候補語の画面表示例を図25(b)に示す。そして、オペレータが例えば「が映らない」を選択すると、未確定状態の「が」を削除して「が映らない」を確定状態で入力フィールドに挿入する。
【0117】
また、図24(c)に示す例2では、検索キーの未確定部「ふるい」が、確定部削除後の候補語の出力候補語「ふるい」と完全一致するので、S403において「ふるい」全体が削除され、S404で、候補語は出力されない。入力フィールドに既に表示された未確定文字列と候補語表示エリアに表示される文字列が一致した場合、オペレータは、候補語表示エリアから候補語を選択するよりも入力エリアの文字列を、例えばEnterキーなどで確定させる方が自然だからである。
【0118】
検索キーが「未確定部のみ」の場合、S401で削除される部分はなく、原則、検索結果がそのまま出力される(S404)。図24(d)に例1の場合、図24(e)に例2の場合を示す。また、このような場合の候補語の画面表示例を図25(d)、(e)に示す。
例外的に、表記補完辞書に、ひらがなのみからなるノードがあり、当該ノードが候補語となった場合には、S402でYesとなり、一致した出力候補語が結果テーブルから削除される(S403)。この例を図24(f)に示す。
【0119】
上述した実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
例えば、上記実施の形態では、一対の読み補完辞書データと表記補完辞書データとを入力エリアと対応づけることで、入力内容別の辞書データを構築したが、入力内容に応じて選択可能であれば、対応づけるものは入力エリアに限られない。例えば、文字列入力をおこなう入力画面や使用するアプリケーションと辞書データとを対応づけてもよい。
【0120】
上記実施形態では、受け側ノードとして、「助詞」と「述語」の2つのノードが含まれるものとしたが、係り側ノードと係り受け関係にあれば、受け側ノードの数はこれに限られず任意である。
【0121】
上記実施形態では、入力内容別辞書データとして、応対入力辞書データの例を主に示したが、互いに係り受け関係にある単語の階層構成とすることができるのであれば、種々の内容について入力内容別辞書データを構築することができる。例えば、都道府県名とそれに続く下位の地域名とを階層構造とすることで、住所入力に用いる辞書データを構築することができる他、姓とこれに続く名の組み合わせで階層構造とすることで、人名入力に用いる辞書データを構築することができる。つまり、対象とする複数の単語が相関的な位置をもって連結させることが可能であれば、種々の内容に応じた入力内容別辞書データを構築することができる。
【0122】
また、上記実施形態では、キーボード(入力部101)によって文字列が入力される場合を例示したが、文字列が入力できるのであれば、その入力方法はこれに限られず任意である。例えば、音声認識によって文字列入力を行う場合にも、本発明を適用することで、より効率的な文字列入力を実現することができる。
【0123】
なお、上記実施形態にかかる文字検索システム1は、入力端末装置100と検索サーバ300とが、異なる装置であって、ネットワーク200を介して接続されるものを例に説明したが、本発明はこれに限られず、入力端末装置100と検索サーバ300の両方を含む文字検索装置であってもよい。
【0124】
また、上述の文字検索システム1における動作の過程は、コンピュータに実行させるためのプログラムや、このプログラムとしてコンピュータ読み取り可能な記録媒体として利用可能であり、コンピュータシステムが読み出して実行することによって、上記処理が行われる。なお、ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0125】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に記憶したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
また、このようなプログラムの提供方法は任意であり、例えば、CD−ROMなどの記憶媒体に格納して配布可能であることはもとより、プログラムデータを搬送波に重畳することで、所定の通信媒体(例えば、インターネットなど)を介して配布することもできる。
【符号の説明】
【0126】
1 文字検索システム
100 入力端末装置
101 入力部
102 制御部
103 出力部
104 端末通信部
105 端末記憶部
106 識別部
107 ノードセパレータ付与部
200 ネットワーク
300 検索サーバ
302 サーバ通信部
302 サーバ記憶部
303 読み補完辞書記憶領域
304 表記補完辞書記憶領域
305 プログラム格納領域
307 検索部
501 第1区分入力フィールド
502 第2区分入力フィールド
503 第3区分入力フィールド
504 第4区分入力フィールド

【特許請求の範囲】
【請求項1】
複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付ける入力部と、
前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別部と、
前記識別部によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部と、
前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する読み補完辞書記憶部と、
前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部と、
前記ノードセパレータ付与部によって生成された前記検索キーの前記ノードセパレータに基づき、前記読み補完辞書データあるいは前記表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記サーバ通信部を介して前記入力端末装置に送信する検索部と、を備える
ことを特徴とする文字検索装置。
【請求項2】
文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムであって、
前記入力端末装置は、
複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付ける入力部と、
前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別部と、
前記識別部によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部と、
前記ノードセパレータ付与部によって生成された前記検索キーを前記検索サーバに送信する端末通信部と、を備え、
前記検索サーバは、
前記端末通信部とデータ通信を行うサーバ通信部と、
前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する読み補完辞書記憶部と、
前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部と、
前記サーバ通信部を介して前記入力端末装置から受信する前記検索キーの前記ノードセパレータに基づき、前記読み補完辞書データあるいは前記表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記サーバ通信部を介して前記入力端末装置に送信する検索部と、を備える
ことを特徴とする文字検索システム。
【請求項3】
前記入力端末装置の前記識別部は、
前記文字入力領域に文字が入力されていない状態において、識別される前記文字入力領域の入力内容として、文字が入力されていないことを表す入力内容を検出し、
前記入力端末装置の前記ノードセパレータ付与部は、
前記識別部によって、前記文字が入力されていないことを表す入力内容が検出された場合、前記文字が入力されていないことを表す空欄情報と前記ノードセパレータとを関連付けた前記検索キーを生成することを特徴とする請求項2に記載の文字検索システム。
【請求項4】
前記入力端末装置の前記識別部は、
前記入力部を介して前記文字入力領域が指定された場合、当該文字入力領域よりも上位となる他の前記入力領域がある場合、当該上位となる他の前記入力領域の入力内容を、変換処理が完了した確定内容として検出し、
前記入力端末装置の前記ノードセパレータ付与部は、
前記検索キーに含まれる前記入力内容が、前記確定内容であること、あるいは変換処理が完了する以前の未確定内容であることを表す情報に基づき、前記検索キーを生成する
ことを特徴とする請求項3に記載の文字検索システム。
【請求項5】
文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける文字検索方法であって、
前記入力端末装置の入力部が、
複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付け、
前記入力端末装置の識別部が、
前記文字入力領域の入力内容を検出し、前記文字入力領域を識別し、
前記入力端末装置のノードセパレータ付与部が、
前記識別部によって識別される文字入力領域を区分するノードセパレータと、前記検出された入力内容とを関連付けた検索キーを生成し、
前記入力端末装置の端末通信部が、
前記ノードセパレータ付与部によって生成された前記検索キーを前記検索サーバに送信し、
前記検索サーバのサーバ通信部が、
前記入力端末装置から送信された前記検索キーを受信し、
前記検索サーバの検索部が、
前記サーバ通信部を介して前記入力端末装置から受信する前記検索キーの前記ノードセパレータに基づき、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した前記読み補完辞書データを記憶する読み補完辞書記憶部から読み出される読み補完辞書データ、あるいは、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部から読み出される表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記サーバ通信部を介して前記入力端末装置に送信する
ことを特徴とする文字検索方法。
【請求項6】
文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける前記入力端末装置であって、
複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付ける入力部と、
前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別部と、
前記識別部によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与部と、
前記ノードセパレータ付与部によって生成された前記検索キーを前記検索サーバに送信する端末通信部と、を備えることを特徴とする入力端末装置。
【請求項7】
文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける前記検索サーバであって、
前記入力端末装置において前記文字の入力又は前記文字領域の指定入力が入力される複数の文字入力領域を区分するノードセパレータと前記入力フィールドの入力内容とを関連付けた検索キーを、前記入力端末装置から受信する受信部と、
前記入力端末装置に情報を送信する送信部と、
前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した読み補完辞書データを記憶する読み補完辞書記憶部と、
前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶部と、
前記受信部を介して前記入力端末装置から受信する前記検索キーの前記ノードセパレータに基づき、前記読み補完辞書データあるいは前記表記補完辞書データのうち少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記送信部を介して前記入力端末装置に送信する検索部と、を備える
ことを特徴とする検索サーバ。
【請求項8】
文字が入力されるコンピュータと、ネットワークを介して接続される前記コンピュータから受信する前記文字に応じた変換候補を検索する検索サーバを備える文字検索システムにおける前記コンピュータを、
複数の文字入力領域のうち少なくともいずれか1つに対して、前記文字の入力又は前記文字領域の指定入力を受け付けさせる入力手段、
前記文字入力領域の入力内容を検出し、前記文字入力領域を識別する識別手段と、
前記識別手段によって識別される文字入力領域を区分するノードセパレータと前記検出された入力内容とを関連付けた検索キーを生成するノードセパレータ付与手段、
前記ノードセパレータ付与手段によって生成された前記検索キーを前記検索サーバに送信する端末通信手段、
として機能させるためのプログラム。
【請求項9】
文字が入力される入力端末装置と、ネットワークを介して接続される前記入力端末装置から受信する前記文字に応じた変換候補を検索するコンピュータを備える文字検索システムにおける前記コンピュータを、
前記入力端末装置において前記文字の入力又は前記文字領域の指定入力が入力される複数の文字入力領域を区分するノードセパレータと前記入力フィールドの入力内容とを関連付けた検索キーを、前記入力端末装置から受信する受信手段、
前記検索キーの前記ノードセパレータに基づき、前記文字が変換処理される以前の読みが単語として記録された辞書であって、互いに係り受け関係にある単語を、前記文字入力領域と対応付けられたノードとして木構造に構成した前記読み補完辞書データを記憶する読み補完辞書記憶手段から読み出される前記読み補完辞書データ、あるいは、前記読み補完辞書データに含まれる単語の変換処理後の表記が単語として記録された辞書であって、互いに係り受け関係にある単語を、前記読み補完辞書データと対応付けられたノードとして木構造に構成した表記補完辞書データを記憶する表記補完辞書記憶手段から読み出される前記表記補完辞書データのうち、少なくともいずれか一方のデータを用いて、前記検索キーに対応する単語を検索結果として得て、前記入力端末装置に送信する手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


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