(57)【特許請求の範囲】
【請求項１】
入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置であって、
前記検索文字列を解析して複数の形態素に分割する解析手段と、
解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理手段と、
前記展開文字列群により検索対象のデータベースを検索する検索手段と、
前記検索手段による検索結果を表示させる結果表示手段と、を有し、
前記文字列展開処理手段は、
前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成手段と、
形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成手段により生成された各形態素列で検索する辞書検索手段と、
前記形態素列生成手段により生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索手段によって検索した結果の展開文字列群を出力する結果出力手段と、を有し、
前記検索手段は、
前記結果出力手段により出力された展開文字列群により前記データベースを検索する検索装置。
【請求項２】
前記形態素列生成手段は、
前記検索文字列に含まれる全ての前記形態素を先頭とする形態素列を生成する請求項１記載の検索装置。
【請求項３】
前記辞書検索手段による検索結果の展開文字列群を記憶手段に記憶させる記憶制御手段を有し、
前記結果出力手段は、
前記記憶手段に記憶された前記展開文字列群のうち、前記最も長い形態素列以外の形態素列による検索結果の展開文字列群を出力する請求項１又は２記載の検索装置。
【請求項４】
複数の前記辞書データベースを有し、
前記辞書検索手段は、
前記複数の前記辞書データベースの全てを前記形態素列で検索する請求項１ないし３の何れか一項に記載の検索装置。
【請求項５】
複数の前記辞書データベースを有し、
前記辞書検索手段は、
一の前記辞書データベースに前記形態素列と対応する展開文字列群が存在しない場合に、他の前記辞書データベースを前記形態素列で検索する請求項１ないし３の何れか一項に記載の検索装置。
【請求項６】
入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置による検索方法であって、
前記検索文字列を解析して複数の形態素に分割する解析手順と、
解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理手順と、
前記展開文字列群により検索対象のデータベースを検索する検索手順と、
前記検索手順による検索結果を表示させる結果表示手順と、を有し、
前記文字列展開処理手順は、
前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成手順と、
形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成手順において生成された各形態素列で検索する辞書検索手順と、
前記形態素列生成手順において生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索手順において検索した結果の展開文字列群を出力する結果出力手順と、を有し、
前記検索手順は、
前記結果出力手順において出力された展開文字列群により前記データベースを検索する検索方法。
【請求項７】
入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置において実行される検索プログラムであって、
前記検索装置に、
前記検索文字列を解析して複数の形態素に分割する解析ステップと、
解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理ステップと、
前記展開文字列群により検索対象のデータベースを検索する検索ステップと、
前記検索ステップによる検索結果を表示させる結果表示ステップと、を実行させ、
前記文字列展開処理ステップは、
前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成ステップと、
形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成ステップにおいて生成された各形態素列で検索する辞書検索ステップと、
前記形態素列生成ステップにおいて生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索ステップにおいて検索した結果の展開文字列群を出力する結果出力ステップと、を有し、
前記検索ステップは、
前記結果出力ステップにおいて出力された展開文字列群により前記データベースを検索する検索プログラム。
【請求項８】
形態素と展開文字列群とが対応付けられた辞書データベースと、入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置と、を含む検索システムであって、
前記検索装置は、
前記検索文字列を解析して複数の形態素に分割する解析手段と、
解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理手段と、
前記展開文字列群により検索対象のデータベースを検索する検索手段と、
前記検索手段による検索結果を表示させる結果表示手段と、を有し、
前記文字列展開処理手段は、
前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成手段と、
形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成手段により生成された各形態素列で検索する辞書検索手段と、
前記形態素列生成手段により生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索手段によって検索した結果の展開文字列群を出力する結果出力手段と、を有し、
前記検索手段は、
前記結果出力手段により出力された展開文字列群により前記データベースを検索する検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列が格納されたデータベースを有し、入力された検索文字列で前記データベースの検索を行う検索装置、検索方法、検索プログラム及び検索システムに関する。
【背景技術】
【０００２】
従来から、入力された文書やキーワードから検索文字列を設定し、その検索文字列を含む文書を検索する検索方法がある。
【０００３】
例えば特許文献１には、シソーラス辞書と共起データベースとを用いて、入力キーワードに対する関連語（同義語、類義語、共起語）を展開し、これらを検索語として検索する文書検索方法及び装置が開示されている。
【０００４】
また特許文献２には、検索漏れを減少し且つ検索精度を高め、しかも操作性を向上させることを可能にした情報検索方法及び情報検索装置及び情報検索装置の制御プログラムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１記載の発明では、抽出される検索語が多くなり、本来の検索意図より広範な文書が検索され、検索結果の絞込みが困難である。
【０００６】
これに対し特許文献２記載の発明は、入力キーワード（形態素もしくは形態素列）とこれに完全一致した同義語辞書中の同義語・類義語を検索に使用される。しかしながら特許文献２記載の発明では、キーワードに対する同義語・類義語の選定精度が低く、適切な文書を検索することが困難である。
【０００７】
以下に、入力キーワードが「携帯電話」として同義語辞書として検索を行った場合について説明する。まず、入力キーワード「携帯電話」は形態素解析される。このとき、もし形態素解析辞書に「携帯電話」が登録されておらず、「携帯」と「電話」が登録されていた場合、形態素解析辞書の同義語辞書の文字列「携帯」に対応する文字列と、「電話」に対応する文字列とが同義語として抽出される。よって本来の「携帯電話」の同義語である文字列は抽出されない。
【０００８】
このように、従来のシソーラスを用いる検索手法は、いずれも、適切なキーワードを用いて所望の文書を的確に抽出するのが困難であるという問題があった。
【０００９】
本発明は、上記事情を鑑みてこれを解決すべくなされたものであり、高精度に検索文字列の展開を行い、的確な文書の検索を可能とする検索装置、検索方法、検索プログラム及び検索システムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するために、以下の如き構成を採用した。
【００１１】
本発明は、入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置であって、前記検索文字列を解析して複数の形態素に分割する解析手段と、解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理手段と、前記展開文字列群により検索対象のデータベースを検索する検索手段と、前記検索手段による検索結果を表示させる結果表示手段と、を有し、前記文字列展開処理手段は、前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成手段と、形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成手段により生成され各形態素列で検索する辞書検索手段と、前記形態素列生成手段により生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索手段によって検索した結果の展開文字列群を出力する結果出力手段と、を有し、前記検索手段は、前記結果出力手段により出力された展開文字列群により前記データベースを検索する。
【００１３】
また本発明の検索装置において、前記形態素列生成手段は、前記検索文字列に含まれる全ての前記形態素を先頭とする形態素列を生成する。
【００１４】
また本発明の検索装置は、前記辞書検索手段による検索結果の展開文字列群を記憶手段に記憶させる記憶制御手段を有し、前記結果出力手段は、前記記憶手段に記憶された前記展開文字列群のうち、前記最も長い形態素列以外の形態素列による検索結果の展開文字列群を出力する。
【００１５】
また本発明の検索装置は、複数の前記辞書データベースを有し、前記辞書検索手段は、前記複数の前記辞書データベースの全てを前記形態素列で検索する。
【００１６】
また本発明の検索装置は、複数の前記辞書データベースを有し、前記辞書検索手段は、一の前記辞書データベースに前記形態素列と対応する展開文字列群が存在しない場合に、他の前記辞書データベースを前記形態素列で検索する。
【００１７】
本発明は、入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置による検索方法であって、前記検索文字列を解析して複数の形態素に分割する解析手順と、解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理手順と、前記展開文字列群により検索対象のデータベースを検索する検索手順と、前記検索手順による検索結果を表示させる結果表示手順と、を有し、前記文字列展開処理手順は、前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成手順と、形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成手順において生成された各形態素列で検索する辞書検索手順と、前記形態素列生成手順において生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索手順において検索した結果の展開文字列群を出力する結果出力手順と、を有し、前記検索手順は、前記結果出力手順において出力された展開文字列群により前記データベースを検索する。
【００１８】
本発明は、入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置において実行される検索プログラムであって、前記検索装置に、前記検索文字列を解析して複数の形態素に分割する解析ステップと、解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理ステップと、前記展開文字列群により検索対象のデータベースを検索する検索ステップと、前記検索ステップによる検索結果を表示させる結果表示ステップと、を実行させ、前記文字列展開処理ステップは、前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成ステップと、形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成ステップにおいて生成された各形態素列で検索する辞書検索ステップと、前記形態素列生成ステップにおいて生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索ステップにおいて検索した結果の展開文字列群を出力する結果出力ステップと、を有し、前記検索ステップは、前記結果出力ステップにおいて出力された展開文字列群により前記データベースを検索する。
【００１９】
本発明は、形態素と展開文字列群とが対応付けられた辞書データベースと、入力された検索文字列を展開して得られる展開文字列群により検索を行う検索装置と、を含む検索システムであって、前記検索装置は、前記検索文字列を解析して複数の形態素に分割する解析手段と、解析結果に基づき前記検索文字列を展開して展開文字列群を取得する文字列展開処理手段と、前記展開文字列群により検索対象のデータベースを検索する検索手段と、前記検索手段による検索結果を表示させる結果表示手段と、を有し、前記文字列展開処理手段は、前記複数の形態素に分割された検索文字列において、前記形態素からなる形態素列の最後の形態素の次に位置する形態素がある場合には、前記形態素列の最後尾に前記次に位置する形態素を追加した形態素列を新たに生成する形態素列生成手段と、形態素と展開文字列群とが対応付けられた辞書データベースを前記形態素列生成手段により生成され各形態素列で検索する辞書検索手段と、前記形態素列生成手段により生成された前記形態素列のうち最も長い形態素列で前記辞書データベースを前記辞書検索手段によって検索した結果の展開文字列群を出力する結果出力手段と、を有し、前記検索手段は、前記結果出力手段により出力された展開文字列群により前記データベースを検索する。
【発明の効果】
【００２０】
本発明によれば、高精度に検索文字列の展開を行い、的確な文書の検索を行うことができる。
【図面の簡単な説明】
【００２１】
【図１】第一の実施形態の検索装置のハードウェア構成の一例を示す図である。
【図２】第一の実施形態の検索装置の機能構成を説明する図である。
【図３】検索文字列の入力画面の一例を示す図である。
【図４】文字列解析部による記憶された解析結果の一例を示す図である。
【図５】辞書データベースの例を示す図である。
【図６】第一の実施形態の検索装置の動作を説明するフローチャートである。
【図７】第一の実施形態の検索装置による図６のステップＳ６３において展開文字列を得る処理の詳細を説明するフローチャートである。
【図８】第一の実施形態の検索装置による図６のステップＳ６３において展開文字列群を出力する処理の詳細を説明するフローチャートである。
【図９】展開文字列群の出力結果の表示画面の一例を示す図である
【図１０】第二の実施形態の検索装置の記憶装置に格納された辞書データベースの一例を示す図である。
【図１１】第二の実施形態の検索装置による図６のステップＳ６３における文字列展開処理の詳細を説明する第一のフローチャートである。
【図１２】第二の実施形態の検索装置による図６のステップＳ６３における文字列展開処理の詳細を説明する第二のフローチャートである。
【図１３】第三の実施形態の検索システムを説明する図である。
【発明を実施するための形態】
【００２２】
本発明では、入力された検索文字列を解析して形態素や音素等の語に分割し、最初の語から順に語をつなげた文字列により検索を行い、最長の文字列の表記に対応する展開文字列群を検索結果として出力する。
（第一の実施形態）
以下に図面を参照して本発明の第一の実施形態の検索装置について説明する。図１は、第一の実施形態の検索装置のハードウェア構成の一例を示す図である。
【００２３】
図１において、検索装置１００は、コンピュータ装置であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、入力ユニット１４と、通信ユニット１５と、記憶装置１６と、ドライブ装置１７とで構成され、システムバスＢに接続される。
【００２４】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従って検索装置１００を制御する。メモリユニット１２は、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等にて構成され、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００２５】
出力ユニット１３は、利用者からの指示に応じて各種情報を出力するために用いられる。出力ユニット１３は、例えばＣＰＵ１１の制御のもとに必要な出力された各種情報を表示しても良い。入力ユニット１４は、マウス、キーボード等を有し、検索装置１００が処理を行なうための必要な各種情報を利用者が入力するために用いられる。
【００２６】
通信ユニット１５は、検索装置１００が例えばインターネット、ＬＡＮ（Local Area Network）等のネットワークを介する通信の制御をするための装置である。
【００２７】
記憶装置１６は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
【００２８】
検索装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）等の記憶媒体１８によって検索装置１００に提供される。即ち、プログラムが保存された記憶媒体１８がドライブ装置１７にセットされると、ドライブ装置１７が記憶媒体１８からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１６にインストールされる。そして、プログラムが起動されると、記憶装置１６にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。
【００２９】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本発明に係る処理を実現するプログラムは、通信ユニット１５によってネットワークを介してダウンロードし、記憶装置１６にインストールするようにしても良い。また、検索装置１００が外部との接続を行うＵＳＢ（Universal Serial Bus）等のインタフェースを有する場合には、ＵＳＢ接続によって外部記憶媒体からプログラムを読み込んでもよい。
【００３０】
図２は、第一の実施形態の検索装置の機能構成を説明する図である。本実施形態の検索装置１００は、ＣＰＵ１１がプログラムを実行することで以下の各部の機能を実現する。
【００３１】
本実施形態の検索装置１００は、検索文字列入力部１０５、検索文字列解析部１１０、文字列展開処理部１２０、検索処理部１３０、結果表示部１４０を有する。
【００３２】
本実施形態の検索装置１００は、検索文字列入力部１０５により入力された検索文字列を検索文字列解析部１１０により解析し、解析結果に基づき文字列展開処理部１２０により展開文字列群を生成する。検索処理部１３０は、生成された展開文字列群を検索キーとしてデータベースを検索し、結果表示部１４０は検索結果を表示する。
【００３３】
尚検索処理部１３０による検索対象となるデータベースは、例えば検索装置１００と文書等が格納された一般的にデータベースであっても良い。このデータベースは、例えばネットワーク等を介して検索装置１００と接続されていても良い。またこのデータベースは、例えば検索装置１００の有する記憶装置１６に格納されていても良い。
【００３４】
本実施形態の検索文字列入力部１０５は、入力された検索文字列を受け付ける。本実施形態の検索文字列解析部１１０は、入力された検索文字列を解析し、解析結果を記憶装置１６へ記憶させる。以下に図３、図４を参照して検索文字列解析部１１０の処理について説明する。
【００３５】
図３は、検索文字列の入力画面の一例を示す図である。本実施形態の検索装置１００では、検索指示がなされると、検索文字列入力部１０５は、出力ユニット１３に検索文字列の入力欄３１を有する入力画面３０を表示させる。入力欄３１に検索文字列３２が入力されて、検索ボタン３３が選択されると、検索文字列解析部１１０は、入力された検索文字列を形態素や音素等を含む語に分割する。尚以下の本実施形態の説明では、検索文字列３２の例を「携帯電話の機種」として説明する。
【００３６】
本実施形態における語とは、一つの意味のまとまりをなし、文法上一つの機能をもつ最小の言語単位であり、一つ以上の形態素からなる。本実施形態における形態素とは、意味を持つ言葉の最小の単位であり、一つ以上の音素からなる。本実施形態における音素とは、人間の意味（意志）伝達において音声をどのように使っているかを元に考えた音の単位である。
【００３７】
本実施形態の検索文字列解析部１１０は、検索文字列を「語」、「形態素」、「音素」のうち任意の単位に分割することができる。以下の本実施形態の説明では、検索文字列を「形態素」と「音素」とに分割するものとして説明するが、例えば検索文字列を形態素に分割し、複数の形態素を含む語に切り出すこともできる。
【００３８】
例えば検索文字列解析部１１０が検索文字列３２の「携帯電話の機種」を分割した場合、検索文字列３２は、「携帯」、「電話」、「機種」という３つの形態素と「の」という音素とに分割される。
【００３９】
図４は、文字列解析部により記憶された解析結果の一例を示す図である。本実施形態では、検索文字列解析部１１０により解析された結果は、解析結果４０として記憶装置１６等に記憶される。解析結果４０では、分割された形態素や音素等が、検索文字列３２に登場する順番と対応付けられて記憶されている。
【００４０】
図４の解析結果４０には、検索文字列３２において一番目を示す値と「携帯」という形態素、検索文字列３２において二番目を示す値と「電話」という形態素、検索文字列３２において三番目を示す値と「の」という音素、検索文字列３２において四番目を示す値と「機種」という形態素、がそれぞれ対応付けられて記憶されている。
【００４１】
図２に戻って、次に本実施形態の文字列展開処理部１２０について説明する。本実施形態の文字列展開処理部１２０は、形態素列生成部１２１、辞書検索部１２２、記憶制御部１２３、結果出力部１２４を有し、検索文字列解析部１１０による解析結果に基づき検索文字列を展開し、展開文字列群を生成して出力する。
【００４２】
本実施形態の形態素列生成部１２１は、形態素を組み合わせて形態素列を生成する。具体的には形態素列生成部１２１は、形態素同士をつなげて形態素列を生成する。尚本実施形態では、形態素と音素をつなげた文字列も形態素列に含むものとした。
【００４３】
辞書検索部１２２は、形態素列生成部１２１により生成された形態素列を検索キーとして、後述する辞書データベースを検索し、形態素列に対応する展開文字列群を得る。記憶制御部１２３は、辞書検索部１２２により得た展開文字列群をメモリユニット１２等に記憶させる。結果出力部１２４は、メモリユニット１２等に記憶された展開文字列群を出力する。
【００４４】
以下に図５を参照して本実施形態の辞書データベースについて説明する。
【００４５】
図５は、辞書データベースの例を示す図である。本実施形態の辞書データベース５０は、展開文字列を得るためのものであり、例えば予め記憶装置１６に格納されている。辞書データベース５０では、検索キーとなる形態素列を示す「表記」と、「表記」に対応する文字列である「展開文字列」とが格納されている。本実施形態では、例えば辞書検索部１２２により「携帯」という形態素列を検索キーとして辞書データベース５０を検索した場合、検索結果として「携行、所持、保持、持参」という展開文字列群が得られる。
【００４６】
図２に戻って、検索部１３０と結果表示部１４０について説明する。本実施形態の検索部１３０は、文字列展開処理部１２０により得られた展開文字列群により、検索対象であるデータベースの検索を行う。結果表示部１４０は、検索部１３０による検索結果等を表示する。尚本実施形態の結果表示部１４０は、検索結果以外にも、例えば検索キーとなった展開文字列群を表示しても良い。
【００４７】
以下に図６を参照して本実施形態の動作を説明する。図６は、第一の実施形態の検索装置の動作を説明するフローチャートである。
【００４８】
本実施形態の検索装置１００において、入力ユニット１４により検索文字列３２が入力されて検索の実行指示がなされると（ステップＳ６１）、検索文字列解析部１１０は、検索文字列３２を解析し、解析結果を記憶装置１６に記憶させる（ステップＳ６２）。続いて文字列展開処理部１２０は、形態素列生成部１２１により形態素列を生成して辞書検索部１２２により形態素列で辞書データベース５０内を検索し、展開文字列群を得て結果出力部１２４により展開文字列を出力する（ステップＳ６３）。ステップＳ６３の処理の詳細は後述する。
【００４９】
続いて検索部１３０は、ステップＳ６３で得られた展開文字列群及び入力された検索文字列により、検索対象のデータベースの検索を行う（ステップＳ６４）。検索部１３０による検索が終わると、結果表示部１４０は、検索結果を表示する（ステップＳ６５）。
【００５０】
以下に図７を参照して図６のステップＳ６３における展開文字列を得る処理の詳細を説明する。図７は、第一の実施形態の検索装置による図６のステップＳ６３において展開文字列を得る処理の詳細を説明するフローチャートである。
【００５１】
本実施形態の文字列展開処理部１２０において、検索文字列解析部１１０により検索文字列３２が形態素と音素に分割されて記憶装置１６に解析結果４０として記憶されると、形態素列生成部１２１は検索文字列３２の先頭の形態素を検索キーとしてセットする（ステップＳ７０１）。次に辞書検索部１２２は、辞書データベース５０内にセットされた形態素と対応する表記が存在するか否かを判断する（ステップＳ７０２）。
【００５２】
ステップＳ７０２において、セットされた形態素に対応する表記が存在しない場合、形態素列生成部１２１は、セットされている形態素が検索文字列における最後の形態素か否かを判断する（ステップＳ７０３）。ステップＳ７０３において最後の形態素であった場合、後述するステップＳ７０７へ進む。
【００５３】
ステップＳ７０３において最後の形態素でない場合、形態素列生成部１２１は、形態素を追加して形態素列を生成し（ステップＳ７０４）、ステップＳ７０２へ戻る。具体的には形態素列生成部１２１は、解析結果４０を参照し、二番目の形態素を一番目の形態素の後につなげて形態素列を生成する。
【００５４】
ステップＳ７０２において、セットされた形態素と対応する表記が辞書データベース５０に存在する場合、辞書検索部１２２は辞書データベース５０から表記に対応する展開文字列群を抽出し、記憶制御部１２３は抽出された展開文字列群をメモリユニット１２等に格納する（ステップＳ７０５）。
【００５５】
次に形態素列生成部１２１は、検索キーとなった形態素列に検索文字列における最後の形態素が含まれるか否かを判断する（ステップＳ７０６）。ステップＳ７０６において、最後の形態素が含まれると判断された場合、文字列展開処理部１２０は、ステップＳ７０５で抽出された展開文字列を検索文字列に対応した展開文字列群と確定する（ステップＳ７０７）。このとき記憶制御部１２３は、メモリユニット１２に格納された展開文字列群のうち、確定された展開文字列群以外の展開文字列群を削除しても良い。
【００５６】
次に辞書検索部１２２は、最後の形態素を先頭として検索を実行したか否かを判断する（ステップＳ７０８）。ステップＳ７０８において、最後の形態素を先頭として検索を実行した場合、文字列展開処理部１２０は文字列展開処理を終了し、結果出力部１２４が処理の結果である確定された展開文字列群を出力する。
【００５７】
ステップＳ７０８において、最後の形態素を先頭として検索を実行していない場合、形態素列生成部１２１は現在の形態素列における二番目の形態素を次の形態素をセットし（ステップＳ７０９）、ステップＳ７０２へ戻る。
【００５８】
以下に、検索文字列３２を「携帯電話の機種」として図７の処理について説明する。
【００５９】
文字列展開処理部１２０において、形態素列生成部１２１は、「携帯」を先頭の形態素としてセットする。続いて辞書検索部１２２は、ステップＳ７０２で、辞書データベース５０内に「携帯」という表記が存在するか否かを判断する。ステップＳ７０２において、辞書データベース５０内に対応する表記が存在するので、辞書検索部１２２は、ステップＳ７０５へ進み、形態素「携帯」に対応する表記「携帯」の展開文字列「携行、所持、保持、持参」を抽出してメモリユニット１２等に格納する。
【００６０】
続いて辞書検索部１２２は、ステップＳ７０７において形態素「携帯」が検索文字列３２において最後の形態素か否かを判断する。「携帯」は最後の形態素ではないので、ステップＳ７０４へ進み、形態素列生成部１２１は、解析結果４０を参照して次の形態素を先頭の形態素へ追加する。解析結果４０では、「電話」が二番目の形態素である。よって形態素列生成部１２１は、「携帯」の後に「電話」をつなげた形態素列「携帯」「電話」を生成し、ステップＳ７０２へ戻る。
【００６１】
辞書検索部１２２は、「携帯電話」を検索キーとしてステップＳ７０２以降の処理を行う。その結果ステップＳ７０５で展開文字列「移動電話、移動通信、モバイル機器」が抽出される。そして形態素列生成部１２１は、次の検索キーとして「携帯電話の機種」をセットする。
【００６２】
尚本実施形態では、形態素と形態素との間に、意味をなさない助詞等の音が存在する場合、この音を含むように前の形態素に後ろの形態素とをつなげる。例えば形態素「電話」と形態素「機種」の間には助詞の「の」が存在する。よって本実施形態では、形態素「電話」と形態素「機種」とをつなげる際は、「電話の機種」となる。
【００６３】
すなわち本実施形態の形態素列生成部１２１は、形態素列を生成する際に、検索文字列３２において、辞書データベース５０を検索する検索キーに含まれる形態素のうち、最後の形態素の次に位置する形態素を検索キーに追加した文字列を記形態素列とする。具体的には、例えば辞書検索部１２２が「携帯電話」を辞書データベース５０の検索キーとした後には、形態素列生成部１２１は、検索文字列３２において「携帯電話」の最後の形態素である「電話」の次に位置する形態素又は音素を「携帯電話」に追加する。
【００６４】
図７において形態素「携帯電話の機種」がセットされた場合、ステップＳ７０２で辞書データベース５０内に対応する表記が存在しない。よって形態素列生成部１２１は、ステップＳ７０３へ進み、「携帯電話の機種」に最後の形態素が含まれるか否かを判断する。
【００６５】
ステップＳ７０３では、最後の形態素「機種」が含まれるため、形態素列生成部１２１はステップＳ７０７へ進み、展開文字列「移動電話、移動通信、モバイル機器」を形態素「携帯電話」の展開文字列として確定させる。記憶制御部１２３は、この展開文字列をメモリユニット１２に記憶させる。
【００６６】
次に形態素列生成部１２１は、ステップＳ７０８で最後の形態素が先頭となる形態素列まで検索を実行したか否かを判断する。すなわち形態素列生成部１２１は、形態素「機種」を先頭として検索を行ったか否かを判断する。ここではまだ検索を行っていないため、ステップＳ７０９進む。形態素列生成部１２１は、ステップＳ７０９で、現在の形態素列である「携帯電話」における二番目の形態素「電話」を次の形態素をセットし、ステップＳ７０２以降の処理を繰り返す。
【００６７】
二番目の形態素「電話」を先頭として検索を行った場合、形態素「電話」に対応する展開文字列「電話機、ＴＥＬ、テレホン」がメモリユニット１２に記憶される。
【００６８】
次に最後の形態素「機種」が次の形態素にセットされ、形態素「機種」に対応する展開文字列「型、モデル」がメモリユニット１２に記憶される。
【００６９】
次に、図８を参照して図６のステップＳ６３で確定された展開文字列群の出力の詳細を説明する。図８は、図６のステップＳ６３において展開文字列群を出力する処理を説明するフローチャートである。
【００７０】
本実施形態の結果出力部１２４は、メモリユニット１２に記憶された展開文字列群に基づき結果を出力する。本実施形態では、メモリユニット１２に記憶された展開文字列群を組み合わせて結果として出力する文字列を作成しても良い。
【００７１】
メモリユニット１２に展開文字列群が記憶されると、結果出力部１２４は、記憶された展開文字列群から最も長い形態素列（以下、最長形態素列）に対応した展開文字列群を抽出する（ステップＳ８１）。続いて結果出力部１２４は、モリユニット１２に記憶された展開文字列群から、最長形態素列に含まれない形態素に対応した展開文字列を抽出する（ステップＳ８２）。
【００７２】
次に結果出力部１２４は、ステップＳ８１とステップＳ８２で抽出した展開文字列同士を、形態素の順に沿って組み合わせ（ステップＳ８３）、出力する（ステップＳ８４）。
【００７３】
例えば検索文字列が「携帯電話の機種」である場合、最長形態素列は「携帯電話」である。よって結果出力部１２４は、ステップＳ８１において、メモリユニット１２から形態素列「携帯電話」に対応する展開文字列「移動電話、移動通信、モバイル機器」を抽出する。
【００７４】
次に結果出力部１２４は、ステップＳ８２において、最長形態素列「携帯電話」に含まれない形態素である「機種」に対応する展開文字列群「型、モデル」を抽出する。
【００７５】
そして結果出力部１２４は、ステップＳ８３において、形態素の順に沿って展開文字列群を組み合わせる。例えば形態素「機種」は四番目の形態素であり、形態素「携帯電話」よりも後ろにある形態素である。したがって結果出力部１２４は、形態素「携帯電話」に対応する展開文字列群の後ろに、形態素「機種」に対応する展開文字列群をつなげても良い。
【００７６】
よってこの場合、検索結果となる展開文字列は、「移動電話の型、移動通信の型、モバイル機器の型、移動電話のモデル、移動通信のモデル、モバイル機器のモデル」となる。
【００７７】
本実施形態の出力の方法としては、例えば出力ユニット１３により展開文字列群を表示させても良い。また本実施形態では、展開文字列群だけではなく、展開文字列群に対応する形態素や形態素列を展開文字列群と対応付けて表示させても良い。
【００７８】
図９は、展開文字列群の出力結果の表示画面の一例を示す図である。図９に示す画面９０では、入力ユニット１４から入力された検索文字列と、各形態素列から得られて展開文字列群とが表示されている。画面９０によれば、どのような形態素列が生成されたかを表示させることができる。
【００７９】
尚本実施形態では、結果出力部１２４が、メモリユニット１２に記憶された展開文字列群を組み合わせて出力する結果を生成するものとしたが、これに限定されない。本実施形態の結果出力部１２４は、メモリユニット１２に記憶された全ての展開文字列群を結果として出力しても良い。すなわち本実施形態では、最長形態素列に対応する展開文字列群以外の展開文字列群も出力しても良い。
【００８０】
また本実施形態では、出力される展開文字列群の数に上限を設設けても良い。また本実施形態では、メモリユニット１２に記憶される展開文字列の数に上限を設けても良い。
【００８１】
本実施形態では、以上に説明した手法により検索文字列から展開文字列群を取得し、展開文字列を検索キーとして検索対象のデータベースを検索する。したがって本実施形態では、高精度に検索文字列の展開を行い、的確な文書の検索を行うことができる。
【００８２】
（第二の実施形態）
以下に図面を参照して本発明の第二の実施形態について説明する。本発明の第二の実施形態は、辞書データベースが複数存在する点のみ第一の実施形態と相違する。よって以下の第二の実施形態では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００８３】
図１０は、第二の実施形態の検索装置の記憶装置に格納された辞書データベースの一例を示す図である。
【００８４】
本実施形態の辞書データベース５０Ａ、５０Ｂは、検索装置１００の記憶装置１６等に格納されていても良いし、ネットワークを介して検索装置１００と接続された外部のデータベースに格納されていても良い。また辞書データベース５０Ａと辞書データベース５０Ｂとは、それぞれが異なる記憶装置に格納されていても良い。
【００８５】
以下に本実施形態の検索装置１００の動作について説明する。本実施形態では、第一の実施形態の図６のステップＳ６３における文字列展開処理のみ第一の実施形態と相違する。よって以下に図１１を参照して本実施形態におけるステップＳ６３における文字列展開処理について説明する。
【００８６】
図１１は、第二の実施形態の検索装置による図６のステップＳ６３における文字列展開処理の詳細を説明する第一のフローチャートである。
【００８７】
図１１の例では、辞書データベースが複数存在する場合に、全ての辞書データベースに対して検索を行う例である。
【００８８】
ステップＳ１１０１からステップＳ１１０５までの処理は、図７のステップＳ７０１からステップＳ７０５までの処理と同様であるから説明を省略する。
【００８９】
ステップＳ１１０５に続いて辞書検索部１２２は、記憶装置１６に格納された全ての辞書データベースについて検索したか否かを判断する（ステップＳ１１０６）。
【００９０】
ステップＳ１１０６で全ての辞書データベースについて検索を行っていない場合、ステップＳ１１０２へ戻る。ステップＳ１１０６で全ての辞書データベースについて検索を行った場合、ステップＳ１１０７へ進む。
【００９１】
ステップＳ１１０７からステップＳ１１１０までの処理は、図７のステップＳ７０６からステップＳ７０９までの処理と同様であるから説明を省略する。
【００９２】
例えば記憶装置１６に格納された辞書データベースが、辞書データベース５０Ａ、５０Ｂの場合、本実施形態の辞書検索部１２２は、最初に辞書データベース５０Ａ内を検索した後に辞書データベース５０Ｂ内を検索する。
【００９３】
次に、データベースが複数存在する場合の処理の別の例について説明する。図１２は、第二の実施形態の検索装置による図６のステップＳ６３における文字列展開処理の詳細を説明する第二のフローチャートである。
【００９４】
図１２の例では、辞書データベースが複数存在するとき、最初に検索した辞書データベースに該当する表記が存在しない場合にのみ、他の辞書データベースを検索する。
【００９５】
図１２のステップＳ１２０１、Ｓ１２０２は、図７のステップＳ７０１、Ｓ７０２と同様であるから説明を省略する。辞書検索部１２２は、ステップＳ１２０２で検索した辞書データベースに対応する表記がない場合、記憶装置１６に格納された他の辞書データベースに対応する表記が存在するか否かを判断する（ステップＳ１２０３）。
【００９６】
ステップＳ１２０４からステップＳ１２１０までの処理は、図７のステップＳ７０３からステップＳ７０９までの処理と同様であるため説明を省略する。
【００９７】
図１２の例では、例えば記憶装置１６に格納された辞書データベースが、辞書データベース５０Ａ、５０Ｂの場合、辞書検索部１２２は、辞書データベース５０Ａ内を検索して対応する表記が存在しない場合にのみ辞書データベース５０Ｂ内を検索する。
【００９８】
以上のように、本実施形態では、複数の辞書データベースを有する場合でも第一の実施形態と同様の効果を得ることができる。
【００９９】
（第三の実施形態）
以下に図面を参照して本発明の第三の実施形態について説明する。本発明の第三の実施形態は、検索装置１００を有する検索システムである。
【０１００】
図１３は、第三の実施形態の検索システムを説明する図である。本実施形態の検索システム２００は、検索装置１００、辞書データベース５０Ｃ、５０Ｄがネットワークを介して接続されて構成されている。
【０１０１】
本実施形態の検索装置１００は、入力ユニット１４から検索文字列が入力されて検索文字列解析部１１０により形態素に分割されると、検索キーとなる形態素や形態素列生成部１２１により生成された形態素列が辞書データベース５０Ｃ、５０Ｄへ送信される。辞書データベース５０Ｃ、５０Ｄは、検索キーとなる形態素や形態素列で検索を行い、検索結果を検索装置１００へ送信する。
【０１０２】
よって本実施形態では、第一及び第二の実施形態と同様の効果を得ることができる。尚本実施形態の検索システム２００では、辞書データベースを２つ有する構成としたが、これに限定されない。本実施形態の検索システム２００は、辞書データベースが１つであっても良いし３つ以上であっても良い。
【０１０３】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１０４】
１００  検索装置
１１０  文字列解析部
１２０  文字列展開処理部
１２１  形態素列生成部
１２２  辞書検索部
１２３  記憶制御部
１２４  結果出力部
２００  検索システム
【先行技術文献】
【特許文献】
【０１０５】
【特許文献１】特許第２８５０９５２号公報
【特許文献２】特開２００３−２２８５７８号公報
【図１】
0005664042.tif 000002
【図２】
0005664042.tif 000003
【図３】
0005664042.tif 000004
【図４】
0005664042.tif 000005
【図５】
0005664042.tif 000006
【図６】
0005664042.tif 000007
【図７】
0005664042.tif 000008
【図８】
0005664042.tif 000009
【図９】
0005664042.tif 000010
【図１０】
0005664042.tif 000011
【図１１】
0005664042.tif 000012
【図１２】
0005664042.tif 000013
【図１３】
0005664042.tif 000014