説明

検索方法、検索装置、ならびに、コンピュータプログラム

【課題】ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムを提供する。
【解決手段】検索装置1において、抽出部101は、複数の文書データ(文書データ群300)のうちから、複数の検索文字列を含む文書データを抽出する。取得部102は、抽出された文書データのそれぞれにおいて、複数の検索文字列を全て包含する文字列を取得する。設定部103は、抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する。出力部104は、設定された出力優先度を対応付けて、抽出された文書データを出力する。跨り判定部105は、取得された文字列が複数のセンテンスに跨っているか否かを判定する。重複判定部106は、取得された文字列に包含される複数の検索文字列が同一位置にある文字を共有しているか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムに関する。
【背景技術】
【0002】
文書の電子化の増大に伴い、これまでに蓄積されてきた大量の文書群から所望の文書を見つけ出す検索技術の重要性が高まっている。電子機器における典型的な検索は、検索対象の文書群のうちから、ユーザから受け付けた検索語を含む文書を見つけ出し、当該見つけ出した文書をユーザへと表示する。
【0003】
このとき、所望の検索語が含まれる文書が多数見つかった場合には、見つかった多数の文書の間で優先順位をつけ、優先順位の高い文書から表示される。この優先順位は、ユーザの目的にあった文書が優先的に表示されるよう、様々な要素を考慮して付けられる。例えば特許文献1には、電子辞書での検索において、ユーザのレベルに応じて表示する文書の優先順位をつけ、ユーザの意図に合った検索結果を取得するための技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−106889号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
所望の検索語を含む文書が複数存在した場合になるべくユーザの意図にあった文書を優先的に提示できるようにするため、より簡便に各文書に優先順位を付ける方法が求められている。とくに、電子辞書のような一般的なコンピュータに比べて小型の電子機器では、処理能力や電池性能といった使用可能な資源が限られているため、なるべく効率的な方法で文書に優先度を付け、ユーザの意図にあった文書を優先的に提示できるようにしたいとの要望が強い。
【0006】
本発明は、以上のような課題を解決するためのものであり、ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明にかかる検索方法は、
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出ステップと、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得ステップと、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定ステップと、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力ステップと、
を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、ユーザの意図にあった検索結果を提示するのに好適な検索方法、検索装置、ならびに、コンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態に係る検索装置の概要構成を示す図である。
【図2】本発明の実施形態に係る検索装置の物理構成を示す図である。
【図3】本発明の実施形態に係る複数の文書データの構成を示す図である。
【図4】本発明の実施形態に係る検索装置の処理の流れを示すフローチャートである。
【図5】本発明の実施形態において、文書データから包含文字列が取得される様子を示す図である。
【図6】本発明の実施形態に係る検索装置において、スコア候補設定処理の流れを示すフローチャートである。
【図7】本発明の実施形態において、包含文字列に設定されるスコア候補の例を示す図である。
【図8】本発明に係る検索装置の構成概要について、別の例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であれば下記の各構成要素を均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。また、以下の説明では、本発明の理解を容易にするため、重要でない公知の技術的事項の説明を適宜省略する。
【0011】
本実施形態では、検索装置が実現される情報処理装置として、電子辞書等の機能を備える小型の情報処理装置を想定して説明する。すなわち、本実施形態に係る検索装置は、電子辞書を構成する複数の文書データのうちから、所望の検索語を含む文書データを検索する装置である。
【0012】
このような検索装置1は、図1に示されるような構成をとり、制御部100と、記憶部110と、入力部120と、表示部130と、を備える。一方、当該検索装置1は、物理的には図2に示されるように構成され、CPU(Central Processing Unit)151と、ROM(Read Only Memory)152と、RAM(Random Access Memory)153と、キーボード154と、モニタ155と、を備える。以下、図1および図2を参照して、検索装置1の構成要素の説明をする。
【0013】
制御部100は、検索装置1全体の動作を制御し、各構成要素と接続され、制御信号やデータをやりとりする。すなわち、制御部100は、記憶部110、入力部120、表示部130と接続され、これら各部の機能を活用しながら、検索処理を実行する。
【0014】
ここで制御部100は、抽出部101と、取得部102と、設定部103と、出力部104と、跨り判定部105と、重複判定部106と、を備える。これらの各部は、詳細には後述するように、記憶部110に記憶されている複数の文書データ(文書データ群300)のうちから所望の検索語を含む文書データを特定し、所定の順序で並べ替えて出力する処理を実行する。
【0015】
このような制御部100(抽出部101、取得部102、設定部103、出力部104、跨り判定部105、重複判定部106)は、例えばCPU151によって構成される。ここでCPU151は、命令やデータを転送するための伝送経路であるシステムバスにより各構成要素と相互に接続され、ROM152に記録されている検索装置1全体の動作制御に必要なコンピュータプログラムや各種データに従って動作する。そしてCPU151は、ROM152から読み出したコンピュータプログラムやデータ、その他処理の進行に必要なデータを、RAM153に一時的に記憶しながら、各種動作を制御する。このようにCPU151がROM152やRAM153と協働することで、制御部100は、検索装置1全体の動作を制御する。
【0016】
記憶部110は、例えば検索装置1内に備えられたROM152のような読出し専用の記憶媒体によって構成され、制御部100が検索処理に必要な各種データを記憶する。具体的にここでは、検索対象とされる複数の文書データ(文書データ群300)があらかじめ記憶される。
【0017】
ここで、記憶部110にあらかじめ記憶される文書データ群300は、図3に示されるように構成される。すなわち文書データ群300は、個々の文書データ301a〜301c等から構成され、さらに文書データ301a〜301c等はそれぞれ、「見出し語」と「説明文」とから構成される。すなわち、文書データ301a〜301c等は、辞書を構成する構成単位であり、「見出し語」とは、当該辞書の見出しとなる1つの語句であり、1つの文書データ301に対して1つの見出し語が対応付けられる。そして、「見出し語」には当該見出し語を説明する「説明文」が対応付けられ、これらを合わせて1つの文書データ301を構成する。さらに、このような文書データ301が「見出し語」の数だけ存在し、全体で文書データ群300を構成する。
【0018】
図1および図2に戻って、入力部120は、例えばキーボード154のような入力装置によって構成され、ユーザからの入力を受け付ける。具体的にここでは、ユーザからの検索語を受け付ける。受け付けられた検索語は、制御部100の抽出部101へと供給され、当該検索語を含む文書データ301を抽出する処理に用いられる。
【0019】
表示部130は、例えばモニタ155のような表示装置によって構成され、制御部100が処理を行った結果をユーザへ表示する。具体的にここでは、ユーザが入力した検索語を含む文書データ301を、後述する所定の出力優先度の順でモニタ155に出力することで、当該ユーザへと表示する。これにより、ユーザは、自身が入力した検索語を含む文書データ301を出力結果として取得し、種々に利用することができるようになる。
【0020】
なお、入力部120と表示部130は、タッチパネル等のような入力装置と表示装置が組み合わされた装置によって構成されてもよい。この場合には、タッチパネルに内蔵されたタッチセンサ等からなる位置入力装置が入力部120を、液晶ディスプレイ等からなる表示装置が表示部130を、それぞれ構成する。
【0021】
以上のように構成される検索装置1は、制御部100の制御のもと、検索処理を行う。具体的には、図4のフローチャートに示される手順で処理を実行する。
【0022】
本処理は、ユーザから入力された検索語を、検索装置1の入力部120が受け付けることを契機として、開始される。すなわち、キーボード154を用いて、ユーザが所望の検索語を入力し、検索する旨を指示することで、本処理が開始する。
【0023】
ここで検索装置1は、一般的な情報機器において実現されている検索と同様に、ユーザからの1つ以上の検索語を受け付けることができ、複数の検索語を受け付けた場合には、それらの論理積や論理和等の各種演算処理を施したものについての検索を行うことができるものである。このうち本実施形態では、複数の検索語の論理積に対する検索処理において特徴を発揮するものであるため、以下では、ユーザから複数の検索語が受け付けられ、それらの論理積をとった検索処理が行われることを想定して説明する。
【0024】
ユーザから複数の検索語が受け付けられ処理が開始されると、まず抽出部101が、複数の文書データ301a〜301c等(文書データ群300)のうちから、複数の検索語を全て含む文書データ301を抽出する(ステップS401)。例えば、ユーザが「雨」「結果」「いた」という3語の検索語を入力したとすると、抽出部101は文書データ群300内に含まれる文字列の検索を行い、当該「雨」「結果」「いた」という3語の検索語の文字列(検索文字列)をすべて含む文書データ301を抽出する。
【0025】
このとき行われる検索は、いわゆる全文検索であり、各文書データ301内の見出し語および説明文の文字列に対して行われる。すなわち、文書データ301内の見出し語か説明文かのいずれかに入力された検索語が含まれていれば、当該文書データ301が抽出される。
【0026】
また、このとき行われる検索の詳細な方法は、公知の検索技術のいずれに基づくものであってもよい。すなわち、抽出部101は、例えば複数の文書データ301a〜301c等を順次走査して検索文字列を探し出す逐次型の検索(grep型の検索)を行ってもよいし、あるいは検索処理の高速化のためあらかじめ索引ファイルを用意しておく索引型(インデックス型)の検索を行ってもよい。また、索引型の検索の場合は、例えばいわゆる形態素解析の手法によって索引ファイルが生成されるものであってもよいし、いわゆるNグラムの手法(N文字インデックス法)によって索引ファイルが生成されるものであってもよい。
【0027】
このようにして複数の検索語が含まれる文書データ301の抽出が終了すると、次に取得部102が、抽出された文書データ301内で、複数の検索語全てを包含する文字列を取得する(ステップS402)。すなわち、文書データ301内の見出し語と説明文とを構成する文字列のうち、入力された複数の検索語を包含する文字列(以下、「包含文字列」という)を取得する。
【0028】
例えば、上記の例のように「雨」「結果」「いた」という3語の検索語が入力され、当該「雨」「結果」「いた」という3個の検索文字列を含む文書データ301として、図5のように文書データ301bが抽出された場合を例にとって説明する。本図では、文書データ301b内の説明文に「昨日もしも雨が降っていたら結果は雨によって変わっていたと思いますか」という文字列があり、当該文字列中には3個の検索語のうち「雨」が2個、「結果」が1個、「いた」が2個、それぞれ含まれている。そのため、当該文字列からは、これら3語の検索語を包含する包含文字列として、「『雨』が降って『いた』ら『結果』」という包含文字列を取得することができるし、さらに当該1個だけでなく、「『いた』ら『結果』は『雨』」、「『結果』は『雨』によって変わって『いた』」という包含文字列も取得することができ、合計で3個の包含文字列を取得することができる。文書データ301b中に他の文中にも検索語が含まれていた場合には、当該3語を含む包含文字列をさらに取得することができる。
【0029】
図4のフローチャートに戻って、ステップS402では、取得部102がこれら取得可能な包含文字列のうちから1つを取得して、RAM153に一時的に保持する。
【0030】
包含文字列を取得すると、次に設定部103が、取得された包含文字列に、スコア候補を設定する(ステップS403)。ここでスコア候補とは、後述する文書データを出力する処理において、出力する順序の優先度の指標(スコア)を定めるためのものであり、1つの包含文字列に対して1つの値が設定される。具体的なスコア候補の設定処理について、以下、図6のフローチャートを参照して説明する。
【0031】
スコア候補の設定処理が開始されると、まず設定部103が、包含文字列の文字数をスコア候補として設定する(ステップS601)。すなわち、設定部103は、まず取得された包含文字列の文字数を数え、これをスコア候補とする。
【0032】
具体的に説明すると、図7のように検索語が「電話」と「帯電」という2語であって、文書データ301内から当該2語を含む「帯電と電話」という包含文字列700aが取得された場合の例では、当該包含文字列700aの文字数は5文字であるため、この「5」という値が当該包含文字列700aのスコア候補として設定される。一方、文書データ301内から「電話していると帯電」という包含文字列700bが取得された場合の例では、当該包含文字列700bの文字数は9文字であるため、この「9」という値が当該包含文字列700bのスコア候補として設定される。
【0033】
このように、包含文字列の文字数は、それが包含する複数の検索語が互いに近い位置にあるときは小さくなり、逆に包含する複数の検索語が互いに離れた位置にあるときは大きくなる。そして、複数の検索語が互いに近い位置にある文書データ301の方が、ユーザの検索意図にあった文書データ301であることが多いと考えられる。そのため、包含文字列の文字数をスコア候補とし、後述する文書データ301の並べ替え順序の指標とすることで、ユーザの検索意図にあった文書データ301を優先的に出力することができるようになる。
【0034】
この後、図6のフローチャートに戻って、スコア候補設定処理ではさらに、跨り判定部105が、包含文字列が複数のセンテンスに跨っているか否かを判定する(ステップS602)。ここでセンテンスとは、いわゆる文であり、通常句点やピリオド等で分割されるひと続きの言葉を意味する。文書データ301内の説明文は、通常1つ以上のセンテンスによって構成される。ここでは跨り判定部105が、取得された包含文字列が複数のセンテンスに跨っているか否か、すなわち包含文字列がその間に句点やピリオドを含むか否かを判定する。
【0035】
具体的に図7の例を用いて説明すると、取得された包含文字列が「帯電と電話」という包含文字列700aであった場合や、「電話していると帯電」という包含文字列700bであった場合は、複数のセンテンスに跨っていないと判定されるが、一方で取得された包含文字列が「帯電した。なお電話」という包含文字列700cであった場合は、句点「。」を含むため、複数のセンテンスに跨っていると判定される。
【0036】
複数のセンテンスに跨っていると判定された場合(ステップS602;YES)、設定部103が、スコア候補に所定のペナルティを加算する(ステップS603)。すなわち、上記ステップS601にて包含文字列の文字数に設定されていたスコア候補に、所定のペナルティを加算して、スコア候補の値を増大させる。具体的に図7の例では、複数のセンテンスに跨っている「帯電した。なお電話」という包含文字列700cのスコア候補は、その文字数である8文字(句点は文字数に含まず。)に、センテンスペナルティとして「20」の値が加算され、「28」という値が設定される。
【0037】
このようにスコア候補の値が増大されることで、後述する文書データ301の出力優先度の指標(スコア)が下がることにつながり、ユーザへ出力される順序が後になることにつながる。すなわち、ユーザが入力した複数の検索語が異なるセンテンス内に分散して存在している文書データ301は、1つのセンテンス内に集中して存在している文書データ301に比べて、ユーザが見つけ出したい文書データ301でない可能性が高いと考えられるため、ユーザへ出力される優先度が下げられる。
【0038】
ここで加算されるセンテンスペナルティの値を、文書データ群300(複数の文書データ301a〜301c等)中のセンテンスのうち、最も長いセンテンスの文字数以上の値とする。そのために、検索装置1の記憶部110には、文書データ群300のうち最も長いセンテンスの文字数があらかじめ保持され、検索が行われるたびにセンテンスペナルティとして用いられる。このようにすることで、複数の検索語が複数のセンテンスに分散して存在している文書データ301のスコアは、1つのセンテンス内に集中して存在しているいずれの文書データ301のスコア以上のものとなり、よりユーザの意図にあった検索結果が出力されやすくなる。
【0039】
図6のフローチャートに戻って、その後処理はステップS604へと移行する。一方、ステップS602にて複数のセンテンスに跨っていると判定されなかった場合には(ステップS602;NO)、上記のようなスコア候補にセンテンスペナルティが加算される処理を通らずに、ステップS604へと移行する。
【0040】
そして、当該ステップS604では、重複判定部106が、包含文字列内で検索語が互いに重複しているか否かを判定する(ステップS604)。すなわち、ユーザから入力された複数の検索語が、包含文字列内で同一位置にある文字を共有するものであるか否かを判定する。ユーザが3つ以上の検索語を入力した場合には、そのうちいずれか2つの検索語が互いに重複しているか否かが判定される。
【0041】
具体的に図7の例を用いて説明すると、包含文字列内で検索語が互いに重複している場合とは、「電話」と「帯電」という2語の検索語が入力された場合において、「帯電話」という包含文字列700dが取得された場合が相当する。包含文字列700d中の「電」という同一文字を、当該2語の検索語が共有しているからである。
【0042】
このように、重複していると判定された場合(ステップS604;YES)、設定部103が、スコア候補に所定のペナルティを加算する(ステップS605)。すなわち、上記ステップS601にて包含文字列の文字数に設定され、所定の場合には上記ステップS603においてセンテンスペナルティが加算されたスコア候補に、さらに所定の第2のペナルティを加算して、スコア候補の値を増大させる。具体的に図7の例では、複数のセンテンスに跨っている「帯電話」という包含文字列700dのスコア候補は、その文字数である3文字に、重複ペナルティとして「30」の値が加算され、「33」という値が設定される。
【0043】
このようにスコア候補の値を増やすのは、ユーザが入力した複数の検索語を重複して有する文字列は、ユーザの意図したような使用のされ方をしているものでない可能性が高いからである。例えば上記の例での「帯電話」包含文字列700dは、「携帯電話」という文字列の一部であって、偶然「帯電」という文字列を含んでいるが、「帯電」という独立した単語を含むものではない。そのため、ここでは設定部103が、スコア候補の値を増大させて、ユーザへ出力される優先度を下げる。
【0044】
ここで加算される重複ペナルティの値は、上記センテンスペナルティよりも大きな値とされる。具体的に図7の例のように、センテンスペナルティの値が「20」に対し、重複ペナルティの値は「30」と大きな値とされる。この理由は、ユーザが入力した複数の検索語が重複している文書データ301は、複数のセンテンスに跨っている文書データ301に比べて、ユーザの意図にあったものである可能性が典型的には低いと考えられるからである。
【0045】
図6のフローチャートに戻って、その後処理は本図のスコア候補設定処理を終了する。一方、ステップS604にて包含文字列内で検索語が互いに重複していると判定されなかった場合には(ステップS604;NO)、上記のようなスコア候補に重複ペナルティが加算される処理を通らずに、本図の処理を終了する。
【0046】
図6のスコア候補設定処理を終了すると、検索装置1の処理は、図4のフローチャートに戻り、ステップS404へと移行する。そして、設定部103が、設定されたスコア候補が既に設定されたスコアよりも小さければ、当該スコア候補を文書データ301のスコアに設定する(ステップS404)。すなわちここでは、文書データ301に、後述する文書データ301の出力順序の優先度の指標となる「スコア」を設定する。その際、1つの文書データ301内からは通常複数の包含文字列が取得されるため、そのうち最小のスコア候補を当該文書データ301のスコアとして設定するよう、取得された包含文字列に設定されたスコア候補の値と、文書データ301に既に設定されているスコアの値とを比較して、当該スコア候補の値が当該スコアの値より小さい場合に、当該スコア候補の値を当該文書データ301のスコアとして設定する。
【0047】
なお、文書データ301から最初の包含文字列が取得され、当該文書データ301のスコアが未設定な状態にある場合には、値を比較するまでもなく、当該最初の包含文字列のスコア候補がそのまま当該文書データ301のスコアとして設定される。
【0048】
その後、検索装置1の制御部100が、文書データ301内で未処理の包含文字列があるか否かを判定する(ステップS405)。未処理の包含文字列があれば(ステップS405;YES)、処理はステップS402へと戻る。すなわち、文書データ301内の未処理の包含文字列を取得して、当該包含文字列にスコア候補を設定し、設定されたスコア候補が、当該文書データ301に既に設定されているスコアよりも小さければ、当該スコア候補を文書データ301のスコアとして、設定し直す。このような処理が、抽出された文書データ301内のすべての包含文字列に対して繰り返されることで、当該文書データ301のスコアとして、当該文書データ301から取得されうる包含文字列のスコア候補のうち、最小のものが設定される。
【0049】
そして、未処理の包含文字列がなくなると(ステップS405;NO)、次に検索装置1の制御部100は、複数の文書データ301a〜301c等のうち未処理の文書データ301があるか否かを判定する(ステップS406)。未処理の文書データ301があれば(ステップS406;YES)、処理はステップS401へと戻る。すなわち、複数の文書データ301a〜301c等のうちから抽出された複数の検索語を含む文書データ301のうち、未処理の文書データ301に着目して、当該着目された文書データ301にスコアを設定する処理を行う。このような処理が、複数の検索語を含む文書データ301のすべてに対して繰り返されることで、それぞれにスコアが設定される。
【0050】
そして、未処理の文書データ301がなくなると(ステップS406;NO)、次に、出力部104が、抽出された文書データ301をスコアが小さい順に並べ替える(ステップS407)。すなわち、各文書データ301に設定されたスコアの値を比較して、昇順にソートする。ここで、各文書データ301のスコアは、ユーザから入力された複数の検索語についての包含文字列の文字数等に基づいて、ユーザの検索意図に沿うと想定される優先度が設定されているため、文書データ301は、ユーザの検索意図に沿うような順序で並べられることになる。
【0051】
この後、出力部104は、スコアが同じ文書データ301を、包含文字列が先頭から近い順に、さらに並べ替える(ステップS408)。すなわち、スコア順に並べ替えられた文書データ301に対して、さらに等しいスコアを有する文書データ301の間でも並べ替えを行う。このときの並べ替えの基準として、出力部104は、スコアとして設定された(スコア候補が最も小さい)包含文字列の文書データ301内の位置に着目し、文書データ301の先頭により近いものを優先して、並べ替える。
【0052】
ここで、ユーザから入力された複数の検索語の位置が、文書データ301内で先頭に近い位置にある文書データ301は、先頭から遠い位置にある文書データ301に比べて、ユーザの意図した文書データ301である可能性が高いと考えられる。そのため、出力部104は、スコアの順に文書データ301を並べ替えた上で、さらにスコアが等しい文書データ301同士では、包含文字列が文書データ301の先頭文字から近いものを優先して、さらに並べ替える。
【0053】
そして、出力部104は、このように並べ替えられた文書データ301を、順に出力し(ステップS409)、処理を終了する。すなわち、出力部104は、並べ替えられた文書データ301を表示部130へと送り、検索装置1のモニタ155に表示することで、並べ替えられた順序でユーザへと出力する。その結果、ユーザは、検索結果を、自身の検索意図に沿った文書データ301から順に確認し、利用することができるようになる。
【0054】
以上のような構成により、本実施形態の検索装置1は、複数の文書データ301a〜301c等のうち、複数の検索語を含む文書データ301をユーザへ出力する際、当該複数の検索語を包含する文字列の文字数等に基づいて順序を設定し、当該設定された順序で複数の検索語を含む文書データ301を出力する。
【0055】
これにより、本実施形態の検索装置1は、簡便な方法で優先度を設定することでユーザの意図にあった検索結果を提示することができる。特に、比較的短い文書データの集合体であり、互いの文書データ間で含まれる検索語の数や信頼性に差がつきにくい電子辞書のような情報機器において、また使用可能なCPU性能や電池性能等が限られた環境にある小型の情報機器において、効果的である。
【0056】
なお、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0057】
例えば、上記実施形態では、検索装置1は、ROM152のような記憶部110内に文書データ群300等を記憶した。しかしこれに限られず、検索装置1は、ハードディスク等の大容量記憶装置やDVD−ROMドライブを備え、文書データ群300等がハードディスクやDVD−ROM等に記憶されるようにしてもよい。あるいは、検索装置1は、ネットワークに接続され、文書データ群300等がネットワーク上に存在するようにしてもよい。
【0058】
また、上記実施形態では、検索装置1は、ユーザが検索語を入力する入力部120や検索結果を表示する表示部130は、制御部100や記憶部110と同一の装置内に存在した。しかしこれに限られず、入力部120と表示部130は、検索装置1の外部にあってもよい。すなわち、例えば図8に示すように、検索装置1は入力部120と表示部130を備えず、これらを備える端末装置2とネットワーク150を介して接続されるようにし、オンライン型の電子辞書のような情報機器として構成するようにしてもよい。
【0059】
このとき、検索装置1と端末装置2は、それぞれが備える通信部140a,140bにより、ネットワーク150を介して互いにデータを通信しあう。すなわち、端末装置2においてユーザが入力部120を介して入力した複数の検索語は、検索装置1へと送信され、制御部100により検索処理が実行される。その後、検索結果としての文書データの情報が、それぞれに設定された出力優先度を対応付けられた上で、再び端末装置2へと送信され、表示部130を介して出力優先度の高い順に端末装置2のユーザへと表示される。このような構成をとることで、検索装置1内の文書データ群300等を一括して管理して複数のユーザに利用できるようになり、またユーザ側の端末装置2は、文書データ群300等を保持する必要がないため、データサイズを抑えることができるといった利点がある。
【0060】
また、上記実施形態では、検索装置1として電子辞書のような小型の情報処理装置を想定して説明した。しかしこれに限られず、検索装置1は、ビジネス用・家庭用の一般的なコンピュータ装置や、携帯電話等の他の情報機器であってもよい。また、電子辞書における検索に限られず、種々の電子データを検索するものであってもよい。例えば、一般的なコンピュータ装置において、ハードディスク等の大容量記憶装置やDVD−ROM等に記憶された電子ファイルのうちから、所望の検索文字列を含む電子ファイルを検索するものであってもよい。あるいは、ネットワークと接続され、ネットワーク上に存在するウェブページを検索するものであってもよい。
【0061】
また、上記実施形態では、文書データ群300を構成する複数の文書データ301は、「見出し語」と「説明文」とから構成された。しかしこれらに限られず、様々な要素から構成されてもよい。例えば、「見出し語」を説明するための図や表を有するものであってもよい。あるいは、辞書における検索以外の一般的な電子ファイル等の検索では、このような「見出し語」と「説明文」といった構成要素に限らず、文書データ301は様々な形式で文字列データを有していてもよい。
【0062】
また、上記実施形態では、文書データ301は、1つ以上のセンテンスを含み、跨り判定部105が、包含文字列が複数のセンテンスに跨るか否かを判定した。このとき句点やピリオドをセンテンス間の区切りとして説明した。しかしこれに限られず、読点やカンマ、スペースやコロン、セミコロン等をセンテンス間の区切りとしてもよい。すなわち、跨り判定部105は、包含文字列がこれら読点やカンマ等に跨るか否かを判定して、跨る場合に、所定のセンテンスペナルティを当該包含文字列のスコア候補に加算してもよい。
【0063】
また、さらにこのときに、加算されるセンテンスペナルティの値を、区切りの種類ごとに異なる値にしてもよい。すなわち例えば、句点を含む場合に加算されるセンテンスペナルティを、読点を含む場合に加算されるセンテンスペナルティよりも大きな値にしてもよい。このように、加算されるセンテンスペナルティの値を区切りの種類に基づいて調整することで、よりユーザの意図にあった順序で検索結果を出力することにつながる。
【0064】
また、同様に、重複判定部106によって包含文字列内に複数の検索語が重複していると判定された場合に当該包含文字列のスコア候補に加算される重複ペナルティの値も、あらかじめ定められた1つの値に限られない。すなわち例えば、2つの検索語が互いに2文字重複する場合に加算される重複ペナルティを、1文字のみ重複する場合に加算される重複ペナルティよりも大きな値にしてもよい。あるいは、一方の検索語が他方の検索語を完全に包含している場合に加算される重複ペナルティを、互いに一部のみを重複する場合に加算される重複ペナルティよりも大きな値にしてもよい。
【0065】
具体的な例を挙げて説明すると、ユーザが「about」と「out」という2つの検索語を入力した場合、「about」という文字列を包含する包含文字列であれば、必ず「out」という文字列も包含することになる。しかし、このような包含文字列は、「out」という単語を含むものではないため、ユーザの意図するものである可能性は、2つの検索語が互いに一部のみを重複するような場合に比べてもさらに低いと考えられる。そのため、一方が他方を完全に包含するような場合に加算される重複ペナルティの値は、それ以外の場合よりも大きな値にしてもよい。このように、加算される重複ペナルティの値を重複の度合いに基づいて調整することで、よりユーザの意図にあった順序で検索結果を出力することにつながる。
【0066】
なお、本発明に係る機能を実現するための構成を予め備えた検索装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る検索装置として機能させることもできる。すなわち、上記実施形態で例示した検索装置1による各機能構成を実現させるための検索プログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するCPU等が実行できるように適用することで、本発明に係る検索装置1として機能させることができる。また、本発明に係る検索方法は、検索装置1を用いて実施できる。
【0067】
また、このようなプログラムの適用方法は任意であり、例えば、CD−ROMやDVD−ROM、メモリカードなどのコンピュータ読み取り可能な記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【0068】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0069】
(付記1)
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出ステップと、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得ステップと、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定ステップと、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力ステップと、
を備えることを特徴とする検索方法。
【0070】
(付記2)
前記設定ステップでは、前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする付記1に記載の検索方法。
【0071】
(付記3)
前記複数の文書データのそれぞれは、1つ以上のセンテンスを含み、
前記取得された文字列が複数のセンテンスに跨っているか否かを判定する跨り判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記複数のセンテンスに跨っていると判定された文字列の文字数に所定の値を加えた文字数と、前記複数のセンテンスに跨っていると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする付記2に記載の検索方法。
【0072】
(付記4)
前記取得された文字列に包含される複数の検索文字列が同一位置にある文字を共有しているか否かを判定する重複判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定された文字列の文字数に所定の値を加えた文字数と、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする付記2に記載の検索方法。
【0073】
(付記5)
前記設定ステップでは、前記所定の値を、前記複数の文書データのいずれかに含まれるセンテンスのうち、文字数が最大のセンテンスの文字数以上の値とする、
ことを特徴とする付記3または4に記載の検索方法。
【0074】
(付記6)
前記出力ステップでは、前記設定された出力優先度が等しい文書データには、当該文書データの先頭文字と当該文書データの出力優先度に設定された文字列との間の文字数に基づく第2の出力優先度をさらに対応付けて、前記抽出された文書データを出力する、
ことを特徴とする付記1から5のいずれか1つに記載の検索方法。
【0075】
(付記7)
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段と、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段と、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段と、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段と、
を備えることを特徴とする検索装置。
【0076】
(付記8)
コンピュータを、
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段、
として機能させることを特徴とするコンピュータプログラム。
【符号の説明】
【0077】
1…検索装置、2…端末装置、100…制御部、101…抽出部、102…取得部、103…設定部、104…出力部、105…跨り判定部、106…重複判定部、110…記憶部、120…入力部、130…表示部、140a,140b…通信部、150…ネットワーク、151…CPU、152…ROM、153…RAM、154…キーボード、155…モニタ、300…文書データ群、301a,301b,301c…文書データ、700a,700b,700c,700d…包含文字列

