(57)【特許請求の範囲】
【請求項１】
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出ステップと、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得ステップと、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定ステップと、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力ステップと、
を備えることを特徴とする、コンピュータが実行する検索方法。
【請求項２】
前記設定ステップでは、前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする請求項１に記載のコンピュータが実行する検索方法。
【請求項３】
前記複数の文書データのそれぞれは、１つ以上のセンテンスを含み、
前記取得された文字列が複数のセンテンスに跨っているか否かを判定する跨り判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記複数のセンテンスに跨っていると判定された文字列の文字数に所定の値を加えた文字数と、前記複数のセンテンスに跨っていると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする請求項２に記載のコンピュータが実行する検索方法。
【請求項４】
前記取得された文字列に包含される複数の検索文字列が同一位置にある文字を共有しているか否かを判定する重複判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定された文字列の文字数に所定の値を加えた文字数と、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする請求項２に記載のコンピュータが実行する検索方法。
【請求項５】
前記設定ステップでは、前記所定の値を、前記複数の文書データのいずれかに含まれるセンテンスのうち、文字数が最大のセンテンスの文字数以上の値とする、
ことを特徴とする請求項３または４に記載のコンピュータが実行する検索方法。
【請求項６】
前記出力ステップでは、前記設定された出力優先度が等しい文書データには、当該文書データの先頭文字と当該文書データの出力優先度に設定された文字列との間の文字数に基づく第２の出力優先度をさらに対応付けて、前記抽出された文書データを出力する、
ことを特徴とする請求項１から５のいずれか１項に記載のコンピュータが実行する検索方法。
【請求項７】
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段と、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段と、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段と、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段と、
を備えることを特徴とする検索装置。
【請求項８】
コンピュータを、
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段、
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムに関する。
【背景技術】
【０００２】
文書の電子化の増大に伴い、これまでに蓄積されてきた大量の文書群から所望の文書を見つけ出す検索技術の重要性が高まっている。電子機器における典型的な検索は、検索対象の文書群のうちから、ユーザから受け付けた検索語を含む文書を見つけ出し、当該見つけ出した文書をユーザへと表示する。
【０００３】
このとき、所望の検索語が含まれる文書が多数見つかった場合には、見つかった多数の文書の間で優先順位をつけ、優先順位の高い文書から表示される。この優先順位は、ユーザの目的にあった文書が優先的に表示されるよう、様々な要素を考慮して付けられる。例えば特許文献１には、電子辞書での検索において、ユーザのレベルに応じて表示する文書の優先順位をつけ、ユーザの意図に合った検索結果を取得するための技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１０６８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
所望の検索語を含む文書が複数存在した場合になるべくユーザの意図にあった文書を優先的に提示できるようにするため、より簡便に各文書に優先順位を付ける方法が求められている。とくに、電子辞書のような一般的なコンピュータに比べて小型の電子機器では、処理能力や電池性能といった使用可能な資源が限られているため、なるべく効率的な方法で文書に優先度を付け、ユーザの意図にあった文書を優先的に提示できるようにしたいとの要望が強い。
【０００６】
本発明は、以上のような課題を解決するためのものであり、ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るコンピュータが実行する検索方法は、
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出ステップと、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得ステップと、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定ステップと、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力ステップと、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る検索装置の概要構成を示す図である。
【図２】本発明の実施形態に係る検索装置の物理構成を示す図である。
【図３】本発明の実施形態に係る複数の文書データの構成を示す図である。
【図４】本発明の実施形態に係る検索装置の処理の流れを示すフローチャートである。
【図５】本発明の実施形態において、文書データから包含文字列が取得される様子を示す図である。
【図６】本発明の実施形態に係る検索装置において、スコア候補設定処理の流れを示すフローチャートである。
【図７】本発明の実施形態において、包含文字列に設定されるスコア候補の例を示す図である。
【図８】本発明に係る検索装置の構成概要について、別の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であれば下記の各構成要素を均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。また、以下の説明では、本発明の理解を容易にするため、重要でない公知の技術的事項の説明を適宜省略する。
【００１１】
本実施形態では、検索装置が実現される情報処理装置として、電子辞書等の機能を備える小型の情報処理装置を想定して説明する。すなわち、本実施形態に係る検索装置は、電子辞書を構成する複数の文書データのうちから、所望の検索語を含む文書データを検索する装置である。
【００１２】
このような検索装置１は、図１に示されるような構成をとり、制御部１００と、記憶部１１０と、入力部１２０と、表示部１３０と、を備える。一方、当該検索装置１は、物理的には図２に示されるように構成され、ＣＰＵ（Central Processing Unit）１５１と、ＲＯＭ（Read Only Memory）１５２と、ＲＡＭ（Random Access Memory）１５３と、キーボード１５４と、モニタ１５５と、を備える。以下、図１および図２を参照して、検索装置１の構成要素の説明をする。
【００１３】
制御部１００は、検索装置１全体の動作を制御し、各構成要素と接続され、制御信号やデータをやりとりする。すなわち、制御部１００は、記憶部１１０、入力部１２０、表示部１３０と接続され、これら各部の機能を活用しながら、検索処理を実行する。
【００１４】
ここで制御部１００は、抽出部１０１と、取得部１０２と、設定部１０３と、出力部１０４と、跨り判定部１０５と、重複判定部１０６と、を備える。これらの各部は、詳細には後述するように、記憶部１１０に記憶されている複数の文書データ（文書データ群３００）のうちから所望の検索語を含む文書データを特定し、所定の順序で並べ替えて出力する処理を実行する。
【００１５】
このような制御部１００（抽出部１０１、取得部１０２、設定部１０３、出力部１０４、跨り判定部１０５、重複判定部１０６）は、例えばＣＰＵ１５１によって構成される。ここでＣＰＵ１５１は、命令やデータを転送するための伝送経路であるシステムバスにより各構成要素と相互に接続され、ＲＯＭ１５２に記録されている検索装置１全体の動作制御に必要なコンピュータプログラムや各種データに従って動作する。そしてＣＰＵ１５１は、ＲＯＭ１５２から読み出したコンピュータプログラムやデータ、その他処理の進行に必要なデータを、ＲＡＭ１５３に一時的に記憶しながら、各種動作を制御する。このようにＣＰＵ１５１がＲＯＭ１５２やＲＡＭ１５３と協働することで、制御部１００は、検索装置１全体の動作を制御する。
【００１６】
記憶部１１０は、例えば検索装置１内に備えられたＲＯＭ１５２のような読出し専用の記憶媒体によって構成され、制御部１００が検索処理に必要な各種データを記憶する。具体的にここでは、検索対象とされる複数の文書データ（文書データ群３００）があらかじめ記憶される。
【００１７】
ここで、記憶部１１０にあらかじめ記憶される文書データ群３００は、図３に示されるように構成される。すなわち文書データ群３００は、個々の文書データ３０１ａ〜３０１ｃ等から構成され、さらに文書データ３０１ａ〜３０１ｃ等はそれぞれ、「見出し語」と「説明文」とから構成される。すなわち、文書データ３０１ａ〜３０１ｃ等は、辞書を構成する構成単位であり、「見出し語」とは、当該辞書の見出しとなる１つの語句であり、１つの文書データ３０１に対して１つの見出し語が対応付けられる。そして、「見出し語」には当該見出し語を説明する「説明文」が対応付けられ、これらを合わせて１つの文書データ３０１を構成する。さらに、このような文書データ３０１が「見出し語」の数だけ存在し、全体で文書データ群３００を構成する。
【００１８】
図１および図２に戻って、入力部１２０は、例えばキーボード１５４のような入力装置によって構成され、ユーザからの入力を受け付ける。具体的にここでは、ユーザからの検索語を受け付ける。受け付けられた検索語は、制御部１００の抽出部１０１へと供給され、当該検索語を含む文書データ３０１を抽出する処理に用いられる。
【００１９】
表示部１３０は、例えばモニタ１５５のような表示装置によって構成され、制御部１００が処理を行った結果をユーザへ表示する。具体的にここでは、ユーザが入力した検索語を含む文書データ３０１を、後述する所定の出力優先度の順でモニタ１５５に出力することで、当該ユーザへと表示する。これにより、ユーザは、自身が入力した検索語を含む文書データ３０１を出力結果として取得し、種々に利用することができるようになる。
【００２０】
なお、入力部１２０と表示部１３０は、タッチパネル等のような入力装置と表示装置が組み合わされた装置によって構成されてもよい。この場合には、タッチパネルに内蔵されたタッチセンサ等からなる位置入力装置が入力部１２０を、液晶ディスプレイ等からなる表示装置が表示部１３０を、それぞれ構成する。
【００２１】
以上のように構成される検索装置１は、制御部１００の制御のもと、検索処理を行う。具体的には、図４のフローチャートに示される手順で処理を実行する。
【００２２】
本処理は、ユーザから入力された検索語を、検索装置１の入力部１２０が受け付けることを契機として、開始される。すなわち、キーボード１５４を用いて、ユーザが所望の検索語を入力し、検索する旨を指示することで、本処理が開始する。
【００２３】
ここで検索装置１は、一般的な情報機器において実現されている検索と同様に、ユーザからの１つ以上の検索語を受け付けることができ、複数の検索語を受け付けた場合には、それらの論理積や論理和等の各種演算処理を施したものについての検索を行うことができるものである。このうち本実施形態では、複数の検索語の論理積に対する検索処理において特徴を発揮するものであるため、以下では、ユーザから複数の検索語が受け付けられ、それらの論理積をとった検索処理が行われることを想定して説明する。
【００２４】
ユーザから複数の検索語が受け付けられ処理が開始されると、まず抽出部１０１が、複数の文書データ３０１ａ〜３０１ｃ等（文書データ群３００）のうちから、複数の検索語を全て含む文書データ３０１を抽出する（ステップＳ４０１）。例えば、ユーザが「雨」「結果」「いた」という３語の検索語を入力したとすると、抽出部１０１は文書データ群３００内に含まれる文字列の検索を行い、当該「雨」「結果」「いた」という３語の検索語の文字列（検索文字列）をすべて含む文書データ３０１を抽出する。
【００２５】
このとき行われる検索は、いわゆる全文検索であり、各文書データ３０１内の見出し語および説明文の文字列に対して行われる。すなわち、文書データ３０１内の見出し語か説明文かのいずれかに入力された検索語が含まれていれば、当該文書データ３０１が抽出される。
【００２６】
また、このとき行われる検索の詳細な方法は、公知の検索技術のいずれに基づくものであってもよい。すなわち、抽出部１０１は、例えば複数の文書データ３０１ａ〜３０１ｃ等を順次走査して検索文字列を探し出す逐次型の検索（ｇｒｅｐ型の検索）を行ってもよいし、あるいは検索処理の高速化のためあらかじめ索引ファイルを用意しておく索引型（インデックス型）の検索を行ってもよい。また、索引型の検索の場合は、例えばいわゆる形態素解析の手法によって索引ファイルが生成されるものであってもよいし、いわゆるＮグラムの手法（Ｎ文字インデックス法）によって索引ファイルが生成されるものであってもよい。
【００２７】
このようにして複数の検索語が含まれる文書データ３０１の抽出が終了すると、次に取得部１０２が、抽出された文書データ３０１内で、複数の検索語全てを包含する文字列を取得する（ステップＳ４０２）。すなわち、文書データ３０１内の見出し語と説明文とを構成する文字列のうち、入力された複数の検索語を包含する文字列（以下、「包含文字列」という）を取得する。
【００２８】
例えば、上記の例のように「雨」「結果」「いた」という３語の検索語が入力され、当該「雨」「結果」「いた」という３個の検索文字列を含む文書データ３０１として、図５のように文書データ３０１ｂが抽出された場合を例にとって説明する。本図では、文書データ３０１ｂ内の説明文に「昨日もしも雨が降っていたら結果は雨によって変わっていたと思いますか」という文字列があり、当該文字列中には３個の検索語のうち「雨」が２個、「結果」が１個、「いた」が２個、それぞれ含まれている。そのため、当該文字列からは、これら３語の検索語を包含する包含文字列として、「『雨』が降って『いた』ら『結果』」という包含文字列を取得することができるし、さらに当該１個だけでなく、「『いた』ら『結果』は『雨』」、「『結果』は『雨』によって変わって『いた』」という包含文字列も取得することができ、合計で３個の包含文字列を取得することができる。文書データ３０１ｂ中に他の文中にも検索語が含まれていた場合には、当該３語を含む包含文字列をさらに取得することができる。
【００２９】
図４のフローチャートに戻って、ステップＳ４０２では、取得部１０２がこれら取得可能な包含文字列のうちから１つを取得して、ＲＡＭ１５３に一時的に保持する。
【００３０】
包含文字列を取得すると、次に設定部１０３が、取得された包含文字列に、スコア候補を設定する（ステップＳ４０３）。ここでスコア候補とは、後述する文書データを出力する処理において、出力する順序の優先度の指標（スコア）を定めるためのものであり、１つの包含文字列に対して１つの値が設定される。具体的なスコア候補の設定処理について、以下、図６のフローチャートを参照して説明する。
【００３１】
スコア候補の設定処理が開始されると、まず設定部１０３が、包含文字列の文字数をスコア候補として設定する（ステップＳ６０１）。すなわち、設定部１０３は、まず取得された包含文字列の文字数を数え、これをスコア候補とする。
【００３２】
具体的に説明すると、図７のように検索語が「電話」と「帯電」という２語であって、文書データ３０１内から当該２語を含む「帯電と電話」という包含文字列７００ａが取得された場合の例では、当該包含文字列７００ａの文字数は５文字であるため、この「５」という値が当該包含文字列７００ａのスコア候補として設定される。一方、文書データ３０１内から「電話していると帯電」という包含文字列７００ｂが取得された場合の例では、当該包含文字列７００ｂの文字数は９文字であるため、この「９」という値が当該包含文字列７００ｂのスコア候補として設定される。
【００３３】
このように、包含文字列の文字数は、それが包含する複数の検索語が互いに近い位置にあるときは小さくなり、逆に包含する複数の検索語が互いに離れた位置にあるときは大きくなる。そして、複数の検索語が互いに近い位置にある文書データ３０１の方が、ユーザの検索意図にあった文書データ３０１であることが多いと考えられる。そのため、包含文字列の文字数をスコア候補とし、後述する文書データ３０１の並べ替え順序の指標とすることで、ユーザの検索意図にあった文書データ３０１を優先的に出力することができるようになる。
【００３４】
この後、図６のフローチャートに戻って、スコア候補設定処理ではさらに、跨り判定部１０５が、包含文字列が複数のセンテンスに跨っているか否かを判定する（ステップＳ６０２）。ここでセンテンスとは、いわゆる文であり、通常句点やピリオド等で分割されるひと続きの言葉を意味する。文書データ３０１内の説明文は、通常１つ以上のセンテンスによって構成される。ここでは跨り判定部１０５が、取得された包含文字列が複数のセンテンスに跨っているか否か、すなわち包含文字列がその間に句点やピリオドを含むか否かを判定する。
【００３５】
具体的に図７の例を用いて説明すると、取得された包含文字列が「帯電と電話」という包含文字列７００ａであった場合や、「電話していると帯電」という包含文字列７００ｂであった場合は、複数のセンテンスに跨っていないと判定されるが、一方で取得された包含文字列が「帯電した。なお電話」という包含文字列７００ｃであった場合は、句点「。」を含むため、複数のセンテンスに跨っていると判定される。
【００３６】
複数のセンテンスに跨っていると判定された場合（ステップＳ６０２；ＹＥＳ）、設定部１０３が、スコア候補に所定のペナルティを加算する（ステップＳ６０３）。すなわち、上記ステップＳ６０１にて包含文字列の文字数に設定されていたスコア候補に、所定のペナルティを加算して、スコア候補の値を増大させる。具体的に図７の例では、複数のセンテンスに跨っている「帯電した。なお電話」という包含文字列７００ｃのスコア候補は、その文字数である８文字（句点は文字数に含まず。）に、センテンスペナルティとして「２０」の値が加算され、「２８」という値が設定される。
【００３７】
このようにスコア候補の値が増大されることで、後述する文書データ３０１の出力優先度の指標（スコア）が下がることにつながり、ユーザへ出力される順序が後になることにつながる。すなわち、ユーザが入力した複数の検索語が異なるセンテンス内に分散して存在している文書データ３０１は、１つのセンテンス内に集中して存在している文書データ３０１に比べて、ユーザが見つけ出したい文書データ３０１でない可能性が高いと考えられるため、ユーザへ出力される優先度が下げられる。
【００３８】
ここで加算されるセンテンスペナルティの値を、文書データ群３００（複数の文書データ３０１ａ〜３０１ｃ等）中のセンテンスのうち、最も長いセンテンスの文字数以上の値とする。そのために、検索装置１の記憶部１１０には、文書データ群３００のうち最も長いセンテンスの文字数があらかじめ保持され、検索が行われるたびにセンテンスペナルティとして用いられる。このようにすることで、複数の検索語が複数のセンテンスに分散して存在している文書データ３０１のスコアは、１つのセンテンス内に集中して存在しているいずれの文書データ３０１のスコア以上のものとなり、よりユーザの意図にあった検索結果が出力されやすくなる。
【００３９】
図６のフローチャートに戻って、その後処理はステップＳ６０４へと移行する。一方、ステップＳ６０２にて複数のセンテンスに跨っていると判定されなかった場合には（ステップＳ６０２；ＮＯ）、上記のようなスコア候補にセンテンスペナルティが加算される処理を通らずに、ステップＳ６０４へと移行する。
【００４０】
そして、当該ステップＳ６０４では、重複判定部１０６が、包含文字列内で検索語が互いに重複しているか否かを判定する（ステップＳ６０４）。すなわち、ユーザから入力された複数の検索語が、包含文字列内で同一位置にある文字を共有するものであるか否かを判定する。ユーザが３つ以上の検索語を入力した場合には、そのうちいずれか２つの検索語が互いに重複しているか否かが判定される。
【００４１】
具体的に図７の例を用いて説明すると、包含文字列内で検索語が互いに重複している場合とは、「電話」と「帯電」という２語の検索語が入力された場合において、「帯電話」という包含文字列７００ｄが取得された場合が相当する。包含文字列７００ｄ中の「電」という同一文字を、当該２語の検索語が共有しているからである。
【００４２】
このように、重複していると判定された場合（ステップＳ６０４；ＹＥＳ）、設定部１０３が、スコア候補に所定のペナルティを加算する（ステップＳ６０５）。すなわち、上記ステップＳ６０１にて包含文字列の文字数に設定され、所定の場合には上記ステップＳ６０３においてセンテンスペナルティが加算されたスコア候補に、さらに所定の第２のペナルティを加算して、スコア候補の値を増大させる。具体的に図７の例では、複数のセンテンスに跨っている「帯電話」という包含文字列７００ｄのスコア候補は、その文字数である３文字に、重複ペナルティとして「３０」の値が加算され、「３３」という値が設定される。
【００４３】
このようにスコア候補の値を増やすのは、ユーザが入力した複数の検索語を重複して有する文字列は、ユーザの意図したような使用のされ方をしているものでない可能性が高いからである。例えば上記の例での「帯電話」包含文字列７００ｄは、「携帯電話」という文字列の一部であって、偶然「帯電」という文字列を含んでいるが、「帯電」という独立した単語を含むものではない。そのため、ここでは設定部１０３が、スコア候補の値を増大させて、ユーザへ出力される優先度を下げる。
【００４４】
ここで加算される重複ペナルティの値は、上記センテンスペナルティよりも大きな値とされる。具体的に図７の例のように、センテンスペナルティの値が「２０」に対し、重複ペナルティの値は「３０」と大きな値とされる。この理由は、ユーザが入力した複数の検索語が重複している文書データ３０１は、複数のセンテンスに跨っている文書データ３０１に比べて、ユーザの意図にあったものである可能性が典型的には低いと考えられるからである。
【００４５】
図６のフローチャートに戻って、その後処理は本図のスコア候補設定処理を終了する。一方、ステップＳ６０４にて包含文字列内で検索語が互いに重複していると判定されなかった場合には（ステップＳ６０４；ＮＯ）、上記のようなスコア候補に重複ペナルティが加算される処理を通らずに、本図の処理を終了する。
【００４６】
図６のスコア候補設定処理を終了すると、検索装置１の処理は、図４のフローチャートに戻り、ステップＳ４０４へと移行する。そして、設定部１０３が、設定されたスコア候補が既に設定されたスコアよりも小さければ、当該スコア候補を文書データ３０１のスコアに設定する（ステップＳ４０４）。すなわちここでは、文書データ３０１に、後述する文書データ３０１の出力順序の優先度の指標となる「スコア」を設定する。その際、１つの文書データ３０１内からは通常複数の包含文字列が取得されるため、そのうち最小のスコア候補を当該文書データ３０１のスコアとして設定するよう、取得された包含文字列に設定されたスコア候補の値と、文書データ３０１に既に設定されているスコアの値とを比較して、当該スコア候補の値が当該スコアの値より小さい場合に、当該スコア候補の値を当該文書データ３０１のスコアとして設定する。
【００４７】
なお、文書データ３０１から最初の包含文字列が取得され、当該文書データ３０１のスコアが未設定な状態にある場合には、値を比較するまでもなく、当該最初の包含文字列のスコア候補がそのまま当該文書データ３０１のスコアとして設定される。
【００４８】
その後、検索装置１の制御部１００が、文書データ３０１内で未処理の包含文字列があるか否かを判定する（ステップＳ４０５）。未処理の包含文字列があれば（ステップＳ４０５；ＹＥＳ）、処理はステップＳ４０２へと戻る。すなわち、文書データ３０１内の未処理の包含文字列を取得して、当該包含文字列にスコア候補を設定し、設定されたスコア候補が、当該文書データ３０１に既に設定されているスコアよりも小さければ、当該スコア候補を文書データ３０１のスコアとして、設定し直す。このような処理が、抽出された文書データ３０１内のすべての包含文字列に対して繰り返されることで、当該文書データ３０１のスコアとして、当該文書データ３０１から取得されうる包含文字列のスコア候補のうち、最小のものが設定される。
【００４９】
そして、未処理の包含文字列がなくなると（ステップＳ４０５；ＮＯ）、次に検索装置１の制御部１００は、複数の文書データ３０１ａ〜３０１ｃ等のうち未処理の文書データ３０１があるか否かを判定する（ステップＳ４０６）。未処理の文書データ３０１があれば（ステップＳ４０６；ＹＥＳ）、処理はステップＳ４０１へと戻る。すなわち、複数の文書データ３０１ａ〜３０１ｃ等のうちから抽出された複数の検索語を含む文書データ３０１のうち、未処理の文書データ３０１に着目して、当該着目された文書データ３０１にスコアを設定する処理を行う。このような処理が、複数の検索語を含む文書データ３０１のすべてに対して繰り返されることで、それぞれにスコアが設定される。
【００５０】
そして、未処理の文書データ３０１がなくなると（ステップＳ４０６；ＮＯ）、次に、出力部１０４が、抽出された文書データ３０１をスコアが小さい順に並べ替える（ステップＳ４０７）。すなわち、各文書データ３０１に設定されたスコアの値を比較して、昇順にソートする。ここで、各文書データ３０１のスコアは、ユーザから入力された複数の検索語についての包含文字列の文字数等に基づいて、ユーザの検索意図に沿うと想定される優先度が設定されているため、文書データ３０１は、ユーザの検索意図に沿うような順序で並べられることになる。
【００５１】
この後、出力部１０４は、スコアが同じ文書データ３０１を、包含文字列が先頭から近い順に、さらに並べ替える（ステップＳ４０８）。すなわち、スコア順に並べ替えられた文書データ３０１に対して、さらに等しいスコアを有する文書データ３０１の間でも並べ替えを行う。このときの並べ替えの基準として、出力部１０４は、スコアとして設定された（スコア候補が最も小さい）包含文字列の文書データ３０１内の位置に着目し、文書データ３０１の先頭により近いものを優先して、並べ替える。
【００５２】
ここで、ユーザから入力された複数の検索語の位置が、文書データ３０１内で先頭に近い位置にある文書データ３０１は、先頭から遠い位置にある文書データ３０１に比べて、ユーザの意図した文書データ３０１である可能性が高いと考えられる。そのため、出力部１０４は、スコアの順に文書データ３０１を並べ替えた上で、さらにスコアが等しい文書データ３０１同士では、包含文字列が文書データ３０１の先頭文字から近いものを優先して、さらに並べ替える。
【００５３】
そして、出力部１０４は、このように並べ替えられた文書データ３０１を、順に出力し（ステップＳ４０９）、処理を終了する。すなわち、出力部１０４は、並べ替えられた文書データ３０１を表示部１３０へと送り、検索装置１のモニタ１５５に表示することで、並べ替えられた順序でユーザへと出力する。その結果、ユーザは、検索結果を、自身の検索意図に沿った文書データ３０１から順に確認し、利用することができるようになる。
【００５４】
以上のような構成により、本実施形態の検索装置１は、複数の文書データ３０１ａ〜３０１ｃ等のうち、複数の検索語を含む文書データ３０１をユーザへ出力する際、当該複数の検索語を包含する文字列の文字数等に基づいて順序を設定し、当該設定された順序で複数の検索語を含む文書データ３０１を出力する。
【００５５】
これにより、本実施形態の検索装置１は、簡便な方法で優先度を設定することでユーザの意図にあった検索結果を提示することができる。特に、比較的短い文書データの集合体であり、互いの文書データ間で含まれる検索語の数や信頼性に差がつきにくい電子辞書のような情報機器において、また使用可能なＣＰＵ性能や電池性能等が限られた環境にある小型の情報機器において、効果的である。
【００５６】
なお、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【００５７】
例えば、上記実施形態では、検索装置１は、ＲＯＭ１５２のような記憶部１１０内に文書データ群３００等を記憶した。しかしこれに限られず、検索装置１は、ハードディスク等の大容量記憶装置やＤＶＤ−ＲＯＭドライブを備え、文書データ群３００等がハードディスクやＤＶＤ−ＲＯＭ等に記憶されるようにしてもよい。あるいは、検索装置１は、ネットワークに接続され、文書データ群３００等がネットワーク上に存在するようにしてもよい。
【００５８】
また、上記実施形態では、検索装置１は、ユーザが検索語を入力する入力部１２０や検索結果を表示する表示部１３０は、制御部１００や記憶部１１０と同一の装置内に存在した。しかしこれに限られず、入力部１２０と表示部１３０は、検索装置１の外部にあってもよい。すなわち、例えば図８に示すように、検索装置１は入力部１２０と表示部１３０を備えず、これらを備える端末装置２とネットワーク１５０を介して接続されるようにし、オンライン型の電子辞書のような情報機器として構成するようにしてもよい。
【００５９】
このとき、検索装置１と端末装置２は、それぞれが備える通信部１４０ａ，１４０ｂにより、ネットワーク１５０を介して互いにデータを通信しあう。すなわち、端末装置２においてユーザが入力部１２０を介して入力した複数の検索語は、検索装置１へと送信され、制御部１００により検索処理が実行される。その後、検索結果としての文書データの情報が、それぞれに設定された出力優先度を対応付けられた上で、再び端末装置２へと送信され、表示部１３０を介して出力優先度の高い順に端末装置２のユーザへと表示される。このような構成をとることで、検索装置１内の文書データ群３００等を一括して管理して複数のユーザに利用できるようになり、またユーザ側の端末装置２は、文書データ群３００等を保持する必要がないため、データサイズを抑えることができるといった利点がある。
【００６０】
また、上記実施形態では、検索装置１として電子辞書のような小型の情報処理装置を想定して説明した。しかしこれに限られず、検索装置１は、ビジネス用・家庭用の一般的なコンピュータ装置や、携帯電話等の他の情報機器であってもよい。また、電子辞書における検索に限られず、種々の電子データを検索するものであってもよい。例えば、一般的なコンピュータ装置において、ハードディスク等の大容量記憶装置やＤＶＤ−ＲＯＭ等に記憶された電子ファイルのうちから、所望の検索文字列を含む電子ファイルを検索するものであってもよい。あるいは、ネットワークと接続され、ネットワーク上に存在するウェブページを検索するものであってもよい。
【００６１】
また、上記実施形態では、文書データ群３００を構成する複数の文書データ３０１は、「見出し語」と「説明文」とから構成された。しかしこれらに限られず、様々な要素から構成されてもよい。例えば、「見出し語」を説明するための図や表を有するものであってもよい。あるいは、辞書における検索以外の一般的な電子ファイル等の検索では、このような「見出し語」と「説明文」といった構成要素に限らず、文書データ３０１は様々な形式で文字列データを有していてもよい。
【００６２】
また、上記実施形態では、文書データ３０１は、１つ以上のセンテンスを含み、跨り判定部１０５が、包含文字列が複数のセンテンスに跨るか否かを判定した。このとき句点やピリオドをセンテンス間の区切りとして説明した。しかしこれに限られず、読点やカンマ、スペースやコロン、セミコロン等をセンテンス間の区切りとしてもよい。すなわち、跨り判定部１０５は、包含文字列がこれら読点やカンマ等に跨るか否かを判定して、跨る場合に、所定のセンテンスペナルティを当該包含文字列のスコア候補に加算してもよい。
【００６３】
また、さらにこのときに、加算されるセンテンスペナルティの値を、区切りの種類ごとに異なる値にしてもよい。すなわち例えば、句点を含む場合に加算されるセンテンスペナルティを、読点を含む場合に加算されるセンテンスペナルティよりも大きな値にしてもよい。このように、加算されるセンテンスペナルティの値を区切りの種類に基づいて調整することで、よりユーザの意図にあった順序で検索結果を出力することにつながる。
【００６４】
また、同様に、重複判定部１０６によって包含文字列内に複数の検索語が重複していると判定された場合に当該包含文字列のスコア候補に加算される重複ペナルティの値も、あらかじめ定められた１つの値に限られない。すなわち例えば、２つの検索語が互いに２文字重複する場合に加算される重複ペナルティを、１文字のみ重複する場合に加算される重複ペナルティよりも大きな値にしてもよい。あるいは、一方の検索語が他方の検索語を完全に包含している場合に加算される重複ペナルティを、互いに一部のみを重複する場合に加算される重複ペナルティよりも大きな値にしてもよい。
【００６５】
具体的な例を挙げて説明すると、ユーザが「ａｂｏｕｔ」と「ｏｕｔ」という２つの検索語を入力した場合、「ａｂｏｕｔ」という文字列を包含する包含文字列であれば、必ず「ｏｕｔ」という文字列も包含することになる。しかし、このような包含文字列は、「ｏｕｔ」という単語を含むものではないため、ユーザの意図するものである可能性は、２つの検索語が互いに一部のみを重複するような場合に比べてもさらに低いと考えられる。そのため、一方が他方を完全に包含するような場合に加算される重複ペナルティの値は、それ以外の場合よりも大きな値にしてもよい。このように、加算される重複ペナルティの値を重複の度合いに基づいて調整することで、よりユーザの意図にあった順序で検索結果を出力することにつながる。
【００６６】
なお、本発明に係る機能を実現するための構成を予め備えた検索装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る検索装置として機能させることもできる。すなわち、上記実施形態で例示した検索装置１による各機能構成を実現させるための検索プログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するＣＰＵ等が実行できるように適用することで、本発明に係る検索装置１として機能させることができる。また、本発明に係る検索方法は、検索装置１を用いて実施できる。
【００６７】
また、このようなプログラムの適用方法は任意であり、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、メモリカードなどのコンピュータ読み取り可能な記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【００６８】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００６９】
（付記１）
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出ステップと、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得ステップと、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定ステップと、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力ステップと、
を備えることを特徴とする検索方法。
【００７０】
（付記２）
前記設定ステップでは、前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする付記１に記載の検索方法。
【００７１】
（付記３）
前記複数の文書データのそれぞれは、１つ以上のセンテンスを含み、
前記取得された文字列が複数のセンテンスに跨っているか否かを判定する跨り判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記複数のセンテンスに跨っていると判定された文字列の文字数に所定の値を加えた文字数と、前記複数のセンテンスに跨っていると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする付記２に記載の検索方法。
【００７２】
（付記４）
前記取得された文字列に包含される複数の検索文字列が同一位置にある文字を共有しているか否かを判定する重複判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定された文字列の文字数に所定の値を加えた文字数と、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする付記２に記載の検索方法。
【００７３】
（付記５）
前記設定ステップでは、前記所定の値を、前記複数の文書データのいずれかに含まれるセンテンスのうち、文字数が最大のセンテンスの文字数以上の値とする、
ことを特徴とする付記３または４に記載の検索方法。
【００７４】
（付記６）
前記出力ステップでは、前記設定された出力優先度が等しい文書データには、当該文書データの先頭文字と当該文書データの出力優先度に設定された文字列との間の文字数に基づく第２の出力優先度をさらに対応付けて、前記抽出された文書データを出力する、
ことを特徴とする付記１から５のいずれか１つに記載の検索方法。
【００７５】
（付記７）
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段と、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段と、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段と、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段と、
を備えることを特徴とする検索装置。
【００７６】
（付記８）
コンピュータを、
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段、
として機能させることを特徴とするコンピュータプログラム。
【符号の説明】
【００７７】
１…検索装置、２…端末装置、１００…制御部、１０１…抽出部、１０２…取得部、１０３…設定部、１０４…出力部、１０５…跨り判定部、１０６…重複判定部、１１０…記憶部、１２０…入力部、１３０…表示部、１４０ａ，１４０ｂ…通信部、１５０…ネットワーク、１５１…ＣＰＵ、１５２…ＲＯＭ、１５３…ＲＡＭ、１５４…キーボード、１５５…モニタ、３００…文書データ群、３０１ａ，３０１ｂ，３０１ｃ…文書データ、７００ａ，７００ｂ，７００ｃ，７００ｄ…包含文字列
【図１】
0005699743.tif 000002
【図２】
0005699743.tif 000003
【図３】
0005699743.tif 000004
【図４】
0005699743.tif 000005
【図５】
0005699743.tif 000006
【図６】
0005699743.tif 000007
【図７】
0005699743.tif 000008
【図８】
0005699743.tif 000009