(57)【要約】【課題】  検索結果の適合率を大幅に高めることができる検索システムおよび検索方法等を提供する。【解決手段】  文書の集合体を１または２以上の検索語を用いて検索する検索システムであって、文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、形態素の順序情報を保持したまま集合体が形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列と、形態素ＩＤ配列を検索する検索部とを備え、検索部は、検索語と共起する形態素のいずれかが属するカテゴリー情報が、検索カテゴリー情報に該当するものを検索する。【選択図】  図１
2005251115.tif 000002
【特許請求の範囲】
【請求項１】
文書の集合体を１または２以上の検索語を用いて検索する検索システムであって、前記文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、前記形態素の順序情報を保持したまま前記集合体が前記形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列と、前記形態素ＩＤ配列を検索する検索部とを備え、前記検索部は、前記検索語と共起する形態素のいずれかが属する前記カテゴリー情報が、検索カテゴリー情報に該当するものを出力することを特徴とする検索システム。
【請求項２】
前記検索カテゴリー情報が、前記階層構造から選択されたものであることを特徴とする請求項１に記載の検索システム。
【請求項３】
さらに、前記形態素が属するカテゴリー情報を格納した既知形態素辞書を備えたことを特徴とする請求項１に記載の検索システム。
【請求項４】
前記検索カテゴリー情報が具体例により指定された場合に、前記既知形態素辞書を参照して前記検索カテゴリーが特定されることを特徴とする請求項３に記載の検索システム。
【請求項５】
さらに、前記既知形態素辞書に格納されていない形態素を格納する未知形態素辞書を備えることを特徴とする請求項３に記載の検索システム。
【請求項６】
前記未知形態素辞書が、前記カテゴリー辞書の前記カテゴリー情報の一つとして取り扱われることを特徴とする請求項５に記載の検索システム。
【請求項７】
前記共起する形態素が、前記検索語の前後であらかじめ定めた文法単位数の範囲内の形態素であることを特徴とする請求項１に記載の検索システム。
【請求項８】
前記共起する形態素として、前記文書中に隣接して出現する自立型形態素を連結して取り扱うことを特徴とする請求項１に記載の検索システム。
【請求項９】
さらに前記共起する形態素ごとの共起度を演算する方式が選択可能であることを特徴とする請求項１に記載の検索システム。
【請求項１０】
前記検索部が、前記共起する形態素ごとの共起度をあらかじめ選択された方式で演算し、前記演算された共起度に従った順番で検索結果を出力することを特徴とする請求項１に記載の検索システム。
【請求項１１】
検索処理時に、前記辞書類および前記配列類と前記検索部の全部が、メモリ上にロードされて動作することを特徴とする請求項１に記載の検索システム。
【請求項１２】
前記形態素の活用形情報が、前記固定長ＩＤに含まれていることを特徴とする請求項１１に記載の検索システム。
【請求項１３】
前記検索語の入力窓と、前記検索カテゴリー情報の入力窓とを備えることを特徴とする請求項１に記載の検索システムの入力画面。
【請求項１４】
前記検索語と、前記検索カテゴリー情報と、前記共起する形態素とが表示されることを特徴とする請求項１に記載の検索システムの出力画面。
【請求項１５】
前記検索語と、前記検索カテゴリー情報と、前記共起する形態素とが表示され、前記共起する形態素が、前記演算された共起度に従って表示されることを特徴とする請求項１０に記載の検索システムの出力画面。
【請求項１６】
さらに、前記共起する形態素が含まれる前記文書の一部が表示されることを特徴とする請求項１４または１５に記載の出力画面。
【請求項１７】
前記検索語と、前記共起する形態素が属するカテゴリー情報とが表示されることを特徴とする請求項１に記載の検索システムの出力画面。
【請求項１８】
前記検索語が表示され、かつ前記共起する形態素が属するカテゴリー情報が、前記共起度に従って表示されることを特徴とする請求項１０に記載の検索システムの出力画面。
【請求項１９】
文書の集合体を１または２以上の検索語を用いて検索する検索方法であって、前記文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、前記形態素の順序情報を保持したまま前記集合体が前記形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列とを用い、前記形態素ＩＤ配列に対して検索を行い、前記検索語と共起する形態素のいずれかが属する前記カテゴリー情報が、検索カテゴリー情報に該当するものを検索結果とすることを特徴とする検索方法。
【請求項２０】
文書の集合体を１または２以上の検索語を用いてコンピュータに検索させるための検索プログラムであって、前記文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、前記形態素の順序情報を保持したまま前記集合体が前記形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列と、前記形態素ＩＤ配列を検索する検索部とを備え、前記検索部は、前記検索語と共起する形態素のいずれかが属する前記カテゴリー情報が、検索カテゴリー情報に該当するものを検索することを特徴とする検索プログラム。
【請求項２１】
請求項２０に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷＥＢページの集合体としてのインターネットやコーパスのようなテキスト文の集合体に対して、検索目的に合致する文書を発見しやすい高い検索精度の検索システムおよび検索方法に関する。
【背景技術】
【０００２】
一般のインターネット検索では、各種のキーワードと当該キーワードを含むＷＥＢページのＵＲＬとを関係づけるデータベースがあらかじめ構築され、検索キーワードを用いてこのデータベースが検索されて、検索結果のＵＲＬがクライアントの画面上に表示される。しかし、単純にキーワード検索すると検索ヒット数が多すぎる結果となる。また、連想検索やあいまい検索の手法を用いても、検索の漏れをなくすこと、すなわち検索されるべき適合文書のうち実際に検索された適合文書の割合である、いわゆる再現率を高めることに重点が置かれがちであり、むしろ検索ヒット数が多くなる傾向にあった。
【０００３】
しかし、これでは、検索された文書のうち検索目的に適合した文書の割合を示す、いわゆる適合率は低くなってしまう。そのため、検索結果の数は多いものの、検索目的に合致する文書にはなかなかたどりつけない事態が生じる。そこで、被リンク数の多いＷＥＢページから先に表示するなどの各種の工夫が行われているものの、検索精度そのものが改善されたわけではなく、検索結果には依然として多くのノイズが混ざったままの状態にある。
【０００４】
ノイズが発生する理由の一つとしては、検索において語順や他の語との関係等を考慮していないことがあげられる。このために、たとえ文書中に検索キーワードを含んでいても、全く検索目的と異なる分野の文書まで検索されてしまうことになる。さらに、一つの語は通常複数の意味内容を持つため、形式的には同じ表記の語であっても、検索目的とは異なる意味内容で用いられている場合も検索されてしまうことなどがあげられる。例えば、「大根」なる語は、「野菜」の種類の意味と、演技の「巧拙」に関する意味を併せ持つ。
【０００５】
従来、検索精度を高める工夫としては、入力検索文と、文書データベースのクラスタに含まれる文書との類似度を、それらに含まれる自立語の類似概念の木構造に従って演算して、入力検索文と類似度の高い文書を表示する類似文書検索システムが開示されている（例えば、特許文献１参照）。しかし、これでは、検索文とほぼ同じ内容の文書が再度検索されるだけにすぎず、逆に漏れが大きくなりすぎる。また、検索文は自然言語文が可能で、平常文以外にも自由な質問形式を許すものの、なぜ？、なにが？、どこで？、いつ？などといった疑問詞で始まる質問に答えることはできない。したがって、発見型の情報検索や、連想に基づく検索には、このような類似度計算による検索手法は不適切である。
【０００６】
また、入力されたキーワードを用いて検索対象文書を全文検索し、その検索結果から、当該キーワードを含んで当該キーワードより長さが長い文字列を生成してユーザに提示し、ユーザが選択した文字列を用いて、再度絞り込み検索を行う検索方法が開示されている（例えば、特許文献２参照）。しかし、これでは、ユーザに文字列選択の基準が示されないうえ、その選択に結果が依存してしまうことになる。また、検索速度も満足できるものではない。さらに、より長い検索文字列を生成することで絞り込みの条件が増えるものの、選択候補の数も急激に増える。そのため、適切な候補を見落としたり、複数選択の必要が出たりして、非常に煩わしい操作となる。
【０００７】
ところで、言語研究の分野では、限定された範囲に対してではあるが、語と語の共起を文献の集合体全体について調べる手法が研究され、使用されてきた。なお、共起とは、連語等のように、一つの文中または文書中に、複数の語が比較的近接して同時に出現することをいう。言語研究の分野では、語と語の文法的な関係、すなわち用法が調査対象となり、各種の用法が文書中に出現する頻度等を調べるために使用されてきた。
【０００８】
しかし、インターネット上のＷＥＢページのような大量の文書に対して、キーワードとその周辺語との共起度を求めるには膨大な演算が必要となり、言語研究等で用いられていたgrep等の手法をそのまま適用することは事実上不可能である。また、あらかじめ代表的なキーワードについて共起度を算出し、共起表を作成しておくなどの手法も考えられる。しかし、インターネットや論文ＤＢなど大量の文献ファイルを対象とする場合、追加／更新／削除が頻繁に発生する。そのため、共起表をあらかじめ作成する手法は現実的とは言えない。さらに、この方式では３語以上の共起関係を使用するなどの検索要求にも対応できない。
【特許文献１】特開２００１−８４２５２号公報
【特許文献２】特開２０００−１４８７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、検索結果の適合率を大幅に高めることができる検索システムおよび検索方法等を提供することを課題とする。具体的には、発見したい意味内容に沿った文書を低いノイズで発見できる検索システムおよび検索方法等を提供することを課題とする。
【課題を解決するための手段】
【００１０】
本発明の第一は、文書の集合体を１または２以上の検索語を用いて検索する検索システムであって、前記文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、前記形態素の順序情報を保持したまま前記集合体が前記形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列と、前記形態素ＩＤ配列を検索する検索部とを備え、前記検索部は、前記検索語と共起する形態素のいずれかが属する前記カテゴリー情報が、検索カテゴリー情報に該当するものを出力することを特徴とする検索システムである。
【００１１】
ここで、前記検索カテゴリー情報が、前記階層構造から選択されたものであることは好ましい。また、さらに、前記形態素が属するカテゴリー情報を格納した既知形態素辞書を備えたことは好ましい。また、前記検索カテゴリー情報が具体例により指定された場合に、前記既知形態素辞書を参照して前記検索カテゴリーが特定されることは好ましい。また、さらに、前記既知形態素辞書に格納されていない形態素を格納する未知形態素辞書を備えることは好ましい。また、前記未知形態素辞書が、前記カテゴリー辞書の前記カテゴリー情報の一つとして取り扱われることは好ましい。また、前記共起する形態素が、前記検索語の前後であらかじめ定めた文法単位数の範囲内の形態素であることは好ましい。
【００１２】
また、前記共起する形態素として、前記文書中に隣接して出現する自立型形態素を連結して取り扱うことは好ましい。また、さらに前記共起する形態素ごとの共起度を演算する方式が選択可能であることは好ましい。また、前記検索部が、前記共起する形態素ごとの共起度をあらかじめ選択された方式で演算し、前記演算された共起度に従った順番で検索結果を出力することは好ましい。また、検索処理時に、前記辞書類および前記配列類と前記検索部の全部が、メモリ上にロードされて動作することは好ましい。また、前記形態素の活用形情報が、前記固定長ＩＤに含まれていることは好ましい。
【００１３】
本発明の第二は、前記検索語の入力窓と、前記検索カテゴリー情報の入力窓とを備えることを特徴とする上記の検索システムの入力画面である。
【００１４】
本発明の第三は、前記検索語と、前記検索カテゴリー情報と、前記共起する形態素とが表示されることを特徴とする上記の検索システムの出力画面である。ここで、前記検索語と、前記検索カテゴリー情報と、前記共起する形態素とが表示され、前記共起する形態素が、前記演算された共起度に従って表示されることは好ましい。また、さらに、前記共起する形態素が含まれる前記文書の一部が表示されることは好ましい。また、前記検索語と、前記共起する形態素が属するカテゴリー情報とが表示されることは好ましい。また、前記検索語が表示され、かつ前記共起する形態素が属するカテゴリー情報が、前記共起度に従って表示されることは好ましい。
【００１５】
本発明の第四は、文書の集合体を１または２以上の検索語を用いて検索する検索方法であって、前記文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、前記形態素の順序情報を保持したまま前記集合体が前記形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列とを用い、前記形態素ＩＤ配列に対して検索を行い、前記検索語と共起する形態素のいずれかが属する前記カテゴリー情報が、検索カテゴリー情報に該当するものを検索結果とすることを特徴とする検索方法である。
【００１６】
本発明の第五は、文書の集合体を１または２以上の検索語を用いてコンピュータに検索させるための検索プログラムであって、前記文書を構成する形態素が属するカテゴリー情報を階層構造で格納したカテゴリー辞書と、前記形態素の順序情報を保持したまま前記集合体が前記形態素に従って固定長ＩＤの集合体に変換された形態素ＩＤ配列と、前記形態素ＩＤ配列を検索する検索部とを備え、前記検索部は、前記検索語と共起する形態素のいずれかが属する前記カテゴリー情報が、検索カテゴリー情報に該当するものを検索することを特徴とする検索プログラムである。
【００１７】
本発明の第六は、上記のプログラムを格納したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１８】
検索語が含まれる文書の分野や検索語の前後の語を検索結果に反映できてノイズが小さく、かつ高速に検索することが可能となる。この結果、検索の適合率が高く、目的とする文書を迅速に発見できる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を用いて発明の実施の形態を説明する。検索対象となる文書の言語の例としては日本語とし、これが通常の形態素解析によって最小構成単位に分割されるものとして説明する。検索対象の文書としては、英語等の他の言語を用いた文書であってもよく、その場合は、スペースで区切られた単語を構成単位としたり、日本語と同様に形態素解析するなどして、以下の説明と同様にして検索システムを構成すればよい。なお、以下では簡単のために、形態素が文書の本文部分に含まれる語の場合を中心に説明する。しかし、形態素には、文書の本文部分だけでなく、例えば、ヘッダ情報等に含まれる文書情報等を含んでいてもよい。
【００２０】
以下に説明する検索システム例で提供できる検索の一つである関連語検索では、１または２以上の検索語と、検索したい検索カテゴリーに関連する情報とが検索システムに入力され、これらに基づいて検索が行われる。得られる検索結果は、検索語の比較的近傍に出現する（共起する）形態素のうちに、検索したい検索カテゴリーに関連するカテゴリーに属する形態素がある場合である。
【００２１】
例えば、検索語として、「癌」を選択し、検索カテゴリーに「医用薬」を選択して文書を検索した場合は、癌なる語の比較的近くに医用薬のカテゴリに属する形態素を含む自立語等が出現している文書が検索されることになる。このような自立語等は、例えば、薬品の一般名称や固有名称と考えられる。つまり、人間の癌の薬について記載された文書が検索される可能性が高い。このような共起の概念を取り入れた検索システムでは、文書の有する意味内容を結果的に検索結果に反映させることが可能となる。以下、このような検索が可能な検索システムについて説明し、併せて検索方法についても説明する。
【００２２】
図１は、検索システム全体の概略構成を示した概念図である。この検索システムは、連想検索に用いる辞書類と配列類および対応表等のデータ類をあらかじめ用意するデータ構成部１と、データ構成部１で用意された各種データを用いて連想検索を実行する検索部２と、検索部２に検索命令を送ると共に検索結果を受け取るクライアント部３とからなる。
【００２３】
まず、連想検索に用いるデータ類について説明する。これらは、既知語辞書３００、カテゴリ属性辞書３１０およびカテゴリ属性配列３１５、未知語辞書３２０、コーパス配列３３０、コーパスと文書の対応テーブル３４０、出現位置配列３５０等からなる。
【００２４】
既知語辞書３００は、基本形、品詞、活用型等の語彙情報と、各々の語が有する意味内容のカテゴリ情報が既知である語に関する辞書である。この例を図２に示す。カテゴリ情報とは、例えば、「大根」なる語に対して、「野菜」や演技の「巧拙」等の、「大根」の意味内容のバリエーションに関する情報をいう。具体的には、「野菜」や「巧拙」等のカテゴリ属性ＩＤと、これらの数であるカテゴリ属性数とをいう。これらの意味は、後述するカテゴリ属性配列３１５に関連して詳述する。また、既知語辞書３００には、各形態素ごとに、後述するコーパス配列３３０中に当該形態素が出現する位置と頻度の情報も格納されている。これらは総頻度と先頭出現位置インデックスのデータであるが、これらの具体的な意味は、後述する出現位置配列３５０の説明に関連して詳述する。
【００２５】
既知語辞書３００のデータは、総頻度と先頭出現位置インデックスを除いて、あらかじめ用意されている必要がある。総頻度と先頭出現位置インデックスは、コーパス・索引生成部２００で決定される。
【００２６】
このように、既知語辞書３００に、あらかじめ語の意味内容に関するカテゴリ情報を含ませることで、語の意味内容を反映した検索が可能になる。カテゴリ情報としては、薬品や肥料、絵画等の物に関するカテゴリや、法律、評判、政治や病気等のような物以外の抽象的なカテゴリでもよい。また、軽い、美しい、きれい等のように評価や判断を表す語を分類したカテゴリでもよく、検索目的となりうる任意のカテゴリを含ませることができる。また、既知語辞書３００にあらかじめ語の頻度情報を含めているので、これから後述する様々な共起度を求めて、表示に利用することもできる。例えば、単純頻度により常識的な共起を求めたり、ＭＩスコアにより出現頻度が小さい比較的レアな共起を検索するなどの選択が可能になる。
【００２７】
カテゴリ属性辞書３１０は、カテゴリが階層構造にまとめられた場合の、各カテゴリの情報を保持する辞書である。この例を図３に示す。カテゴリ属性辞書３１０には、カテゴリ属性ＩＤ、カテゴリ名称、親カテゴリＩＤ、子カテゴリ数、先頭子カテゴリインデックス、総頻度のデータがカテゴリごとに格納されている。
【００２８】
親カテゴリＩＤは、対象のカテゴリ属性の親にあたるカテゴリを特定する。なお、カテゴリ属性では、親はひとつで階層構造は木構造をなしている。子カテゴリ数は、対象のカテゴリの直下に位置する下位カテゴリの総数である。先頭子カテゴリインデックスは、下位カテゴリのうち、カテゴリ属性配列において最初の子カテゴリのインデックスであり、そのインデックスから、子カテゴリ数分の要素が直下の子カテゴリとなる。また、総頻度は、文書ファイル集合において、当該カテゴリに含まれる語が出現した頻度を意味する。カテゴリ属性辞書は、総頻度以外はあらかじめ用意されている必要があるが、総頻度は、コーパス・索引生成部２００で決定される。
【００２９】
このように、カテゴリ辞書をあらかじめ用意しているので、検索したい分野の意味内容に沿った検索を行うことが可能になる。また、語のカテゴリ間の親子関係や関連性を示すデータをあらかじめ用意しているので、関連するカテゴリの検索が可能になる。
【００３０】
カテゴリ属性配列３１５は、カテゴリ属性ＩＤを一次元に並べた配列であり、形態素ごとにその形態素が属するカテゴリ属性ＩＤをまとめて並べている。特定の語が属するカテゴリ属性ＩＤを知りたい場合は、カテゴリ属性配列３１５において、その形態素のカテゴリ属性ＩＤがまとめられた部分の先頭出現位置と、いくつ連続してその語のカテゴリ属性ＩＤが置かれているかの情報があれば足りる。既知語辞書３００におけるカテゴリ属性数は、この連続数であり、カテゴリ属性インデックスは、この先頭出現位置を示すインデックスである。
【００３１】
未知語辞書３２０は、文書ファイル集合において、既知語辞書３００にデータがない語が随時格納されて構成される。未知語辞書３２０の例を図４に示す。未知語辞書３２０は、形態素ＩＤ、表記、文献ファイル集合における出現総頻度、出現位置配列へのインデックスから構成される。総頻度と先頭出現位置インデックスについては既知語辞書３００と同様に後述する。未知語辞書３２０への形態素ＩＤと表記の書き込みは、形態素ＩＤ変換部１００で随時行われる。コーパス・索引生成部２００では、未知語辞書３２０から表記をキーとして未知語ＩＤを値とするハッシュ表が作成される。このハッシュ表を用いて未知語の総頻度数のカウントと出現位置配列ヘのデータ生成が行われ、未知語辞書３２０に格納される。
【００３２】
従来知られていなかった新しい情報は、未知語に関連して出現することが多い。そのため、未知語辞書３２０は重要である。例えば、癌の新薬の名称などは、多くの場合カタカナで未知語となる可能性が高い。ただし、未知語は、カタカナには限られるわけではなく、漢語やアルファベットの列である場合もある。また、最近新しく用いられるようになったために既知語辞書にない語について、意味内容を調べたい場合にも未知語辞書は役に立つ。このような未知語辞書を用意していることで、検索対象に未知語を含めることが可能となる。
【００３３】
コーパス配列３３０は、すベての文書ファイル集合の文書の各々を、その語順も含めた等価物である形態素ＩＤの列に変換した形態素列ファイル１１０を、文書ごとに文書区切りコードをはさんで連結した配列である。ちなみに、この配列の名称は、配列の内容が言語研究におけるコーパスに類似していることから名付けられている。コーパス配列３３０は、コーパス・索引生成部２００で作成される。
【００３４】
ここで、形態素ＩＤは固定長３２ビットとしているが、既知語の場合と未知語の場合とで２種類のフォーマットが存在する。これらを図５に示す。（ａ）が既知語の場合であり、（ｂ）が未知語の場合である。既知語では、形態素ＩＤのうち７ビットを活用形のコード情報に当てている。日本語の場合、各活用型（五段活用、下二段活用等）に対する活用形（未然形、連用形、…）の種類は最大でも２０種程度であり、最小５ビットで表現できる。しかし、他の言語への応用を考えて、７ビットを活用形情報にあてている。一方、未知語では、活用形などの情報は不明であるから、既知語のような活用形情報の部分は設けていない。このように、１語を３２ビット長でコーディングした場合、コーパス配列のサイズは、（語の総数＋文書数＋１）×４バイトとなる。なお、固定長の長さは３２ビットに限定されるものではなく、使いやすい任意の長さであればよい。
【００３５】
このような固定長ＩＤによるコーパス配列を用意することで、語と語の間の語数をカウントすることが容易となり、共起の演算を行うことが著しく容易となる。
【００３６】
出現位置配列３５０は、既知語辞書３００または未知語辞書３２０に登録された語が、コーパス配列３３０のどこに生起しているかを索引付けするためのものである。配列の要素はコーパス配列における出現位置のインデックスである。出現位置配列３５０は、語ごとに出現位置のインデックスをまとめて構成されており、語が出現位置配列中に出現する先頭出現位置インデックスと、語の出現数である総頻度のデータにより、すべての語のコーパス配列中の出現位置を特定することができる。出現位置配列は、コーパス・索引生成部２００で作成される。
【００３７】
コーパス配列と文書の対応テーブル３４０は、ＵＲＬなど文書を一意に識別する情報と、当該文書のコーパス配列中での開始位置との対応関係を格納したテーブルである。このテーブルは、コーパス配列中での開始位置によって昇順にソートされている。検索部４００は、このデータを用いてコーパス配列の任意のインデックスから対応文書の情報を得ることができる。
【００３８】
次に、データ構成部１について説明する。データ構成部１は、文書ファイル集合１０を、語順情報を保持したまま固定長ＩＤ列に変換する形態素ＩＤ変換部１００と、固定長ＩＤ列を用いて、各形態素の出現頻度と出現位置を特定して、連想検索に必要なデータを生成するコーパス・索引生成部２００と、処理に必要な記憶部とからなる。なお、文書ファイル集合１０は文書の集合体であるが、これが変換された形態素ＩＤ列ファイルも、変換された文書の集合体であって、それぞれの文書は１対１に対応している。
【００３９】
形態素ＩＤ変換部１００における処理を図６のフローチャートを用いて説明する。形態素ＩＤ変換部１００は、インターネット上の文書やコーパスのような検索対象物となる文書ファイルに対して、通常の形態素解析を行って文書を形態素に分解する（Ｓ１０ステップ）。その際、文書中の形態素の順番は、文書中の順序のまま保持する。次に、文書ファイルの先頭の形態素を選択する（Ｓ２０、３０ステップ）。次に、この選択した形態素について図２に示す既知語辞書３００を参照し、選択された形態素が既知語辞書３００に格納されているか否かを判断する（Ｓ４０ステップ）。選択された形態素が既知語辞書３００に格納されている場合、選択された形態素を既知語辞書３００の形態素ＩＤに変換して（Ｓ５０ステップ）、Ｓ６０ステップに移行する。
【００４０】
Ｓ４０ステップで、選択された形態素が既知語辞書３００に格納されていない場合は、選択された形態素は未知語とみなされる。フローはＳ４０ステップから右に分岐して、図４に示した未知語辞書３２０が検索されて、未知語辞書３２０にすでに有るか否かが判断される（Ｓ６０ステップ）。未知語辞書３２０には、先にデータが取り込まれた文書中で未知語と判断された語が、既知語の形態素ＩＤと同様に固定長３２ビットで、既知語とは区別される未知語の形態素ＩＤが付与されて、その形態素ＩＤ、語の表記とが結びつけられて格納されている。
【００４１】
Ｓ６０ステップで未知語辞書３２０に当該未知語が格納されている場合、フローは下に分岐して、当該未知語は未知語辞書に格納された形態素ＩＤに変換され（Ｓ７０ステップ）、Ｓ１００ステップに移行する。一方、Ｓ６０ステップで未知語辞書３２０に当該未知語が格納されていない場合は、フローは右に分岐して、当該未知語に新たに未知語の固定長ＩＤが付与され、未知語辞書３２０に新たな未知語として登録される（Ｓ８０ステップ）。なお、当該未知語の出現頻度と先頭出現位置インデックスは、コーパス・索引生成部２００で作成される。次に、文書中の当該未知語が、この新たに付与された未知語の固定長ＩＤに変換され（Ｓ９０ステップ）、Ｓ１００ステップに移行する。
【００４２】
Ｓ１００ステップでは、文書ファイルにおけるすべての形態素を形態素ＩＤに変換したか否か、つまり文書ファイルの終わりに到達したか否かを判断する。到達していない場合は、フローは左に分岐してＳ３０ステップに戻り、語順が次の形態素を選択して、Ｓ４０ステップからＳ１００ステップまでのフローを繰り返す。Ｓ１００ステップで文書ファイルの終わりに到達している場合は、フローは下に分岐して処理を終了する。
【００４３】
このようにすることで、検索対象物の文書が、３２ビットの固定長ＩＤの列として得られる。これが形態素ＩＤ列ファイル１１０である。このファイルは、既知語辞書３００と未知語辞書３２０とを前提として、本来不定長である各種文書の形態素の各々を、文書中における各形態素の順序を保持したまま固定長ＩＤで表現した固定長ＩＤの列である。
【００４４】
次に、コーパス・索引生成部２００について説明する。コーパス・索引生成部２００は、形態素ＩＤ変換部１００で生成された固定長ＩＤ列としての文書ファイル１１０を用いて、連想検索に必要なデータを用意する。具体的には、既知語辞書３００、カテゴリ属性辞書３１０、未知語辞書３２０を参照しながら、各形態素の文書ファイル集合中における頻度情報と、出現位置情報を求め、それらをコーパス配列３３０、コーパスと文書の対応テーブル３４０、出現位置配列３５０に出力し、さらに、既知語辞書３００、カテゴリ属性辞書３１０、未知語辞書３２０に追加データを出力する処理を行う。このコーパス・索引生成部２００における処理を図７のフローチャートを用いて説明する。
【００４５】
処理がスタートすると、まず初期化を行い、既知語辞書３００、カテゴリ属性辞書３１０、未知語辞書３２０をメモリにロードする（Ｓ２００ステップ）。次に、形態素ＩＤ列ファイル１１０からいずれかの文書ファイルを一つ選択して読み込む（Ｓ２００〜２１０ステップ）。この文書ファイルの各形態素について、出現頻度をカウントアップし（Ｓ２３０ステップ）、次に、総語数をカウントアップする（Ｓ２４０ステップ）。続いて、形態素ごとの出現位置情報を生成する（Ｓ２５０ステップ）。さらに既存のコーパス配列３３０の末尾に、文書区切り形態素ＩＤを付加した後（Ｓ２６０ステップ）、選択した形態素ＩＤ列をその文書区切り形態素ＩＤに続けて付加する（Ｓ２７０ステップ）。
【００４６】
続いて、形態素ＩＤ列ファイル１１０に含まれる文書ファイルの全部が処理されたか否かが判断される（Ｓ２８０ステップ）。未処理の文書ファイルが有る場合は、Ｓ２８０ステップからフローは左に分岐して、Ｓ２２０ステップからＳ２８０ステップを繰り返す。全部の文書ファイルの処理が終了している場合は、フローはＳ２８０ステップから下に分岐して、文書区切り形態素ＩＤが付加されて（Ｓ２９０ステップ）、演算結果をそれぞれの辞書等に格納して（Ｓ３００ステップ）処理を終了する。
【００４７】
このように、検索対象となる文書ファイルのすべてについて、各形態素の出現位置や頻度および、語の属するカテゴリーおよびその頻度等をあらかじめ特定して辞書類に格納し、検索のための配列も用意している。そのため、目的とするカテゴリーや語に速やかに到達することができる。この結果、後述する連想検索が容易に行え、検索目的となる文書を容易に発見できる。また、コーパス配列は固定長ＩＤの列からなるため、語数のカウントが容易で、共起の概念を簡単に取り込むことができる。
【００４８】
次に、検索システムの検索部２について説明する。検索部２は、上記のデータ類を使用して検索を実行する検索部４００と、インターネットから検索依頼を受け付けて検索部４００に仲介するために、必要により設けられたＷＥＢサーバ４１０とを備える。まず、検索部４００について説明する。
【００４９】
検索部４００は、上記の辞書類等のデータ類３００〜３５０を用いて、クライアントプログラムからの指示に従って検索を実行する。クライアントプログラムから検索部に送信される検索条件は、大きく分けて二種類あり、一つめは１または２以上の検索語である。これは、語１個でもよいし、複数の語が意味を持って連なった自然言語文であってもよい。二つ目は、検索したい分野を特定する検索カテゴリーの情報である。この検索カテゴリーは、例えば、癌の薬品について検索したい場合は医用薬の分野である。検索カテゴリーは、カテゴリー分類の仕方によって変化するから、後述するカテゴリー属性辞書３１０からカテゴリー情報を選択してもよい。また、検索したいカテゴリーは不明であるが、検索したいカテゴリーに属する語の具体例がわかっている場合は、その具体例の語が入力されてもよい。検索部４００の関連語検索では、これら少なくとも二つの検索条件を前提にして検索を行う。
【００５０】
検索部４００が実行できる検索は、関連語検索、関連カテゴリ検索、コンテクスト検索の三種類あり、いずれが選択されたかにより随時切り替えられる。この選択フローを図８のフローチャートに示した。関連語検索がこの検索システム例の中心的な検索である。関連カテゴリ検索は、関連語検索の前段で用いられることがある検索であり、コンテクスト検索は、関連語検索のあとで用いられることがある検索である。
【００５１】
まず関連語検索は、文書の集合体に対して検索語を検索し、次に検索語の前後一定数の形態素（語）の範囲内に、検索カテゴリーに合致するカテゴリーに属する語が有るか否か（共起しているか否か）を判断する。そのような語が有った場合は、その語を検索条件に適合する語と判断して、後述する一定の基準に従ってクライアントに表示する。また、必要により、後述するコンテキスト検索では、検索語とその検索された語とを含む文書の一部をクライアントに表示する。なお、共起を判断する範囲としては、検索語の前後１語から１００語程度が好ましく、より好ましくは３語以上６０語以下程度となるようにあらかじめ定めている。この語数を調整することにより、検索精度を調整することができる。
【００５２】
なお、この共起を判断する範囲を、形態素以外の他の文法単位の数で判断してもよい。例えば、文字数や文の数、または段落の数等を用いてもよい。いずれを基準にして共起を判断する範囲を決定してもよいが、形態素数を用いるのが簡単で好ましい。また、共起を判断するあらかじめ定める文法単位の数は、この例のように、固定数をスタティックに設定してもよいし、検索語の品詞や検索カテゴリー、または検索語が未知語であるか既知語であるかなどの違いより、ダイナミックに数を変えるように設定してもよい。
【００５３】
関連語検索のクライアントで表示される画面例を図９に示す。この画面例は一般のブラウザソフトを用いて構成されている。この画面例は以下の画面構造を備えている。まず、画面上部が検索条件を設定する枠７００であり、画面下部が検索結果を表示する枠である。また、画面下部左側は、共起する形態素を表示する枠８００であり、画面下部右側は、共起する形態素を含む文章の一部を表示する枠９００である。
【００５４】
検索条件を設定する枠７００は、検索語が入力される窓７０１と、検索カテゴリーが入力される窓７０２と、共起する形態素の範囲が決定される語数の入力窓７０３（図９では、Window Sizeと表示）と、共起度の演算方式が選択されるボタン７０４（図９では、Sortと表示）と、検索された形態素のうち枠８００に表示する数が選択される窓７０５、検索実行ボタン７０６とが設けられている。
【００５５】
ここで新語選択ボタン７１１は、既知語辞書に格納されていない未知語をカテゴリーの一つとして選択するか否かのボタンである。これは未知語辞書３２０には品詞やカテゴリーの情報が格納されていないので、共起する周辺語のカテゴリーを判断する際に判断のためのデータがない。そのため、未知語を含む文書は、検索目的に合致する文書であっても検索されにくくなることになる。しかし、未知語は新しい情報に関連して出現するから、未知語が出現している文書が検索されることが望ましい。そのため、この新語選択ボタン７１１がＹＥＳに選択されると、未知語辞書を検索カテゴリーに合致するカテゴリーの一つとして解釈され、常に未知語辞書が検索対象となる。
【００５６】
窓７０１には、自然言語文を含む１または２以上の検索語が入力される。この例では、「リサイクル」が入力されている。スペースやカンマで区切って複数の語を指定した場合はＯＲ条件となる。「Ａ，Ｂ」の指定では、ＡまたはＢが共起の軸として検索される。一方、スべースやカンマで区切られていない語の連結（たとえば「ＡＢ」）は、ひとつの検索語として扱われる。また、窓７０２には、検索したい分野の名称が直接入力される。この例では「法律」が入力されている。入力窓７０３には、検索語の前後５０語を共起の範囲とするように入力されている。
【００５７】
上部枠７００に検索条件が入力されて検索が実行されると、下部左側枠８００に語が表示される。また、それら語のいずれかが選択されると、後述するコンテキスト検索によって、下部右側枠９００に選択された語を含む複数の文章のそれぞれの一部が表示される。図９では、「家電リサイクル法」が選択された場合の文章が表示されている。
【００５８】
枠８００に表示される検索結果は、「リサイクル」なる語の前後５０語において、「法律」のカテゴリーに属する語が、単純頻度（「Sort」のうちの「freq」）を基準として表示されている。なお、ここに表示されている単位は、「法」のような単一の形態素からなるものも含まれているが、「容器包装リサイクル法」のごとき、容器、包装、リサイクル、法の四つの自立した形態素を連結して一単位としたものも表示されている。
【００５９】
これは、実際の言語表現では、複数の語が連結されて意味ある表現となる場合が多いからである。つまり、形態素解析による最小単位だけを検索対象としたのでは、必ずしも検索結果として意味ある表現とは限らないことを考慮したことによる。そのため、上記のごとく、文書中で複数の自立した形態素が隣接している場合は、原則それらを全部連結して一単位として処理している。これらの処理の具体的内容は後述する。なお、ここで、自立形態素とは日本語では名詞や形容詞、動詞等をいい、自立していない形態素、つまり付属形態素とは助詞や助動詞等を言う。これらは言語の特質に合わせて辞書に設定されればよい。
【００６０】
なお、図９の画面における検索カテゴリーが入力される窓７０２に代えて、カテゴリー情報の階層構造を表示させ、ここから検索カテゴリーを選択することもできる。この画面例を図１０に示す。カテゴリー窓７１０に階層構造でカテゴリーが表示されている。
【００６１】
さらに、カテゴリー名称そのものではなく、検索したいカテゴリーに含まれる具体例を入力するようにすることもできる。この画面例を図１１に示す。この例では、具体例入力窓７２１に「鉄」と入力されているが、これは、カテゴリーとして金属を入力する代替として入力されている。ここでは、複数の語を入カすることもできる。具体例が複数のカテゴリに対応する場合、共起する周辺語を登録する際には、ＯＲ条件でこれら複数のカテゴリが使用される。
【００６２】
次に、この関連語検索の処理フローを図１２から１５のフローチャートを用いて説明する。図１２は、関連語検索の全体フローチャートであり、図１３から１５は、その部分フローチャートである。
【００６３】
まず処理がスタートすると、入力された検索語を形態素ＩＤ列に変換する（Ｓ４０１ステップ）。ここでは、入力された検索語に対して形態素解析が行われ、検索語が辞書を参照して形態素ＩＤ列に変換される。このようにするので、検索語は自然言語文であってもよい。次のＳ４０２ステップは、図１１の画面例のように、カテゴリーに属する具体例が入力された場合には、その具体例からカテゴリーを検索する必要があるので、その必要性を判断するステップである。具体例が入力された場合は、続くＳ４０３ステップに移行し、既知語辞書３００が参照されて、具体例がカテゴリー属性ＩＤに変換される。具体例による検索ではない場合は、選択もしくは入力されたカテゴリ名称をカテゴリ属性ＩＤに変換して、Ｓ４０３ステップを飛ばしてＳ４０４ステップに移行する。
【００６４】
続くＳ４０４ステップでは、検索語と共起する周辺語の登録と共起頻度の計測が行われる。このステップを図１３のフローチャートを用いて説明する。このフローでは検索語を中心として指定された５０語の範囲内で共起する語の全部を拾い出す。まず、出現位置配列３５０からわかる検索語の出現位置の全部にわたって処理が行われたか否かを判断する（Ｓ４０５ステップ）。未処理の出現位置がある場合は、Ｓ４０６ステップで検索語の前方で共起する周辺語が検索され、Ｓ４０７ステップで検索語の後方で共起する周辺語が検索される。このＳ４０６ステップとＳ４０７ステップでは、前方と後方の違いはあるが類似の処理がなされる。そのため、代表してＳ４０７ステップについて図１４のフローチャートを用いて説明する。このフローでは、共起する周辺語を検索すると共に、自立語が隣接する場合にそれらを連結して共起頻度テーブルに登録する処理を行う。
【００６５】
ここで、共起頻度テーブルは、検索部における検索実行時に一時的に生成されるテーブルであり、ハッシュテーブルとして生成される。このテーブルには、検索された自立語または自立語列と、それらの共起頻度と、検索された自立語または自立語列のコーパス配列における出現位置のリストが格納されている。
【００６６】
図１４の処理がスタートすると、まず、保持されている自立語列がクリアされ、検索語から後方に進んだ形態素が一つ選択され、カテゴリフラグがＯＦＦとされる（Ｓ４２０ステップ）。なお、カテゴリフラグは、自立語列ごとに、検索カテゴリに属するカテゴリ属性に属する形態素を含むか否かを判断するために用いられるフラグである。この初期化処理に続き、選択された形態素が探索範囲内であって、かつ文書区切りでもない旨が判断される（Ｓ４２１ステップ）。このステップにより、検索語から後方に共起する範囲が特定される。Ｓ４２１ステップにおける判断がＹＥＳの場合にフローは下に分岐して、辞書を参照して選択された形態素の品詞タイプを判断する（Ｓ４２２ステップ）。
【００６７】
続くＳ４２２ステップでは、品詞が、名詞、動詞、形容詞等の自立語型である場合は、フローは左に分岐してＳ４２４ステップに移行する。品詞が助詞、助動詞等の付属語型である場合は、フローは右に分岐してＳ４２８ステップに移行する。選択された形態素が未知語で、品詞のデータがない場合は、Ｓ４２２ステップから下に分岐してＳ４２３ステップに移行する。
【００６８】
Ｓ４２３ステップでは、新語フラグがＯＮか否かが判断される。ここで、新語フラグとは、図１０の画面に表示されている新語選択ボタン７１１に対応したフラグであり、新語選択ボタン７１１がＹＥＳのときに新語フラグはＯＮとなり、新語選択ボタン７１１がＮＯのときに新語フラグはＯＦＦとなる。新語フラグがＯＮ、すなわち未知語を検索カテゴリーに含める場合は、フローはＳ４２４ステップに移行する。一方、新語フラグがＯＦＦ、すなわち未知語を検索カテゴリーに含めない場合は、フローはＳ４２８ステップに移行する。
【００６９】
Ｓ４２４ステップでは、選択された形態素は自立語であるか検索されるべき未知語である。すでにＳ４２１〜Ｓ４２４〜Ｓ４２９ステップのループ処理において自立語または検索されるべき未知語が保持されている場合は、選択された形態素は保持されている形態素に連結される。すでに保持されている形態素がない場合は、選択された形態素が先頭で保持される。このようにして、自立語および検索されるべき場合の未知語とが続く限り、それらが連結される。これにより、検索結果において意味ある内容が得られやすくなる。
【００７０】
続くＳ４２５ステップでは、選択された形態素が未知語であるか否かが判断され、未知語である場合は、フローは右に分岐して、選択された形態素が含まれる自立語列のカテゴリフラグがＯＮにされる（Ｓ４２７ステップ）。Ｓ４２５ステップで、選択された形態素が未知語ではない場合は、フローは下に分岐してＳ４２６ステップに続く。
【００７１】
Ｓ４２６ステップでは、辞書を参照して、選択された形態素の属するカテゴリー属性が検索カテゴリーに合致するか否かが判断される。検索カテゴリーに合致する場合は、フローはＳ４２６ステップから右に分岐して、選択された形態素が含まれる自立語列のカテゴリフラグがＯＮにされて（Ｓ４２７ステップ）、Ｓ４２９ステップに移行する。検索カテゴリーに合致しない場合は、フローはＳ４２６ステップから下に分岐してＳ４２９ステップに移行する。
【００７２】
つまり、自立語列を構成する形態素のいずれか一つが属するカテゴリー情報が、検索カテゴリーに合致する場合に、その自立語列のカテゴリフラグがＯＮになる。
【００７３】
ところで、Ｓ４２２ステップにおいて、選択された形態素の品詞が付属語とされた場合は、その形態素は自立語連結の対象ではなく、それまでのＳ４２１〜Ｓ４２４〜Ｓ４２９ステップのループ処理により連結されて保持された自立語列は、選択された形態素を連結することなく、Ｓ４２８ステップで共起頻度テーブルに登録される。これで自立語列が確定する。なお、Ｓ４２８ステップの詳細は後述する。
【００７４】
Ｓ４２９ステップでは、選択された形態素の後方に続く形態素が新たに選択され、以下、Ｓ４２１ステップでＮＯの判断がなされるまで、Ｓ４２１ステップからＳ４２９ステップを繰り返す。これにより、検索語の後方の共起範囲を全部カバーする。
【００７５】
Ｓ４２１ステップで、ＮＯの判断がなされた場合は、共起範囲の最後まで処理が終わったのでフローは右に分岐し、保持されている自立語列を共起頻度テーブルに登録して（Ｓ４３０ステップ）、処理が終了する。
【００７６】
ここで、自立語列の登録を行うＳ４２８ステップとＳ４３０ステップのフローを、図１５のフローチャートを用いて説明する。自立語列の登録処理がスタートすると、そのカテゴリフラグがＯＮか否かが判断される（Ｓ４５０ステップ）。カテゴリフラグがＯＮの場合は、自立語列のいずれかの形態素の属するカテゴリーが検索カテゴリーに該当するので、フローは下に分岐して、その自立語列が未登録の場合は、その自立語列を共起頻度テーブルに登録し、合わせて頻度データを更新する。また、その自立語列が既登録の場合は、単に頻度データを更新する（Ｓ４５１ステップ）。続いて、Ｓ４５２ステップに移行する。
【００７７】
また、Ｓ４５０ステップでカテゴリフラグがＯＦＦの場合は、自立語列のいずれの形態素も検索カテゴリーに該当していないので、Ｓ４５１ステップを迂回してＳ４５２ステップに移行する。Ｓ４５２ステップでは、保持されている自立語列をクリアして、カテゴリフラグをＯＦＦに設定する。これで、Ｓ４０７ステップで実行される、検索語から後方に共起する自立語列の登録処理が終了する。
【００７８】
ここで、図１４から図１３のフローチャートに戻る。図１３のＳ４０６ステップは、Ｓ４０７ステップと検索方向のみが異なるため、自立語列に新たな形態素を付加する順序が異なる。しかし、それら以外は同様にして、検索語から前方に共起する自立語列の登録処理が行われる。
【００７９】
さらに、図１２のフローチャートに戻り、上記説明したＳ４０４ステップからＳ４０８ステップに移行する。ここでは、上記の結果が登録された共起頻度テーブルに対してフィルタ処理がなされる。これは、出現頻度が１回または２回というような低頻度の検索結果は一般に有用性が低いと考えられるため、これらを検索結果から除くための処理である。なお、このフィルタをかける基準は適宜増減することができる。
【００８０】
続いて、共起頻度テーブルに登録された周辺語であるすべての自立語および自立語列について、選択された計算方式で共起度が演算される（Ｓ４０９ステップ）。この共起度の計算方式とては、この検索システム例では、単純頻度（frequency counts）、Ｔスコア（T-score）、ＭＩスコア（Mutual Information score）、ＬｏｇＬｏｇスコア（LogLog score）の４通りが用意されている。図９の画面例では、これらを選択するボタン７０４が設けられており、この選択に応じて計算方式が選択される。これらについて簡単に説明しておく。単純頻度による共起度算出は、すでに共起頻度テーブルにより共起頻度が得られているので、特に演算はない。
【００８１】
ｔスコアによる共起度の算出は、ｔ検定の手法を応用して２つの語の共起強度を計る指標のひとつである。コーパス配列の総形態素数をＮｃとする。検索語Ｘと周辺語Ｙのコーパス配列中での出現頻度を、それぞれＮｘとＮｙとする。また、ＸとＹの共起頻度をＮｘｙとして、以下の式に基づいて演算する。
【００８２】
【数１】
2005251115.tif 000003
【００８３】
ここで、コーパス総語数Ｎｃは、コーパス・索引生成部２００がカウントした定数である。検索語の頻度Ｎｘは、検索語の出現箇所を特定する際にカウントできる。共起頻度テーブルに登録された自立語列の頻度Ｎｙは、検索語の出現位置確定と同様のアルゴリズムでカウントされる。共起頻度Ｎｘｙは共起頻度テーブルから得られる。
【００８４】
次に、ＭＩスコアによる共起度の算出は、次の計算式により得られる。特徴的に検索語と結び付く語が上位にランクされ、コーパス配列に多数回出現する高頻度語は、逆に下位にランクされる。Ｎｘ、Ｎｙ、Ｎｘｙ、Ｎｃの値は、上記のｔスコアと同様にして求められる。
【００８５】
【数２】
2005251115.tif 000004
【００８６】
ＬｏｇＬｏｇスコアによる共起度は、ＭＩスコアに共起頻度の対数を乗じて得られる。共起頻度をより積極的に評価する算出方式であり、頻度のみを考える単純頻度と特徴的な語を上位におくＭＩスコアの間の尺度を与える。
【００８７】
【数３】
2005251115.tif 000005
【００８８】
再び図１２に戻り、Ｓ４０９ステップからＳ４１０ステップに移行する。ここでは、共起頻度テーブルに格納された自立語または自立語列に対して、上記で演算された共起度を用いてソートがかけられる。これで、検索結果が表示された場合に、検索者がより重要と判断する自立語または自立語列から表示されることになる。最後に、これらの結果がクライアントの画面に表示されて検索が終了する。このようにして表示された自立語列の画面表示例が、図９の画面下部左側の枠８００に示されている。
【００８９】
このように、検索語と共起する形態素から、検索カテゴリーに合致する自立語もしくは自立語列を構成する。自立語の場合は、それが属するカテゴリーの一つが検索カテゴリーに該当することになる。また、自立語列の場合は、それらの形態素の中に、属するカテゴリーの一つが検索カテゴリーに該当する形態素が、少なくとも一つ含まれていることとになる。これにより、検索したい意味内容を検索に反映することができる。しかも言語的に特別の意味を有する可能性が高い自立語列でも表示する。そのため、目的とする文書を選択しやすく、検索目的に対応する的確な検索が可能となる。また、検索結果を表示する際には、選択された共起度によりソートして表示する。これにより、検索目的に合致する文書を的確に検索することが可能となる。
【００９０】
この間連語検索を用いることで、例えば、「癌に関連した薬は何があるか？」と言う形式の設問に対して答えることが可能となる。例えば、検索語を「癌」とし、検索カテゴリーを「医用薬」とすればよい。このようにすることで、この設問に答える自立語もしくは自立語列を検索することが可能になる。つまり、検索したい意味内容を反映した検索が可能となる。また、後述のコンテキスト検索を併用することで、それら自立語もしくは自立語列を含む文章を直接参照することもできる。そのため、検索目的に合致する文書だけを読むことが可能となる。さらに、事前には知らなかった関連語を発見することもできるから、まったく未知の文書でも読むことができる。
【００９１】
次に、図８の選択フローチャートで示された二種類目の検索である関連カテゴリ検索について説明する。この検索は、検索語と共起する周辺語を検索する上記の関連語検索とは異なり、検索語に共起する周辺語が属するカテゴリを検索する。この検索画面例を図１６に示す。この画面例の構造は、図９の画面と類似しているが、枠７３０に検索カテゴリーを入力する窓がない点が異なる。検索語を入力する窓７０１に検索語を入力すると、検索語の周辺語が属するカテゴリー９１１が、枠９１０に表示される。なお、ここではカテゴリー９１１の下に、新語９１２なる見出しが表示されているが、これは、あらかじめ未知語をカテゴリーの一つとして選択するように設定しているからである。
【００９２】
この関連カテゴリ検索の処理フローを、図１７〜図１９のフローチャートを用いて説明する。検索が入力されて検索がスタートすると、検索語が形態素解析されて形態素ＩＤ列に変換される（Ｓ５０１ステップ）。次に、検索語と共起する周辺語のカテゴリが登録されると共に、共起頻度が演算される（Ｓ５０２ステップ）。このＳ５０２ステップを図１８、図１９を用いて説明する。
【００９３】
まず、出現位置配列３５０からわかる検索語の出現位置の全部にわたって処理が行われたか否かを判断する（Ｓ５０３ステップ）。未処理の出現位置がある場合は、Ｓ５０４ステップで検索語の前方で共起する周辺語が検索され、Ｓ５０８ステップで検索語の後方で共起する周辺語が検索される。代表してＳ５０８ステップについて、図１９のフローチャートを用いて説明する。
【００９４】
まず、検索語の後方で選択された形態素が探索範囲内であって、かつ文書区切りでもない旨が判断される（Ｓ５０５ステップ）。このステップにより、検索語から後方に共起する範囲が特定される。Ｓ５０５ステップにおける判断がＹＥＳの場合は、フローは下に分岐して、辞書を参照して選択された形態素のカテゴリ属性を、もし未登録であれば共起頻度テーブルに登録して頻度データを更新する。登録済みであれば、単に頻度データを更新する（Ｓ５０６ステップ）。続いて、選択された形態素の後方に位置する次の形態素を選択し（Ｓ５０７ステップ）、Ｓ５０５ステップに戻る。Ｓ５０５ステップにおける判断がＮＯの場合は、共起する範囲内のすべての形態素についてカテゴリ属性が登録されたので、フローは右に分岐して処理を終了する。Ｓ５０４ステップについても、これと同様に処理すればよい。
【００９５】
図１７に戻ってＳ５０９ステップに移行し、カテゴリ属性が登録された共起頻度テーブルに対してフィルタ処理がなされる。これにより、出現頻度が１回または２回というような低頻度の検索結果を除く。なお、このフィルタをかける基準を適宜増減できるのは前記したとおりである。続いて、すでに説明したようにして、選択された計算方式に従って共起度が演算され（Ｓ５１０ステップ）、共起度に従ってカテゴリがソートされ（Ｓ５１１ステップ）、結果がクライアントに表示される。なお、検索されたカテゴリの総頻度は、カテゴリ属性辞書３１０を参照することで得ることができる。
【００９６】
この検索結果は、検索語に関連の深い分類カテゴリのランキングリストを検索者に与える。検索者はこの情報を用いて関連語検索を行なうことが可能となる。なお、関連語検索において、カテゴリ情報入力用の窓７０２に、検索者がカテゴリ名と考えるデータが入力されたにもかかわらず、カテゴリ辞書を検索しても該当するカテゴリがないときは、自動的に関連カテゴリ検索に移行するようにしてもよい。
【００９７】
次に、図８の選択フローチャートで示された三種類目の検索であるコンテクスト検索について説明する。コンテクスト検索では、関連語検索の結果である自立語または自立語列から、それらが含まれていた文書の文章を検索する。この検索を、関連語検索の結果を表示した図９の画面例を用いて説明する。関連語検索の結果である自立語または自立語列は、枠８００にアンダーラインを付して表示されているが、ここの各々を選択すると、対応する文書の一部が枠９００に、いわゆるＫＷＩＣ（Key Word In Context）形式で表示される（図９では、検索語と点線だけで表示）。これがコンテキスト検索である。これにより、検索者は、自立語または自立語列と検索語との関係から、いずれにほしい情報が含まれているかを、具体的に文書の該当部分を見ながら判断できる。このコンテキスト検索の処理フローを、図２０、２１のフローチャートを用いて説明する。
【００９８】
まず選択された自立語または自立語列に関し、コーパス配列３３０におけるすべての共起出現位置が抽出されたか否かが判断される（Ｓ６０１ステップ）。これがＮＯの場合、フローは下に分岐して、一つの未抽出の共起出現位置を選択し、コーパス配列におけるその共起出現位置の文脈データを抽出する（Ｓ６０２ステップ）。このＳ６０２ステップを図２１のフローチャートを用いて説明する。まず、検索語の共起の範囲内で一つの形態素を選択し、この形態素が探索範囲内であって、かつ文書区切りでもない旨が判断される（Ｓ６０３ステップ）。このステップにより、検索語に共起する範囲内で文脈抽出が行われる。この判断がＹＥＳの場合、フローは下に分岐して、選択された形態素の品詞が用言であるか否かが判断される（Ｓ６０４ステップ）。品詞が用言の場合は、自然言語復元処理が行われる（Ｓ６０５ステップ）。
【００９９】
これは、図５（ａ）に示したように、既知語の固定長ＩＤには活用形を示すビット列が設けられている。これからわかるように、形態素解析の結果、文書中で特定の活用形で表現されていた用言は、基本形と活用形種別のデータで格納されている。例えば、文書中で、「走れ」と表現されていた用言は、形態素解析の結果、基本形「走る」＋「命令形」としてデータが格納されている。これを別途用意されている活用形テーブルを用いて、元の表現に戻す処理である。なお、品詞が用言でない場合は、Ｓ６０５ステップは迂回される。
【０１００】
次に、Ｓ６０５ステップからＳ６０６ステップに進み、元の表現に戻されたデータを保持して次の形態素に移り、Ｓ６０９ステップに移行する。Ｓ６０３ステップで文書の区切りに達するか共起範囲を逸脱した場合に、この出現位置において共起するすべての形態素について抽出が終了したから、フローは右に分岐してこの処理を終了する。
【０１０１】
ここで、図２０に戻り、Ｓ６０７ステップで、抽出した文脈データ内の検索語と自立語または自立語列に強調飾りを付加したり、コーパスと文書の対応テーブルから文書のＵＲＬを読み出して付加するなどの編集を行い（Ｓ６０７ステップ）、Ｓ６０１ステップに戻る。すべての出現位置について文脈データの抽出処理が終わると、フローはＳ６０１ステップから右に分岐して、結果をクライアントの画面に表示して処理を終了する。これにより、元の文書と同様の自然な文章表現で、該当する部分を表示することができる。
【０１０２】
このような三種類の検索を行えるようにしたことで、検索者は、まず検索したいカテゴリーを関連カテゴリー検索で検索し、その結果に基づいて関連語検索を実施し、表示された自立語または自立語列から、関連すると考えるものを選択すると、文書中でその選択された自立語または自立語列と検索語が共起している部分の文章が、コンテキスト検索で表示されることになる。この結果、検索したい意味内容を検索条件にある程度反映することが可能となり、的確な検索を行うことが可能になる。
【０１０３】
次に、この検索システム例のハードウェア構成について説明する。図１に記載された既知語辞書３００から出現位置配列３５０までの辞書類および配列類は、システム停止時は所定のハードディスク上にストアされている。データ構成部１は、通常のコンピュータと同様に、随時ハードディスクのデータ類とプログラム類のうち、当面の処理に必要な部分だけをＲＡＭに読み込み、処理が終了したデータ類をハードディスクに随時ストアするようにして動作する。
【０１０４】
しかし、検索部２による処理は異なる。検索部２による処理が開始される際には、辞書類および配列類とプログラム類とを含めた検索部全体が、例えば、数十ＧＢのメモリ上にロードされてオンメモリの状態となる。そのため、検索処理時には、データ類も含めてオンメモリの状態で検索部が動作する。なお、ここに言うメモリとは、ハードディスクやＣＤ−ＲＯＭのような機械的動作を伴ってデータの読み書きを行う記憶装置ではなく、ＲＡＭやフラッシュメモリのごとき機械的動作を伴わないでデータの入出力が可能な記憶装置を言う。
【０１０５】
その際、文書ファイル集合の固定長ＩＤによる形態素ＩＤ列化と、活用語に対して活用情報を固定長ＩＤに含めてコード化することとで、文献ファイル集合全体を膨大な容量のひとつの配列として取り扱うことを可能にした。また、自然言語表現への復元もメモリ上で行なうことが可能となった。これらのため、検索処理を行う部分全体を高速メモリにロードして動作させたことと相乗して、処理速度が格段に高速になった。
【０１０６】
もちろん、検索に当たってこのような膨大な容量のメモリを用いるのではなく、より低速にはなるが、ハードディスク等のより低速な記憶手段に随時アクセスしながら検索するようにしてもよい。逆に、データ構成部１も検索部２と同様にオンメモリで動作するように構築してもよい。
【０１０７】
この検索システムの検索部２では、専用線を経由したクライアントのプログラムから検索を指示することができる。また、データ構成部１と検索部２を専用サーバ上に構築し、インターネットに接続されたクライアントのブラウザから、ＷＥＢサーバを介して検索指示を受けるようにしてもよい。
【０１０８】
この検索システムは、コンピュータに実行させるためのプログラムとして表現することもできるし、そのプログラムをコンピュータ読み取り可能な記録媒体に格納させてもよい。プログラムは、機能に基づいて複数に分割して異なる記録媒体に格納しても良い。ここで、記録媒体とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭフラッシュメモリ等の可搬媒体、ハードディスク装置等を言う。
【０１０９】
以上、本発明の実施形態を説明したが、本発明は以上の具体的な態様には限定されない。例えば、上記の例では、出現位置配列はすべての形態素について作成しているが、自立語だけに限定してもよい。また、名詞の自立語だけに限定してもよい。このようにすることで必要なメモリ量を減少させることができる。
【０１１０】
文書ファイル集合に含まれる文書データは、適当な巡回サーバがインターネットを巡回して収集するようにしてもよい。その際、重要と判断された語だけを語間の順序を保持したまま飛び飛びで収集するのでも良いし、テキスト全文を収集するのでも良い。また、検索システムは、インターネットを介するのではなく、自然言語文を大規模に集積したデータベースがＬＡＮやＷＡＮで接続されたものに対して検索するのでも良い。文書ファイルの集合体の例としては、特許明細書や各種研究文献等の公開用または非公開のデータベース等を上げることができる。
【図面の簡単な説明】
【０１１１】
【図１】検索システムの全体構成の概略を示した概念図である。
【図２】既知語辞書のデータ構成の例を示した概念図である。
【図３】カテゴリ属性辞書のデータ構成の例を示した概念図である。
【図４】未知語辞書のデータ構成の例を示した概念図である。
【図５】（ａ）既知語と（ｂ）未知語の固定長ＩＤのフォーマット例を示した概念図である。
【図６】形態素ＩＤ変換部における概略処理フローを示したフローチャートである。
【図７】コーパス・索引生成部における概略処理フローを示したフローチャートである。
【図８】検索選択フローを示したフローチャートである。
【図９】関連語検索のクライアント画面例である。
【図１０】関連語検索のクライアント画面の他の例である。
【図１１】関連語検索のクライアント画面のさらに他の例である。
【図１２】関連語検索の全体フローを示したフローチャートである。
【図１３】関連語検索の部分フローを示したフローチャートである。
【図１４】関連語検索の他の部分フローを示したフローチャートである。
【図１５】関連語検索のさらに他の部分フローを示したフローチャートである。
【図１６】関連カテゴリ検索のクライアント画面の例である。
【図１７】関連カテゴリ検索の全体フローを示したフローチャートである。
【図１８】関連カテゴリ検索の部分フローを示したフローチャートである。
【図１９】関連カテゴリ検索の他の部分フローを示したフローチャートである。
【図２０】コンテキスト検索の全体フローを示したフローチャートである。
【図２１】コンテキスト検索の部分フローを示したフローチャートである。
【図１】
2005251115.tif 000006
【図２】
2005251115.tif 000007
【図３】
2005251115.tif 000008
【図４】
2005251115.tif 000009
【図５】
2005251115.tif 000010
【図６】
2005251115.tif 000011
【図７】
2005251115.tif 000012
【図８】
2005251115.tif 000013
【図９】
2005251115.tif 000014
【図１０】
2005251115.tif 000015
【図１１】
2005251115.tif 000016
【図１２】
2005251115.tif 000017
【図１３】
2005251115.tif 000018
【図１４】
2005251115.tif 000019
【図１５】
2005251115.tif 000020
【図１６】
2005251115.tif 000021
【図１７】
2005251115.tif 000022
【図１８】
2005251115.tif 000023
【図１９】
2005251115.tif 000024
【図２０】
2005251115.tif 000025
【図２１】
2005251115.tif 000026