JP5594145B2 - 検索装置、検索方法、及びプログラム - Google Patents

検索装置、検索方法、及びプログラム Download PDF

Info

Publication number
JP5594145B2
JP5594145B2 JP2010540323A JP2010540323A JP5594145B2 JP 5594145 B2 JP5594145 B2 JP 5594145B2 JP 2010540323 A JP2010540323 A JP 2010540323A JP 2010540323 A JP2010540323 A JP 2010540323A JP 5594145 B2 JP5594145 B2 JP 5594145B2
Authority
JP
Japan
Prior art keywords
word
document
frequency
area
upper limit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010540323A
Other languages
English (en)
Other versions
JPWO2010061537A1 (ja
Inventor
幸貴 楠村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010540323A priority Critical patent/JP5594145B2/ja
Publication of JPWO2010061537A1 publication Critical patent/JPWO2010061537A1/ja
Application granted granted Critical
Publication of JP5594145B2 publication Critical patent/JP5594145B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model

Description

本発明は、文書データベースに格納されている文書集合の部分集合を表すクエリを入力として、その部分集合内に多く登場するキーワードを出力する検索装置、検索方法、及びプログラムが格納された記録媒体に関する。
従来から、大量の文書の中から必要な情報を抽出するため、特徴語の検索装置の開発が行われている。特徴語の検索を最も単純に実現する方法としては、入力された文書番号のリストを元に、順番に各文書を読み込み、文書内に含まれる単語の数を数え、高頻度な語を特徴的として抽出する方法が考えられる。しかし、この文書の読み込み処理はランダムアクセスとなり、繰り返し文書データを読み込む必要があるため、検索の速度が遅いという問題がある。また、読み込む文書をサンプリングし、一部の文書だけを読み込むというアプローチも考えられるが、この方法は大きく精度が下がるという問題がある。
このような問題に対応するため、例えば、特許文献1は、文書番号をキーとして文書内に登場する単語のリストを圧縮し、この圧縮したリストを文書単語連想用データとしてメモリ上に保持した状態で検索を行う検索システムを開示している。特許文献1に開示の検索システムは、メモリ上のデータにより、入力された文書リストに含まれる単語の列を高速に参照できるので、高速に関連語を返すことができる。
また、特許文献2は、文書集合に含まれる単語の転置インデックスを頻度順に並べ替えて得られた頻度順インデックスと、この頻度順インデックスに対する問い合わせを受け付ける手段とを、構成要素として備えた検索システムを開示している。
特許文献2に開示の検索システムは、問い合わせを受けると、先ず、頻度順インデックスを上位から順に(高頻度な単語から順に)読み込む。次に、この検索システムは、各単語に対する文書番号のリストと、入力された文書リストとを比較し、入力された文書リストで特定される文書集合内での各単語の頻度を決定する。
この処理は、読み込まれた第k位の単語の頻度f(k)が、次に読まれる頻度順インデックスにおける単語の文書集合(検索対象となっている全ての文書集合)内での頻度より大きくなった時点で終了する。このように、読み込み処理は、頻度順インデックスに基づいて、毎回同じ順序で行われるため、読み込み処理のシーケンシャルアクセスが実現できる。よって、特許文献2に開示の検索システムによれば、検索の速度の向上が可能であると考えられる。
高野明彦、他著、「汎用連想計算エンジンの開発と大規模文書分析への応用」、第19回IPA技術発表会、2000年 吉田一星、宅間大介著、「対話的テキストマイニングのためのソフトウェア・アーキテクチャー」、ProVISION No.52、2007年、p.71−78
しかしながら、特許文献1に開示の検索システムには、文書単語連想用データがメモリに格納される必要があるため、メモリに格納可能な程度の文書しか扱えないという問題がある。文書の量を増大させるには、メモリの容量を大きく拡大する必要がある。
例えば、1000万個の文書に平均1000個の単語が含まれると仮定する。このとき、単語を表す識別子を平均2バイトまで圧縮したとすると、システムが動作するために必要なメモリの量は20GBとなってしまい、大きなメモリ容量が求められる。このことから、特許文献1に開示の検索システムでは、実質的に、特に大規模の文書集合を検索対象とする場合に、検索速度の向上は困難である。
また、特許文献2に開示の検索システムでは、クエリで指定された文書集合と、全体の文書集合との間で、単語の分布が大きく異なる場合に、大量の単語に対して文書番号のリストを読んだ上で、入力された文書リストとの比較を行う必要がある。このため、特許文献2に開示の検索システムによっても、検索速度の向上は不十分である。

本発明の目的は、上記問題を解消し、検索対象が大規模な文書集合であっても、文書集合に対する検索の高速化を図り得る、検索装置、検索方法及びプログラムが格納された記録媒体を提供することにある。
上記目的を達成するため、本発明における検索装置は、文書集合からその部分集合に特徴的な単語を検索する検索装置であって、
要約マトリクス記憶部と、領域上限算出部と、単語頻度算出部と、文書頻度参照部とを備え、
前記要約マトリクス記憶部は、
単語集合と文書集合との間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成され、且つ、文書集合に含まれる部分集合を表す情報が与えられた場合に、前記複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報を、要約情報として記憶し、
前記領域上限算出部は、
前記部分集合を表す情報が入力されると、前記部分集合を表す情報と前記複数の領域との関係を調べ、得られた結果から、前記複数の領域それぞれに対する前記要約情報を参照して、前記複数の領域それぞれについて、それぞれに含まれる単語の、前記部分集合に対する頻度の上限を算出し、
前記単語頻度算出部は、
前記複数の領域それぞれについての前記頻度の上限を、前記単語が共通する領域毎に和算し、得られた和算値を、前記単語が共通する領域毎の単語の頻度の上限に設定し、
前記文書頻度参照部は、
前記単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求め、更に、求めた前記検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を前記部分集合に特徴的な単語として出力する、
ことを特徴とする。
また、上記目的を達成するため、本発明における検索方法は、文書集合からその部分集合に特徴的な単語を検索するための検索方法であって、
(a)単語集合と文書集合との間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成され、且つ、文書集合に含まれる部分集合を表す情報が与えられた場合に、前記複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報を、要約情報として記憶するステップと、
(b)前記部分集合を表す情報が入力されると、前記部分集合を表す情報と前記複数の領域との関係を調べ、得られた結果から、前記複数の領域それぞれに対する前記要約情報を参照して、前記複数の領域それぞれについて、それぞれに含まれる単語の、前記部分集合に対する頻度の上限を算出するステップと、
(c)前記複数の領域それぞれについての前記頻度の上限を、前記単語が共通する領域毎に和算し、得られた和算値を、前記単語が共通する領域毎の単語の頻度の上限に設定するステップと、
(d)前記単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求め、更に、求めた前記検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を前記部分集合に特徴的な単語として出力するステップとを、有することを特徴とする。
更に、上記目的を達成するため、本発明におけるプログラムが格納された記録媒体は、文書集合からその部分集合に特徴的な単語をコンピュータに検索させるためのプログラムが格納された記録媒体であって、
前記コンピュータに、
(a)単語集合と文書集合との間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成され、且つ、文書集合に含まれる部分集合を表す情報が与えられた場合に、前記複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報を、要約情報として記憶するステップと、
(b)前記部分集合を表す情報が入力されると、前記部分集合を表す情報と前記複数の領域との関係を調べ、得られた結果から、前記複数の領域それぞれに対する前記要約情報を参照して、前記複数の領域それぞれについて、それぞれに含まれる単語の、前記部分集合に対する頻度の上限を算出するステップと、
(c)前記複数の領域それぞれについての前記頻度の上限を、前記単語が共通する領域毎に和算し、得られた和算値を、前記単語が共通する領域毎の単語の頻度の上限に設定するステップと、
(d)前記単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求め、更に、求めた前記検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を前記部分集合に特徴的な単語として出力するステップとを、実行させることを特徴とする。
以上のように本発明における検索装置、検索方法及びプログラムが格納された記録媒体によれば、検索対象が大規模な文書集合であっても、検索時に読み込まなければならないデータを絞り込むことができるため、高速に特徴語を算出することができる。
本発明における「文書」の例を示す図である。 本発明における「単語文書マトリクス」の一例を示す図である。 図2に示した単語文書マトリクスを分割した例を示す図である。 本発明の実施の形態1における検索装置の構成を示すブロック図である。 図1に示す単語文書マトリクス記憶部に記憶されているデータ構造の一例である単語テーブルを示す図である。 図1に示す単語文書マトリクス記憶部に記憶されているデータ構造の一例である単語インデックスを示す図である。 図1に示すクラスタ作成部5による出力の例である単語領域リストを示す図である。 図1に示すクラスタ作成部5による出力の例である文書領域リストを示す図である。 情報理論に基づく共クラスタリング装置による2次元クラスタリング処理を説明するためのクラスタリング前の単語文書マトリックスの状態を示す図である。 情報理論に基づく共クラスタリング装置による2次元クラスタリング処理を説明するためのクラスタリング後の単語文書マトリックスの状態を示す図である。 単語マトリクスを対角化するクラスタリング処理を説明するためのクラスタリング前の単語文書マトリックスの状態を示す図である。 単語マトリクスを対角化するクラスタリング処理を説明するためのクラスタリング後の単語文書マトリックスの状態を示す図である。 本実施の形態1における要約マトリクスの一例を示す図である。 本実施の形態1における要約マトリクスの他の例を示す図である。 本実施の形態1における領域上限マトリクスの一例を示す図である。 本実施の形態1における単語上限リストの一例を示す図である。 本発明の実施の形態1の検索方法で行われるクラスタリングプロセスでの処理を示すフロー図である。 図13に示したステップP12を具体的に示すフロー図である。 図14に示したステップP1201を詳細に示すフロー図である。 単語文書リストの一例を示す図である。 図14に示したステップP1202を詳細に示すフロー図である。 ベクトル要約作成部が作成する対応表の一例を示す図である。 本発明の実施の形態1の検索方法で行われる検索プロセスでの処理を示すフロー図である。 図19に示したステップP21の具体例の一例を示すフロー図である。 図19に示したステップP21の具体例の他の例を示すフロー図である。 図21に示したステップP2111の具体例を示すフロー図である。 図19に示したステップP23の具体例を示すフロー図である。 図23に示したステップP2303を具体的に示すフロー図である。 本発明の実施の形態2における検索装置の構成を示すブロック図である。 本発明の実施の形態2の検索方法で行われる検索プロセスでの処理を示すフロー図である。 実施例2において得られる単語上限リストの例を示す図である。 実施例2において得られる単語上限リストの例を示す図である。
最初に、本発明における実施の形態について説明する前に、本明細書において本発明を説明するために用いる語彙を図1〜図3を用いて定義する。先ず、本発明では、「文書」は、少なくとも、文字列で構成される本文と、当該文書を識別する識別子(例えば、任意の整数値等が挙げられる。以下、「文書番号」とする)とを有する情報として定義される。図1は、本発明における「文書」の例を示す図である。図1の例では、7つの文書についての文書番号と本文とが示されている。
また、本発明では、「単語」は、形態素解析やNグラム(文字列をN文字ごとに区切る)など何らかの基準に従って、文書中の本文から切り出された文字列として定義される。なお、「単語」には、本文中に現れる語(例えば「りんご」や「ガソリン」等)だけでなく、形態素解析や意味分析によって、文書に内に含まれると認識された意味に関する語や句(例、「果実」や「燃料」)などを含めても良い。
更に、本発明では、「文書」と「単語」との間の共起関係を表現した行列が、「単語文書マトリックス」として定義される。図2は、本発明における「単語文書マトリクス」の一例を示す図である。図2では、図1で示した7つの文書に対する「単語文書マトリクス」が黒線の枠内に示されている。
図2の単語文書マトリクスは、文書集合内に登場する単語を各行で表現し、各文書を各列で表現している。各行は、該当の単語が各文書内に登場するかどうか(登場する場合を1、登場しない場合を0とする)を示している。例えば、1行目の「容疑」という単語は、文書1、文書3、文書5、文書7に登場する。また、2行目の「ガソリン」という単語は、文書2、文書3、文書4、文書6に登場する。
さらに、単語の文書集合内の「頻度」を、この文書集合内において、当該単語が含まれる文書の数として定義する。例えば、単語「ガソリン」の図1で示した7つの文書の文書集合における「頻度」は、4となる。また、以降の説明では、「頻度」が高い単語に対して、高頻度な単語あるいは高頻度語という表現を用いることがある。
本発明における検索装置は、ある文書の集合(文書集合)Dallを検索対象とし、更に、少なくとも文書集合Dallの部分集合(文書集合D)を表現する情報、例えば、文書番号のリスト(以下、入力文書リスト)を入力とする。そして、本発明における検索装置は、文書集合Dに登場する単語集合Wの中から、文書集合D内での頻度の高い上位k個の単語のリストを出力する。このような検索装置は、連想検索エンジンとも呼ばれる。また、このような検索装置は、テキストマイニングシステムや検索エンジンにおいて、あるクエリで表現される文書集合と関係が深い概念を表す高頻度な語を検索するために役立つ。
ここで、更に、単語文書マトリクスにおける「領域」、「単語領域」、「文書領域」を、図3を用いて定義する。図3は、図2に示した単語文書マトリクスを分割した例を示す図である。図3には、図1に示した文書集合に対する単語文書マトリックスが点線により4つの部分に分割された例が示されている。
「領域」とは、単語文書マトリックス内において、文書集合を複数の部分集合に分類し、単語集合を複数の部分集合に分類することによって、縦横方向に分割して得られた、単語文書マトリックスの一部を意味する。なお、以下の説明では、単語文書マトリックスWD内の単語領域数をm、文書領域数をnとする。また、領域の集合をCとし、各領域をC[i][j]{0≦i<m、0≦j<n}として表現することがある。図3の例では、単語文書マトリックスは、C[0][0]、C[0][1]、C[1][0]、C[1][1]の4つの領域に分割されている。
「単語領域」とは、単語文書マトリックスを単語集合のみを複数の部分集合に分類することによって生成される、単語文書マトリックスの一部を意味する。なお、以下の説明では、ある単語文書マトリックスに対する単語領域の集合をWCとし、各単語領域をWC[i]{0≦i<m}として表現することがある。図3の例では、C[0][0]とC[0][1]から成る単語領域をWC[0]、C[1][0]とC[1][1]から成る単語領域をWC[1]と表現できる。
「文書領域」とは、単語文書マトリックスを文書集合のみを複数の部分集合に分類することによって生成される、単語文書マトリックスの一部を意味する。なお、以下の説明では、文書領域の集合をDCとし、各文書領域をDC[j]{0≦j<n}として表現することがある。例えば、図3の例では、C[0][0]とC[1][0]から成る文書領域をDC[0]、C[0][1]とC[1][1]から成る文書領域をDC[1]と定義することができる。
更に、「領域」、「単語領域」、「文書領域」に関する文書頻度を表現した語彙として、「領域頻度」、「静的領域頻度」、及び「動的領域頻度」を以下のように定義する。ある文書集合における単語Wの領域C[i][j]に対する「領域頻度」を、領域C[i][j]内で単語Wが登場する文書の数として定義する。例えば、図3の例では、単語「ガソリン」に対する領域C[1][0]内の領域頻度は1、領域C[1][1]内の領域頻度は3となる。
また、単語Wの単語領域WC[i]における「領域頻度」も同様に、単語領域WC[i]内で単語Wが登場する文書の数として定義する。さらに、単語Wの文書領域DC[j]における「領域頻度」も同様に、文書領域DC[j]内で単語Wが登場する文書の数として定義する。そして、関連語検索装置内の、全体文書集合Dallにおける単語Wの領域C[i][j]に対する領域頻度を「静的領域頻度」、入力される文書集合Dにおける単語Wの領域C[i][j]に対する領域頻度を動的領域頻度と呼ぶ。
(実施の形態1)
以下、本発明の実施の形態1における検索装置、検索方法及びプログラムについて、図4〜図24を参照しながら説明する。最初に、本実施の形態1における検索装置の構成について図4〜図12を用いて説明する。図4は、本発明の実施の形態1における検索装置の構成を示すブロック図である。
図4に示すように、本実施の形態1における検索装置は、要約マトリクス記憶部1と、領域上限算出部2と、単語頻度算出部3と、文書頻度参照部4とを備え、これらによって、文書集合からその部分集合に特徴的な単語を検索する。
要約マトリクス記憶部1は、要約情報を記憶している。要約情報は、単語集合Wallと文書集合Dallとの間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成されている。また、要約情報は、文書集合Dallに含まれる部分集合Dを表す情報が与えられた場合に、複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報である。
領域上限算出部2は、文書集合Dallに含まれる部分集合Dを表す情報が入力されると、部分集合Dを表す情報と複数の領域との関係を調べる。そして、領域上限算出部2は、得られた結果から、複数の領域それぞれに対する要約情報を参照して、複数の領域それぞれについて、それぞれに含まれる単語の、部分集合Dに対する頻度の上限を算出する。
単語頻度算出部3は、複数の領域それぞれについての頻度の上限を、単語が共通する領域毎に和算し、得られた和算値を、単語が共通する領域毎の単語の頻度の上限に設定する。文書頻度参照部4は、単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求める。そして、文書頻度参照部4は、求めた検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を部分集合Dに特徴的な単語として出力する。
なお、共起関係を表現するマトリクスとしては、図2に示した単語文書マトリクスが挙げられる。各領域としては、図3に示した領域C[i][j]が挙げられる。また、単語が共通する領域としては、上述した「単語領域」が挙げられる。単語の文書集合内の「頻度」は、上述したように、この文書集合内において、当該単語が含まれる文書の数である。また、文書集合Dallに含まれる部分集合Dを表す情報としては、上述した入力文書リストが挙げられる。
このように、本実施の形態1における検索装置は、検索時に、入力文書リストと、単語文書マトリックス内の領域ごとに作成された要約情報とを用いて、各領域に含まれる単語の頻度の上限を判定する。更に、検索装置は、頻度の上限を単語領域ごとにまとめることにより、検索対象となる領域、即ち、読み込むべき単語の領域を決定する。このため、本実施の形態1における検索装置によれば、無駄な単語領域に対する読み込み処理を避けることができ、検索の高速化が達成される。
ここで、本実施の形態1における検索装置について更に具体的に説明する。図1に示すように、本実施の形態1においては、検索装置は、更に、クラスタ作成部5と、領域要約作成部6と、単語文書マトリクス記憶部7とを備えている。
単語文書マトリックス記憶部7は、文書集合Dallから抽出した単語のリストと、単語文書マトリックス又はこれと意味的に同等の情報を保持する任意のデータ構造とを備えるデータベースである。図5Aは、図1に示す単語文書マトリクス記憶部に記憶されているデータ構造の一例を示す図である。図5Bには、転置インデックスと呼ばれるデータ構造が示されている。転置インデックスは、単語テーブルと単語インデックスとを備えている。単語テーブルは、単語と単語とを識別するための識別子(単語毎に付された単語番号)が対応する単語と共に特定されているテーブルである。単語インデックスは、単語番号をキーとして、単語番号で指定される単語を含む文書の文書番号が特定されているインデックスである。
クラスタ作成部5は、単語文書マトリクス記憶部7に記憶されている単語文書マトリクス(本実施の形態1では図5A及び図5Bに示す単語テーブルと単語インデックス)を入力として、文書と単語に対する2次元クラスタリング処理を実行する。このクラスタリング処理により、単語文書マトリクス内の文書の集合は複数の文書領域に分割され、単語文書マトリクス内の単語の集合は複数の単語領域に分割される。
また、クラスタ作成部5は、2次元クラスタリング処理の終了後、各文書が含まれる文書領域を表す識別子(文書領域番号)を、領域上限算出部2と領域要約作成部6とに出力する。更に、クラスタ作成部5は、各単語が含まれる単語領域を表す識別子(単語領域番号)を、文書頻度参照部4と領域要約作成部6とに出力する。
クラスタ作成部5による2次元クラスタリング処理は、少なくとも単語文書マトリックスを入力として受け付け、この単語文書マトリックス内の単語と文書の共起情報を元に行われる。また、本実施の形態1では、単語の集合を複数の単語領域に分割するクラスタリング処理と、文書の集合を複数の文書領域に分割するクラスタリング処理とが行われる。このような2次元クラスタリング処理により、各単語に対しその単語がどの単語領域に入るかを意味する識別子(単語領域番号)の列と、各文書に対しその文書がどの文書領域に入るかを意味する識別子(文書領域番号)の列とが出力される。
なお、「クラスタリング処理」とは、ある対象物の集合を複数の部分集合(「クラスタ」と呼ぶ)に分割する処理である。クラスタリング処理では、類似する対象物同士が同じクラスタに入るように、また、異なる対象物同士が異なるクラスタに入るようにクラスタが生成される。
図6A及び図6Bは、図1に示すクラスタ作成部5による出力の例を示す図であり、図6Aは単語領域リストを示し、図6Bは文書領域リストを示している。図6Aに示す単語領域リストは、各単語番号と単語領域番号との関係を表すテーブルである。これは単語番号で指定される単語が、どの単語領域に入るかを単語領域番号で示している。例えば、2行目の単語番号「2」は単語「ガソリン」(図5A参照)を意味し、「ガソリン」という単語は単語領域が「1」つまりDC[1]に入ることを意味する。
また、図6Bに示す文書領域リストは、各文書番号と文書領域番号との関係を表すテーブルである。これは文書番号で指定される文書が、どの文書領域に入るかを文書領域番号で示している。
また、本実施の形態1においては、クラスタ作成部5は、具体的には、2次元クラスタリング処理を実現する以下のいずれかの装置を備えることができる。2次元クラスタリング処理を実現するクラスタリング装置としては、情報理論に基づく共クラスタリング装置(関連技術1参照)や、Non-Negative Matrix Factorization(以下、「NMF」)を用いたクラスタリング装置(関連技術2参照)、PLSAを用いたクラスタリング装置(関連技術3参照)が挙げられる。
[関連技術1]I. S. Dhillon, S. Mallela and D. S. Modha著「Information-theoretic co-clustering」、In Proceedings of ACM SIGKDD International Conference on pages 89--98、 2003.
[関連技術2]W.Xu, X.Liu and Y.Gong著「Document clustering based on non-negative matrix factorization」、In Proceedings of ACM SIGIR International Conference on pages 267-273、 2003.
[関連技術3]T.Hofmann著「Probabilistic Latent Semantic Analysis」、In Proceedings of Conference on Uncertainty in Artificial Intelligence on pages 289-296、 1999.
上述の「情報理論に基づく共クラスタリング装置」は、単語文書マトリックスに加え、作成する単語領域の数と、作成する文書領域の数とを更に入力とする。この装置によるクラスタリング処理は、クラスタリング処理を行う前における単語と文書との間の相互情報量と、クラスタリング処理を行った後の単語と文書との間の相互情報量との差が最小化するように、単語と文書とを分類する。この特徴により、単語領域と文書領域とで単語文書マトリックスを分割すると、相関性が高く1が多く含まれる高密度な領域と、相関性が低く0(ゼロ)ばかりが含まれる低密度な領域とが生成される。
情報理論に基づく共クラスタリング装置による処理の結果を、図7A及び図7Bを用いて、より直感的に説明する。図7A及び図7Bは、情報理論に基づく共クラスタリング装置による2次元クラスタリング処理を説明する図であり、図7Aはクラスタリング前の単語文書マトリックスの状態を示し、図7Bはクラスタリング後の単語文書マトリックスの状態を示している。
なお、図7Aの例では、作成する単語領域の数と、作成する文書領域の数とは、それぞれ4に設定されている。また、各領域における濃淡の程度は、「1」が含まれる割合を示している。また、クラスタリング前の単語文書マトリックスでは、単語と文書とが均等に分散しており、「1」となる箇所は、マトリックス内に均等に分布している。
図7Bに示すクラスタリング後の単語文書マトリックスは、クラスタリング前の単語文書マトリックス内の単語と文書とをそれぞれ、クラスタリング装置によって割り当てられた単語領域番号毎、及び文書領域番号毎に並べ直して得られている。また、クラスタリング後の単語文書マトリックスは、高密度な領域と低密度な領域とを有しており、よって、ある文書集合が決まると、その文書集合と相関性の高い単語の集合がどの単語領域に含まれるかが明確となる。
「NMF」を用いたクラスタリング装置、及び「PLSA」を用いたクラスタリング装置では、単語文書マトリックスと、作成するクラスタの数Kとを入力として、クラスタリング処理が行われる。これら二つのクラスタリング装置は、単語と文書との両方を概念の集合として捉え、各単語と各文書とのそれぞれをK個の概念に分類する。よって、単語に対して割り当てられた概念のクラスタを単語領域と捉え、文書に対して割り当てられた概念のクラスタを文書領域として捉えると、これら二つのクラスタリング装置で行われる処理も2次元クラスタリングとして捉えることができる。
なお、上述した各クラスタリング装置で行われるクラスタリング処理は、単語と文書とを同じ概念のクラスタ集合に分割することを目的としており、単語文書マトリックスを対角化するように、領域の集合を生成するのが好ましい。この処理結果をより直感的に説明するために図8A及び図8Bを用いる。
図8A及び図8Bは、単語マトリクスを対角化するクラスタリング処理を説明する図であり、図7A及び図7Bと同様、図8Aは、クラスタリング前の単語文書マトリックスの状態を示し、図8Bは、クラスタリング後の単語文書マトリックスの状態を示している。また、各領域における濃淡の程度は、「1」が含まれる割合を示している。単語マトリクスを対角化するクラスタリング処理では、単語と文書とで分類先のクラスタを共有するため、単語文書マトリックスは、対角化されるように(濃い領域が対角線上に並ぶように)分割される。
本実施の形態1ではこのように、単語文書マトリクスに対して、類似する概念を持つ単語と文書とを同じ領域にまとめるように処理が行われ、単語と文書とを分割する任意の処理は2次元クラスタリング処理として捉えられる。
領域要約作成部6は、クラスタ作成部5のクラスタリング処理による分割によって生成された複数の領域から、要約情報を作成し、これを要約マトリクス記憶部1に記憶させる。本実施の形態1では、要約情報は、入力文書リストが与えられた際に各領域内の単語の動的領域頻度の上限を算出するための情報であり、要約マトリクスと呼ばれるものである。また、本実施の形態1では、領域要約作成部6は、クラスタ作成部5から出力された単語領域リストと文書領域リストとから、単語文書マトリックス記憶部7内の単語インデックスを参照し、要約マトリクスを作成する。領域要約作成部6は、例えば、図9に示す要約マトリクス、又は図10に示す要約マトリクスを作成することができる。
図9は、本実施の形態1における要約マトリクスの一例を示す図である。図9の例では、4×4で分割された単語文書マトリックスの各領域に対して、動的領域頻度の上限を算出するための情報として、各領域内の単語の静的領域頻度の最大値が特定されている。
図9に示すように、例えば、この要約マトリックスの一行目は、「48、1、0、7」となっている。これは、単語領域WC[0]に含まれる単語が、文書領域DC[0]では最大48文書に存在し、文書領域DC[1]では最大1文書に存在し、DC[2]では最大0文書、つまり一文書も存在せず、文書領域DC[3]では最大7文書に存在することを意味している。
また、図10は、本実施の形態1における要約マトリクスの他の例を示す図である。図10の例では、4×4で分割された単語文書マトリックスの各領域に対して、動的領域頻度の上限を算出するための要約情報として、各領域内において単語が文書に登場しているかどうかを示すビット列が特定されている。
図10に示すように、例えば、領域C[0][0]については{1、1、1、1・・・}というビット列が特定されている。このビット列は、単語領域WC[0]内の単語は、文書領域DC[0]内の少なくとも1番目、2番目、3番目、4番目の文書に登場する可能性があることを意味している。また、領域C[1][0]については{0、1、0、0・・・}というビット列が特定されている。このビット列は、単語領域WC[1]内の単語は、文書領域DC[0]内の少なくとも2番目の文書に登場する可能性があることを意味している。
ここで、図9に示す要約マトリクスを作成する領域要約作成部6の具体例について説明する。特に、図9に示す要約マトリクスを作成する領域要約作成部6については、「最大値要約作成部」と称する。最大値要約作成部6は、クラスタリング処理による分割によって生成された複数の領域それぞれについて、少なくとも、各領域内に含まれる単語の当該領域における頻度(静的領域頻度)を求める。更に、最大値要約作成部6は、求めた静的領域頻度の最大値を特定する。具体的は、最大値要約作成部6は、クラスタ作成部5が入力した単語領域リストと文書領域リストとを用いる。更に、最大値要約作成部6は、各領域に対応する単語文書マトリックスの部分を単語文書マトリックス記憶部7から読み込み、単語の静的領域頻度の最大値(図9参照)を算出する。
また、図10に示す要約マトリクスを作成する領域要約作成部6の具体例について説明する。特に、図10に示す要約マトリクスを作成する領域要約作成部6については、「ベクトル要約作成部」と称する。ベクトル要約作成部6は、クラスタリング処理による分割によって生成された複数の領域それぞれについて、少なくとも、各領域内の文書において当該領域内の単語が含まれるか否かを表すビット列を求める。具体的には、ベクトル要約作成部6は、クラスタ作成部5が入力した単語領域リストと文書領域リストを用いる。更に、ベクトル要約作成部6は、各領域に対応する単語文書マトリクスの部分を単語文書マトリックス記憶部7から読み込み、領域内の各文書が領域内のいずれかの単語を含むかどうかを調べる。そして、ベクトル要約作成部6は、調べた結果から、領域内の文書数と同じ長さのビット列(図10参照)を作成する。
このようにして、最大値要約作成部及びベクトル要約作成部によって作成された要約マトリクスは、要約マトリックス記憶部1に記憶される。その後、領域上限算出部2、単語頻度算出部3、及び文書頻度参照部4による検索処理に利用される。
領域上限算出部2は、本実施の形態1では、ユーザが操作する入力装置や、外部のモジュールから少なくとも入力文書リストが検索装置に入力されると、呼び出される。そして、領域上限算出部2は、入力文書リストと、クラスタ作成部5から渡された文書領域リストと、要約マトリックス内の情報とを参照し、単語文書マトリックスの各領域に含まれる単語の動的領域頻度の上限を算出する。更に、領域上限算出部2は、算出した上限から領域上限マトリクスを生成し、これと単語領域リストとを単語頻度算出部3に出力する。
ここで、「領域上限マトリクス」とは、単語文書マトリクス内の各領域における、動的領域頻度の上限値を行列化して得られたものである。図11は、本実施の形態1における領域上限マトリクスの一例を示す図である。図11の例では、例えば、領域C[0][0]における値は「19」となっている。これは、単語領域WC[0]に含まれる単語は、入力文書リスト内の文書領域[0]の文書集合において、たかだか19回しか登場しないことを意味する。
具体的には、領域上限算出部2は、先ず、入力文書リストと文書領域リスト(図6B)との間で比較を行い、入力文書リスト内の文書がそれぞれどの文書領域に入るかを調べる。そして、領域上限算出部2は、文書領域毎に、当該領域に含まれている、入力文書リスト内の文書の数をカウントする(文書入力数)。次に、領域上限算出部2は、各領域に対し、図9に示した要約マトリクスを参照し、各領域内の単語の静的領域頻度の最大値を求める。そして、領域上限算出部2は、各領域について、静的領域頻度の最大値と文書入力数とを比較し、小さい方を上限として算出する。
また、領域上限算出部2は、入力文書リストと文書領域リストとの間で比較を行い、入力文書リスト内の文書がそれぞれどの文書領域に入るかを調べた後に、文書領域毎に、入力文書リスト内の文書が含まれているか否かを表すビット列(入力ビット列)を作成することもできる。この場合、領域上限算出部2は、各領域について、図10に示した要約マトリクスを参照し、作成したビット列と、要約マトリクスのビット列とのAND演算を行い、その結果得られたビット列の「1」の数を上限として算出する。
単語頻度算出部3は、本実施の形態1では、領域上限算出部2が出力した、領域上限マトリクスを単語領域ごとに和算し、単語領域ごとの和算値を単語上限リストとして出力する。例えば、図11に示した領域上限マトリクスを入力とし、これを横方向に(単語領域毎に)和算すると、図12に示す単語上限リストが得られる。図12は、本実施の形態1における単語上限リストの一例を示す図である。
このように、単語上限リストは、文書領域リストと入力文書リストとから、各単語領域に対して、動的領域頻度の上限値を算出することによって求められている。図12に示された単語上限リストは、ある入力文書リストに対して算出された単語領域毎の動的領域頻度の上限値を示している。具体的には、図12においては、例えば、単語領域WC[0]において、上限値は「27」となっている。これは単語領域WC[0]内の単語は、入力文書内において、たかだか27回しか登場しないことを意味する。
文書頻度参照部4は、本実施の形態1では、単語頻度算出部3が出力した単語上限リストと、クラスタ作成部5が出力した単語領域リストとが入力されると、単語上限リストを元に単語領域の絞り込みを行う。更に、文書頻度参照部4は、単語領域リストを元に各単語領域内の単語とその文書リストとを参照し、頻度(文書頻度)の高い上位k個の単語を特定し、これを出力する。なお、文書頻度参照部4は、ある単語領域内の単語とその文書リストとを参照する手段であり、本実施の形態1では、文書頻度参照部4として、他の手段を用いることもできる。
次に、本発明の実施の形態1における検索方法について図13〜図24を用いて説明する。本実施の形態1における検索方法は、図4に示した本実施の形態1における検索装置を動作させることによって実施される。このため、以下の説明においては、適宜図4〜図12を参酌し、本実施の形態1における検索装置の動作についても説明する。
また、本実施の形態1における検索方法では、主に、クラスタリングプロセスP10と、検索プロセスP20との2つのプロセスが実行される。このうち、クラスタリングプロセスは、クラスタ作成部5と領域要約作成部6とによって行われる。検索プロセスP20は、領域上限算出部2、単語頻度算出部3及び文書頻度参照部4によって行われる。本実施の形態1においては、クラスタリングプロセスP10と検索プロセスP20とは、連続して行われても良いし、別々に行われても良い。以下ではこれらを順に説明する。
最初に、図13を用いて、クラスタリングプロセスP10について説明する。図13は、本発明の実施の形態1の検索方法で行われるクラスタリングプロセスでの処理を示すフロー図である。クラスタリングプロセスP10は、検索装置の管理者(ユーザ)、又は外部のモジュールによって起動される。
図13に示すように、クラスタリングプロセスP10が開始されると、先ず、クラスタ作成部5は、単語文書マトリックス記憶部7内に記憶されている単語文書マトリックスを読み込み、2次元クラスタリング処理を行う(ステップP11)。これにより、単語領域リスト(図6A参照)と文書領域リスト(図6B参照)とが、領域要約作成部6に、出力される。また、少なくとも文書領域リストが、領域上限算出部2に出力される。また、ステップP11において、クラスタ作成部5は、単語領域リストを、文書頻度参照部4に出力しても良い。
次に、領域要約作成部6は、クラスタ作成部5から渡された単語領域リストと文書領域リストとを用いる。更に、領域要約作成部6は、単語文書マトリックス記憶部7を参照し、各領域に対する要約マトリクス(図9又は図10参照)を作成し、これを要約マトリックス記憶部1に記憶させる(ステップP12)。ステップP12の実行後、クラスタリングプロセスP10は終了する。
ここで、図14を用いてステップP12を更に具体的に説明する。図14は、図13に示したステップP12を具体的に示すフロー図である。図14に示すように、ステップP12においては、入力された単語領域リストと文書領域リストとを元に作成される領域C[i][j](0≦i<m、0≦j<n)、それぞれに対して、次のステップP1201からP1203までが実行される。
まず、領域要約作成部6は、単語文書マトリックス記憶部7内から、領域C[i][j]に対応する単語文書マトリックスの部分のみを抽出する(ステップP1201)。次に、領域要約作成部6は、ステップP1201で抽出された部分について、要約マトリクス(要約情報)を作成する(ステップP1202)。そして領域要約作成部6は、P1202で作成された要約マトリクスを、要約マトリックス記憶部1内の領域C[i][j]に対応する領域に記憶させる(P1203)。
また、図15を用いて、図14に示したステップP1201を更に具体的に説明する。図15は、図14に示したステップP1201を詳細に示すフロー図である。ステップP1201は、単語領域番号iと文書領域番号jとを入力として、単語文書マトリックス記憶部7を参照することで、領域C[i][j]に対応する単語文書マトリックスの部分を単語文書リストとして出力する処理である。
図15に示すように、領域要約作成部6は、先ず、出力用の単語文書リストを空の状態で作成する(P12010)。言い換えると、領域要約作成部6は、出力用の単語リストを初期化する。
次に、領域要約作成部6は、単語領域リスト内から単語領域番号がiと等しい単語番号のリストを抽出する(ステップP12011)。続いて、領域要約作成部6は取り出した単語番号のリスト内の各単語番号sに対して、下記のステップP12012からP12015の処理を行う。
具体的には、領域要約作成部6は、単語毎に、単語文書マトリックス記憶部7内の単語インデックスを参照し、文書リストを読み出す(ステップP12012)。次いで、領域要約作成部6は、ステップP12012で読み出した文書リストと文書領域リストとを比較し、文書領域番号=jとなる文書番号のセットを抽出する(P12013)。次に、領域要約作成部6は、単語番号sと、P12013で抽出した文書番号のセットとを、単語文書リストに追加する(ステップP12014)。
その後、領域要約作成部6は、ステップP12011で抽出した全ての単語に対して処理が終了したかどうか判定する(ステップP12015)。判定の結果、終了していない場合は、領域要約作成部6は、再度ステップP12012〜P12014を実行する。一方、終了している場合は、領域要約作成部6は、処理を終了する。
なお、「単語文書リスト」とは、領域C[i][j]内の単語の単語番号と、その単語が登場する領域C[i][j]内の文書の文書番号のリスト(領域内文書リスト)とから成る情報である。図16は、単語文書リストの一例を示す図である。図16の例では、単語領域WC[0]に単語番号1、3、5の単語が含まれ、文書領域DC[0]に文書番号1、2、3、4の文書が含まれることを前提とし、領域C[0][0]に対して作成された単語文書リストが示されている。
また、図14に示したステップP1202について具体的に説明する。先ず、領域要約作成部6が、最大値要約作成部として機能する場合について説明する。この場合、ステップP1202では、最大値要約作成部が、P1201で出力された単語文書リストを元に、各単語番号に対する領域内文書リストを調べ、領域内文書リスト内に含まれる文書番号の数(即ち、静的領域頻度)を算出し、その最大値を出力する。
つぎに、領域要約作成部6が、ベクトル要約作成部として機能する場合について説明する。図17は、図14に示したステップP1202を詳細に示すフロー図である。図17に示すP1202では、ベクトル要約作成部が、各領域C[i][j]に対して、P12021からP12024までのステップを行い、作成されたビット列Bを出力する。
なお、この各領域C[i][j]に対して作成されるビット列Bは、次の意味を持つ。ビット列B内の各要素は領域C[i][j]内の各文書に対応し、各要素の値はその文書が、同領域C[i][j]内の単語を1個以上保有する可能性がある(「1」)か、否か(「0」)を意味する。
P12021からP12024の各ステップについて説明する。先ず、ベクトル要約作成部(領域要約作成部6)は、文書領域リストから文書領域番号=jとなる文書番号のリストTempを取り出す。更に、ベクトル要約作成部は、リストTemp内の文書番号をソートし、これによって対応表を作成する(ステップP12021)。対応表とは、文書領域DC[j]内の各文書が、文書領域DC[j]内では何番目にあたるかを意味する表である。
図18は、ベクトル要約作成部が作成する対応表の一例を示す図である。図18に示すように、例えば、文書番号「1」の文書は1番目の要素であることが示されている。また、文書番号「10」の文書は5番目の要素であることがわかる。
次に、ベクトル要約作成部は、対応表と長さが等しく、すべての要素が「0(ゼロ)」となったベクトルVを作成する(P12022)。更に、ベクトル要約作成部は、対応表内の各文書番号qの位置が「r」である場合に、文書番号qが単語文書リスト内に何回登場するかを数えた上で、ベクトルV内の「r」番目に、数えられた値を保存する(P12023)。これにより、ベクトルVは領域C[i][j]内の各文書に対し、「1」が何回登場しているかを表すベクトルとなる。
最後に、ベクトル要約作成部は、ベクトルV内の「1」以上の値をすべて「1」に変換し、それ以外を「0(ゼロ)」としたビット列Bを作成し(ステップP12024)、処理を終了する。なお、ステップP12024では、ベクトルVに対して、「1以上の値をすべて「1」に変換し、それ以外を「0」とする」という処理が行われるが、代わりに、下記のステップP12024'が行われても良い。
ステップP12024'においては、ベクトルVが有する値のうち閾値α以上である値は全て「1」に変換され、それ以外は「0」とされて、ビット列が作成される。なお、閾値αは、予め、検索装置の管理者によって設定されるものとする。ステップP12024'によって作成されるビット列Bの各要素の値は、その文書が同領域C[i][j]内の単語を保有する可能性が高い(「1」)か、否か(「0」)を意味している。
次に、図19を用いて、検索プロセスP20について説明する。図19は、本発明の実施の形態1の検索方法で行われる検索プロセスでの処理を示すフロー図である。検索プロセスP20は、ユーザ又は外部のプログラム(モジュール)が入力文書リストを領域上限算出部2に入力することによって開始される。
検索プロセスP20が開始されると、先ず、領域上限算出部2は、各領域に対して動的領域頻度の上限を算出し、領域上限マトリックスを出力する(ステップP21)。次に、単語頻度算出部3は、領域上限マトリックスを単語領域方向に和算し、単語上限リストを出力する(ステップP22)。
最後に、文書頻度参照部4は、単語上限リストを入力として、単語文書マトリクス記憶部7を参照する。更に、文書頻度参照部4は、単語領域に対して絞り込みを行いながら文書リストを参照して、入力文書リストに対して高頻度な上位k個の単語を出力する(ステップP23)。具体的には、ステップP23では、文書頻度算出部4は、各単語の頻度(文書頻度)を参照しながら、入力文書において特徴的な単語を特定している。ステップP23の実行後、検索プロセスP20における処理は終了する。
次に、ステップP21〜P23それぞれについて、図20〜図24を用いて詳細に説明する。先ずステップP21について図20及び図21を用いて説明する。ステップP21は、領域上限算出部2が、入力文書リストを入力とし、領域上限マトリックスCMax[i][j]{0≦i<m、0≦j<n}を出力するプロセスである。このプロセスの一例として、図9に示した要約マトリクスを参照する領域上限算出部2が実行するプロセス(P210)について、図20を用いて説明する。図20は、図19に示したステップP21の具体例の一例を示すフロー図である。
図20に示すように、先ず、領域上限算出部2が、入力文書リスト内の文書番号を元に、クラスタ作成部5が出力した文書領域リストを調べ、各文書領域DC[j]に何個の文書が含まれるかをカウントする(ステップP2101)。なお、この出力(カウントされた値)をDCF[j]{0≦j<n}として、定義する。DCF[j]は入力文書リスト内の文書のうち、文書領域DC[j]に含まれる文書の数を意味する。
次に、領域上限算出部2は、単語文書マトリックスの各領域に対して、要約マトリクス記憶部1を参照し、ステップP2102〜P2105を実行する。具体的には、領域上限算出部2は、各領域C[i][j]{0≦i<m、0≦j<n}に対して、要約マトリクス記憶部1を参照し、単語の静的領域頻度の最大値を抽出する(P2102)。なお、この領域C[i][j]に対する単語の静的領域頻度の最大値をsMaxとする。
更に、領域上限算出部2は、sMaxとDCF[j]との大小関係を比較する(P2103)。比較の結果、sMax>DCF[j]が成立すれば、領域上限算出部2は、CMax[i][j]にDCF[j]を代入する(P2104)。これは、入力文書リスト内に、領域C[i][j]の文書(文書領域DC[j]の文書)がDCF[j]個しかないのであれば、領域内にDCF[j]回より多く登場する単語が存在するはずがないためである。
一方、比較の結果、sMax>DCF[j]が成立しなければ、CMax[i][j]にsMaxを代入する(P2105)。これは、領域C[i][j]内の単語の静的領域頻度がたかだかsMax回であれば、領域内にsMax回以上登場する単語が存在するはずがないためである。
その後、領域上限算出部2は、全ての領域についてステップP2102〜P2105の処理が終了したかどうかを判定する(ステップP2106)。領域上限算出部2は、判定の結果、終了していない場合は、再度ステップP2102〜P2105を実行し、終了している場合は、処理を終了する。
また、ステップP21の別の例として、図10に示した要約マトリクスを参照する領域上限算出部2が実行するプロセス(P211)について、図21を用いて説明する。図21は、図19に示したステップP21の具体例の他の例を示すフロー図である。
図21に示すように、先ず、領域上限算出部2が、入力文書リスト内の文書番号を元に、クラスタ作成部5が出力した文書領域リストを調べ、各文書領域DC[j]毎にn個のビット列を作成する(P2111)。このn個のビット列は、動的ビット列DCB[j]{0≦j<n}と定義する。
動的ビット列DCB[j]は、文書領域DC[j]に含まれる文書の数を長さとし、その各要素は、文書領域DC[j]内の各文書が入力文書リストに含まれる可能性があるか(「1」)、否か(「0」)の2値を表している。
次に、領域上限算出部2は、各領域C[i][j]に対して、プロセスP2112〜P2113を実行する。具体的には、領域上限算出部2は各領域C[i][j]{0≦i<m、0≦j<n}毎に、要約マトリックス記憶部1を参照し、要約マトリクス記憶部1内に記憶されているビット列Bを抽出する(ステップP2112)。
次に、領域上限算出部2は、ビット列Bと動的ビット列DCB[j]との二つビット列をAND演算し、演算その結果が「1」となったビットの数をCMax[i][j]に代入する(ステップP2113)。このステップにより、領域C[i][j]内で、ビット列Bが意味する、単語領域WC[i]に単語を含む可能性のある文書の集合と、DCB[j]が意味する、入力文書リストに含まれる文書の集合との、論理積が取られることとなる。このことは、対象の領域内の単語の動的領域頻度の上限が見積もられていることを意味する。
その後、領域上限算出部2は、全ての領域についてステップP2112〜P2113の処理が終了したかどうかを判定する(ステップP2114)。領域上限算出部2は、判定の結果、終了していない場合は、再度ステップP2112〜P2113を実行し、終了している場合は、処理を終了する。
さらに、図22を用いて、図21に示したプロセスP2111について詳細に説明する。図22は、図21に示したステップP2111の具体例を示すフロー図である。ステップP2111は、上述したように、領域上限算出部2が、入力文書リストと、文書領域リストとを入力として、動的ビット列DCB[j]{0≦j<n}を出力するステップである。このステップでは、領域上限算出部2が、各文書領域DC[j]{0≦j<n}に対し、P21111からP21114のプロセスを実行して、ビット列DCB[j]を作成し、これを出力する。
具体的には、図22に示すように、領域上限算出部2は、先ず、単語領域リストから文書領域番号=jとなる文書番号のリストを取り出す。更に、領域上限算出部2は、リスト内の文書番号を小さい順にソートし、これによって対応表を作成する(ステップP21111)。この対応表は、図17に示したステップP12021において、領域ごとに作成される対応表と同じものである。このため、予めベクトル要約作成部(領域要約作成部6)が作成した対応表が文書領域ごとに保持され、領域上限算出部2が、これを使用できる態様であっても良い。
次に、領域上限算出部2は、対応表と長さの等しいビット列DCB[j]を作成する(ステップP21112)。更に、領域上限算出部2は、入力文書リスト内の各文書番号に対し、文書領域リストを参照し、文書領域番号=jとなっている文書番号だけを抽出する(ステップP21113)。
最後に、領域上限算出部2は、ステップP21113で得た各文書番号に基づいて、対応表を参照して、位置rを調べ、ビット列DCB[j]内のr番目のビットを「1」に変更する(ステップP21114)。ステップP21114の実行後、処理が終了する。なお、ステップP21111とステップP21112とにおいては、処理に入力文書リストが必要とされていない。このため、検索プロセスP20が呼び出される以前に、これらのステップは、任意のタイミングで予め実行されていても良い。
次に、図19に示したステップP22について詳細に説明する。ステップP22は、上述したように、単語頻度算出部3が、領域上限マトリックスを入力として、単語上限リストを出力する処理である。領域上限マトリックスをCMax[i][j]{0≦i<m、0≦j<n}、単語上限リストをWMax[i]{0≦i<m}とすると、単語頻度算出部2は下記の式(1)で表現する計算処理を行う。単語頻度算出部2は、下記の式(1)により、各単語領域に対して、単語領域ごとの頻度を和算し、そして、入力文書リストに対する文書頻度の上限を算出し、この結果、単語上限リストとして出力する。
Figure 0005594145
次に、図19に示したステップP23について詳細に説明する。ステップP23は、上述したように、文書頻度参照部4が、単語上限リストを入力とし、単語領域に対して絞り込みを行いながら入力文書リストに対して高頻度な上位k個の単語を算出する処理である。図23は、図19に示したステップP23の具体例を示すフロー図である。
図23に示すように、文書頻度参照部4は、先ず、変数qを1とし、出力用の単語リストWを空にして初期化する(ステップP2301)。なお、単語リストWは、入力文書リストで指定される文書集合に対する文書頻度が高い上位k個の単語と、その頻度(文書頻度)とが格納されるリストである。
次に、文書頻度参照部4は、単語上限リストを参照し、上限値がq番目に大きい単語領域の単語領域番号Xを抽出する(ステップP2302)。更に、文書頻度参照部4は、クラスタ作成部5から取得した単語領域リストに基づいて、単語領域WC[X]における各単語の頻度(文書頻度)を参照する(ステップP2303)。
具体的には、ステップP2303では、文書頻度参照部4は、単語領域リストを元にして、単語領域WC[X]における単語番号のリストを取得し、各単号番号に対応する文書リストを、単語文書マトリックス内の単語インデックスから抽出する。そして、文書頻度参照部4は、抽出した文書リストと、入力文書リストとを比較することで、入力文書リストに対する頻度(文書頻度)を調べ、調べた頻度を参照して、頻度が上位となるk個の単語を抽出し、単語リストWを更新する(P2303)。
そして、文書頻度参照部4は、単語リストW内のk番目の単語の頻度と、単語上限リストの上限のうちq+1番目に大きい上限値とを比較し、両者の大小関係調べる(P2304)。比較の結果、単語リストW内のk位の単語の頻度が、q+1番目に大きい上限値よりも大きい場合、文書頻度参照部4は、単語リストW内の単語を外部の表示装置や外部プログラムに出力し(P2305)、処理を終了する。これは、この場合は、他の単語領域には、現在k位の単語より頻度の大きい単語が含まれることは無いためである。
一方、比較の結果、単語リストW内のk位の単語の頻度が、q+1番目に大きい上限値よりも小さい場合は、文書頻度参照部4は、qに1を加算足し(P2307)、再度、ステップP2302を実行する。
次に、ステップP2303について、図24を用いて詳細に説明する。図24は、図23に示したステップP2303を具体的に示すフロー図である。ステップP2303では、単語領域番号Xが入力となる。P2303では、まず、文書頻度参照部4は、入力された単語領域番号Xを元に、クラスタ作成部5から取得した単語領域リストを調べ、単語領域WC[X]に入る単語の単語番号のリストを作成する(ステップP23031)。
次に、文書頻度参照部4は、ステップP23031で得た単語番号それぞれに対し、単語文書マトリックス記憶部7内の単語テーブルと、単語インデックスとを参照し、単語自体と、文書リストとのペアを抽出する(ステップP23032)。
次いで、文書頻度参照部4は、ステップP23032で得られた単語と文書リストとのペアを用い、文書リストと入力文書リストとを比較し、両方に含まれる文書番号の数(文書頻度)を数えて、単語と文書頻度とのペアを作成し、これを単語リストWに追加する(ステップP23033)。
その後、文書頻度参照部4は、単語リストW内を文書頻度の降順にソートし、単語リストWから、頻度がk+1位以下の単語と文書頻度とのペアを削除する(ステップP23034)。ステップP23034が実行されると、文書頻度参照部4における処理は終了する。
なお、本実施の形態1では、上述したように、ステップP2303では、クラスタ作成部5から取得した単語領域リストが使用され、単語領域番号から領域内の単語と文書リストとの組が参照される。このため、単語文書マトリックス記憶部7内の情報が参照されている。但し、本実施の形態1はこれに限定されず、例えば、単語領域リストが使用されず、別の任意のデータが参照される態様であっても良い。
具体的には、予め、単語文書マトリックス記憶部1内のデータをクラスタ作成部5が作成した単語領域毎に分割する。そして、単語領域番号をキーとし、各単語領域内の単語と文書リストとをまとめて読み込める統合データ記憶部が用意される。そして、ステップP23の処理において、統合データ記憶部が参照され、ある単語領域内の単語と文書リストとがまとめて読み込まれる態様であっても良い。
以上のように本実施の形態1における検索方法を実施すれば、検索装置についての説明でも述べたように、検索対象となる領域、即ち、読み込むべき単語の領域が決定されるので、無駄な単語領域に対する読み込み処理が避けられ、検索の高速化が達成される。
また、本実施の形態1では、予め単語文書マトリックスに対して2次元クラスタリング処理が行われるため、検索時の絞り込みを効率良く行うことができる。
更に、本実施の形態1では、領域ごとに静的領域頻度の上限が予め算出される場合は、領域上限マトリックスが高速に作成可能となる。よって、高速に読み込むべき単語の領域が決定され、且つ、無駄な単語領域に対する読み込み処理が避けられ、検索のいっそうの高速化が図られる。
また、本実施の形態1では、領域ごとに領域内の各文書が領域内の単語を含むかどうか表すビット列が要約マトリックス記憶部1に記憶される場合は、ビット列と入力文書リストとのAND演算により、領域上限マトリックスはより厳密に作成される。このため、より多くの単語領域を絞り込むことが可能となり、不必要な単語領域をより多く絞り込めるため、検索のいっそうの高速化が可能となる。
本発明の実施の形態1におけるプログラムは、コンピュータに、図13〜図17、図19〜図24に示された各ステップを実行させるプログラムであれば良い。このプログラムをインストールし、このプログラムを実行することによって、本実施の形態1における検索装置が実現され、本実施の形態1における検索方法の実行が可能となる。この場合、コンピュータのCPU(central processing unit)は、クラスタ作成部5、領域要約作成部6、領域上限算出部2、単語頻度算出部3、及び文書頻度参照部4として機能し、処理を行なう。
また、本実施の形態1では、要約マトリクス記憶部1、及び単語文書マトリクス記憶部7は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって、又はこのデータファイルが格納された記録媒体をコンピュータと接続された読取装置に搭載することによって実現できる。
(実施の形態2)
次に本発明の実施の形態2における検索装置、検索方法、およびプログラムについて、図25及び図26を参照しながら説明する。最初に、本実施の形態2における検索装置の構成について図25を用いて説明する。図25は、本発明の実施の形態2における検索装置の構成を示すブロック図である。
図25に示すように、本実施の形態2における検索装置は、複数のクラスタ処理部10と、クラスタ処理展開部8と、クラスタ処理選択部9とを備え、この点で、図4に示した実施の形態1における検索装置と異なっている。また、本実施の形態2では、クラスタ作成部5、領域要約作成部6、要約マトリクス記憶部7、領域上限算出部2、単語頻度算出部3、及び文書頻度参照部4は、複数のクラスタ処理部10それぞれに毎に備えられている。なお、これらの構成及び機能は、実施の形態1と同様である。
クラスタ処理展開部8は、部分集合を表す情報、即ち、入力文書リストが、ユーザ又は外部のプログラムから入力されると、入力された情報を、各クラスタ処理部10の領域上限算出部2に入力する。
クラスタ処理選択部9は、複数のクラスタ処理部10それぞれの単語頻度算出部3が設定した、単語領域毎の単語の頻度の上限を受け取る。また、クラスタ処理選択部9は、受け取った各単語の頻度の上限の分布に基づいて、複数のクラスタ処理部10のうちの少なくとも一つを以降の処理で使用するために選択する。そして、クラスタ処理選択部9は、選択したクラスタ処理部10の文書頻度参照部4のみに、選択したクラスタ処理部10の単語頻度算出部3が設定した上限を渡して処理を行わせる。
また、本実施の形態2において、複数のクラスタ処理部10それぞれにおいて、各クラスタ作成部5は、互いに異なるクラスタリング処理を実行する。実施の形態1において述べたように、2次元クラスタリング処理には複数の種類のアルゴリズムがある。更に、2次元クラスタリング処理では、処理のために単語領域の数と文書領域の数とを設定しておく必要がある。
このため、本実施の形態2によれば、一つの単語文書マトリックスに対して複数のパラメータ(アルゴリズム、単語領域の数、文書領域の数など)を用意し、複数の種類の2次元クラスタリング処理を行うことが可能である。本実施形態2では、各クラスタ処理部10により、これらのパラメータを変えた複数の種類の2次元クラスタリング処理を実行することが可能となる。なお、クラスタ処理部10の数をクラスタ種類数と呼ぶこととする。
各クラスタ処理部10は、管理者又は外部のプログラムによって呼び出される。各クラスタ処理部10は、単語文書マトリックスを入力として、要約マトリックス記憶部1内に、単語文書マトリックス内の領域毎に、入力文書リストが与えられた場合に領域内の単語の動的領域頻度の上限又はその予測値を算出可能な要約情報(要約マトリクス)を出力する。
また、各クラスタ処理部10は、クラスタ処理展開部8によって呼び出され、クラスタ処理展開部8から入力文書リストが入力されると、単語領域毎の単語の頻度の上限を設定し、クラスタ処理選択部9に単語上限リストを出力する。更に、クラスタ処理部10のうち一つは、上述したように、クラスタ処理選択部9により、単語上限リストを入力として呼び出され、内部の文書頻度参照部4により、入力文書リスト内で高頻度なk個の単語を読み込み、ユーザ又は外部のプログラムに出力する。
次に、本発明の実施の形態2における検索方法について図26〜図28を用いて説明する。本実施の形態2における検索方法は、図25に示した本実施の形態2における検索装置を動作させることによって実施される。このため、以下の説明においては、適宜図25を参酌し、本実施の形態2における検索装置の動作についても説明する。
また、本実施の形態2における検索方法では、主に、クラスタリングプロセスP10'と、検索プロセスP20'との2つのプロセスが実行される。このうち、クラスタリングプロセスP10'は、各クラスタ処理部10において、クラスタ作成部5と領域要約作成部6とがクラスタリングプロセスP10を行うことによって実現される。
ここで、図26を用いて、検索プロセスP20'について説明する。図26は、本発明の実施の形態2の検索方法で行われる検索プロセスでの処理を示すフロー図である。検索プロセスP20'は、ユーザ又は外部のプログラムが、クラスタ処理展開部8に、入力文書リストを入力することによって開始される。
図26に示すように、先ず、クラスタ処理展開部8は、外部から入力文書リストが入力されると、各クラスタ処理部10に入力文書リストを渡す(ステップP21')。ステップP21'では、いわゆるクエリの展開が行われる。
次に、各クラスタ処理部10は、内部の領域上限算出部2と単語領域算出部3とを用いて上限リストを作成し、それを出力する(ステップP22')。なお、具体的には、ステップP22'では、各クラスタ処理部10において、領域上限算出部2がステップP21(図19参照)を実行し、単語領域算出部3がステップP22(図19参照)を実行する。ステップP21及びP22の処理は、各クラスタ処理部10において同時に行われても良い。
次に、ステップP22'の結果を用いて、クラスタ処理選択部9は、各クラスタ処理部10の出力した単語上限リストを調べ、一つ以上のクラスタ処理部を選択し、選択したクラスタ処理部10内の文書頻度参照部4を呼び出す(ステップP23')。
続いて、呼び出された文書頻度参照部4は、ステップP22'の結果に基づいて、各単語領域内の単語に対する文書リストを絞り込みながら、これを読み込む。そして、文書頻度参照部4は、入力文書リストにおいて文書頻度の高いk個の単語を特定し、これを出力する(ステップP24')。ステップP24'では、選択されたクラスタ処理部10の文書頻度算出部4が、各単語の頻度(文書頻度)を参照しながら、入力文書において特徴的な単語を特定する。ステップP24'の実行後、検索プロセスP20'における処理は終了する。
ここで、ステップP23'における処理の詳細について以下に説明する。ステップP23'では、複数の単語上限リストを入力として、最も読み込み効率が高い単語上限リストを持つクラスタ処理部10が選択されても良い。読み込みの効率が良いかどうかの判断は、例えば、単語上限リストの分布の歪度を計算することによって行うことができる。
具体的には、この場合、先ず、クラスタ処理選択部9は、各単語上限リストに対して歪度を計算する。単語領域の数がmである単語上限リスト内の上限値をWMax[i]{0≦i<m}とするとき、歪度Skは下記の式(2)で表現される。なお、下記の式(2)内の「μ」及び「σ」は、それぞれ、下記の式(3)及び式(4)によって算出できる。また、下記の式(2)〜式(4)における「|WC[i]|」は各単語領域内の単語の数を意味する。「|WC[i]|」は、全単語集合W内の単語数をmで除算することによって得られた値である。
Figure 0005594145
Figure 0005594145
Figure 0005594145
次に、歪度Skが算出されると、クラスタ処理選択部9は、歪度Skの最も大きい単語上限リストを選択し、その単語上限リストを出力した文書頻度参照部4を呼び出す。この結果、最も読み込み効率が高い単語上限リストを持つクラスタ処理部10が選択され、単語の特定が行われる。
上記の例では、クラスタ処理選択部9は、歪度が大きい単一のクラスタ処理部10を選択しているが、本実施の形態2は、この態様に限定されるものではない。本実施の形態2においては、クラスタ処理選択部9は、複数のクラスタ処理部10を選択し、それぞれのクラスタ処理部10内で、文書頻度参照部4によって処理を行わせ、最も早く処理を終えた文書頻度参照部4のみに、k個の単語を出力させることもできる。更に、本実施形態2においては、複数のクラスタ処理部10をそれぞれ別々のコンピュータによって実現し、並列に処理が行われる態様としても良い。
このように、本実施の形態2によれば、複数の種類の2次元クラスタリングアルゴリズムが同時に用いられるため、絞り込みが困難な入力文書リストが与えられた場合に有効である。即ち、このような場合であっても、複数の種類のクラスタ処理部10によって最良の単語上限リストが出力され、これを用いて絞り込みが行われるからである。本実施の形態2によれば、このような場合であっても、検索の高速化が達成される。
本発明の実施の形態2におけるプログラムは、コンピュータに、図26に示されたステップP21'〜ステップP24'を実行させるプログラムであれば良い。このプログラムをインストールし、このプログラムを実行することによって、本実施の形態2における検索装置が実現され、本実施の形態2における検索方法の実行が可能となる。この場合、コンピュータのCPU(central processing unit)は、各クラスタ処理部10における、クラスタ作成部5、領域要約作成部6、領域上限算出部2、単語頻度算出部3、及び文書頻度参照部4として機能し、処理を行なう。更に、コンピュータのCPUは、クラスタ処理展開部8及びクラスタ処理選択部9としても機能し、処理を行う。
また、本実施の形態2におけるプログラムは、複数のコンピュータによって、図26に示されたステップP21'〜ステップP24'を実行させるプログラムであれば良い。この場合は、上述したように、各コンピュータのCPUがそれぞれ別々のクラスタ処理部10として機能し、並列に処理が実行される。
また、本実施の形態2においても、要約マトリクス記憶部1、及び単語文書マトリクス記憶部7は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって、又はこのデータファイルが格納された記録媒体をコンピュータと接続された読取装置に搭載することによって実現できる。
ここで、具体的な実施例を用いて、実施の形態1における検索装置の動作を説明する。また、本実施例1では、領域要約作成部6が、図9に示す要約マトリクスを作成する最大要約作成部として機能する場合について説明する。以下、実施例1におけるクラスタリングプロセスP10と検索プロセスP20とについて説明する。なお、以下の動作例を説明する前提として、単語文書マトリクス記憶部7内には、図5A及び図5Bに示した情報が保持されているものとし、パラメータk=3であるとする。
先ず、クラスタリングプロセスについて説明する。ユーザ又は外部のプログラムによって、P10の実行の指示が行われると、クラスタ作成部5は、図2に示した単語文書マトリックスを読み込み、2次元クラスタリング処理(ステップP11)を行う。この結果、図6Aに示した単語領域リストと、図6Bに示した文書領域リストが出力される。これにより、論理的には、図3に示した領域が作成される。但し、図3の例では、単語文書マトリックスの一部に対する分割しか示されていないが、実際は、単語領域数4×文書領域数4の領域に分割されたものとする。
次に、最大要約作成部は、単語領域リストと文書領域リストとを元に、要約マトリクスの作成処理(ステップP12)を実行する。具体的には、最大要約作成部は、ステップP1201〜ステップP1203を実行し、図9に示した情報を、要約マトリクス記憶部1内に記憶させる。
このように、本実施例1では、クラスタリング処理により、同じ傾向にある単語と文書とがまとめられ、効率の良い要約マトリックスが作成される。
次に、検索プロセスP20について説明する。ユーザ又は外部のプログラムによって、入力文書リストD={1、2、3、7…}が領域上限算出部2に入力されると、検索プロセスP20が実行される。これにより、領域上限算出部2は、図9に示した要約マトリクスを参照して、領域上限を算出するプロセス(P210)を実行する。
P210では、先ず、領域上限算出部2は、入力文書リスト内の文書に対して、図6Bに示した文書領域リストを参照する。これにより、領域上限算出部2は、4つの文書領域それぞれに対して、入力文書内に含まれる文書の数を、DCFとして出力する(ステップP2101)。この場合のDCFは、順に{19、35、3、2}であったとする。
次に、領域上限算出部2は、ステップP2102〜P2106の処理を行い、領域上限マトリックスを出力する。このときの領域上限マトリックスは、図11に示される。その後、単語頻度算出部3が、図12に示される単語上限リストを作成する(ステップP22)。
次に、文書頻度参照部4は、図12の単語上限リストを元に、ステップP23(図19参照)の処理を行う。ステップP23では、単語上限リスト内で上限が最も大きい単語領域WC[1]に対してステップP2302(図23参照)の処理が行われる。この結果、単語リストW内に、入力文書に対する文書頻度34の単語「犯罪」、文書頻度31の単語「自首」、文書頻度25の単語「死亡」が追加されたとする。
また、このとき、ステップP2304では、単語リストW内の第3位の文書頻度25と、図12の単語上限リスト内で2番目に上限が大きい単語領域WC[0]の上限値27との比較が行われる。この場合、単語リストW内の第3位の文書頻度25の方が小さいため、「q」を2に更新し(ステップP2307)、再度、ステップP2302の処理が行われる。
この結果、文書頻度25を超える単語が発見できなったとし、単語リストW内は「犯罪」、「自首」、「死亡」のままであるとする。この後、再び、ステップP2304の処理が行われ、単語リストW内の第3位の文書頻度25と、3番目に上限が大きい単語領域WC[3]の上限値3とが比較され、ステップP2305が実行される。これは、この時点でまだ調べていない他の単語領域内の単語は、文書頻度がたかだか6に過ぎず、これ以上の参照処理が無駄になると判断できるためである。よって文書頻度参照部4は、ステップP2305により「犯罪」、「自首」、「死亡」の3つの単語を出力し、処理を終了する。
このように、本実施例1における検索装置によれば、検索時に読み込むべき単語領域を絞ることができ、検索の速度の高速化が図られる。
次に、実施の形態1における検索装置の別の例について、その動作を説明する。本実施例2では、領域要約作成部6が、図10に示す要約マトリクスを作成するベクトル要約作成部として機能する場合について説明する。なお、本実施例2における動作例を説明する前提は、上記の実施例1と同様であり、単語文書マトリクス記憶部7内には図5A及び図5Bに示した情報が保持されているものとし、パラメータk=3であるとする。
クラスタリングプロセスP10内のステップP11に関しては、上記の実施例1と同じであるため割愛し、ここではステップP12に焦点を当てる。本実施例2において、ステップP12内では、ステップP1201の処理の後、上記の最大要約作成部を用いた実施例1と異なり、ベクトル要約作成部を用いた処理P1202(図17参照)が実行される。この結果、図10に示した情報が、要約マトリクス記憶部1内に記憶される。
検索プロセスP20では、ステップP21において、領域上限算出部2は、実施例1と異なるプロセス(P211(図21参照))を実行する。このとき、ステップP2111により、入力文書リストのうち、長さ4の動的ビット列DCB[j]{0≦j<4}が作成されるが、本実施例2では、特に以下の説明のためにDCB[3]={1、1、0、1、0・・・}であるとする。
次に、領域上限算出部2は、ステップP2112〜P2114の処理を行うが、ここでは、領域C[0][3]に対する処理のみを取り上げる。領域上限算出部2は、先ず、P2112により、要約マトリクス記憶部1からビット列Bを読み込む。このときのビット列Bは、図10の右上のセルに示される{0、0、1、0、1・・・}である。このビット列Bと、動的ビット列DCB[3]とをAND演算すると、{0、0、0、0、0・・・}となり、CMax[0][3]をより小さく見積もることができる。例えば、この処理によって得られる領域上限マトリックスは図11に示される。
この結果、ビット列Bが表す領域内で単語を含む文書の集合と、入力の文書集合との間には、ほとんど一致が無いことがわかり、CMax[0][3]をより小さく見積もることができ、例えば、CMax[0][3]=0とすることができる。この後、ステップP22の処理を行うと、単語領域WC[0]に対しては、上限を20とすることができ、ステップP23の文書頻度の参照処理時に、単語領域WC[0]に対する参照処理(ステップP2303)を省くことができる。
上述したように、実施例1の検索装置は、要約マトリックスとして領域内の静的領域頻度の最大値を使用している。これは、領域内に含まれる単語は、たかだかX回しか登場しない、という情報を元に、領域上限算出部2が絞り込みを行うことで高速化を図っている。実施例1は、Xが十分小さい場合に有効であるが、文書集合の性質によってはXが大きくなってしまうこともある。
これに対し、実施例2の検索装置では、領域毎に動的領域頻度の上限値を算出する際に、領域内で実際に単語を含む文書集合と入力文書との比較が行われる。これにより、Xが大きい場合に、文書集合と入力文書との分布が異なれば、領域内の上限値を小さく見積もることができる。
次に、実施の形態2における検索装置の動作を説明する。ここではステップP23'(図26参照)の処理に焦点を当てて、動作を説明する。例えば、ステップP22'により、図27A及び図27Bに示す二つの単語上限リストが得られたとする。図27A及び図27Bは、実施例2において得られる単語上限リストの例を示す図であり、図27A及び図27Bはそれぞれ異なる2次元クラスタリング処理によって得られた単語上限リストを示している。
具体的には、図27Aは、4×4の2次元クラスタリング処理により得られた結果を示している。一方、図27Bは、5×5の2次元クラスタリング処理により得られた結果を示している。このとき、k=3であるとすると、図27Aに示す文書頻度の参照を行うと、単語領域WC[0]内の25個の単語に対する参照のみで処理を終えることができそうである。
これに対し、図27Bに示す文書頻度の参照を行うと、単語領域WC[0]内と単語領域WC[1]内との合計40個の単語について参照が必要そうである。このため、この場合には図27Aの結果に対して、ステップP24'(図26参照)の処理を行うべきである。
この場合、クラスタ処理選択部9は、各クラスタ処理部10に対して歪度を算出する。図27Aの結果に対する歪度は、上記数2により、約1.1として算出される。同様に図27Bの結果に対する歪度は、上記数2により、約0.5として算出される。これにより、クラスタ処理選択部9は、図27Aを出力したクラスタ処理部10を選択し、文書頻度の参照処理(ステップP24')を実行させることができる。
このように、本実施例2によれば、複数の種類の異なるクラスタ処理部10が備えられている。よって、それぞれが出力する単語上限リストにより、入力文書リストによって最も多く単語領域を絞りこめるクラスタ処理部10を選択でき、選択したクラスタ処理部10により、検索の高速化がいっそう図られる。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。また、記録媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
この出願は、2008年11月26日に出願された日本出願特願2008−300793を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、連想検索エンジンとも呼ばれる検索エンジンに適用でき、テキストマイニングシステムや検索エンジンにおいて、あるクエリで表現される文書集合と関係が深い概念を表す高頻度な語を検索する際に、有用である。本発明は、産業上の利用可能性を有している。
1 要約マトリクス記憶部
2 領域上限算出部
3 単語頻度算出部
4 文書頻度参照部
5 クラスタ作成部
6 領域要約作成部
7 単語文書マトリクス記憶部
8 クラスタ処理展開部
9 クラスタ処理選択部
10 クラスタ処理部

Claims (15)

  1. 単語集合と文書集合との間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成され、且つ、文書集合に含まれる部分集合を表す情報が与えられた場合に、前記複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報を、要約情報として記憶する要約マトリクス記憶手段と、
    前記部分集合を表す情報が入力されると、前記部分集合を表す情報と前記複数の領域との関係を調べ、得られた結果から、前記複数の領域それぞれに対する前記要約情報を参照して、前記複数の領域それぞれについて、それぞれに含まれる単語の、前記部分集合に対する頻度の上限を算出する領域上限算出手段と、
    前記複数の領域それぞれについての前記頻度の上限を、前記単語が共通する領域毎に和算し、得られた和算値を、前記単語が共通する領域毎の単語の頻度の上限に設定する単語頻度算出手段と、
    前記単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求め、更に、求めた前記検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を前記部分集合に特徴的な単語として出力する文書頻度参照手段と、
    を備える検索装置。
  2. 前記単語集合と前記文書集合との間の共起関係を特定するマトリクスを入力として、単語と文書に対するクラスタリング処理を行い、これによって、前記マトリクスを構成する単語集合と前記文書集合とを、それぞれ複数の部分集合に分割して、前記複数の領域を生成するクラスタ作成手段と、
    前記クラスタリング処理による分割によって生成された前記複数の領域から、前記要約マトリクス記憶手段によって記憶される前記要約情報を作成する領域要約作成手段と、
    を更に備える請求項1記載の検索装置。
  3. 前記領域要約作成手段が、前記クラスタリング処理による分割によって生成された前記複数の領域それぞれについて、少なくとも、各領域内に含まれる単語の当該領域における頻度を求め、更に、求めた前記頻度の最大値を特定し、特定した前記最大値を前記要約情報とし、
    前記領域上限算出手段が、前記部分集合を表す情報と前記複数の領域との関係として、前記複数の領域それぞれ毎に、当該領域に含まれている、前記部分集合を構成する文書の数を求め、求めた前記文書の数と、当該領域についての前記頻度の最大値とを比較し、比較結果に基づいて、前記頻度の上限を算出する、請求項2に記載の検索装置。
  4. 前記領域要約作成手段が、前記クラスタリング処理による分割によって生成された前記複数の領域それぞれについて、少なくとも、各領域内の文書において当該領域内の単語が含まれるか否かを表すビット列を求め、求めた前記ビット列を前記要約情報とし、
    前記領域上限算出手段が、前記部分集合を表す情報と前記複数の領域との関係として、前記複数の領域それぞれ毎に、前記部分集合を構成する文書が、当該領域に含まれているか否かを表すビット列を求め、当該領域上限算出手段によって求められたビット列と、前記領域要約作成手段によって求められたビット列とのAND演算を実行し、演算結果に基づいて、前記頻度の上限を算出する、請求項2に記載の検索装置。
  5. 複数のクラスタ処理手段と、クラスタ処理展開手段と、クラスタ処理選択手段とを更に備え、
    前記クラスタ作成手段、前記領域要約作成手段、前記要約マトリクス記憶手段、前記領域上限算出手段、前記単語頻度算出手段、及び前記文書頻度参照手段は、前記複数のクラスタ処理手段それぞれに毎に備えられ、
    前記複数のクラスタ処理手段それぞれにおいて、前記クラスタ作成手段それぞれは、互いに異なるクラスタリング処理を行い、
    前記クラスタ処理展開手段は、前記部分集合を表す情報が入力されると、入力された情報を、前記複数のクラスタ処理手段それぞれの前記領域上限算出手段に入力し、
    前記クラスタ処理選択手段は、前記複数のクラスタ処理手段それぞれの前記単語頻度算出手段が設定した、前記単語が共通する領域毎の単語の頻度の上限を受け取り、受け取った前記各単語の頻度の上限の分布に基づいて、前記複数のクラスタ処理手段のうちの少なくとも一つを選択し、選択した前記クラスタ処理手段の前記文書頻度参照手段のみに、処理を行わせる、請求項2に記載の検索装置。
  6. CPU(Central Processing Unit)を備えるコンピュータを用いた検索方法であって、
    前記CPUが、
    (a)単語集合と文書集合との間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成され、且つ、文書集合に含まれる部分集合を表す情報が与えられた場合に、前記複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報を、要約情報として記憶する処理と、
    (b)前記部分集合を表す情報が入力されると、前記部分集合を表す情報と前記複数の領域との関係を調べ、得られた結果から、前記複数の領域それぞれに対する前記要約情報を参照して、前記複数の領域それぞれについて、それぞれに含まれる単語の、前記部分集合に対する頻度の上限を算出する処理と、
    (c)前記複数の領域それぞれについての前記頻度の上限を、前記単語が共通する領域毎に和算し、得られた和算値を、前記単語が共通する領域毎の単語の頻度の上限に設定する処理と、
    (d)前記単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求め、更に、求めた前記検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を前記部分集合に特徴的な単語として出力する処理と
    を実行することを特徴とする検索方法。
  7. 前記CPUが、
    (e)前記単語集合と前記文書集合との間の共起関係を特定するマトリクスを入力として、単語と文書に対するクラスタリング処理を行い、これによって、前記マトリクスを構成する単語集合と前記文書集合とを、それぞれ複数の部分集合に分割して、前記複数の領域を生成する処理と、
    (f)前記(e)のクラスタリング処理による分割によって生成された前記複数の領域から、前記(a)のステップで記憶される前記要約情報を作成する処理と
    を更に実行する請求項6に記載の検索方法。
  8. 前記CPUが、
    前記(f)の作成において、前記クラスタリング処理による分割によって生成された前記複数の領域それぞれについて、少なくとも、各領域内に含まれる単語の当該領域における頻度を求め、更に、求めた前記頻度の最大値を特定し、特定した前記最大値を前記要約情報とし、
    前記(b)の算出において、前記部分集合を表す情報と前記複数の領域との関係として、前記複数の領域それぞれ毎に、当該領域に含まれている、前記部分集合を構成する文書の数を求め、求めた前記文書の数と、当該領域についての前記頻度の最大値とを比較し、比較結果に基づいて、前記頻度の上限を算出する、請求項7に記載の検索方法。
  9. 前記CPUが、
    前記(f)の作成において、前記クラスタリング処理による分割によって生成された前記複数の領域それぞれについて、少なくとも、各領域内の文書において当該領域内の単語が含まれるか否かを表すビット列を求め、求めた前記ビット列を前記要約情報とし、
    前記(b)の算出において、前記部分集合を表す情報と前記複数の領域との関係として、前記複数の領域それぞれ毎に、前記部分集合を構成する文書が、当該領域に含まれているか否かを表すビット列を求め、求められたビット列と、前記(f)の作成によって求められたビット列とのAND演算を実行し、演算結果に基づいて、前記頻度の上限を算出する、請求項7に記載の検索方法。
  10. 前記CPUにより、
    前記(e)の生成が、前記クラスタリング処理の種類を変えて複数回実行され、
    前記(f)の作成と、前記(a)〜前記(c)とが、前記(e)の生成が実行される度に実行される場合において、
    各(e)の生成に対応する前記(c)で設定された、前記単語が共通する領域毎の単語の頻度の上限から、それぞれの上限の分布に基づいて、少なくとも一つの、前記単語が共通する領域毎の単語の頻度の上限を選択し、選択した上限を用いて、前記(d)の出力する処理を更に前記CPUが実行する、請求項7に記載の検索方法。
  11. (a)単語集合と文書集合との間の共起関係を表現するマトリクスを分割して得られた複数の領域から作成され、且つ、文書集合に含まれる部分集合を表す情報が与えられた場合に、前記複数の領域それぞれにおける単語の頻度の算出又は予測を可能にする情報を、要約情報として記憶する処理と、
    (b)前記部分集合を表す情報が入力されると、前記部分集合を表す情報と前記複数の領域との関係を調べ、得られた結果から、前記複数の領域それぞれに対する前記要約情報を参照して、前記複数の領域それぞれについて、それぞれに含まれる単語の、前記部分集合に対する頻度の上限を算出する処理と、
    (c)前記複数の領域それぞれについての前記頻度の上限を、前記単語が共通する領域毎に和算し、得られた和算値を、前記単語が共通する領域毎の単語の頻度の上限に設定する処理と、
    (d)前記単語が共通する領域毎の単語の頻度の上限に基づいて、検索対象となる領域を求め、更に、求めた前記検索対象となる領域に基づいて、設定された数の単語を頻度が高い順に特定し、特定した単語を前記部分集合に特徴的な単語として出力する処理とを、コンピュータに実行させるためのプログラム。
  12. (e)前記単語集合と前記文書集合との間の共起関係を特定するマトリクスを入力として、単語と文書に対するクラスタリング処理を行い、これによって、前記マトリクスを構成する単語集合と前記文書集合とを、それぞれ複数の部分集合に分割して、前記複数の領域を生成する処理と、
    (f)前記(e)の処理におけるクラスタリング処理による分割によって生成された前記複数の領域から、前記(a)の処理で記憶される前記要約情報を作成する、処理とを、更に前記コンピュータに実行させる、請求項11に記載のプログラム。
  13. 前記(f)の処理において、前記クラスタリング処理による分割によって生成された前記複数の領域それぞれについて、少なくとも、各領域内に含まれる単語の当該領域における頻度を求め、更に、求めた前記頻度の最大値を特定し、特定した前記最大値を前記要約情報とし、
    前記(b)の処理において、前記部分集合を表す情報と前記複数の領域との関係として、前記複数の領域それぞれ毎に、当該領域に含まれている、前記部分集合を構成する文書の数を求め、求めた前記文書の数と、当該領域についての前記頻度の最大値とを比較し、比較結果に基づいて、前記頻度の上限を算出する、請求項12に記載のプログラム。
  14. 前記(f)の処理において、前記クラスタリング処理による分割によって生成された前記複数の領域それぞれについて、少なくとも、各領域内の文書において当該領域内の単語が含まれるか否かを表すビット列を求め、求めた前記ビット列を前記要約情報とし、
    前記(b)の処理において、前記部分集合を表す情報と前記複数の領域との関係として、前記複数の領域それぞれ毎に、前記部分集合を構成する文書が、当該領域に含まれているか否かを表すビット列を求め、求められたビット列と、前記(f)の処理によって求められたビット列とのAND演算を実行し、演算結果に基づいて、前記頻度の上限を算出する、請求項12に記載のプログラム。
  15. 前記(e)の処理が、前記クラスタリング処理の種類を変えて複数回実行され、
    前記(f)の処理と、前記(a)〜前記(c)の処理とが、前記(e)の処理が実行される度に実行される場合において、
    各(e)の処理に対応する前記(c)の処理で設定された、前記単語が共通する領域毎の単語の頻度の上限から、それぞれの上限の分布に基づいて、少なくとも一つの、前記単語が共通する領域毎の単語の頻度の上限を選択し、選択した上限を用いて、前記(d)の処理を実行させる、処理を更に前記コンピュータに実行させる、請求項12に記載のプログラム。
JP2010540323A 2008-11-26 2009-11-06 検索装置、検索方法、及びプログラム Active JP5594145B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010540323A JP5594145B2 (ja) 2008-11-26 2009-11-06 検索装置、検索方法、及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008300793 2008-11-26
JP2008300793 2008-11-26
PCT/JP2009/005907 WO2010061537A1 (ja) 2008-11-26 2009-11-06 検索装置、検索方法、及びプログラムが格納された記録媒体
JP2010540323A JP5594145B2 (ja) 2008-11-26 2009-11-06 検索装置、検索方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2010061537A1 JPWO2010061537A1 (ja) 2012-04-19
JP5594145B2 true JP5594145B2 (ja) 2014-09-24

Family

ID=42225427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010540323A Active JP5594145B2 (ja) 2008-11-26 2009-11-06 検索装置、検索方法、及びプログラム

Country Status (3)

Country Link
US (1) US8892574B2 (ja)
JP (1) JP5594145B2 (ja)
WO (1) WO2010061537A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023989B (zh) * 2009-09-23 2012-10-10 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
JP5657338B2 (ja) * 2010-10-19 2015-01-21 株式会社中電シーティーアイ 入力情報分析装置
US9323753B2 (en) * 2011-02-23 2016-04-26 Samsung Electronics Co., Ltd. Method and device for representing digital documents for search applications
JP5900419B2 (ja) * 2013-06-11 2016-04-06 コニカミノルタ株式会社 関心事判別装置、関心事判別方法、およびコンピュータプログラム
CN103970910B (zh) * 2014-05-27 2017-02-15 南京大学 一种基于篇章文档的自适应输入法
US11461533B2 (en) * 2014-10-15 2022-10-04 International Business Machines Corporation Generating a document preview
US11392568B2 (en) * 2015-06-23 2022-07-19 Microsoft Technology Licensing, Llc Reducing matching documents for a search query
US10599700B2 (en) * 2015-08-24 2020-03-24 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for narrative detection and frame detection using generalized concepts and relations
US11741145B1 (en) * 2018-09-30 2023-08-29 Veritas Technologies Llc Method and system for classification of unstructured data items
JP2020154395A (ja) * 2019-03-18 2020-09-24 富士ゼロックス株式会社 情報処理装置及びプログラム
US20230136726A1 (en) * 2021-10-29 2023-05-04 Peter A. Chew Identifying Fringe Beliefs from Text

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074210A (ja) * 1996-07-05 1998-03-17 Hitachi Ltd 文献検索支援方法及び装置およびこれを用いた文献検索サービス
JP2003248686A (ja) * 2002-02-22 2003-09-05 Ricoh Co Ltd 文書群ラベル生成装置、文書群ラベル生成方法及び記録媒体
JP2003345811A (ja) * 2002-05-27 2003-12-05 Hitachi Ltd 文書情報表示システム、文書情報表示方法及び文書検索方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274541A (ja) 1993-03-17 1994-09-30 Nippon Steel Corp 文献検索システム
US5675819A (en) * 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
US5926812A (en) * 1996-06-20 1999-07-20 Mantra Technologies, Inc. Document extraction and comparison method with applications to automatic personalized database searching
US6484168B1 (en) * 1996-09-13 2002-11-19 Battelle Memorial Institute System for information discovery
JP3607462B2 (ja) 1997-07-02 2005-01-05 松下電器産業株式会社 関連キーワード自動抽出装置及びこれを用いた文書検索システム
JP2001014341A (ja) 1999-07-02 2001-01-19 Ricoh Co Ltd データベース作成装置および関連文書/関連語検索装置、データベース作成方法および関連文書/関連語検索方法ならびに記憶媒体
US6772141B1 (en) * 1999-12-14 2004-08-03 Novell, Inc. Method and apparatus for organizing and using indexes utilizing a search decision table
JP2002032394A (ja) 2000-07-18 2002-01-31 Ricoh Co Ltd 関連語情報作成装置、関連語提示装置、文書検索装置、関連語情報作成方法、関連語提示方法、文書検索方法および記憶媒体
US7860706B2 (en) * 2001-03-16 2010-12-28 Eli Abir Knowledge system method and appparatus
US6847966B1 (en) * 2002-04-24 2005-01-25 Engenium Corporation Method and system for optimally searching a document database using a representative semantic space
US7003516B2 (en) * 2002-07-03 2006-02-21 Word Data Corp. Text representation and method
JP2004164036A (ja) * 2002-11-08 2004-06-10 Hewlett Packard Co <Hp> 文書の共通性評価方法
US7630980B2 (en) * 2005-01-21 2009-12-08 Prashant Parikh Automatic dynamic contextual data entry completion system
JP4886266B2 (ja) 2005-10-11 2012-02-29 株式会社東芝 文献調査方法、文献調査システムおよび文献調査プログラム
JP4848317B2 (ja) * 2007-06-19 2011-12-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースのインデックス作成システム、方法及びプログラム
WO2009001696A1 (ja) 2007-06-22 2008-12-31 Patent Result Co., Ltd. 情報処理装置、プログラム、情報処理方法
JP5078674B2 (ja) * 2008-02-29 2012-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 分析システム、情報処理装置、アクティビティ分析方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074210A (ja) * 1996-07-05 1998-03-17 Hitachi Ltd 文献検索支援方法及び装置およびこれを用いた文献検索サービス
JP2003248686A (ja) * 2002-02-22 2003-09-05 Ricoh Co Ltd 文書群ラベル生成装置、文書群ラベル生成方法及び記録媒体
JP2003345811A (ja) * 2002-05-27 2003-12-05 Hitachi Ltd 文書情報表示システム、文書情報表示方法及び文書検索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200000992001; 高山 泰博 外3名: '単語の連想関係に基づく情報検索システムInfoMAP' 情報処理学会研究報告 第99巻第20号, 19990301, p.1-8, 社団法人情報処理学会 *
JPN6014005872; 高山 泰博 外3名: '単語の連想関係に基づく情報検索システムInfoMAP' 情報処理学会研究報告 第99巻第20号, 19990301, p.1-8, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
JPWO2010061537A1 (ja) 2012-04-19
WO2010061537A1 (ja) 2010-06-03
US20110219000A1 (en) 2011-09-08
US8892574B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
JP5594145B2 (ja) 検索装置、検索方法、及びプログラム
JP5531395B2 (ja) 単語親和度による単語クラスタの識別
Moldagulova et al. Using KNN algorithm for classification of textual documents
US8171029B2 (en) Automatic generation of ontologies using word affinities
JP5621773B2 (ja) 分類階層再作成システム、分類階層再作成方法及び分類階層再作成プログラム
US20160275178A1 (en) Method and apparatus for search
WO2017097231A1 (zh) 话题处理方法及装置
JP6782858B2 (ja) 文献分類装置
KR100706389B1 (ko) 이미지 상호간의 유사도를 고려한 이미지 검색 방법 및장치
JPWO2014109127A1 (ja) インデックス生成装置及び方法並びに検索装置及び検索方法
CN113961528A (zh) 基于知识图谱的文件语义关联存储系统及方法
KR20180129001A (ko) 다언어 특질 투영된 개체 공간 기반 개체 요약본 생성 방법 및 시스템
KR101472451B1 (ko) 디지털 콘텐츠 관리 시스템 및 방법
US9552415B2 (en) Category classification processing device and method
JP6434162B2 (ja) データ管理システム、データ管理方法およびプログラム
Alsarkhi et al. An analysis of the effect of stop words on the performance of the matrix comparator for entity resolution
JP7395377B2 (ja) コンテンツ検索方法、装置、機器、および記憶媒体
JP2013130965A (ja) データ分析装置、データ分析方法及びプログラム
CN111090743B (zh) 一种基于词嵌入和多值形式概念分析的论文推荐方法及装置
JP4175001B2 (ja) 文書データ検索装置
Luengo et al. Dimensionality reduction for big data
Do Van et al. Classify high dimensional datasets using discriminant positive negative association rules
CN117688140B (zh) 文档查询方法、装置、计算机设备和存储介质
CN117648444B (zh) 基于图卷积属性聚合的专利聚类方法和系统
JP5416680B2 (ja) 文書分割検索装置及び方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140721

R150 Certificate of patent or registration of utility model

Ref document number: 5594145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150