【特許請求の範囲】
【請求項1】
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出ステップと、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得ステップと、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定ステップと、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力ステップと、
を備えることを特徴とする検索方法。
【請求項2】
前記設定ステップでは、前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする請求項1に記載の検索方法。
【請求項3】
前記複数の文書データのそれぞれは、1つ以上のセンテンスを含み、
前記取得された文字列が複数のセンテンスに跨っているか否かを判定する跨り判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記複数のセンテンスに跨っていると判定された文字列の文字数に所定の値を加えた文字数と、前記複数のセンテンスに跨っていると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする請求項2に記載の検索方法。
【請求項4】
前記取得された文字列に包含される複数の検索文字列が同一位置にある文字を共有しているか否かを判定する重複判定ステップ、
をさらに備え、
前記設定ステップでは、前記抽出された文書データのそれぞれに、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定された文字列の文字数に所定の値を加えた文字数と、前記包含される複数の検索文字列が同一位置にある文字を共有していると判定されなかった文字列の文字数と、のうち最小の文字数に基づいて、出力優先度を設定する、
ことを特徴とする請求項2に記載の検索方法。
【請求項5】
前記設定ステップでは、前記所定の値を、前記複数の文書データのいずれかに含まれるセンテンスのうち、文字数が最大のセンテンスの文字数以上の値とする、
ことを特徴とする請求項3または4に記載の検索方法。
【請求項6】
前記出力ステップでは、前記設定された出力優先度が等しい文書データには、当該文書データの先頭文字と当該文書データの出力優先度に設定された文字列との間の文字数に基づく第2の出力優先度をさらに対応付けて、前記抽出された文書データを出力する、
ことを特徴とする請求項1から5のいずれか1項に記載の検索方法。
【請求項7】
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段と、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段と、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段と、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段と、
を備えることを特徴とする検索装置。
【請求項8】
コンピュータを、
複数の文書データのうちから、複数の検索文字列を含む文書データを抽出する抽出手段、
前記抽出された文書データのそれぞれにおいて、前記複数の検索文字列を全て包含する文字列を取得する取得手段、
前記抽出された文書データのそれぞれに、当該文書データにおいて取得された文字列の文字数に基づいて、出力優先度を設定する設定手段、
前記設定された出力優先度を対応付けて、前記抽出された文書データを出力する出力手段、
として機能させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate