(57)【要約】【課題】複数の検索語について連想検索を実行し、各検索語に固有の連想語と全検索語で共通の連想語とを把握する。【解決手段】キーワード出現頻度保持部は、複数のキーワードの出現頻度を文書データ毎に集計した出現頻度データを保持する。キーワード関連度保持部は、出現頻度データを用いて算出された、キーワード間の共起性に基づく関連度を表す関連度データを保持する。連想語選択部６２は、ユーザ端末から入力された複数の検索語に対して、検索語と実質的に同一のキーワードに対する関連度が高い順に予め定められた数のキーワードを連想語として抽出する。連想語マッチング部６４は、複数の検索語についてそれぞれ抽出された連想語セットのマッチングを実行し、共通する連想語と相違する連想語とに区別する。ページ作成部６６は、共通する連想語と相違する連想語とを表示するページを作成し、検索結果としてユーザ端末に出力する。【選択図】図２
2009086771.tif 000002
【特許請求の範囲】
【請求項１】
複数のキーワードの出現頻度を文書データ毎に集計した結果であるキーワード出現頻度データを保持するキーワード出現頻度保持部と、
前記キーワード出現頻度データを用いて算出される、キーワード間の共起性に基づく関連度を保持するキーワード関連度保持部と、
ユーザ端末から入力された検索語に対して、前記キーワード関連度保持部を参照して前記検索語と実質的に同一のキーワードに対する関連度が高い順に予め定められた数のキーワードを連想語セットとして抽出する連想語選択部と、
複数の検索語についてそれぞれ抽出された連想語セットのマッチングを実行し、共通する連想語と相違する連想語とに区別する連想語マッチング部と、
前記共通する連想語と前記相違する連想語とを表示するページを作成し、検索結果としてユーザ端末に出力するページ作成部と、
を備えることを特徴とする検索サービス装置。
【請求項２】
前記ページ作成部は、各連想語を文字列として含む複数のタグを、前記共通する連想語と前記相違する連想語とで分けて配置したタグクラウド形式で前記ページを作成することを特徴とする請求項１に記載の検索サービス装置。
【請求項３】
前記ページ作成部は、各検索語について抽出された連想語セットを表示するための複数の領域からなる表示画面に、各連想語を文字列として含む複数のタグを配置したベン図形式で前記ページを作成することを特徴とする請求項１に記載の検索サービス装置。
【請求項４】
前記ページ作成部は、前記連想語の関連度の大きさに応じて、前記タグまたは前記文字列のサイズまたは装飾を変えることを特徴とする請求項２または３に記載の検索サービス装置。
【請求項５】
前記タグクラウド形式と前記ベン図形式とを切り換え可能であることを特徴とする請求項２ないし４のいずれかに記載の検索サービス装置。
【請求項６】
複数のキーワードの出現頻度を文書データ毎に集計した結果であるキーワード出現頻度データをメモリに保持しておく機能と、
前記キーワード出現頻度データを用いて算出される、キーワード間の共起性に基づく関連度をキーワード関連度データとしてメモリに保持しておく機能と、
入力された検索語に対して、前記キーワード関連度データを参照して前記検索語と実質的に同一のキーワードに対する関連度が高い順に予め定められた数のキーワードを連想語セットとして抽出する機能と、
複数の検索語についてそれぞれ抽出された連想語セットのマッチングを実行し、共通する連想語と相違する連想語とに区別する機能と、
前記共通する連想語と前記相違する連想語とを表示するページを作成し、検索結果として出力する機能と、
をコンピュータに発揮させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索語の入力を受け付け検索語と関連の深い言葉を連想語として出力する検索技術に関する。
【背景技術】
【０００２】
現在のインターネット環境では、検索技術の果たす役割が非常に大きくなっている。インターネットを介して検索可能となる文書の量が飛躍的に膨張するにつれて、検索語に対してヒットする件数も増加する一方である。このような状況は、ある言葉を検索することで新規な着眼点を得たり発想を広げたりしたいと望むユーザにとっては、必ずしも望ましくない。すなわち、検索結果として提示された個々の文書を詳細に検討すれば、新たな知見を得ることができるかもしれないが、そのために必要となる時間が増えてしまうからである。
【０００３】
そこで、検索語を含む文書を提示する代わりに、その検索語から連想される言葉を検索結果として提示する連想検索技術がいくつか提案されている。例えば、特許文献１では、各用語の関連用語を記憶した関連用語記憶手段と、各用語と共起性の高い（つまり、同一文書中に登場する確率が高い）企業名を記憶した共起企業名記憶手段を備えており、検索語が入力された場合にはこれと関連する用語を抽出し、各用語に対する共起性の高い企業名を抽出する連想検索システムが開示されている。
【特許文献１】特開２００４−１１０３８６号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１のシステムでは、一つの検索語に対する検索結果が所定の順序で整列して表示される。例えば、検索語として「環境問題」を入力すると、環境問題に係る文書中に登場することの多い企業名がリストアップされる。しかしながら、一般に、新しい知見は複数の言葉の関連性から生み出されることが多いため、複数の検索語を指定して、それらに対する連想の結果を手軽に比較検討できるようになることが望ましい。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、二つ以上の検索語を指定し、それぞれについて導き出された連想語の共通部分と非共通部分とを比較することができる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は、検索サービス装置である。この装置は、複数のキーワードの出現頻度を文書データ毎に集計した結果であるキーワード出現頻度データを保持するキーワード出現頻度保持部と、キーワード出現頻度データを用いて算出される、キーワード間の共起性に基づく関連度を保持するキーワード関連度保持部と、ユーザ端末から入力された検索語に対して、キーワード関連度保持部を参照して検索語と実質的に同一のキーワードに対する関連度が高い順に予め定められた数のキーワードを連想語セットとして抽出する連想語選択部と、複数の検索語についてそれぞれ抽出された連想語セットのマッチングを実行し、共通する連想語と相違する連想語とに区別する連想語マッチング部と、共通する連想語と相違する連想語とを表示するページを作成し、検索結果としてユーザ端末に出力するページ作成部と、を備える。
【０００７】
この態様によると、複数の検索語について関連度の高い連想語を抽出する連想検索を実行し、得られた検索結果を共通する連想語と共通しない連想語とに分けて表示するようにした。これにより、入力した検索語の共通性と独自性とを容易に把握することが可能になる。
【０００８】
ページ作成部は、各連想語を文字列として含む複数のタグを、共通する連想語と相違する連想語とで分けて配置したタグクラウド形式でページを作成してもよい。または、ページ作成部は、各検索語について抽出された連想語セットを表示するための複数の領域からなる表示画面に、各連想語を文字列として含む複数のタグを配置したベン図形式でページを作成してもよい。このように、連想検索をする目的に応じて所望の表示形式を選択することができる。
【０００９】
ページ作成部は、連想語の関連度の大きさに応じて、タグまたは文字列のサイズまたは装飾を変えてもよい。これによって、検索語と連想語の間の関連性の強弱を直感的に把握することが可能になる。
【００１０】
タグクラウド形式とベン図形式とを切り換え可能であることと特徴としてもよい。これによって、適宜表示形式を切り換えながら発想を練ることができる。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、二つ以上の検索語を指定し、それぞれについて導き出された連想語の共通部分と非共通部分とを分けて表示するようにしたので、各検索語についての固有の連想語と全検索語で共通の連想語とを容易に認識することが可能になる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の一本実施形態に係る連想検索システム１０の全体構成図である。ユーザ端末３２は、インターネット、ＬＡＮ（Local Area Network）等のネットワーク３４を介して検索サービス装置３０に接続される。ユーザ端末３２は、例えばパーソナルコンピュータであり、少なくとも表示装置であるディスプレイとキーボードおよびマウスなどの入力装置とを備える。ユーザ端末３２には、周知のブラウザが搭載され、ネットワーク上で提供されている様々なウェブページを閲覧可能となっている。検索サービス装置３０は、単一のウェブサーバとして構成されてもよいし、データベースサーバなどを含む複数のサーバで構成されてもよい。
【００１４】
ユーザは、ユーザ端末３２を利用して、検索サービス装置３０の提供するウェブサイトにアクセスし、所定のページにおいて所望の検索語を入力する。検索サービス装置３０は、ユーザ端末３２から検索語を受け取ると、以下に述べる手順にしたがって検索語に関連の深い連想語を探し出し、その結果をウェブページ形式でユーザ端末３２に送信する。
【００１５】
図２は、検索サービス装置３０の構成を示す。ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここではそれらの連携によって実現される機能ブロックとして描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００１６】
ユーザ処理部３６は、ユーザ端末３２に関わる処理を受け持つ。検索語受付部４２は、各ユーザ端末３２から送られた検索語を受け付け、連想検索エンジン５０や他の機能ブロックに渡す。ユーザ特定部４４は、ユーザがウェブサイトにアクセスするときに入力するユーザＩＤ、またはユーザ端末に保存されているＣｏｏｋｉｅなどを参照してユーザを認証する。ユーザの認証は、主に後述するユーザフィードバック反映処理に関して必要となるので、この機能を提供しない場合にはユーザ特定部４４を備えていなくてもよい。ユーザフィードバック（Ｆ／Ｂ）受付部４６は、検索結果である連想語の表示に対してユーザからなされるフィードバックを受け付け、ユーザフィードバック反映処理部９０に渡す。
【００１７】
連想検索エンジン５０は、予め準備されている文書データに基づき、ユーザから入力された検索語に対して関連の深い連想語を検索する。
【００１８】
比較差分検索実行部６０、二次元マップ作成部７０、鮮度検索実行部８０、およびユーザフィードバック反映処理部９０は、連想検索エンジン５０を利用して検索語に対する連想語を抽出し、それぞれ所定の加工を施した上で、ユーザに提示するための図表やグラフなどをウェブページ形式で作成する。作成されたウェブページは、表示出力部５２によってユーザ端末３２に送られ、ユーザ端末上で表示される。これらの機能ブロックの詳細は、追って説明する。
【００１９】
図３は、連想検索エンジン５０の詳細な構成を示す。ここに示す機能ブロックも、ハードウェアおよびソフトウェアの組合せによっていろいろなかたちで実現できる。
文書データベース１２は、多数の文書をテキストデータとして蓄積する。蓄積される文書としては、新聞記事、雑誌記事、学術論文などが好ましいが、これらに限定されない。別の実施例として、連想検索エンジン５０が、所定の期間毎にネットワークを介して多数のウェブページにアクセスしてページ内の文書データを収集するウェブクローラを備えており、収集した文書データを適宜データベースに蓄積していくように構成してもよい。
【００２０】
文書データベース１２に蓄積された文書データは、後述するように、検索語と関連の深い連想語を導き出すための元データとしての役割を有する。
【００２１】
文書データベース１２は、形態素インデックス１２ａと、テキスト本文１２ｂとを記憶している。形態素インデックス１２ａは、文書データに対して周知の形態素解析を行った結果をインデックス形式で保存したものである。文書データベース１２内に蓄積された多量の文書データに含まれる各文字列に関して、それぞれの出現頻度を集計するには膨大な時間を要する。そこで、本実施形態では、予め全文書データに登場する各形態素が個々の文書データ中に存在しているか否かを一覧表にまとめた形態素インデックス（いわゆる転置インデックス）１２ａを生成しておく。キーワード抽出部１４は、この形態素インデックス１２ａを参照することで、比較的短時間で各文字列の出現頻度を簡単に取得することができる。
【００２２】
キーワード抽出部１４は、係り受け表現抽出フィルタ１４ａ、区切り文字抽出フィルタ１４ｂ、文字列頻度統計フィルタ１４ｃ、ＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄ、および多数決フィルタ１４ｅからなる複数のフィルタを備えている。ここで、本明細書における「キーワード」とは、文書データから抽出された形態素のうち、上述の各種フィルタによってフィルタリングされた個々の文字列のことをいう。つまり、これらキーワードは、検索語と関連の深い連想語を導き出すために予め準備されているものである。したがって、通常の検索エンジンにおける「検索キーワード」とは異なるものであることに注意されたい。
【００２３】
キーワード保持部１６には、キーワード抽出部１４で抽出されたキーワードが格納される。キーワードは、５０音順、ＡＳＣＩＩコード順、または他の適当な規則にしたがって整理されて格納される。
【００２４】
関連度算出部１８は、二つのキーワードが同一の文書中に出現する共起頻度に基づいて、二つのキーワード間の結びつきの強さを示す「関連度」を算出する。算出された関連度は、キーワード関連度保持部２６に保持される。
【００２５】
一般に、あるキーワードＸとキーワードＹの間の関連度は、以下の数式を用いて計算することができる。
【数１】
2009086771.tif 000003
ここで、relevancy(X,Y)は、キーワードＸとキーワードＹの関連度、Xi、Yiは、それぞれキーワードＸ、Ｙが文書データＤｉ（ｉ＝１〜ｍ）の中に出現する回数を表す。
【００２６】
しかしながら、文書データの分量やキーワードの総数が多い場合には、関連度を算出するのに膨大な計算量を伴うため、多くの処理時間を要することとなる。
そこで、本実施形態では、後述するように、まずキーワード出現頻度表２０を作成し、その後これを利用してキーワード組合せ頻度総和表２２およびキーワード頻度総和表２４を作成することにより、計算工程の簡素化を図っている。
【００２７】
図４は、キーワード抽出部１４において文書データからキーワードを抽出する処理を説明するフローチャートである。
まず、キーワード抽出部１４は、文書データベース１２内に蓄積された各文書データに対して係り受け表現抽出フィルタ１４ａを適用し、所定の係り受け表現を含む文字列を抽出する（Ｓ１０）。係り受け表現抽出フィルタ１４ａには、「ＸＸメーカー」、「ＸＸが主力」、「ＸＸを生産」といったような係り受け表現パターンが予め多数用意されている。係り受け表現抽出フィルタ１４ａを適用することで、文書データから上述のような表現パターンを含む文字列を検出した後、キーワード抽出部１４は、「ＸＸ」に相当する部分をキーワード候補として抽出する。
【００２８】
次に、キーワード抽出部１４は、各文書データに対して区切り文字抽出フィルタ１４ｂを適用する（Ｓ１２）。区切り文字抽出フィルタ１４ｂには、「ＸＸ」、”ＸＸ”、（ＸＸ）、［ＸＸ］、,ＸＸ,のような、カンマや括弧、スペース、タブ等の区切り文字が用意されている。キーワード抽出部１４は、これら区切り文字で囲まれた文字列を検出した後、ＸＸに相当する部分をキーワード候補として抽出する。
【００２９】
続いて、キーワード抽出部１４は、各文書データに文字列頻度統計フィルタ１４ｃを適用し、文書データに含まれる各文字列が全文書データにおいて何回出現するのかを集計する。そして、一定範囲の出現頻度を備えた文字列をキーワード候補として抽出する（Ｓ１４）。
【００３０】
ここで、文字列頻度統計フィルタ１４ｃについて説明する。文字列頻度統計フィルタ１４ｃは、文書データ中のある名詞（例えば、「ＤＶＤ」）に注目し、このＤＶＤという注目語が文書データベース１２内に蓄積された各文書データ中に出現する回数をカウントする。続いて、文字列頻度統計フィルタ１４ｃは、この注目語の前後の形態素に範囲を拡張して、いくつかの新たな注目語を作り出す。各注目語が全文書データ中に登場する頻度を再度集計し、この出現頻度が一定数以下（例えば、２０回以下）となった時点で注目語の範囲拡張を停止する。
【００３１】
一例として、「昨年販売したＤＶＤレコーダでは」という文字列があったとする。まず、文字列頻度統計フィルタ１４ｃは、注目語「ＤＶＤ」の一つ前の形態素に範囲を拡張して、「したＤＶＤ」という注目語を作り、この「したＤＶＤ」の出現頻度を集計する。出現頻度が例えば２回であった場合、これ以上前の形態素に範囲が拡張されることはない。続いて、文字列頻度統計フィルタ１４ｃは、注目語「ＤＶＤ」の一つ後の形態素に範囲を拡張して、「ＤＶＤレコーダ」という注目語を作り、出現頻度を集計する。出現頻度が例えば８６２回であった場合は、さらにその一つ後の形態素に範囲を拡張して、「ＤＶＤレコーダでは」という注目語を作る。この注目語の出現頻度が、今度は例えば５回であった場合、これ以降の形態素に範囲が拡張されることはない。
【００３２】
ここで、「形態素」とは、意味を有する最小の言語単位を指す。例えば、「私の名前は鈴木です」を形態素に分解すると、「私（代名詞）」「の（助詞）」「名前（一般名詞）」「は（係助詞）」「鈴木（固有名詞）」「です（助動詞）」となる。形態素解析は当業者には周知であるので、これ以上の説明は省略する。
【００３３】
文字列頻度統計フィルタ１４ｃは、「ＤＶＤ」および「ＤＶＤレコーダ」が所定範囲（例えば、２０〜５０００）内の出現頻度を備えていることを理由に、これらをキーワード候補として抽出する。これに対し、「したＤＶＤ」および「ＤＶＤレコーダでは」は上記の範囲外であるため、キーワード候補から除外される。なお、キーワード候補を決定するための所定範囲の上限値と下限値は、文書データベース１２に蓄積されている文書データの分量や、検索サービス装置３０の主たる使用目的に応じて適宜調整される。この場合、下限値は、出現頻度があまりに少ないと連想検索の対象となりにくい、という観点から決定することが好ましい。逆に、上限値は、あまりに出現頻度が多い語は、汎用語や助詞、助動詞の可能性が高い、という観点から決定することが好ましい。現実には、検索を多数回繰り返すことによって実験的に上限値と下限値を設定する。
【００３４】
図４に戻り、キーワード抽出部１４は、文書データベース１２内に蓄積された文書データに対してＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄを適用し、各文書データから所定以上のスコアを備えた文字列をキーワード候補として抽出する（Ｓ１６）。
このＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄは、専門分野のコーパス、すなわち主として研究目的で収集され、電子化された自然言語の文章からなる巨大な文書データから専門用語を自動抽出するために案出された文字列抽出アルゴリズムである。ＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄは、文書データ中から単名詞および複合名詞を候補語として抽出し、各候補語の出現頻度と連接頻度に基づいてそれぞれの重要度を算出する機能を備えている。このＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄ自体は公知技術であるため、これ以上の説明は省略する。
【００３５】
キーワード抽出部１４は、係り受け表現抽出フィルタ１４ａ、区切り文字抽出フィルタ１４ｂ、文字列頻度統計フィルタ１４ｃ、ＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄによってそれぞれ抽出された各キーワード候補を多数決フィルタ１４ｅに入力し、キーワードを絞り込む（Ｓ１８）。多数決フィルタ１４ｅは、各フィルタ１４ａ〜１４ｄによって抽出されたキーワード候補同士をマッチングし、二つ以上のフィルタによってキーワード候補として挙げられているものを最終的なキーワードと認定する。なお、三つ以上のフィルタによって抽出されたことをキーワード認定の要件としてもよい。認定されたキーワードは、キーワード保持部１６に格納される。
【００３６】
このように、キーワード抽出部１４は、係り受け表現抽出フィルタ１４ａ、区切り文字抽出フィルタ１４ｂ、文字列頻度統計フィルタ１４ｃ、ＴｅｒｍＥｘｔｒａｃｔフィルタ１４ｄという、それぞれ異なる抽出基準を用いた４つのフィルタを用いて、文書データからキーワードを抽出する。こうすることで、文書データから重要なキーワードの抽出ミスが起こるのを防止することができる。さらに、各フィルタによる抽出キーワードをそのまま用いるのではなく、多数決フィルタ１４ｅによって絞り込みをかけることで、ノイズとなるキーワードの混入を防止することができる。
【００３７】
なお、キーワード抽出部１４で使用されるフィルタの数および種類は、上述したものに限定されるわけではなく、他の任意のキーワード候補抽出フィルタを用いることができる。
【００３８】
図５は、関連度算出部１８による各キーワード間の関連度の算出を説明するフローチャートである。まず、関連度算出部１８は、各文書データにおけるキーワードの出現頻度を集計し、キーワード出現頻度表を作成する（Ｓ２０）。
【００３９】
図６は、キーワード出現頻度表１３０の具体例を示す。列１３２は、キーワード保持部１６に格納されている全てのキーワードを表し、列１３４は、各キーワードが文書データＤ１〜Ｄｍの中にそれぞれ何回出現しているかを表している。
【００４０】
続いて、関連度算出部１８は、キーワード出現頻度表１３０に基づき、各文書データＤ１〜Ｄｍに含まれるキーワードの組合せ（ペア）毎にそれぞれの出現頻度を乗じた値を記述したキーワード組合せ頻度総和表２２を作成し（Ｓ２２）、さらに、各キーワードの出現頻度を二乗した値を記述したキーワード頻度総和表２４を作成する（Ｓ２４）。
【００４１】
図７は、キーワード組合せ頻度総和表１１０とキーワード頻度総和表１１８の具体例を示す。図６に示したキーワード出現頻度表１３０のうち、文書データＤ１に含まれるキーワード間の関連度を計算することを考える。この場合、表１３０において、ＫＷ−３およびＫＷ−４の出現頻度は０であるから、実際に関連度を算出すべきキーワードの組合せ１０８は、（ＫＷ−１，ＫＷ−２）、（ＫＷ−１，ＫＷ−５）、（ＫＷ−２，ＫＷ−５）の三つに限られることになる。
【００４２】
キーワード組合せ頻度総和表１１０は、文書データＤ１に含まれる、キーワードＸ１の出現頻度（列１１２）と、キーワードＹ１（列１１４）の出現頻度の積であるＸ１＊Ｙ１（列１１６）を示している。例えば、ＫＷ−１とＫＷ−２の出現頻度はそれぞれ「３」「５」であるから、Ｘ１＊Ｙ１＝１５となる。この列１１６の値を合計したΣＸ１＊Ｙ１は、数１におけるｉ＝１の場合の分子に相当する。
【００４３】
キーワード頻度総和表１１８は、文書データＤ１に含まれる各キーワード１２０の出現頻度の二乗値１２２を示している。この列１２２の値を合計して平方をとった√ΣＸ１２または√ΣＹ１２は、数１におけるｉ＝１の場合の分母に相当する。
【００４４】
このようにして、関連度算出部１８は、各文書データＤ１〜Ｄｍについて、それぞれキーワード組合せ頻度総和表１１０とキーワード頻度総和表１１８とを作成する。そして、これらの値を数１にしたがって加算していくことにより、キーワード間の関連度を算出することができる（Ｓ２６）。したがって、関連度はキーワードのペアに対して一つ与えられることになる。算出された関連度は、キーワード関連度保持部２６に格納される。このキーワード関連度保持部２６を参照することで、後述するような多様な検索処理を実現することができる。
【００４５】
上述のように、文書データＤ１〜Ｄｎのそれぞれについて、各キーワード間の組合せを先に抽出しておき、抽出された組合せについてキーワード組合せ頻度総和表１１０とキーワード頻度総和表１１８を作成することで、出現頻度が０のキーワードについて数１の計算を省くことができる。したがって、文書データのボリュームが大きく、またキーワード数が多い場合でも、関連度を比較的速やかに算出することが可能になる。
【００４６】
また、文書データベース１２に新規の文書データが追加された場合には、この新規文書データ中の各キーワードに係るデータをキーワード組合せ頻度総和表１１０およびキーワード頻度総和表１１８に追加し、既存の集計値に追加分の値を加算することによって、キーワード間の関連度の再計算が容易となる。
反対に、不要となった文書データの影響を排除する場合にも、当該文書データ中の各キーワードに係るデータをキーワード組合せ頻度総和表１１０およびキーワード頻度総和表１１８から削除し、既存の集計値から削除分の値を減算することによって、キーワード間の関連度を最新の状態に維持することが可能となる。
【００４７】
以下、キーワード関連度を使用したいくつかの検索手法について、順に説明する。
【００４８】
１．比較差分検索
比較差分検索は、複数の検索語に対して共通する連想語と相違する連想語を出力するものである。図２を参照して、比較差分検索実行部６０は、連想語選択部６２、連想語マッチング部６４、およびページ作成部６６を含む。
【００４９】
連想語選択部６２は、検索語受付部４２よりユーザから入力された複数の検索語を受け取る。そして、キーワード関連度保持部２６を参照して、検索語と同一または一定範囲内の類似性を有するキーワードを検索語として認定するとともに、当該キーワードとペアとなっているキーワードの中から所定数のキーワードを関連度の高い順に抽出する。このようにして抽出されたキーワードを、検索語に対する「連想語」と呼ぶことにする。
【００５０】
ここで、「一定範囲内の類似性を有する」とは、以下のような意味である。すなわち、キーワード関連度保持部２６の中に、所望の検索語と完全に同一のキーワードが含まれていないことも考えられる。したがって、ある程度近似する言葉であれば、それを代替的にキーワードとみなすのである。一例として、ユーザの入力した検索語が平仮名の「ひまん」であった場合、漢字の「肥満」や片仮名の「ヒマン」も対象とするなどが考えられる。
【００５１】
図８は、ユーザが検索語を入力するための画面１４２の一例を示す。図示するように、比較差分検索の対象である検索語を入力する欄１４４が三つ含まれている。「もっと追加する」ボタン１４８をクリックすると、欄１４４が一つずつ追加され、検索語を四語以上とすることも可能である。検索語を欄１４４に入力した後、「Search」ボタン１４６をクリックすると、検索語が検索語受付部４２に送られる。
ここでは、一例として、「肥満」「糖尿病」「心臓病」の三つの検索語を指定したとして、以下の説明を行う。
【００５２】
図２に戻り、連想語マッチング部６４は、三つの検索語に対してそれぞれ抽出された三セットの連想語について相互にマッチングを行い、検索語「肥満」「糖尿病」「心臓病」のいずれかに対してのみ抽出された連想語、「肥満」「糖尿病」「心臓病」のうち二つに対して抽出された連想語、および「肥満」「糖尿病」「心臓病」の全てに対して抽出された連想語、に分類する。
【００５３】
そして、ページ作成部６６は、連想語マッチング部６４により分類された連想語を図９のページ１５０のようにグループ分けしたページを作成する。図示するように、ページ１５０では、「肥満」「糖尿病」「心臓病」の三つ全てに関連する連想語のグループ１５２と、「肥満」「糖尿病」「心臓病」のいずれかにのみ関連する連想語のグループ１５４〜１５８が表示されている。このように、ユーザが入力した全ての検索語について共通する連想語と、いずれかの検索語にのみ関連する連想語とを一画面内で比較表示することによって、特徴的な連想語を見つけることが容易になる。
【００５４】
ページ１５０には、「ベン図表示」と記載されたボタン１６０が表示される。これをクリックすることで、ページ作成部６６は、連想語マッチング部６４によるマッチング結果をベン図形式に書き換えたページを作成する。
【００５５】
図１０は、このようなベン図表示の一例を示す。ページ１６６には、「肥満」の連想語を含む枠１７０と、「糖尿病」の連想語を含む枠１７２と、「心臓病」の連想語を含む枠１７４とが表示される。そして、周知のベン図と同じように、枠の重複部分には、二つ以上の検索語に対してヒットした連想語が表示される。すなわち、領域１７６には、「肥満」と「糖尿病」に関連する連想語が表示される。領域１７８には、「肥満」と「心臓病」に関連する連想語が表示される。領域１８０には、「糖尿病」と「心臓病」に関連する連想語が表示される。領域１８２には、「肥満」「糖尿病」「心臓病」の全てに共通する連想語が表示される。ページ１６６内の「タグクラウド表示」ボタン１６８をクリックすることで、図９に示したページに戻ることもできる。
【００５６】
ところで、図９のタグクラウド表示、および図１０のベン図表示のいずれにおいても、表示される各連想語は「タグ」として表示される。このタグは、図１１にタグ１６２として示すように長方形状であり、連想語の文字列と、これを取り囲む余白部分とを備えている。検索語を含むタグについては、連想語と区別するために、白黒反転させたタグ１６１を使用することが好ましい。
【００５７】
このタグ１６１、１６２の面積は、連想語のフォントサイズと文字数に応じて自動的に決定される。検索語との関連度が大きいほど大きなフォントサイズが割り当てられる。以下に、フォントサイズの設定方法の一例を示す。
ページ上で表示される最大フォントサイズ＝Ａポイント
ページ上で表示される最小フォントサイズ＝Ｂポイント
フォントサイズ変換比Ｒ＝（Ａ−Ｂ）／（関連度の最大値−関連度の最小値）
このとき、連想語ＸのフォントサイズＦは、Ｆ＝（連想語Ｘの関連度−関連度の最小値）＊Ｒで設定される。
【００５８】
以上説明したように、本実施形態の比較差分検索によれば、二つ以上の検索語を指定し、それらに対する連想語の共通部分と相違部分とを容易に知ることができる。例えば、検索語Ａに対する連想語と、検索語Ｂに対する連想語とで共通のものを参照することで、これら検索語の背後にある類似の概念を知ることができる。また、検索語ＡまたはＢに対する固有の連想語を参照することで、他方の検索語からは想起されない概念を知ることができる。このように、本実施形態の比較差分検索により、複数の検索語から多様な関連する概念を導き出すことができる。
【００５９】
このような比較差分検索の活用例としては、以下のようなものが考えられる。
（１）同業種である複数の企業名を検索語として比較差分検索を実施する。これによって、企業間で共通の連想語と各企業単独の連想語とを見ることができるため、投資に際して考慮すべき企業間の共通性や各企業の独自性を発見することが容易になる。
（２）競合関係にある商品の名称を検索語として比較差分検索を実施する。これによって、各商品の共通性や独自性を発見できるため、マーケティング等に活用することができる。
（３）一見何の関係もない複数の検索語を入力して比較差分検索を実施することで、新規な着眼点を発見したり発想を膨らましたりするアイデアのマイニングに利用することができる。
【００６０】
２．比較差分検索のマップ表示
上述のように、比較差分検索をタグクラウド表示またはベン図表示することで、それぞれの検索語に対する連想語の共通部分と相違部分とを容易に把握することができる。しかし、これらの表示形式では、連想語と検索語との関連度合いや、二つの検索語がある場合にどちらの検索語に対して各連想語との結びつきが強いのかといった、結びつきの強さに関する情報を得ることができない。そこで、以下では、比較差分検索の結果をマップ表示する方法について説明する。
【００６１】
図２に戻り、二次元マップ作成部７０は、データ集計部７２、主成分分析部７４、座標データ変換部７６、マップ作成部７８を含む。
データ集計部７２は、ユーザから入力された複数の検索語それぞれについてキーワード関連度保持部２６から抽出された連想語を、連想語選択部６２から受け取る。そして、関連度が上位の連想語について、キーワード出現頻度表２０を参照して、各文書データ内での連想語の出現頻度を集計する。主成分分析部７４は、連想語の出現頻度に基づき、周知の主成分分析を実行する。座標データ変換部７６は、主成分分析の結果に基づいて、各連想語を二次元のマップ上に配置するための座標を計算する。マップ作成部７８は、計算された座標に連想語を含むタグを配置した連想語マップを作成する。
【００６２】
図１２は、比較差分検索のマップ表示処理を説明するフローチャートである。まず、ユーザが検索語を入力すると（Ｓ３０）、連想語選択部６２は、キーワード関連度保持部２６を参照して、検索語と同一または一定範囲内の類似性を有するキーワードを検索語として認定するとともに、当該キーワードとペアとなっているキーワードの中から所定数のキーワードを、関連度の高い順に連想語として抽出する（Ｓ３１）。
【００６３】
例えば、ユーザから検索語として「肥満」と「心臓病」の二つが入力されたとする。連想語選択部６２は、図１３の表１８６に示すように、検索語「肥満」との関連度が高い順に、「脂肪」、「糖尿病」、「糖尿」、．．．、「体重」の各キーワードを連想語として抽出する。同様に、データ集計部７２は、表１８８に示すように、検索語「心臓病」との関連度が高い順に、「心臓」、「病」、「治療」、．．．、「内科」の各キーワードを連想語として抽出する。
【００６４】
続いて、データ集計部７２は、「肥満」の連想語と「心臓病」の連想語について関連度を合計し、両者の和集合を作る（Ｓ３２）。例えば、連想語「病」が「肥満」に対して関連度Ｃを有し、「心臓病」に対して関連度Ｄを有している場合には、和集合における「病」の関連度はＣ＋Ｄになる。そして、データ集計部７２は、和集合のうち、関連度が大きい順に所定数、例えば５０位までの連想語を抽出する。図１３の表１９０は、このようにして抽出された連想語である。なお、抽出する連想語の数は、後述する連想語マップ内に配置可能なタグの数以下とする必要がある。
【００６５】
次に、データ集計部７２は、キーワード出現頻度表２０を参照して、和集合に含まれる連想語および検索語が出現している文書データのＩＤと、各文書データ内での出現頻度とを取得する（Ｓ３４）。
【００６６】
図１４は、Ｓ３４の取得結果を示すテーブル１９４を示す。列１９６は連想語であり、ここでは代表として連想語「病」を示している。列１９８は、連想語「病」が含まれている文書データの文書ＩＤを示す。列２００は、列１９８で特定される文書データ内に、列１９６の連想語が出現する回数を示す。
【００６７】
図１５は、テーブル１９４を集計し直して、文書データ毎に検索語および連想語がいくつずつ含まれているかを示すクロス集計テーブル２０２を示す。行項目２０６は、文書データの文書ＩＤを示し、各列との交差部に列項目２０４で指定される連想語または検索語の出現回数が示されている。一例として、文書ＩＤ「６１０２」で指定される文書データには、「心臓」が２回、「心臓病」が１回、「肥満」が３回、「病」が１回出現していることを表している。
【００６８】
主成分分析部７４は、クロス集計テーブル２０２に示した文書データ毎の検索語または連想語の出現頻度に対して周知の主成分分析を実行し（Ｓ３６）、分析結果として検索語または連想語の第１主成分値および第２主成分値を算出する（Ｓ３８）。図１６は、主成分分析の結果２１０を示す。列２１２は、図１５の列項目２０４に対応する検索語および連想語であり、列２１４、２１６は、それぞれ第１主成分値および第２主成分値を示す。
【００６９】
座標データ変換部７６は、各検索語および連想語の第１主成分値および第２主成分値に基づき、所定の面積を備えた２次元平面上にタグを配置するための座標値を算出する（Ｓ４０）。一例として、検索語または連想語ＥのＸ座標とＹ座標は、次に式のようにして算出される。
Ｘ座標変換比＝座標平面の横幅÷（第１主成分値の最大値−第１主成分値の最小値）
Ｙ座標変換比＝座標平面の縦幅÷（第２主成分値の最大値−第２主成分値の最小値）
Ｘ座標＝（Ｅの第１主成分値−第１主成分の最小値）＊Ｘ座標変換比
Ｙ座標＝（Ｅの第２主成分値−第２主成分の最小値）＊Ｙ座標変換比
【００７０】
図１７は、座標平面の横幅を７００ピクセル、縦幅を５００ピクセルとしたとき、各検索語または連想語（列２２２）のＸ座標（列２２４）およびＹ座標（列２２６）を計算した結果２２０を示す。
【００７１】
マップ作成部７８は、検索語または連想語を含むタグを作成し（Ｓ４２）、Ｓ４０で算出された座標値にしたがって、それらのタグを座標平面上に配置した連想語マップを作成する（Ｓ４４）。このとき、各タグの中心点が上述のＸＹ座標に一致するように配置する。作成された連想語マップは、表示出力部５２によりユーザ端末３２に送信される（Ｓ４６）。
【００７２】
図１８は、上述の手順にしたがって作成された連想語マップ２３０を示す。上述のように、関連度は、検索語「肥満」に対するものと検索語「心臓病」に対するものが合計されているため、タグのサイズは、両検索語との関連度が大きいほど大きくなっている。また、各タグ２３２の配置された座標は、検索語「肥満」、「心臓病」との共起性に基づく関連の強さを反映している。したがって、検索語「肥満」、「心臓病」と他のタグとの距離が近いほど、関連性の高い連想語であることを示している。例えば、検索語「肥満」の近傍には、「予防」「脂肪」「血圧」「硬化」といった連想語のタグが集まっているため、「肥満」とこれらの連想語の関連性が高いことを読み取ることができる。また、マップ内で互いに近距離に位置する連想語は、同じ文書内で共起している度合いが高いことを示している。さらに、例えば「ウエスト」「こうそく」「動脈」といった連想語は、検索語「肥満」と「心臓病」からほぼ等距離に位置しているため、これらの連想語は、「肥満」と「心臓病」に対して同程度の関連性があることを示している。
【００７３】
このように、ユーザは連想語マップ２３０を参照することで、タグ２３２の配置の様子から、複数の検索語に対する各連想語の関連度合いや、連想語間の類似性などを読み取ることができる。
【００７４】
なお、上記では検索語が二語の場合を例として説明したが、検索語が三語以上であっても同様の手順で連想語マップを作成することができる。さらに、検索語が一語であっても連想語マップを作成できる。この場合、図１２のＳ３２における関連度の和集合を作成する処理を省き、単独の関連度に基づいて主成分分析等の処理をすればよい。
【００７５】
ところで、図１８では、各タグ２３２は互いに重ならないように配置されている。しかしながら、実際には、タグが所定の面積を有している一方、検索語または連想語について座標を算出する際には、タグの大きさを考慮していない。そのため、各タグを座標データにしたがって二次元平面上に配置すると、図１９に示すマップ２４０のように、タグ同士が重複して配置されてしまうことが多い。特に、表示するタグの数が多いほど、この傾向は顕著になる。
このような場合、配置座標の正確性よりもユーザの視認性を重視し、タグ同士の重複を解いて文字を認識し易いように調整することが望ましいが、各タグ間の関係性を尊重するという観点からは、タグの移動距離を最小限に抑えることが重要となる。
【００７６】
そこで、マップ作成部７８は、各タグの移動距離を最小限に抑えつつ重複表示を解消するために、以下で述べるようなアルゴリズムを採用している。以下、図２０のフローチャートにしたがい、その手順を説明する。
【００７７】
まず、マップ作成部７８は、各タグの面積を比較し、面積の大きい順番に位置を固定する（Ｓ５０）。各タグの面積は、上記の通り、キーワードのフォントサイズおよび文字数によって決定される。この過程でタグ間の重複が検知された場合には（Ｓ５２のＹ）、重複タグ同士の面積を比較し（Ｓ５４）、最も面積の大きなタグの位置を固定する（Ｓ５６）。
【００７８】
次に、マップ作成部７８は、重複タグ中で２番目に面積の大きなタグを上下左右の何れかの方向に移動させ、面積が最も大きなタグとの重複状態を解消させる（Ｓ５８）。この際、マップ作成部７８は以下のルールに拘束される。
（１）原則として、最も移動距離が短くて済む方向を優先的に選択する。
（２）原則として、既に固定済みのタグと重複する方向は選択できない。
（３）何れの方向においても固定済みのタグと重複する場合には、最も重複面積が小さくて済む方向を選択する。
（４）タグが表示領域の枠を越える方向は選択できない。
（５）戻り方向への移動は選択できない。
【００７９】
移動先において他のタグとの重複が発生した場合（Ｓ６０のＹ）、マップ作成部７８はＳ５４〜Ｓ５８のステップを繰り返し、重複状態の回避を図る。全てのタグについて重複回避のための調整処理が完了するまで、マップ作成部７８はＳ５４〜Ｓ６０の処理を繰り返す（Ｓ６２）。
【００８０】
図２１ないし図２７は、タグ間の重複解消処理の具体例を示す。図２１は、座標データ変換部７６で算出された座標通りにタグを配置した初期状態を示している。図２１では、表示領域の枠αの近傍において、「ＡＢＣ」タグ４０ａ、「ＤＥＦ」タグ４０ｂ、「ＧＨＩ」タグ４０ｃ、「ＪＫＬＭＮＯ」タグ４０ｄ間に重複が生じている状態を示している。
【００８１】
この場合、まずマップ作成部７８は各重複タグ間の面積を比較し（Ｓ５４）、最も面積の大きな「ＡＢＣ」タグ４０ａを現在位置に固定する（Ｓ５６）。
【００８２】
次に、マップ作成部７８は、「ＡＢＣ」タグ４０ａの次に面積の大きな「ＤＥＦ」タグ４０ｂの位置を上下左右の何れかの方向に移動させ、「ＡＢＣ」タグ４０ａとの重複を解消する（Ｓ５８）。この場合、図２１に点線で示すように、移動距離が最も短くて済むのは上方向であり、他の固定済みのタグと重複したり、枠αに抵触することもないため、図２２に示すように、マップ作成部７８は「ＤＥＦ」タグ４０ｂを上方向に移動させる。
【００８３】
続いて、マップ作成部７８は、「ＤＥＦ」タグ４０ｂの次に面積の大きな「ＧＨＩ」タグ４０ｃの位置を上下左右の何れかの方向に移動させ、「ＡＢＣ」タグ４０ａとの重複を解消する。図２２に点線で示すように、「ＤＥＦ」タグ４０ｂを左方向に動かすと、枠αとの抵触が生じるため、上記（４）のルールにより左方向は移動先として除外される。また、上方向への移動は固定済みの「ＤＥＦ」タグ４０ｂと重複し、右方向も固定済みの「ＳＴＵＶ」タグ４０ｆとの重複が生じ、下方向も固定済みの「ＰＱＲ」タグ４０ｅとの重複が生じるため、上記（２）のルールからすれば選択できないこととなる。そこで、マップ作成部７８は、上記（３）のルールを適用し、図２３に示すように、最も重複面積が小となる下方向を「ＧＨＩ」タグ４０ｃの移動先として選択する。
【００８４】
この結果、「ＧＨＩ」タグ４０ｃと「ＰＱＲ」タグ４０ｅとの重複関係が新たに発生することとなるため、マップ作成部７８は引き続き「ＧＨＩ」タグ４０ｃを移動対象とする。この場合、図２３に点線で示すように、左方向および下方向への移動は枠αとの抵触が発生し（上記（４）のルール違反）、また上方向は戻り方向となるため（上記（５）のルール違反）、図２４に示すように、マップ作成部７８は「ＧＨＩ」タグ４０ｃを右方向に移動させ、「ＰＱＲ」タグ４０ｅとの重複を解消する。
【００８５】
この結果、「ＧＨＩ」タグ４０ｃと「ＳＴＵＶ」タグ４０ｆとの重複関係が発生することとなるため、マップ作成部７８は再度「ＧＨＩ」タグ４０ｃを移動対象とする。この場合は、図２４に点線で示すように、下方向が最も短い移動距離で「ＳＴＵＶ」タグ４０ｆとの重複を回避でき、固定済みのタグと重複することも枠αと抵触することもない。したがって、図２５に示すように、マップ作成部７８は「ＧＨＩ」タグ４０ｃを下方向に移動させる。
【００８６】
続いて、マップ作成部７８は、残された「ＪＫＬＭＮＯ」タグ４０ｄの位置を上下左右の何れかの方向に移動させ、「ＡＢＣ」タグ４０ａとの重複を解消する。この場合、図２５に点線で示すように、「ＪＫＬＭＮＯ」タグ４０ｄを左方向に動かすと、枠αとの抵触が生じるため、上記（４）のルールにより、左方向は移動先として除外される。また、上下方向および右方向への移動は何れも固定済みのタグと重複が生じる。そこで、マップ作成部７８は、上記（３）のルールにしたがい、図２６に示すように、重複面積が最も小さくて済む下方向への移動を選択し、「ＡＢＣ」タグ４０ａとの重複関係を解消させる。
【００８７】
この結果、「ＪＫＬＭＮＯ」タグ４０ｄと「ＰＱＲ」タグ４０ｅとの重複関係が新たに発生するため、マップ作成部７８は「ＪＫＬＭＮＯ」タグ４０ｄを再度移動対象とする。この場合、図２６に点線で示すように、下方向に移動すれば他の固定済みタグとの重複が発生せず、枠αとの抵触も生じないため、図２７に示すように、マップ作成部７８は「ＪＫＬＭＮＯ」タグ４０ｄを下方向に移動させる。
【００８８】
以上の処理により、タグ間の重複状態が全て解消されることとなる。例えば、図１９に示した連想語マップは、タグの重複が解消されて図２８に示すマップ２４８のようになる。
【００８９】
上述の説明では、表示領域の枠αを固定するという前提に立っているため、（２）のルールを設定し、枠αに抵触する方向への移動は選択できないものとしたが、これに限定されるわけではない。例えば、タグの表示領域を上下左右にスクロール可能に構成したり、または表示領域の全体をズームイン／ズームアウト可能に構成することにより、枠αを越えたタグの移動を許容することもできる。
【００９０】
また、上述の説明では、タグの重複を一切排除する方法について説明したが、若干の重複を許容するようにしてもよい。例えば、各タグの面積の５％以内の重複を許容するというように設定しておけば、タグの視認性を比較的良好に維持したまま、その移動距離を短く抑えることが可能となる。
【００９１】
以上説明したように、本実施形態によれば、比較差分検索の結果を主成分分析を用いて二次元座標に変換し、二次元マップとして表示できるようにした。これにより、ユーザはタグの位置関係や集積度を見ることで、複数の検索語に対する連想語の関連性、および連想語同士の関連性を視覚的に把握することが可能になる。
【００９２】
これにより、ある企業または商品と、同業他社または競合製品とを検索語に指定して比較差分検索を実施し、マップ表示させることで、それぞれの独自性や共通性の比較検討を画面上で容易に行うことができる。また、二次元マップとして表示するため、連想語間の予想外の関連性を発見できる可能性もある。
【００９３】
なお、上記では連想語を二次元マップ上に表示しているが、クロス集計テーブルから第３主成分を求めることで、連想語を三次元マップとして表示できることは言うまでもない。
【００９４】
３．連想語の鮮度表示
上記で説明した連想検索結果の表示方法は、複数の検索語と連想語間の関連度の高低を比較するのに適している。しかしながら、連想語はそれぞれ別の時点に作成された文書データの中から抽出されているにもかかわらず、連想検索結果においてはその作成時点が全く考慮されていないという問題がある。
【００９５】
図２９は、ある検索語に対する連想語Ａ、Ｂの文書データ内での出現頻度の一例２５０を示す。横軸は時間の経過を示し、右に行くほど最新の文書データであることを表す。縦軸は、横軸で示される時点に作成された文書データ内に含まれている連想語の数を表す。例えば、最近話題となったニュース項目に関連する連想語Ｂは、図示するように、より最近の文書中での出現頻度が高い。それに対し、過去に話題となったニュース項目に関連する連想語Ａは、その当時の文書データでの出現頻度は高いが、最近の文書データでの出現は少ない。このような場合、連想語Ａと連想語Ｂとは、全期間を通しては同程度の出現頻度でも、異なる扱いとしたい。例えば、図中のグラフ２５２で示すように、過去の連想語には負の重みを、最近の連想語には正の重みを与えて連想語の出現頻度を集計してやれば、最近の連想語が高く評価されるようになる。
そこで、本実施形態の鮮度検索実行部では、連想語の検索結果に時間情報を含めて表示する方法を提供する。
【００９６】
図２を参照して、鮮度検索実行部８０は、出現頻度取得部８２と、鮮度算出部８４と、鮮度表示部８６とを含む。
出現頻度取得部８２は、ユーザから入力された複数の検索語それぞれについてキーワード関連度保持部２６から抽出された連想語を、連想語選択部６２から受け取る。そして、各連想語の文書データ内の出現頻度を求める。鮮度算出部８４は、各連想語の文書データへの出現頻度と文書データの作成時点とに応じて重み付けを行い、連想語毎にデータの新しさを表す「鮮度」を算出する。鮮度表示部８６は、抽出された連想語を表示するページを作成する。このとき、鮮度に応じて各連想語を含むタグの表示態様を変化させる。一例として、鮮度が大きいほどタグのサイズを大きくしたり、またはタグの色を目立つようにしたりする。
【００９７】
図３０は、鮮度検索処理を説明するフローチャートである。まず、ユーザが検索文字列を入力すると（Ｓ７０）、連想語選択部６２は、キーワード関連度保持部２６を参照して、検索語と同一または一定範囲内の類似性を有するキーワードを検索語として認定するとともに、当該キーワードとペアとなっているキーワードの中から所定数のキーワードを、関連度の高い順に連想語として抽出する（Ｓ７２）。続いて、出現頻度取得部８２は、キーワード出現頻度表２０を参照して、検索語および連想語が出現している文書データのＩＤと、各文書データ内での出現頻度とを取得する（Ｓ７４）。
【００９８】
鮮度算出部８４は、文書データのメタデータを参照して作成日付を取得する。そして、検索語または連想語毎に、文書データの日付順に出現頻度を並び替え、日付に応じた重みを与える（Ｓ７６）。そして、出現頻度に重みを乗じた値を合計することで、検索語または連想語の鮮度を算出する（Ｓ７８）。
【００９９】
図３１は、Ｓ７６〜Ｓ７８の様子を示すテーブル２５６である。列２５８は検索語または連想語を表す。ここでは、例として「肥満」という連想語を示している。列２６０は、列２５８の検索語または連想語が含まれていた文書データの作成日付である。図示するように、データは日付順に並べられている。列２６２は、検索語または連想語の文書データ内での出現頻度である。列２６４は、文書データの作成日付により決まる重みである。この例では、新しいデータほど重みが大きくなるように設定されている。列２６６は、出現頻度と重みを乗じた結果を示す。この列２６６の値を合計することで、検索語または連想語についての鮮度が求められる。
【０１００】
鮮度表示部８６は、検索語および連想語をタグクラウド形式で表示するページを作成する。このとき、算出された鮮度に応じてタグの大きさや色を変えるようにする（Ｓ８０）。図３２は、以上のようにして作成された検索結果のページ２７０を示す。「糖尿」「糖尿病」「脂肪」などが大きなタグで表示されており、これらの連想語は鮮度が非常に高いことを表している。なお、鮮度表示部８６は、上述のベン図形式、または連想語マップの形式で検索結果ページを作成してもよい。後者の場合、複数の検索語について上述の方法にしたがって連想語マップを作成するとともに、連想語の和集合から関連度が大きい順に抽出された所定数の連想語について、各文書データ内での出現頻度を取得する。続いて、文書データの作成日付に応じて重み付けをし、鮮度を算出する。そして、先に作成した連想語マップ内の各タグを、鮮度に応じた表示に変えればよい。
【０１０１】
以上説明したように、本実施形態によれば、各連想語が出現する文書データの日付を参照して重み付けをすることで、連想語の検索結果に時間的な情報を含めることができる。従来の検索では、連想語の抽出ベースとなっている文書データには、作成時点やデータベースへの蓄積時点などの時間の要素が内在しているにもかかわらず、検索結果では時間情報が捨象されていた。これに対し本実施形態では、時間情報をある程度検索結果に反映させることが可能になる。
【０１０２】
この手法を応用することで、「特定の期間に盛り上がりを見せた話題に関する連想語」を検索することもできる。例えば、特定の期間に作成された文書データに含まれる連想語にのみ重みを与え、他の文書データに含まれる連想語にはゼロの重みを付与することで、不要な連想語を排除することができる。
【０１０３】
重み付けは、他にも多様な検索視点から設定可能である。例えば、過去の文書データほど重みを大きくする、特定の時点をピークとした正規分布状の重みを与える、毎年一定期間（例えば、６〜９月）の重みを他の期間よりも大きくする、特定の曜日のみ重みを大きくする、などが考えられる。
【０１０４】
なお、上述では文書データの作成日付に応じた重みを付与したが、他にも、文書データをデータベースに蓄積した日付に応じた重みを付与する、文書データの閲覧回数に応じた重みを付与する、などのように、文書データのメタデータに含まれる属性に応じて重みを変えるようにしてもよい。
【０１０５】
４．連想検索結果に対するユーザフィードバック
従来の検索手法においては、連想語は予め蓄積されている文書データから抽出されたキーワードに基づいて検索される。しかし、このような手法では、検索精度にはある程度の限界がある。例えば、同一の文書内で共起する頻度は少ないものの、連想される可能性の高い語句などは漏れてしまう可能性がある。逆に、使用頻度の高い単語などは、同一の文書内で共起する頻度が高いため、連想される可能性が低いのに検索されノイズとなってしまう可能性がある。
そこで、本実施形態のユーザフィードバック反映処理部では、検索サービス装置の出力する連想検索結果に対してユーザのフィードバックを入れられるようにした。
【０１０６】
図２を参照すると、ユーザフィードバック反映処理部９０は、連想語追加部９２、投票処理部９４、タグ強調部９６、検索履歴表示部９７、選択肢表示部９８を備える。
連想語追加部９２は、ユーザから提案された連想語を受け取り、検索語と連想語とを新たなキーワードのペアとしてキーワード関連度保持部２６に追加する。このとき、このペアに与えられる関連度は予め定められている初期値に設定する。提案された連想語と検索語とのペアが既にキーワード関連度保持部２６に存在している場合は、その提案を無視してもよいし、または所定の値または所定の比率だけ関連度を増加させるようにしてもよい。
【０１０７】
投票処理部９４は、ユーザからの投票結果を受け取り、キーワード関連度保持部２６内の検索語と連想語のペアについての関連度を変化させる。例えば、ユーザから連想語に対して賛成する投票があった場合には、検索語と連想語のペアについての関連度を所定の値または所定の比率だけ増加させる。反対に、ユーザから連想語に対して反対する投票があった場合には、検索語と連想語のペアについての関連度を所定の値または所定の比率だけ減少させる。このとき、関連度が予め定められている閾値以下になった場合には、そのペアをキーワード関連度保持部２６から消去するようにしてもよい。
【０１０８】
タグ強調部９６は、各タグに対するユーザのクリックを集計し、連想語毎にクリックされた回数を保持しておく。そして、クリック数が多い連想語を含むタグについては、色を濃くしたりまたは色を変えるなどの強調表示をするように、ページ作成部６６やマップ作成部７８に対して指令を出す。上述したように、連想語を含むタグの大きさは、関連度の値に応じて決まっている。したがって、ユーザは、色の違うタグとサイズの違うタグとを見分けることで、他のユーザの関心が高い連想語と、検索語に対する関連度の高い連想語とを区別することが可能になる。
【０１０９】
検索履歴表示部９７は、検索サービス装置３０にアクセスしたユーザのログを記録する。このログには、各ユーザが行った検索の履歴が含まれている。検索履歴表示部９７は、ユーザからの要請に応じて、各ユーザの検索の履歴を表示する。
【０１１０】
選択肢表示部９８は、ユーザがタグをクリックしたときに画面に表示するメニューを作成する。メニューは表示出力部５２に渡され、タグクラウド表示、連想語マップ表示またはベン図表示と重畳表示される。
【０１１１】
図３３は、検索語「肥満」に対する連想語のタグクラウド表示２７２に含まれているタグをユーザがクリックしたときに表示されるメニュー２７４の一例を示す。図示するように、ここでは「食」というタグがクリックされている。選択肢表示部９８は、そのタグに対する選択肢として、「”食”に行く」２７６、「ウェブ検索する」２７８、「肥満−食の連想に投票する」２８０、「食は肥満と関係ないと思う」２８２の選択肢を含むメニュー２７４を表示する。
【０１１２】
このうち、ユーザが「”食”に行く」２７６を選択すると、新たに検索語として「食」を指定したときの連想検索が実行される。すなわち、検索語「食」に対する連想語の抽出と検索結果の表示が、上述の比較差分検索実行部６０、二次元マップ作成部７０、または鮮度検索実行部８０のいずれかによって行われる。タグ「食」が表示されているマップと同種類のマップを作成するようにしてもよいし、さらに別のメニューが表示されて、ユーザが所望の種類のマップを選べるようにしてもよい。
【０１１３】
また、ユーザが「ウェブ検索する」２７８を選択すると、ユーザ端末においてウェブブラウザが起動して予め設定された検索サイトに接続され、当該検索サイトに対して「食」が検索語として送信される。
【０１１４】
ユーザが、「肥満」の連想語として「食」が検索されたことに賛成する場合、「肥満−食の連想に投票する」２８０が選択される。この選択肢が選択されると、投票処理部９４は、キーワード関連度保持部２６内の「肥満」と「食」のキーワードペアの関連度を増加させる。これにより、図３４（ａ）に示すように、「食」のタグの色が濃く表示される。ユーザが、「肥満」の連想語として「食」が検索されたことに反対する場合、「食は肥満と関係ないと思う」２８２が選択される。この選択肢が選択されると、投票処理部９４は、キーワード関連度保持部２６内の「肥満」と「食」のキーワードペアの関連度を減少させる。これにより、図３４（ｂ）に示すように、「食」のタグの色が薄く表示される。
【０１１５】
ユーザが連想語に対する賛成または反対の投票をしたときに、投票処理部９４は、投票した本人に対する表示態様と、他のユーザに対する表示態様とを異ならせるように、ページ作成部６６やマップ作成部７８に対して指令を出してもよい。こうすることで、ユーザは、自分が投票した連想語と他のユーザが投票した連想語とを区別することができる。
【０１１６】
図３５（ａ）は、ユーザが検索語に対する新たな連想語を提案するためのページ２９０の一例を示す。図示するように、検索語「肥満」に対してユーザが提案する連想語を入力するためのフィールド２９２が表示されている。ユーザが「提案する」ボタン２９４をクリックすると、入力された言葉がユーザ端末３２から検索サービス装置３０に送信される。連想語追加部９２は、受け取った言葉と検索語とをキーワードにしたペアをキーワード関連度保持部２６に格納する。
【０１１７】
代替的に、連想語追加部９２は、提案された連想語を直ちにキーワード関連度保持部２６に格納するのではなく、当分の間、他のユーザによる提案された連想語に対する投票を受け付けるようにしてもよい。図３５（ｂ）はそのような投票を受け付けるためのページ２９８の一例を示す。図示するように、フィールド３００には、全てのユーザから提案された言葉がタグとして表示される。ユーザがこのタグをクリックすると、図３３で説明したメニューと同様のメニュー３０２が表示される。ユーザは、それぞれの選択肢３０４〜３１０を適宜選択することで、提案された言葉に対する連想語を調べたり、ウェブで検索したり、提案された言葉に対して賛成や反対の意思を表すことができる。
【０１１８】
ユーザが賛成の投票をする毎に、フィールド３００に表示される連想語のフォントを大きくしたり、反対の投票をする毎に、連想語のフォントを小さく表示したりしてもよい。
投票処理部９４は、提案された連想語に対する賛成の投票が一定値を超えた場合、その連想語と検索語のペアをキーワード関連度保持部２６に格納するようにしてもよい。また、投票処理部９４は、提案された連想語に対する反対の投票が一定値を超えた場合、その連想語を破棄するようにしてもよい。
【０１１９】
図３６は、ユーザが行った検索の履歴を表示するページ３１２の一例を示す。ここには、他のユーザが、メニュー２７４で提示された選択肢２７６を利用して、タグに対する連想検索を繰り返したときの履歴が表示される。つまり、履歴３１３の場合、このユーザは、最初に「肥満」を検索語にして連想検索を実施し、続いて「メタボリックシンドローム」のタグをクリックしてこれを検索語にして連想検索を実施し、以下同様の処理を繰り返したことを表している。ユーザがいずれかの履歴をクリックすると、ページ３１４が表示される。各タグ３１６をクリックすることで、それぞれの連想検索結果を確認することができる。
【０１２０】
このように、ユーザは、他のユーザによる検索の足跡を参照することによって、他人の連想の流れを辿っていくことができる。これによって、新たな視野を開拓したり、思いつかなかった発想を得たりするようなツールとして検索サービス装置を利用することができる。
【０１２１】
なお、上述の説明では、タグクラウド表示されたタグに対してユーザフィードバックすることを述べたが、ベン図表示されたタグ、または連想語マップに表示されたタグについても、同様の方法でフィードバックを与えられることは言うまでもない。
【０１２２】
また、上述の説明では、単一の検索語に対する連想語のタグに対してユーザフィードバックすることを述べたが、複数の検索語に対する連想語のタグに対しても、同様のことができる。この状況において、ユーザが連想語に対して賛成または反対の投票をする場合、選択肢表示部９８は、複数の検索語のいずれに対しての投票かを選択できるようなメニュー２７４を表示することが好ましい。投票処理部９４は、メニューで選択された検索語と連想語のキーワードペアの関連度を増加または減少させるようにする。
【０１２３】
以上説明したように、本実施形態によれば、検索サービス装置の検索結果に対してユーザがフィードバックを与えられるので、連想検索の精度を向上させることができる。また、タグをクリックするだけでフィードバック用の選択肢が表示されるという仕組みを設けることで、参加の垣根を低くしている。これによって、投票や提案といったユーザの自然な参加を促し、ユーザの集合知によって連想検索の精度を継続的に高められる可能性がある。
【０１２４】
また、比較的最近の話題についての連想語は、それを含む文書データがデータベースに相応の数だけ蓄積されるまでに時間がかかるため、連想検索結果として反映されるまでにタイムラグが生じてしまう。しかし、上述のようなユーザのフィードバックを利用することで、より早期に連想検索結果として反映される可能性がある。
【０１２５】
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１２６】
請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【０１２７】
本明細書にはいくつかの実施の形態が含まれるが、これらの実施形態は適宜組み合わせて用いることが可能である。また、上述の実施形態のうちの一部を含まないように構成することも可能である。
【図面の簡単な説明】
【０１２８】
【図１】本発明の一本実施形態に係る連想検索システムの全体構成図である。
【図２】検索サービス装置の構成を示す図である。
【図３】連想検索エンジンの詳細な構成を示す図である。
【図４】文書データからキーワードを抽出する処理を説明するフローチャートである。
【図５】関連度算出部による各キーワード間の関連度の算出を説明するフローチャートである。
【図６】キーワード出現頻度表の具体例を示す図である。
【図７】キーワード組合せ頻度総和表とキーワード頻度総和表の具体例を示す図である。
【図８】ユーザが検索語を入力するための画面の一例を示す図である。
【図９】タグクラウド形式による検索結果の表示の一例を示す図である。
【図１０】ベン図形式による検索結果の表示の一例を示す図である。
【図１１】タグの表示例を示す図である。
【図１２】比較差分検索のマップ表示処理を説明するフローチャートである。
【図１３】抽出された連想語の例を示す図である。
【図１４】文書内での連想語の出現頻度を示すテーブルである。
【図１５】文書データ毎に検索語および連想語がいくつずつ含まれているかを示すクロス集計テーブルである。
【図１６】主成分分析の結果を示す図である。
【図１７】各検索語または連想語のＸ座標およびＹ座標を計算した結果を示すテーブルである。
【図１８】連想語マップを示す図である。
【図１９】タグ同士が重複して配置されている連想語マップを示す図である。
【図２０】タグ間の重複を解消するアルゴリズムを説明するフローチャートである。
【図２１】タグ間の重複を解消する処理の具体例を示す図である。
【図２２】タグ間の重複を解消する処理の具体例を示す図である。
【図２３】タグ間の重複を解消する処理の具体例を示す図である。
【図２４】タグ間の重複を解消する処理の具体例を示す図である。
【図２５】タグ間の重複を解消する処理の具体例を示す図である。
【図２６】タグ間の重複を解消する処理の具体例を示す図である。
【図２７】タグ間の重複を解消する処理の具体例を示す図である。
【図２８】タグ間の重複が解消された連想語マップを示す図である。
【図２９】特定の検索語に対する連想語Ａ、Ｂの文書データ内での出現頻度の一例を示すグラフである。
【図３０】鮮度検索処理を説明するフローチャートである。
【図３１】連想語に対する重み付けを説明するテーブルである。
【図３２】鮮度検索の結果を示す表示の一例を示す図である。
【図３３】タグクラウド表示に含まれているタグをユーザがクリックしたときに表示されるメニューの一例を示す図である。
【図３４】（ａ）、（ｂ）は、ユーザフィードバック処理によりタグの色が変化する様子を示す図である。
【図３５】（ａ）、（ｂ）は、ユーザが新たな連想語を提案するためのページを示す図である。
【図３６】ユーザが行った検索の履歴を表示するページの一例を示す図である。
【符号の説明】
【０１２９】
１０  連想検索システム、  １２  文書データベース、  １４  キーワード抽出部、  １６  キーワード保持部、  １８  関連度算出部、  ２０  キーワード出現頻度表、  ２２  キーワード組合せ頻度総和表、  ２４  キーワード頻度総和表、  ２６  キーワード関連度保持部、  ３０  検索サービス装置、  ３６  ユーザ処理部、  ４２  検索語受付部、  ４４  ユーザ特定部、  ４６  ユーザフィードバック受付部、  ５０  連想検索エンジン、  ５２  表示出力部、  ６０  比較差分検索実行部、  ６２  連想語選択部、  ６４  連想語マッチング部、  ６６  ページ作成部、  ７０  二次元マップ作成部、  ７２  データ集計部、  ７４  主成分分析部、  ７６  座標データ変換部、  ７８  マップ作成部、  ８０  鮮度検索実行部、  ８２  出現頻度取得部、  ８４  鮮度算出部、  ８６  鮮度表示部、  ９０  ユーザフィードバック反映処理部、  ９２  連想語追加部、  ９４  投票処理部、  ９６  タグ強調部、  ９７  検索履歴表示部、  ９８  選択肢表示部。
【図１】
2009086771.tif 000004
【図２】
2009086771.tif 000005
【図３】
2009086771.tif 000006
【図４】
2009086771.tif 000007
【図５】
2009086771.tif 000008
【図６】
2009086771.tif 000009
【図７】
2009086771.tif 000010
【図８】
2009086771.tif 000011
【図９】
2009086771.tif 000012
【図１０】
2009086771.tif 000013
【図１１】
2009086771.tif 000014
【図１２】
2009086771.tif 000015
【図１３】
2009086771.tif 000016
【図１４】
2009086771.tif 000017
【図１５】
2009086771.tif 000018
【図１６】
2009086771.tif 000019
【図１７】
2009086771.tif 000020
【図１８】
2009086771.tif 000021
【図１９】
2009086771.tif 000022
【図２０】
2009086771.tif 000023
【図２１】
2009086771.tif 000024
【図２２】
2009086771.tif 000025
【図２３】
2009086771.tif 000026
【図２４】
2009086771.tif 000027
【図２５】
2009086771.tif 000028
【図２６】
2009086771.tif 000029
【図２７】
2009086771.tif 000030
【図２８】
2009086771.tif 000031
【図２９】
2009086771.tif 000032
【図３０】
2009086771.tif 000033
【図３１】
2009086771.tif 000034
【図３２】
2009086771.tif 000035
【図３３】
2009086771.tif 000036
【図３４】
2009086771.tif 000037
【図３５】
2009086771.tif 000038
【図３６】
2009086771.tif 000039