(57)【要約】【課題】データベースを用いた情報提供装置において、情報の検索に用いるキーワードに誤りがあると検索結果が得られなかった。【解決手段】検索サーバ２０は、ユーザ端末装置１６から検索文字列を受け付ける。検索部２２は、検索文字列をキーとしてアドレス情報格納部２４を検索する。検索結果が得られなかった場合、類似単語要求部２６は、単語検索装置１００に検索文字列を送信する。単語検索装置１００は、検索文字列の属性に基いて辞書に含まれる単語の中から類似単語を抽出して、類似単語要求部２６に提供する。類似単語提供部２８は、類似単語をユーザ端末装置１６に送信する。ユーザは、類似単語の中から検索に利用する類似単語を選択する。検索部２２は、選択された類似単語に基いて再び検索を行う。これにより、検索文字列に誤りがある場合でも、類似単語に基いて検索処理を行うことができる。【選択図】図１
2005222244.tif 000002
【特許請求の範囲】
【請求項１】
文字列の入力を受け付ける受付部と、
複数の単語に関する情報を保持する格納部と、
前記文字列の属性に基いて、前記格納部に含まれる単語の中から前記文字列に類似する類似単語を抽出する解析部と、
を備えることを特徴とする単語検索装置。
【請求項２】
前記解析部は、前記文字列に含まれる文字の文字種に基いて前記類似単語の候補を抽出する抽出部を有することを特徴とする請求項１に記載の単語検索装置。
【請求項３】
前記抽出部は、前記文字列に含まれる文字の個数に基いて前記類似単語を抽出することを特徴とする請求項２に記載の単語検索装置。
【請求項４】
前記格納部は単語に含まれる文字の文字種ごとに単語テーブルを保持し、
前記抽出部は前記文字列に含まれる各文字の文字種を特定し、特定した文字種に対応する単語テーブルを参照して類似単語の候補を抽出することを特徴とする請求項２または３に記載の単語検索装置。
【請求項５】
前記格納部は単語に含まれる文字の文字数ごとに単語テーブルを保持し、
前記抽出部は前記文字列の文字数を特定し、特定した文字数に対応する単語テーブルを参照して類似単語の候補を抽出することを特徴とする請求項３に記載の単語検索装置。
【請求項６】
前記抽出部は、前記文字列に含まれる文字ブロックと前記単語に含まれる文字ブロックとの一致度に基いて類似単語の候補を抽出することを特徴とする請求項１から５のいずれかに記載の単語検索装置。
【請求項７】
所定の検索装置から文字列の入力を受け付けるステップと、
前記文字列の属性に基いて、複数の単語に関する情報を保持する格納部に含まれる単語の中から前記文字列に類似する類似単語を抽出するステップと、
抽出した類似単語を前記検索装置に出力するステップと、
を備えることを特徴とする単語検索方法。
【請求項８】
文字列の入力を受け付ける受付部と、
所定の単語とその単語に関係する所定の情報とを対応付けて保持する第１格納部と、
前記第１格納部を参照して前記文字列に対応する所定の情報を検索する検索部と、
前記文字列に対応する所定の情報を検索できなかった場合、その文字列の属性に基いて、複数の単語に関する情報を保持する第２格納部に含まれる単語の中からその文字列に類似する類似単語を抽出する抽出部と、
を備え、前記検索部は、前記類似単語に対応する所定の情報を検索することを特徴とする情報提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、所定の単語を検索する技術に関し、とくに入力した文字列に類似する単語を検索する装置、その方法、およびその単語検索装置を備える情報提供システムに関する。
【背景技術】
【０００２】
コンピュータのネットワーク化が進み、インターネットなどのネットワークを利用して、例えば検索サイト、ショッピングサイト、辞書サイトなどで各種のサービスが提供されている。そうしたサービスサイトは、一般にデータベースを利用して情報を管理し、ユーザから受け付けた検索キーワードをキーとして、データベースを参照して検索キーワードに対応付けられた情報を提供する。しかしながら、ユーザのタイプミスなどにより、「風邪薬」を「風薬」と入力したり、「インターネット」を「インターネト」と入力したりしてしまった場合、データベースにはそうした単語は登録されていないので、該当する情報がないとして応答される。こうした事態に対応するため、入力された文字列の類似単語を検索する技術がある（例えば、特許文献１参照）。
【特許文献１】特開平１０−１０５５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
タイプミスに限らず所定の単語に対して、ユーザがタイプした文字列が異なることは多々ある。例えば、カタカナは一般にゆれが大きく「Web」を「ウェブ」とタイプしたり、「ウェッブ」とタイプしたりすることがある。このように、入力ミスも含め言葉には色々な表記方法があるにも拘わらず、データベースを柔軟に検索することができなかった。
【０００４】
本発明はこうした点に鑑みてなされたもので、その目的は、文字列に類似する単語を検索する技術の提供にある。また、別の目的は、柔軟性の高い情報提供技術の提供にある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、単語を検索する装置である。この装置は、文字列の入力を受け付ける受付部と、複数の単語に関する情報を保持する格納部と、文字列の属性に基いて、格納部に含まれる単語の中から文字列に類似する類似単語を抽出する解析部とを備える。
【０００６】
この装置によれば、文字列の属性に基いて、その文字列に類似する単語を抽出することができる。「文字列の属性」は、例えば文字列に含まれる文字の文字種、文字列に含まれる文字の個数などであり、文字列の構成を示す情報であってよい。
【０００７】
解析部は、文字列に含まれる文字の文字種に基いて類似単語の候補を抽出する抽出部を有してよい。これにより、文字列に含まれる文字の文字種に基いて、類似単語の候補を絞り込むことができるので、類似単語を効率的に抽出できる。
【０００８】
抽出部は、文字列に含まれる文字の個数に基いて類似単語を抽出してもよい。これにより、文字列に含まれる文字の個数に基いて、類似単語の候補を絞り込むことができるので、類似単語を効率的に抽出できる。
【０００９】
格納部は単語に含まれる文字の文字種ごとに単語テーブルを保持し、抽出部は文字列に含まれる各文字の文字種を特定し、特定した文字種に対応する単語テーブルを参照して類似単語の候補を抽出してもよい。文字種毎に単語テーブルが用意されるので、検索範囲を狭めることができ、類似単語を特定するための計算量を減らすことができる。
【００１０】
格納部は単語に含まれる文字の文字数ごとに単語テーブルを保持し、抽出部は文字列の文字数を特定し、特定した文字数に対応する単語テーブルを参照して類似単語の候補を抽出してもよい。文字数毎に単語テーブルが用意されるので、検索範囲を狭めることができ、類似単語を特定するための計算量を減らすことができる。
【００１１】
抽出部は、文字列に含まれる文字ブロックと単語に含まれる文字ブロックとの一致度に基いて類似単語の候補を抽出してもよい。「一致度」は、単に文字列に含まれている各文字の数と単語に含まれている各文字の数とを比較したものでもよいし、同一の文字ブロックの数を比較したものでもよい。「文字ブロック」は、所定の条件に基いて作られた文字列であって、例えば隣り合う２文字であってもよいし、ひとつ飛びの２文字であってもよい。
【００１２】
本発明の別の態様は、単語を検索する方法である。この方法は、所定の検索装置から文字列の入力を受け付けるステップと、文字列の属性に基いて、複数の単語に関する情報を保持する格納部に含まれる単語の中から文字列に類似する類似単語を抽出するステップと、抽出した類似単語を検索装置に出力するステップとを備える。
【００１３】
本発明の更に別の態様は、情報を提供するシステムである。このシステムは、文字列の入力を受け付ける受付部と、所定の単語とその単語に関係する所定の情報とを対応付けて保持する第１格納部と、第１格納部を参照して受け付けた文字列に対応する所定の情報を検索する検索部と、その文字列に対応する所定の情報を検索できなかった場合、その文字列の属性に基いて、複数の単語に関する情報を保持する第２格納部に含まれる単語の中からその文字列に類似する類似単語を抽出する抽出部とを備え、検索部は、類似単語に対応する所定の情報を検索する。これにより、最初に受け付けた文字列で検索結果が得られない場合でも、その文字列に基いて自動的に選択された類似単語に基いて再び検索することができる。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、文字列に類似した単語を効率的に検索する装置を提供できる。また、柔軟性の高い情報提供システムを提供できる。
【発明を実施するための最良の形態】
【００１６】
図１は、実施の形態に係る情報提供システム５０の構成図である。ユーザ端末装置１６は、例えばパーソナルコンピュータ、ＰＤＡ（personal digital assistance）、携帯電話などの端末装置であり、ネットワーク１０を介して検索サーバ２０と通信可能なコンピュータである。検索サーバ２０は、検索サイトを実現するための装置であり、検索部２２、アドレス情報格納部２４、類似単語要求部２６、類似単語提供部２８、および通信部３０を有する。検索部２２、類似単語要求部２６、および類似単語提供部２８は、通信部３０を介してネットワーク１０に接続された各装置と通信を行う。検索部２２は、ユーザ端末装置１６から受信した検索文字列に対応するウェブページのアドレスを、アドレス情報格納部２４を参照して検索し、検索結果をユーザ端末装置１６に提供する。検索文字列に該当するウェブページのアドレスが無い場合、類似単語要求部２６は検索文字列に類似する単語の検索を単語検索装置１００に要求する。単語検索装置１００は、検索文字列に類似する単語を見つけ出し、検索サーバ２０に送信する。そして、類似単語提供部２８は、その類似単語をユーザ端末装置１６に提供し、その類似単語の中から所望の単語をユーザに選択させる。そして、検索部２２は、ユーザに選択された類似単語に基いて再び検索を行う。これにより、検索文字列に該当する情報がデータベースにない場合でも、検索文字列に類似した単語に基いて再び検索する機会を提供できるので、柔軟性のある情報提供システムを提供できる。
【００１７】
図２は、類似単語が見つかった場合にユーザ端末装置１６に表示される表示画面５２の一例を示す図である。類似単語５４が見つかった場合に、図１の検索サーバ２０はこの表示画面５２を表示するための情報をユーザ端末装置１６に提供する。この表示画面５２は、ユーザが入力した検索文字列に類似する類似単語５４と、検索に利用する類似単語を選択するためのチェックボックス５６と、選択した類似単語で再び検索を行うことを指示するための検索開始ボタン５８とを含む。このように類似単語５４を表示することにより、例えばユーザのタイプミスやはっきりしない記憶のためにデータベース中に記憶されている単語が入力されなかった場合でも、検索作業を終了することなく、ユーザに類似単語を選択する機会を提供して検索作業を継続できる。
【００１８】
図３は、図１の単語検索装置１００の内部構成図である。単語検索装置１００の各構成要素は、ハードウエアコンポーネントで言えば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インターフェース等を中心に実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。実施の形態の説明に用いる各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００１９】
受付部１０２は、検索サーバ２０から類似語を検索する対象となる検索文字列を受け付ける。認証部１０８は、検索文字列を送信した検索サーバ２０の認証を行う。例えば認証部１０８は、単語検索装置１００の使用を許可する装置のＩＰアドレスを予め保持し、そのＩＰアドレスが割り当てられた検索サーバ２０に当該単語検索装置１００の利用を許可する。認証部１０８における認証方法は、これに限らず既知の技術を利用すればよい。認証に成功した場合、受付部１０２は検索文字列を解析部１０４に供給する。詳細は後述するが、解析部１０４は、検索文字列に類似する単語を検索して出力部１０６に供給する。出力部１０６は、類似単語を検索サーバ２０に送信する。出力部１０６は、類似単語を任意の形式で送信してよく、例えばＣＳＶ形式で検索サーバ２０に送信してもよいし、ＸＭＬ（eXtensible Markup Language）に準じた形式で検索サーバ２０に送信してもよい。また、複数の類似単語を検索サーバ２０に送信する場合、出力部１０６は、検索文字列に対する類似度を特定できるように、すなわち優先順位を付けて類似単語を提示するための画面情報を図１の検索サーバ２０において生成できるように類似単語を検索サーバ２０に送信する。例えば出力部１０６は、類似単語とそれぞれの類似単語の検索文字列に対する類似の程度を特定するための情報とを対応付けて検索サーバ２０に出力する。ＣＳＶ形式の場合、出力部１０６は、類似度の高い類似単語から順に並べて検索サーバ２０に送信してもよい。
【００２０】
ログ処理部１１０は、単語検索装置１００の利用状況を、例えばＩＰアドレスなどの検索サーバ２０を特定する情報に対応付けてログ格納部１１２に格納する。例えば、ログ処理部１１０は、認証部１０８から認証に成功した検索サーバ２０のＩＰアドレスと検索文字列とを受け付けて、それらの情報を受付日時に対応付けてログ格納部１１２に格納する。また、ログ処理部１１０は、出力部１０６から類似単語と類似単語の送信先のＩＰアドレスとを対応付けて、送信日時に対応付けてログ格納部１１２に格納してもよい。ログ処理部１１０は、後述する課金部１１４が課金処理のために必要な情報をログ格納部１１２に格納すればよい。課金部１１４は、ログ格納部１１２に保持されているデータに基いて課金を行う。課金形態は、ビジネス上の契約に基いて任意に決めることができ、例えば利用回数、利用期間などに基いて算出されてよい。
【００２１】
図４は、図３の解析部１０４の内部構成図である。前処理部１２０は、例えば検索文字列に含まれる旧字体を新字体に変換したり、片仮名および数字などを全角または半角に統一したりして後段の解析処理に適した文字列に変換する。変換データ格納部１６０は、旧字体と新字体とを対応付けて保持する。前処理部１２０は、検索文字列に含まれる各文字について変換データ格納部１６０に保持されている旧字体とマッチングをとることで、置換すべき旧字体の有無を判定する。置換すべき旧字体が含まれている場合、前処理部１２０は検索文字列中の旧字体を、対応する新字体に置き換える。検索文字列に対して前処理を施した後、前処理部１２０はその検索文字列を特定単語検索部１２２に供給する。
【００２２】
特定単語検索部１２２は、特定単語リスト格納部１３０に格納されている文字列と検索文字列とのマッチングをとることにより、特定の検索文字列に対して類似単語を検索する。検索文字列とその検索文字列に対応する単語とを統計的に分析することにより、間違える頻度の高い単語を予め選び出すことができる。特定単語リスト格納部１３０は、予め選び出された単語とその単語と間違えやすい文字列とを対応付けて保持する。これにより、間違える可能性の高い単語について、迅速に類似語を特定することができる。検索文字列に該当する文字列が特定単語リスト格納部１３０に登録されていない場合、特定単語検索部１２２は検索文字列を抽出部１２４に供給する。抽出部１２４、算出部１２６、および選択部１２８における処理で、検索文字列の類似単語が選択される。次に、抽出部１２４および算出部１２６により実現される処理の要素技術について説明する。
【００２３】
（エディットディスタンス）
一般に、検索文字列に類似する類似単語は、エディットディスタンスという方法を利用することで抽出することができる。エディットディスタンス法は、編集距離とも呼ばれ、入力文字列を所定の文字列に直すために、挿入、入れ替え、削除の操作を何回行う必要があるかを算出することで文字列同士の類似度を算出するものである。例えば、「インターネト」を「インターネット」に直す場合、「ネ」と「ト」の間に「ッ」を挿入する必要がある。一方「インターネト」を「インターチェンジ」に直す場合、「ネ」、「ト」を、それぞれ「チ」、「ェ」に替え、「ン」、「ジ」を追加する必要がある。前者と後者では、前者の方が編集回数は少なくなるので、「インターネト」は「インターネット」に類似しているということになる。
【００２４】
（編集内容に応じた重み付け）
エディットディスタンス法において、一文字の削除、挿入、入れ替えの対象となる文字に応じて、重み付け値をかえて類似計数値を算出する。本実施の形態では、編集を行う毎にその編集内容に対応付けられた重み付け値を加算することで類似計数値を算出する。このため、類似計数値が小さいほど、類似度が高い、つまり類似していることになる。一般に片仮名はゆれが大きく、例えば「ユーザー」や「ユーザ」のようにひとつの単語でも表記が違ってくる。こうした揺れによる文字を入れ替えたり、削除したり、挿入したりする場合には、その他の文字の入れ替え、削除、挿入に比べて軽い値を重み付け値として設定する。例えば「ー」の削除は「ウ」の削除より軽い値を重み付け値として設定する。これにより、文字種の性質に応じて類似計数値を適切に算出できるので、類似単語を適切に選択できる。
【００２５】
こうした作業を全ての単語に対して行うことで、検索文字列に対する類似単語を特定できるが、例えば数十万語におよぶ全ての単語に対して類似計数値を算出することは現実的ではない。そこで、エディットディスタンス法により類似計数値を算出する前に、予め類似計数値を算出する対象となる類似単語の候補を、文字種と文字数とに基いて絞り込む。そして、絞り込んだ単語に対して類似計数値を算出し、類似度の高い単語つまり類似計数値が低い単語から順に類似単語として選択する。以下、類似計数値の算出対象となる単語を抽出する処理を「候補選択処理」といい、候補選択処理により選択された単語を「類似単語候補」という。また、類似単語候補について、類似計数値を算出する処理を「類似度算出処理」という。
【００２６】
（バイグラム）
候補選択処理は、検索文字列に含まれる文字列と単語に含まれる文字との一致具合をみることで行われ、検索文字列の属性のひとつである文字長に応じて異なるアルゴリズムが利用される。具体的には、辞書に含まれる全ての文字に対して、文字とその文字を含む単語とを対応付けたインデックスを作成する。例えば、「山」という文字に対応付けて「富士山」、「山本」、「嵐山」、「山脈」などの単語を対応付けてインデックスを作成する。検索文字列が「富字山」の場合、「富」、「字」、「山」のインデックスを調べ、一致度の多い単語、すなわち検索文字列に含まれる各文字をより多く含む単語を抽出する。これにより、検索文字列に類似した単語の候補を選ぶことができる。しかしながら、一文字毎にインデックスを作成する手法では、マッチする単語数が多くなり計算量が膨大になってしまう。そこで、この手法を更に効率よく行うために、隣り合う２文字で、すなわちバイグラムでインデックスを作成する。バイグラムでインデックスを作成した場合、例えば、「富士山」は、「富士」と「士山」の２つのインデックスに記録される。
【００２７】
（飛び石バイグラム）
バイグラムで作成されたインデックスを使って「富字山」を探索すると、類似単語の候補を見つけることができない。「富字山」からできるインデックスは「富字」と「字山」であり、「富士山」からできるインデックスとまったく重ならない。したがって、例えば３個または４個の文字で構成される単語の場合には、隣り合う２文字ではなく、ひとつ飛びの２文字をインデックスとする（以下、単に「飛び石バイグラム」という）。例えば、「富士山」の場合、飛び石バイグラムで作成したインデックスは「富山」になる。また「一石二鳥」の場合、飛び石バイグラムで作成したインデックスは「一二」、「石鳥」となる。５文字以上の場合には、飛び石バイグラムではなくバイグラムで作成したインデックスを用いて類似した単語の候補を選択する。文字長が少ないときは飛び石バイグラムを用い、文字長が多いときバイグラムを用いるというように、本実施の形態では文字長に応じて異なるアルゴリズムを利用する。
【００２８】
このように、バイグラムや飛び石バイグラムなどの所定の規則に準じて取り出した文字で文字ブロックを作成し、その文字ブロックでインデックスを作成する。例えば、「富士山」のインデックスを飛び石バイグラムで作成した場合の「富山」が文字ブロックである。文字ブロックでインデックスを作成することにより、一致度をブロック単位で算出できる。これにより、文字単位で一致度を算出するよりも処理を高速化できる。「一致度を算出する」とは、所定の単語が、検索文字列に含まれる文字ブロックと同一の文字ブロックを何個含むかを算出することである。一致度の算出では、単語における文字ブロックの位置と検索文字列における文字ブロックの位置とが一致しているか否かの判定をとくに考慮しなくてもよい。
【００２９】
一般にタイプミスなどで全ての文字を間違えることは少なく、単語に含まれる文字の一部が間違っていることが多い。こうした観点から、文字ブロック単位で一致度を算出することで、類似単語の候補を効率的に抽出することができる。また、文字ブロックに含まれる文字数は、２個に限られず任意に設定できてよく、例えば単語の文字数に応じて決められてもよい。また、文字ブロックを作成するための所定の規則も、任意に設定できてよく例えば文字数の多い単語は、２つおきに文字を取り出して３文字の文字ブロックとしてもよい。
【００３０】
（文字種、文字数に応じたアルゴリズムの選択）
候補選択処理は、更に検索文字列の属性のひとつである文字種に基いて行う。例えば、日本語は、片仮名、平仮名、漢字、数字、アルファベット等の複数の文字種により表記される。こうした観点から、検索文字列に含まれる文字の文字種に応じて、類似単語を絞り込むことができる。また、例えば３文字の単語を検索文字列とする際に、８文字の文字列が間違って入力されることは少ない。こうした観点から、検索文字列の文字数に応じて、類似単語を絞り込むことができる。例えば、単語の文字種、文字数などの属性毎に辞書を用意しておくことで、検索文字列の属性に基いて辞書を選択できる。そして、その辞書毎に、前述した文字ブロック毎のインデックスを作成しておくことで、類似単語の候補を選択する処理を迅速かつ効率的に行うことができる。
【００３１】
抽出部１２４は、前述した要素技術を利用して候補選択処理を行って類似単語の候補を抽出し、算出部１２６に出力する。算出部１２６は、前述したエディットディスタンス法を利用して、類似単語候補ごとに検索文字列との類似計数値を算出する。そして、算出部１２６は、類似単語候補とその類似計数値とを対応付けて選択部１２８に出力する。選択部１２８は、類似計数値の低い単語から順に選択して、類似単語として出力部１０６に出力する。
【００３２】
また、選択部１２８は、選択した類似単語のリストを更新部１３２に供給する。更新部１３２は、選択部１２８から受け付けた類似単語を出力単語リスト格納部１３４に格納する。更新部１３２は、出力単語リスト格納部１３４に保持されている情報に基いて、単語毎の頻度を算出して、頻度の多い単語を特定単語リスト格納部１３０に追加してもよい。これにより、抽出部１２４、算出部１２６および選択部１２８における処理結果を特定単語リスト格納部１３０に反映できる。
【００３３】
データ格納部１５０は、抽出部１２４および算出部１２６における処理で必要なデータを格納する。文字種別データ格納部１５２は、文字種別の辞書と、それぞれの辞書に基いて作成したインデックスとを保持する。文字長別データ格納部１５４は、文字長別の辞書と、それぞれの辞書に基いて作成したインデックスとを保持する。文字種別データ格納部１５２および文字長別データ格納部１５４に保持されている辞書ならびにインデックスはそれぞれ同一のデータ構造を有する。例えば「辞書」は、単語とその単語を特定する単語ＩＤとを対応付けて保持する。「インデックス」は、辞書毎に作成され、所定の規則に基いて決まる文字ブロックとその文字ブロックを含む単語の単語ＩＤとを対応付けて保持する。
【００３４】
例えば、文字種別データ格納部１５２は、片仮名辞書、読み辞書、アルファベット辞書と、それぞれの辞書に基いて作成されたインデックスとを保持する。読み辞書は、一般的に使われる言葉を平仮名で保持しており、片仮名辞書に含まれる単語も含んでいる。文字長別データ格納部１５４は、例えば１文字の単語を集めた辞書、２文字の単語を集めた辞書、３文字の単語を集めた辞書、４文字の単語を集めた辞書、５文字以上の単語を集めた辞書と、それぞれの辞書に基いて作成したインデックスとを保持する。
【００３５】
知識データ格納部１５６は、類似度を算出する際に利用する編集内容とその編集内容に応じた重み付け値とを対応付けて保持する。読みデータ格納部１５８は、漢字と、その漢字の音読み、および訓読みとを対応付けて保持する。
【００３６】
（片仮名文字列のマッチング）
検索文字列に含まれる文字が全て片仮名の場合、抽出部１２４は全ての文字が片仮名で表記される単語を集めた片仮名辞書と、その片仮名辞書に基いて作成された片仮名インデックスとを利用して候補選択処理を行う。片仮名辞書および片仮名インデックスは文字種別データ格納部１５２に格納されている。
【００３７】
第１のステップでは、抽出部１２４は、検索文字列と同一の単語が片仮名辞書に含まれているか否かを判定する。第２のステップでは、抽出部１２４は、片仮名インデックスを利用して、文字ブロックの一致度に基いて類似単語候補を選択する。類似単語候補の数は、任意に設定されてよい。第２のステップでは、抽出部１２４は、文字ブロックが多く一致している単語から順に類似単語候補として選択する。第３のステップでは、抽出部１２４は選択した類似単語候補を算出部１２６に出力する。
【００３８】
第４のステップでは、算出部１２６はエディットディスタンス法により、類似単語候補それぞれについて検索文字列との類似計数値を算出する。算出部１２６は、知識データ格納部１５６に保持されているデータに基いて、編集内容毎に異なる重み付け値を使い類似計数値を算出する。第５のステップでは、算出部１２６は算出した類似計数値と類似単語候補とを対応付けて選択部１２８に出力する。第６のステップでは、選択部１２８は類似計数値が一番低い単語から順に類似単語として選択する。
【００３９】
第２のステップで、類似単語候補を選択できなかった場合、抽出部１２４は、片仮名を平仮名に変換して「読みのマッチング」を行う。読みのマッチングを行う場合、抽出部１２４は文字種別データ格納部１５２に保持されている平仮名辞書と平仮名インデックスとを利用する。この平仮名辞書は、全ての単語の読みを保持している。つまり、片仮名辞書で類似単語候補を選択できない場合に、抽出部１２４は、より多くの単語を含む平仮名辞書と平仮名インデックスを利用する。例えば、人名「斉藤」が片仮名で「サイトウ」と入力された場合、片仮名辞書には「サイトウ」という単語が記録されていないので、類似語を検索することができない。こうした事態に対応するため、片仮名辞書で類似単語候補を選択できない場合には平仮名辞書を利用する。
【００４０】
検索文字列に含まれる文字が全て平仮名の場合や、検索文字列に含まれる文字が全てアルファベットの場合も片仮名の場合と同様に、抽出部１２４は、それぞれの文字種毎に用意された辞書およびインデックスを利用して同様の候補選択処理を行う。
【００４１】
（文字長に応じた処理）
検索文字列に複数の文字種が含まれている場合、抽出部１２４は検索文字列に含まれる文字の数に基いて候補選択処理を行う。例えば、検索文字列の文字長が１文字の場合、抽出部１２４は文字長別データ格納部１５４に保持されている１文字の単語を集めた辞書とそのインデックスとを用いて候補選択処理を行う。また、検索文字列の長さが短い可能性を考慮し、抽出部１２４は、２文字の単語を集めた辞書とそのインデックスとを用いて候補選択処理を行う。つまり、文字長に応じて候補選択処理を行う場合、抽出部１２４は、検索文字列に含まれる文字の数と、前後の文字数の単語を集めた辞書を利用して候補選択処理を行う。
【００４２】
（読みのマッチング）
検索文字列に漢字が含まれている場合、抽出部１２４は、読みデータ格納部１５８を参照して検索文字列に含まれる漢字の全ての読みを生成する。複数の漢字が含まれている場合には、抽出部１２４は、全ての漢字について読み候補の組合せを作成し、それらの読み候補の全てに対して候補選択処理を行い、類似単語候補を選択する。読み候補の組合せを作成する場合、漢字の音読み、訓読みの情報に基いて、音読み同士または訓読み同士の組合せのほうが、音読みと訓読みとを組み合わせた読みより正しい読みであることが多い。そのため、音読みと訓読みとを組み合わせた読みに対する重み付け値は、音読み同士または訓読み同士を組み合わせた読みに対する重み付け値より大きい値が設定される。
【００４３】
例えば検索文字列が「源じ」の場合、同じ読みとして「源氏」と「現時」とが存在する。この場合「源氏」の類似計数値のほうが「現時」より大きくなるようにしたい。このために、算出部１２６は、検索文字列に含まれる文字と辞書に登録されている単語に含まれる文字とを比較し、異なる文字の数が多い単語に対する重み付け値を大きくする。
【００４４】
図５は、図４の抽出部１２４における処理のフローチャートである。抽出部１２４は、検索文字列の属性、すなわち文字種と文字数とを特定する（Ｓ８）。例えば、抽出部１２４は、文字コード表に基いて用意された文字種別の文字コードの範囲（以下、「文字種範囲」という）を保持し、抽出部１２４は、検索文字列に含まれる各文字の文字コードが含まれる文字種範囲を判断することで各文字の文字種を特定してもよい。検索文字列に含まれる全ての文字が片仮名、「−」および「−」の亜種の場合（Ｓ１０）、「片仮名文字列のマッチング」を行う（Ｓ１２）。類似単語候補が見つかった場合（Ｓ１４のＹ）、抽出部１２４は類似単語候補を算出部１２６に出力する（Ｓ４４）。ステップ１４で、類似単語候補が見つからなかった場合（Ｓ１４のＮ）、抽出部１２４は「読みのマッチング」を行う（Ｓ１６）。
【００４５】
ステップ１０で、全ての文字が片仮名でない場合（Ｓ１０のＮ）、抽出部１２４は全ての文字が平仮名、「−」および「−」の亜種であるか否かを判定する（Ｓ１８）。全ての文字が平仮名の場合（Ｓ１８のＹ）、「読みのマッチング」を行う。ステップ１８で、全ての文字が平仮名でない場合（Ｓ１８のＮ）、全ての文字がアルファベットおよび数字であるか否かを判定する（Ｓ２２）。全ての文字がアルファベットおよび数字の場合（Ｓ２２のＹ）、「アルファベットのマッチング」を行い（Ｓ２４）、ステップ４４に進む。
【００４６】
ステップ２２で、全ての文字がアルファベットおよび数字でない場合（Ｓ２２のＮ）、検索文字列の文字長が１文字か否かを判定する（Ｓ２６）。文字長が１文字の場合（Ｓ２６のＹ）、検索文字列が１文字の場合の候補選択処理を行い（Ｓ２８）、ステップ４４に進む。ステップ２６で、文字長が１文字でない場合（Ｓ２６のＮ）、文字長が２文字か否かを判定する（Ｓ３０）。文字長が２文字の場合（Ｓ３０のＹ）、検索文字列が２文字の場合の候補選択処理を行い（Ｓ３２）、ステップ４４に進む。ステップ３０で、文字長が２文字でない場合（Ｓ３０のＮ）、文字長が３文字か否かを判定する（Ｓ３４）。文字長が３文字の場合（Ｓ３４のＹ）、検索文字列が３文字の場合の候補選択処理を行い（Ｓ３６）、ステップ４４に進む。ステップ３４で、文字長が３文字でない場合（Ｓ３４のＮ）、文字長が４文字か否かを判定する（Ｓ３８）。文字長が４文字の場合（Ｓ３８のＹ）、検索文字列が４文字の場合の候補選択処理を行い（Ｓ４０）、ステップ４４に進む。文字長が４文字でない場合（Ｓ３８のＮ）、検索文字列が５文字の場合の候補選択処理を行い（Ｓ４２）、ステップ４４に進む。
【００４７】
図６は、図１の情報提供システム５０における各装置間の処理のシーケンスの一例を示す図である。ユーザ端末装置１６は、検索キーワードとなる文字列を検索サーバ２０に送信する（Ｓ５０）。検索サーバ２０は、その文字列に基いて検索を行う（Ｓ５２）。検索結果を得られなかった場合（Ｓ５４のＮ）、図１の類似単語要求部２６は、その文字列を単語検索装置１００に送信する（Ｓ５６）。図４の前処理部１２０は、その文字列に対して前処理を施す（Ｓ５８）。そして、図４の抽出部１２４は、類似単語候補を選択する（Ｓ６０）。図４の算出部１２６は、選択された類似単語候補毎に類似計数値を算出する（Ｓ６２）。図４の選択部１２８は、所定の数の単語を類似計数値の低い順に選択して（Ｓ６４）、検索サーバ２０に送信する（Ｓ６６）。
【００４８】
単語検索装置１００から類似単語を受け付けた場合（Ｓ６８のＹ）、検索サーバ２０は図２の表示画面５２を表示するための画面情報をユーザ端末装置１６に送信する（Ｓ７０）。ユーザ端末装置１６は、ユーザから類似単語の選択指示を受け付け（Ｓ７２）、指示された類似単語を検索サーバ２０に送信する（Ｓ７４）。検索サーバ２０は、その単語に基いて再び検索を行う（Ｓ７６）。そして、検索サーバ２０は、検索結果をユーザ端末装置１６に送信する（Ｓ７８）。ステップ６８で、単語検索装置１００から類似単語を受け付けなかった場合（Ｓ６８のＮ）、文字列に該当する情報が無いことをユーザ端末装置１６に通知する（Ｓ７８）。ステップ５４で、検索出来た場合（Ｓ５４のＹ）、その検索結果をユーザ端末装置１６に出力する（Ｓ５５）。
【００４９】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。こうした変形例として以下のものがある。
【００５０】
第１の変形例として、図１の単語検索装置１００は、単語検索装置１００の運営主体とは異なる主体が運営する検索サーバ２０から検索文字列を受け付け、類似単語を提供することとしたが、同一の運営主体により運用されてもよい。
【００５１】
第２の変形例として、単語検索装置１００は検索サーバ２０とは独立し、ネットワーク１０を介して検索文字列を受け付けることとしたが、単語検索装置１００が検索サーバ２０に組み込まれて提供されてもよい。
【００５２】
第３の変形例として、単語検索装置１００は、検索サーバ２０に限らず、ショッピングサイトや辞書サイトなどユーザから文字列を受け付け、その文字列に応じて所定の情報を提供したり、所定の情報処理を行ったりする装置から文字列を受け付け、その文字列の類似単語を出力してもよい。
【図面の簡単な説明】
【００５３】
【図１】実施の形態に係る情報提供システムの構成図である。
【図２】類似単語が見つかった場合にユーザ端末装置に表示される表示画面の一例を示す図である。
【図３】図１の単語検索装置の内部構成図である。
【図４】図３の解析部の内部構成図である。
【図５】図４の抽出部における処理のフローチャートである。
【図６】図１の情報提供システムにおける各装置間の処理のシーケンスの一例を示す図である。
【符号の説明】
【００５４】
１０  ネットワーク、１６  ユーザ端末装置、２０  検索サーバ、２２  検索部、２４  アドレス情報格納部、２６  類似単語要求部、２８  類似単語提供部、３０  通信部、５０  情報提供システム、１００  単語検索装置、１０２  受付部、１０４  解析部、１０６  出力部、１０８  認証部、１１０  ログ処理部、１１２  ログ格納部、１１４  課金部、１２０  前処理部、１２２  特定単語検索部、１２４  抽出部、１２６  算出部、１２８  選択部、１３０  特定単語リスト格納部、１３２  更新部、１３４  出力単語リスト格納部、１５０  データ格納部、１５２  文字種別データ格納部、１５４  文字長別データ格納部、１５６  知識データ格納部、１５８  読みデータ格納部、１６０  変換データ格納部。
【図１】
2005222244.tif 000003
【図２】
2005222244.tif 000004
【図３】
2005222244.tif 000005
【図４】
2005222244.tif 000006
【図５】
2005222244.tif 000007
【図６】
2005222244.tif 000008