(57)【要約】【課題】与えられた文章に依存してスニペットを動的に生成する方法を提供する。【解決手段】スニペット生成装置１１では、クエリ解析部１４が、与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換し、重要文選択部１６が、対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択し、文縮約部１７が、ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする。【選択図】図１
2012003697.tif 000002
【特許請求の範囲】
【請求項１】
文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成する方法であって、
与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析ステップと、
対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択ステップと、
ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約ステップと、を有することを特徴とするスニペット生成方法。
【請求項２】
前記重要文選択ステップは、
正規表現の文書内出現頻度と文書出現頻度とに基づいて、検索語の重みを計算するステップと、
検索語の重みを用いて文書を構成する文の重みを計算するステップと、
対象文書から重みが大きい順から指定文字数を超えるまで文を選択するステップと、を有することを特徴とする請求項１に記載のスニペット生成方法。
【請求項３】
前記文縮約ステップは、
最も重要でない部分から１文字を漸次削除していく処理を繰り返すようにして、指定文字数にスニペット長を調整するステップを有することを特徴とする請求項１に記載のスニペット生成方法。
【請求項４】
前記文解析ステップの前記形態素解析においては、辞書として言語辞書のみを用いることを特徴とする請求項１に記載のスニペット生成方法。
【請求項５】
文章と関連する文書が与えられた場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成する装置であって、
与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析手段と、
対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択手段と、
ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約手段と、を備えることを特徴とするスニペット生成装置。
【請求項６】
文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成するためのコンピュータ・プログラムであって、
与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析ステップと、
対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択ステップと、
ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約ステップと、をコンピュータに実行させることを特徴とするスニペット生成プログラム。
【請求項７】
文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成するためのコンピュータ・プログラムが記録されている記録媒体であって、
与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析ステップと、
対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択ステップと、
ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約ステップと、をコンピュータに実行させることを特徴とするスニペット生成プログラムが記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文章から当該文章の概要を表す要約文を生成するスニペット生成装置に関する。
【背景技術】
【０００２】
従来のスニペット生成装置としては、Ｇｏｏｇｌｅ社、Ｙａｈｏｏ！、Ｍｉｃｒｏｓｏｆｔ社のＢｉｎｇ、等のインターネット検索サービスにおいて、ＷｅｂサイトとＷｅｂサイトの概要を表すスニペットを付与して検索結果を提供することが知られている。
まず、Ｇｏｏｇｌｅ検索では、基本的に検索対象となるＷｅｂサイトのＨＴＭＬ文書のmeta descriptionタグを使用してスニペットを生成している（クエリ非依存）。
このＧｏｏｇｌｅ検索について、特許文献１には、ファクトのソースを表示する方法として、１つ以上の用語を含むファクトクエリを受け取り、１つ以上の用語を含む、ファクトクエリへの返答を特定し、ファクトクエリの１つ以上の用語および返答の１つ以上の用語を含むソースドキュメントを特定し、ソースドキュメントの少なくとも１つのスニペットを生成することであって、スニペットは、ファクトクエリの１つ以上の用語および返答の１つ以上の用語を含み、かつ、スニペットを含む応答を生成する方法が開示されている。
【０００３】
一方、Ｙａｈｏｏ！検索では、クエリ依存とクエリ非依存のスニペット生成方法を組み合わせるハイブリッド方式を採用している。
詳しくは、Ｙａｈｏｏ！検索では、
１．文書を構成する単語もしくは固有名詞の出現頻度と文の出現位置を加味し、文書を構成する文にスコア付け（クエリ非依存のスニペット生成）し、ＦIとする。
２．本発明書のスニペット生成方法と同じように検索キーワードの出現頻度を加味し、文書を構成する文にスコア付け（クエリ依存）し、ＦQとする。
３．クエリ文を解析しクエリ意図を０以上１以下の範囲で数値化αし、αＦI＋（１−α）ＦQで文書を構成する文のスコア付けを行うことで、スニペットを生成する。
上記３において、明示的な記述がないがクエリ意図を数値化するには、外部データ・知識を利用する必要がある。
米国Ｙａｈｏｏ！のスニペット生成方法は、Ｇｏｏｇｌｅ方式と異なり検索対象文書側でスニペット生成のヒント（meta descriptionタグ）を用意する必要がない。
【０００４】
Ｍｉｃｒｏｓｏｆｔ社のＢｉｎｇも具体的な実装は異なるがハイブリッド方式を採用している。
関連文書として、米国Ｙａｈｏｏ！のスニペット生成方法（特許文献２）が公開されている。
また、米国Ｙａｈｏｏ方式のクエリに依存したスニペット生成方法では、対象文章を構成する文が、
ａ．何パーセントの検索語を含むか
ｂ．何個の検索語を含むか
ｃ．部分文字列としてクエリ文を含むか
を計測・検査し、ａ〜ｃスコアを総合評価することでスコア付けを行う。
非特許文献１には、形態素辞書の単語生起コストを利用し、単語生起コストが高い単語からキーワードを抽出することについて開示されている。
【０００５】
特許文献３には、文書データベースに格納されている文書の全文を対象として、検索条件と合致する文書を検索する文書検索装置として、文書データベース中の全文書に対して、文書中の全文を読みに変換して全文索引を生成し、検索条件を入力し、検索条件を形態素解析して単語を抽出し、この単語の読みに対する語幹と検索条件式から初期検索条件式を生成し、抽出した単語の形態素解析結果を用いて、該単語の読みに対する変化形と検索条件式から絞込検索条件式を生成し、全文索引を参照して、初期検索条件式または絞込検索条件式を適用して文書データベースの検索を行い、検索実行では、初期検索条件式を渡された場合には、全文索引を参照して、１次検索を行って中間結果を作成し、絞込検索条件式を渡された場合には、中間結果の文書に対して全文検索を行うようにした文書検索装置が開示されている。
【０００６】
特許文献４には、ユーザが入力した質問文から対象用語と、求められている説明の用語に対する意味的役割を抽出し、対象用語を検索キーとして対象用語に関係が深いＷｅｂページをインターネット上で検索し獲得し、獲得した複数のＷｅｂページから、用語にリンク先が付加されたパターン、定義型リスト形式もしくはボールドタグなどにより用語が見出し化されたパターン、用語が文で説明されたパターン、用語が連体節で説明されたパターンそれぞれを、対象用語に関する説明部分として抽出し、抽出された説明部分の対象用語に対する意味的役割を判定し、抽出された説明部分のうち抽出された意味的役割と同じ意味的役割を持つ説明部分から返答文を生成して質問文に対し応答し、抽出された全ての説明集合に出現する単語が全ての説明集合中で出現した説明の数で構成した全ての説明集合を特徴付けるベクトルと、各説明に単語が出現したか否かを判定する関数で構成した各説明を特徴付けるベクトルとの内積を正規化して各説明の信頼値を評価する質問応答装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のスニペット生成方法では、名詞や名詞句等の内容語の出現頻度に基づいて、文書の要約文を生成していた。
しかしながら、従来のスニペット生成方法にあっては、予め検索対象となる文書側でスニペット（またはヒント）を用意する必要あるという問題があった。
そこで、予め検索対象となる文書側でスニペットを用意することなく、スニペットを生成することが切望されている。
本発明は、与えられた文章に依存してスニペットを動的に生成する方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１記載の発明は、文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成する方法であって、与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析ステップと、対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択ステップと、ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約ステップと、を有することを特徴とする。
また、請求項２記載の発明は、前記重要文選択ステップは、正規表現の文書内出現頻度と文書出現頻度とに基づいて、検索語の重みを計算するステップと、検索語の重みを用いて文書を構成する文の重みを計算するステップと、対象文書から重みが大きい順から指定文字数を超えるまで文を選択するステップと、を有する請求項１記載のスニペット生成方法を特徴とする。
【０００９】
また、請求項３記載の発明は、前記文縮約ステップは、最も重要でない部分から１文字を漸次削除していく処理を繰り返すようにして、指定文字数にスニペット長を調整するステップを有する請求項１記載のスニペット生成方法を特徴とする。
また、請求項４記載の発明は、前記文解析ステップの前記形態素解析においては、辞書として言語辞書のみを用いる請求項１記載のスニペット生成方法を特徴とする。
また、請求項５記載の発明は、文章と関連する文書が与えられた場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成する装置であって、与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析手段と、対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択手段と、ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約手段と、を備えることを特徴とする。
【００１０】
また、請求項６記載の発明は、文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成するためのコンピュータ・プログラムであって、与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析ステップと、対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択ステップと、ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約ステップと、をコンピュータに実行させることを特徴とする。
【００１１】
また、請求項７記載の発明は、文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成するためのコンピュータ・プログラムが記録されている記録媒体であって、与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換する文解析ステップと、対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択する重要文選択ステップと、ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとする文縮約ステップと、をコンピュータに処理させることを特徴とするスニペット生成プログラムが記録されていることを特徴とする。
【発明の効果】
【００１２】
本発明のスニペット生成方法によれば、クエリ文中の検索語を正規表現にすることにより、１回の文書走査で検索語の活用形も考慮した重要文を選択することができ、与えられた文章に依存して、スニペットを動的に生成することができる。この際に、予め検索対象となる文書側でスニペットまたはヒントを用意する必要はない。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るスニペット生成装置１１の構成について説明するためのブロック図。
【図２】本発明の実施形態に係るスニペット生成装置１１の動作概要について説明するためのメインのフローチャート。
【図３】本発明の実施形態に係るスニペット生成装置１１における重要文選択処理について説明するためのサブルーチンのフローチャート（その１）。
【図４】本発明の実施形態に係るスニペット生成装置１１における重要文選択処理について説明するためのサブルーチンのフローチャート（その２）。
【図５】本発明の実施形態に係るスニペット生成装置１１における文縮約処理について説明するためのサブルーチンのフローチャート。
【発明を実施するための形態】
【００１４】
以下に、図面を参照して発明の実施の形態に係るスニペット生成装置の構成例について説明する。
図１は、本発明の実施形態に係るスニペット生成装置１１の構成を説明する図である。
スニペット生成装置１１は、入出力装置１２に接続されている。入出力装置１２は外部からクエリ文を入力し、入出力装置１２を介してクエリ解析部１４に出力する。
スニペット生成ブロック１３は、クエリ解析部１４およびスニペット生成部１５を備え、スニペット生成部１５内には重要文選択部１６および文縮約部１７を有している。クエリ解析部１４は、形態素解析処理により形態素に分解し、検索語として有効な文字列を抽出する。クエリ解析部１４には他方に検索装置１８が接続されている。
検索装置１８は、検索処理、追加処理、更新処理などの文書データベース（以下、文書ＤＢという）１９への管理運用を行う。例えば、検索装置１８は、クエリ解析部１４からの検索語に基づいて文書ＤＢ１９の検索を行い、検索装置１８は検索結果を検索結果取得部２０に出力する。文書ＤＢ１９は、文書データをデータベース形式で記録している。
検索結果取得部２０は、文書ＤＢ１９から検索装置１８を介して取得した検索語に対応する文書データをスニペット生成部１５に出力する。
スニペット生成部１５は、上述したように重要文選択部１６および文縮約部１７を備えており、重要文選択部１６は、検索結果取得部２０から文書データを受け取りつつ（Ｔ４）、正規表現パターンで内容をスキャンし、検索語の出現頻度と文の区切りを計測する。
文縮約部１７は、選択した文を文縮約部１７に渡し、処理手順に従って指定文字数まで文字を削除するとともに、スニペットを付与した検索結果一覧を入出力装置１２に出力する。
【００１５】
次に、図１を参照して、本発明の実施形態に係るスニペット生成装置１１の基本的な動作について説明する。なお、図１に示すＴ１〜Ｔ６は処理手順の順番を示している。
まず、入出力装置１２にクエリ文を入力する（Ｔ１）。このクエリ文は入出力装置１２を介してクエリ解析部１４に入力される。クエリ解析部１４では、形態素解析処理により形態素に分解し、検索語として有効な文字列を抽出する。
検索語は、クエリ解析部１４から検索装置１８に入力される（Ｔ２）。検索装置１８は、検索語に基づいて文書ＤＢ１９の検索を行い、検索装置１８は検索結果を検索結果取得部２０に出力する（Ｔ３）。
一方、クエリ解析部１４では、各検索語については活用形を考慮した正規表現パターンで表し、それらの和集合を最終の正規表現パターンとしてスニペット生成部１５に渡す（Ｔ５）。
スニペット生成部１５に設けられた重要文選択部１６は、検索結果取得部２０から文書データを受け取りつつ（Ｔ４）、正規表現パターンで内容をスキャンし、検索語の出現頻度と文の区切りを計測する。
重要文選択部１６は、文の重み計算を下記式１に従って行い、計算結果を降順にソートし、先頭から順に指定文字数を超えるまで文を選択する。重要文選択部１６は、選択した文を文縮約部１７に渡す。
文縮約部１７は、後述する処理ステップＢ１１〜Ｂ４に従って指定文字数まで文字を削除し、最終的にスニペットを付与した検索結果一覧として入出力装置１２を介して出力する（Ｔ６）。
【００１６】
上述した説明では、本発明の実施形態に係るスニペット生成装置１１の基本的な動作について説明したが、図１に示すスニペット生成ブロック１３に備えられたクエリ解析部１４、重要文選択部１６および文縮約部１７の動作について、図２〜図５を参照して、さらに詳しく説明する。
なお、スニペット生成ブロック１３は、ＣＰＵ、ＲＯＭ、ＲＡＭから構成されてもよく、このＲＯＭには、クエリ解析部１４、重要文選択部１６および文縮約部１７の具体例として各部がソフトウエアモジュールにより構成されていてもよい。この場合、ＣＰＵはＲＯＭに記憶されているソフトウエアモジュールを読み出して順番に実行することとする。
【００１７】
次に、図２に示すメインのフローチャートを参照して、検索システムにおけるスニペット生成処理の概要について説明する。
まず、ステップＳ１では、クエリ解析部１４でクエリ文解析処理を行う。コンピュータのモニタ上に描画されている検索ボックスに対してテキストからなるクエリ文が入力され、さらにこのクエリ文が入出力装置１２を介してクエリ解析部１４に入力される。
クエリ文は、クエリ解析部１４で形態素解析プログラムにより形態素に分割される。形態素解析プログラムにおいては、文書ＤＢ１９に記憶されている言語辞書を用いる。形態素解析プログラムは、活用を伴う品詞に対しては、活用形の情報を与えるので、その情報と形態素文字列をもとに形態素文字列が変化するパターンを正規表現で表す。
【００１８】
例えば、次の英語の文章、
US, Japan mark 50 years since security pact signed
を形態素解析すると、
US/NNP ,/, Japan/NNP mark/VB 50/CD years/NNS since/IN security/NN pact/NN signed/VBN
（注意）ＮＮＰ：固有名詞、ＮＮ：普通名詞、ＶＢ：動詞、ＣＤ：数詞、ＮＮＳ：普通名詞、ＩＮ：前置詞、ＶＢＮ：過去分詞
となり、生成される正規表現パターンは、
US|Japan|mark|year(s)?|security|pact|sign(ed)?
となり、これがクエリ文解析の出力となる。
ただし、正規表現の対象となる品詞は、名詞、動詞、形容詞、副詞に限る。
文の区切りとなるシンボル集合ＥＯＳ｛’、’，’。’  ，’．’  ，’．’｝をクエリ文の出力となる正規表現パターンとの和集合をとり、新らたな正規表現とする。
以上のように、形態素解析においては、辞書として言語辞書のみを用いるので、形態素辞書以外の外部知識を利用せず、システムへの実装を簡単に行うことができる。
【００１９】
次いで、ステップＳ２では、重要文選択部１６は重要文選択処理を行う。まず、正規表現のパターン検索により文の区切りを行いつつ、検索語の出現頻度を計測する。
検索語の重みを検索語の文書内出現頻度（ＴＦ）と文書出現頻度（ＤＦ）、ＤＦが判らない場合は、擬似ＤＦを利用して計算する。検索語の重みを利用して、文書を構成する文の重みを計算し、対象文書から重みが大きい順から指定文字数を超えるまで文を選択する。
次いで、ステップＳ３では、文縮約部１７は文縮約処理を行う。選択した文の合計文字数が指定文字数より多い場合は、文中に含まれる検索語間の文字数と検索語の重みを考慮した計算により、１文字を削除する場所を特定し削除する操作を指定文字数に達するまで繰り返す。
【００２０】
次に、図３〜図５のサブルーチンのフローチャートを参照して、図２に示すステップＳ２での重要文選択処理、およびステップＳ３での文縮約処理の方法についてより詳しく説明する。
[重要文選択処理]
まず、以下のようにシンボルを定義する。
すなわち、図３に示すサブルーチンのフローチャートに示すプログラムの実行に先立って、変数やバッファとして、テキスト、対象となる文書であるテキストＴ、正規表現パターンｐ、文の区切り文字パターンｅｏｓ、正規表現パターンの探索開始位置ＰＯＳ、正規表現パターンの探索装置ＲＥ、文書を構成する文に対応して存在してｗijを格納するコンテナｓｅｎｔj、コンテナｓｅｎｔjにおいてｉ番目に探索されたパターンｗij、ｗijのＴにおける開始位置ｓij、ｗijのＴにおける終了位置ｅij、ｗijの文書内出現頻度ＴＦ（ｗij）、ｗijの文書出現頻度を計算する装置ｃａｌｃＤＦ（ｗij）、システムで与えられる定数Ｎと宣言する。
ステップＡ１では、入力データとして、対象となる文書テキストＴ，正規表現パターンｐ，形態素辞書（転置ファイル）が入力される。
【００２１】
次いで、ステップＡ２では、初期化処理として、ｉ番目、ｊ番目、ｉ番目の正規表現パターンの探索開始位置ＰＯＳi、正規表現パターンｐについて、ｉ←０，ｊ←０，ＰＯＳij←０，ｐ←ｐ｜ＥＯＳと代入して初期化する。
次いで、ステップＡ３では、正規表現パターンの探索装置ＲＥ（仮想的な装置）により、文書テキストＴ、正規表現パターンｐ、ｉ番目の正規表現パターンの探索開始位置ＰＯＳijについてパターン探索を行う。探索結果は文字列とその出現位置とで、ｉ番目に探索されたパターンｗij、ｗijの文書テキストＴにおける開始位置ｓij、ｗijのＴにおける終了位置ｅiについて取得する。
｛ｗij，ｓij，ｅij｝←ＲＥ（Ｔ，ｐ，ＰＯＳi）
と表す。
次いで、ステップＡ４では、ｉ番目に探索されたパターンｗijの文書テキストＴにおける開始位置ｓijが、ｓij≧０となり０以上であるか否かを判断する。ｓij＜０ならばステップＡ１０へジャンプする。
【００２２】
次いで、ステップＡ５では、ｉ番目に探索されたパターンｗijをコンテナｓｅｎｔjに格納する。
ｓｅｎｔj←｛ｗij｝
次いで、ステップＡ６では、ｉ番目に探索されたパターンｗijのＴにおける終了位置ｅijを１つインクリメントした値を正規表現パターンの探索開始位置ＰＯＳiに格納する。
ＰＯＳij←ｅij＋１
次いで、ステップＡ７では、ｉを１つインクリメントした値をｉ番目として格納する。
ｉ←ｉ＋１
次いで、ステップＡ８では、ｉ番目に探索されたパターンｗijが文の区切り文字パターンＥＯＳに一致するか否かを判断する。両者が一致する場合には、ステップＡ９に進み、ｊを１つインクリメントした値をｊ番目として格納し、さらにステップＡ３へジャンプする。
ｊ←ｊ＋１
他方、ステップＡ８において、両者が一致しない場合には、ステップＡ３へジャンプする。
【００２３】
次に、図３に示すステップＡ１０〜Ａ１３において、各ｊについてｓｅｎｔjに格納されている｛ｗij｝をすべてのｉに対して式１を実行する。
2012003697.tif 000003
・・・（式１）
ここで、ｉは文Ｓｅｎｔjに含まれる単語番号の範囲で変化する。この式１では、ｓｅｎｔj中に出現する単語の文書内出現頻度ＴＦ（ｗij）とＩＤＦ値を掛けて、総和を計算してコンテナｓｅｎｔjのスコアとする。
まず、ステップＡ１０では、ＳＮ←ｊ，ｊ←０と代入して初期化する。
ＳＮ←ｊ，ｊ←０
次いで、ステップＡ１１では、システムで与えられる定数Ｎをｉ番目に探索されたパターンｗijの文書出現頻度ｃａｌｃＤＦで除算した値に対して対数を求め、求めた対数値にパターンｗijの文書内出現頻度ＴＦ（ｗij）値を乗算した結果値について、合計関数Σを計算してｓｃｏｒｅ（ｓｅｎｔj）とする。
ここで、ｌｏｇをとらなかった場合、（総文書数／文書頻度）の値が大きくなりすぎ、単語の文書内出現頻度の効果が計算結果に反映され難い。これに対して、自然対数ｌｏｇをとると、（総文書数／文書頻度）の値が大きくなりすぎず、式１において単語の文書内出現頻度の効果を出すことができる。
なお、ｌｏｇ（総文書数／文書頻度）は、ＩＤＦ(inverted document frequency)として、計算機言語学では一般的指標になっている。
【００２４】
次いで、ステップＡ１２では、ｊを１つインクリメントした値をｊ番目として格納する。
ｊ←ｊ＋１
次いで、ステップＡ１３では、ｊとＳＮとの値を比較する。
ｊ≧ＳＮ
となりｊがＳＮ以上であるか否かを判断する。ｊ＜ＳＮならばステップＡ１１へジャンプする。
他方、ステップＡ１３において、ｊがＳＮ以上である場合には処理を終了して、メインルーチンに戻る。
以上のように、図３〜図４に示すステップＡ１〜Ａ１３により、文書を構成する文にスコアを付与する。
以上のようにして、クエリ文中の検索語を正規表現にすることにより、１回の文書走査で検索語の活用形も考慮した重要文を選択することができる。
【００２５】
上記の説明において、パターンｗijの文書出現頻度を求める装置ｃａｌｃＤＦ（仮想的な装置）の実装はハードウエアから構成されるシステムの規模により異なる。
例えば、大規模な検索システムの場合は、通常、転置ファイルを使用しているので、転置ファイルに検索語の文書頻度を問い合わせる方式の実装になる。
他方、転置ファイルを使用しない小規模な検索システムでは、形態素辞書に登録されている単語生起コストＣ（単語の出現し易さ）または、１／Ｃを返す方式の実装になる。この理由は、Ｃの値が高いほど単語が出現し易いか、出現し難いかは辞書の実装方式により異なるためである。
【００２６】
[文縮約処理]
図５を参照して、サブルーチンのフローチャートに示すプログラムの文縮約処理について説明する。
まず、以下のようにシンボルを定義する。
すなわち、図４に示すプログラムの実行に先立って、変数やバッファとして、選択された文Ｓｅｎｔj、Ｓｅｎｔj中のｉ番目に検索された単語ｗij、指定した文字数ｍ、選択された文Ｓjのスコアｓｃｏｒｅj、ｊ番目の文の文字数Ｌj、選択された文の総文字数Ｍ、単語ｗijの重みαij、単語ｗijとｗi(j+1)の間に存在する文字数ｄij,i(j+1)、と宣言する。
ステップＢ１では、選択された文の総文字数Ｍから指定した文字数ｍを減算した値が０以下になっていれば処理を終了し、メインルーチンに戻る。
（Ｍ−ｍ）≦０
上記の減算値が０より大きい場合には、ステップＢ２に進む。
【００２７】
以下、ステップＢ２〜Ｂ５での各処理を実行することで、選択された文Ｓjから１文字を削除することができる。
まず、ステップＢ２では、ｉ〜ｎの中で（ｓｃｏｒｅj／Ｌj）の値が最も小さいｊを探索する。すなわち、ｊ番目に探索された単語ｗijを格納するコンテナｓｅｎｔjの中に存在する選択された文Ｓjのスコアｓｃｏｒｅjをｊ番目の文の文字数Ｌjで除算した値を求め、この除算値のうち最小値をとるｊを求める。
次いで、ステップＢ３では、選択された文ＳjがＺ個の単語が検索されたことと仮定し、正規表現ｗkのパターン数ｚ、単語ｗijとｗi(j+1)の間の文字数ｄj,j+1、単語ｗjの重みαjからｗijとｗi(j+1)の間の距離を示す演算値、すなわち、
｛（ｄij,i(j+1)×αij）／（αij＋αi(j+1)）｝i=0~z-1
により、この演算値のうち最大値をとるｉを求める。
本発明では、単語ｗijの影響度合いを表す尺度として、ｗijとｗi(j+1)の間の距離を用いている。
次いで、ステップＢ４では、正規表現の単語ｗijとｗi(j+1)との間の文字から、
（ｄij,i(j+1)×αij）／（αij＋αi(j+1)）
の距離にある文字を１文字削除する。
次いで、ステップＢ５では、選択された文の総文字数Ｍから１つデクリメントした値をＭとして格納する。
Ｍ←Ｍ−１
次いで、ステップＢ１へジャンプする。
この結果、クエリ文と関係のない部分から文字を徐々に削除していくことが可能になる。
【００２８】
以上のように、スコアの降順に文を整列し、スコア付けされた文を上位から順に選択していき、指定文字数に達するまで、上位から文を選択することでスニペットを生成することができ、指定文字数を超えた場合は、選択した文を縮約する。
さらに、スニペットの最も重要でない部分から文字を削除していくので、ユーザが目的とするスニペットを指定文字数で生成することができる。
以上のように、スニペット生成装置１１にあっては、クエリ解析部１４が、与えられた文章を形態素解析して形態素に分解し、各形態素の活用語形を考慮したパターンを正規表現に変換し、重要文選択部１６が、対象となる文書に対しパターン検索を行い、正規表現の出現頻度を計測し、正規表現の文書内出現頻度と文書出現頻度とに基づいて文書を構成する文のスコアを計算し、スコアの高い順に上位ｎ個の文を選択し、文縮約部１７が、ｎ個の文から指定された文字数になるように不必要な部分を削除してスニペットとするので、文章と関連する文書が入力された場合、文書から文章と関連する部分を抜き出し、指定された文字数の要約文を生成することができる。
【００２９】
また、重要文選択部１６が、正規表現の文書内出現頻度と文書出現頻度とに基づいて、検索語の重みを計算し、検索語の重みを用いて文書を構成する文の重みを計算し、対象文書から重みが大きい順から指定文字数を超えるまで文を選択するので、１回の文書走査で検索語の活用形も考慮した重要文を選択することができる。
クエリ文中の検索語を正規表現にすることにより、１回の文書走査で検索語の活用形も考慮した重要文を選択することができ、与えられた文章に依存して、スニペットを動的に生成することができる。この際に、予め検索対象となる文書側でスニペットまたはヒントを用意する必要はない。
また、形態素解析においては、辞書として言語辞書のみを用いるので、形態素辞書以外の外部知識を利用せず、システムへの実装を簡単に行うことができる。
さらに、最も重要でない部分から１文字を漸次削除していく処理を繰り返すようにして、指定文字数にスニペット長を調整するので、ユーザが目的とするスニペットを指定文字数で生成することができる。
【００３０】
＜例文を用いた処理例＞
下記の例文は、『第１次近衛内閣』というタイトルのＷｉｋｉｐｅｄｉａの記事から引用（２０１０年６月４日）したものであり、説明の便宜上、記事のタイトルを「第１次近衛内閣と日中戦争」と変更したものである。
［重要文選択処理］
第１次近衛内閣は、元老・西園寺公望の奏薦を受けて、公爵・貴族院議長の近衛文麿に大命降下され、組閣した内閣である。内閣発足の１ヶ月後に勃発した日中戦争（支那事変）については、当初、不拡大方針を閣議決定して、事態の早期収束を図った。しかし、軍部強硬派の圧力により戦争は拡大。和平交渉にも失敗して、翌１９３８年（昭和１３年）１月には、「爾後国民政府を対手とせず」という、いわゆる「近衛声明」（第一次近衛声明）を発表した。また、同年４月には国家総動員法を制定して戦時体制を整えた。同年１１月には「東亜新秩序建設」を戦争目的と規定する声明（東亜新秩序声明、第二次近衛声明）を発表し、同年１２月には親日派の汪兆銘の重慶脱出を受けて「近衛三原則」（善隣友好、共同防共、経済提携）を日中和平の基本方針として呼びかける声明（第三次近衛声明）を発表した。１９３９年（昭和１４年）１月に、内閣総辞職。
【００３１】
なお、上記の例文はソフトウエア処理において、テキストＴである。
クエリ文（記事タイトル）から正規表現パターンを生成する。
ここで、クエリ文となる記事タイトル「第１次近衛内閣と日中戦争」から、以下のように正規表現パターンを生成する。
クエリ文（記事タイトル）を形態素解析すると次のようになる（Ｍｅｃａｂによる出力）。なお、Ｍｅｃａｂは、ＢＳＤライセンスの形態素解析プログラムを示す。
第      接頭詞，数接続，＊，＊，＊，＊，第，ダイ，ダイ
１      名詞，数，＊，＊，＊，＊，＊
次      名詞，接尾，助数詞，＊，＊，＊，次，ジ，ジ
近衛    名詞，一般，＊，＊，＊，＊，近衛，コノエ，コノエ
内閣    名詞，一般，＊，＊，＊，＊，内閣，ナイカク，ナイカク
と      助詞，並立助詞，＊，＊，＊，＊，と，ト，ト
日      名詞，固有名詞，地域，国，＊，＊，日，ニチ，ニチ
中      名詞，固有名詞，地域，国，＊，＊，中，チュウ，チュー
戦争    名詞，サ変接続，＊，＊，＊，＊，戦争，センソウ，センソー
これから不要な文字列を削除して、正規表現パターンを生成すると、
ｐ←近衛｜内閣｜日｜中｜戦争
となる。
【００３２】
ｐに文区切りのパターンＥＯＳを追加
ＥＯＳ←￥ｎ｜￥ｒ｜。｜．｜．
ここで、ピリオドには半角、全角があることに注意する必要がある。
ｐ←ｐ｜ＥＯＳ
ＰＯＳを０にセットし、Ｔ、ｐとともに正規表現パターンの探索装置ＲＥの入力とする。
こうすることで、ＲＥは順々に戻り値として次の情報を返す。（Ａ４〜Ａ９の処理ステップに従う）
｛“近衛”、３、５｝
｛“内閣”、５、７｝
｛“近衛”、３４、３６｝
｛“内閣”、５０、５２｝
｛“。”、５５、５６｝
｛“内閣”、５６、５８｝
｛“日”、７０、７１｝
｛“中”、７１、７２｝
｛“戦争”、７２、７４｝
｛“。”、１１３、１１４｝
｛“戦争”、１２９、１３１｝
｛“。”、１３４、１３５｝
｛“近衛”、１８７、１８９｝
｛“近衛”、１９６、１９８｝
｛“。”、２０６、２０７｝
｛“。”、２３５、２３６｝
｛“戦争”、２５３、２５５｝
｛“近衛”、２７７、２７９｝
｛“日”、２９４、２９５｝
｛“近衛”、３１０、３１２｝
｛“日”、３３３、３３４｝
｛“中”、３３４、３３５｝
｛“近衛”、３５６、３５８｝
｛“。”、３６６、３６７｝
｛“内閣”、３８３、３８５｝
｛“。”、３８８、３８９｝
【００３３】
ここで、“。”が文の区切りであることに注意し、Ａ４〜Ａ９の処理が終了すると、ｓｅｎｔjには次にようにデータが格納される。
ｓｅｎｔ0＝｛“近衛”、“内閣”、“近衛”、“内閣”｝
ｓｅｎｔ1＝｛内閣”、“日”、“中”、“戦争”｝
ｓｅｎｔ2＝｛“戦争”｝
ｓｅｎｔ3＝｛近衛”、近衛”｝
ｓｅｎｔ4＝｛｝
ｓｅｎｔ5＝｛“戦争”、“近衛”、“日”、“近衛”、“日”、“中”、“近衛”｝
ｓｅｎｔ6＝｛“内閣”｝
検索語の重み計算には、定数ＮとｃａｌｃＤＦ（ｗ）が必要なので、次のように仮定する。
Ｎ←１００，０００
ｃａｌｃＤＦ（近衛）＝８０
ｃａｌｃＤＦ（内閣）＝１２０
ｃａｌｃＤＦ（日）＝９０００
ｃａｌｃＤＦ（中）＝４５００
ｃａｌｃＤＦ（戦争）＝２６００
クエリ文から抽出した各検索語の重みは、
α（近衛）＝７×ｌｏｇ（１０００００／８０）＝４９．９２
α（内閣）＝４×ｌｏｇ（１０００００／１２０）＝２６．９０
α（日）＝３×ｌｏｇ（１０００００／９０００）＝７．２２
α（中）＝２×ｌｏｇ（１０００００／４５００）＝６．２０
α（戦争）＝３×ｌｏｇ（１０００００／２６００）＝１０．９５
となる。
【００３４】
これらの重みから、各文のスコアは、
ＳＣＯＲＥ（ｓｅｎｔ0）＝α（近衛）＋α（内閣）＝７６．８２
ＳＣＯＲＥ（ｓｅｎｔ1）＝α（内閣）＋α（日）＋α（中）＋α（戦争）＝５１．２７
ＳＣＯＲＥ（ｓｅｎｔ2）＝α（戦争）＝１０．９５
ＳＣＯＲＥ（ｓｅｎｔ3）＝α（近衛）＝４９．９２
ＳＣＯＲＥ（ｓｅｎｔ4）＝０
ＳＣＯＲＥ（ｓｅｎｔ5）＝α（戦争）＋α（近衛）＋α（日）＋α（中）＝７４．２９
ＳＣＯＲＥ（ｓｅｎｔ6）＝α（内閣）＝２６．９０
となる。
ここで、スコアをキーとして文を降順整列すると、
ＳＣＯＲＥ（ｓｅｎｔ0）＝７６．８２
ＳＣＯＲＥ（ｓｅｎｔ5）＝７４．２９
ＳＣＯＲＥ（ｓｅｎｔ1）＝５１．２７
ＳＣＯＲＥ（ｓｅｎｔ3）＝４９．９２
ＳＣＯＲＥ（ｓｅｎｔ6）＝２６．９０
ＳＣＯＲＥ（ｓｅｎｔ2）＝１０．９５
ＳＣＯＲＥ（ｓｅｎｔ4）＝０
となる。
【００３５】
［文縮約処理］
スニペットサイズの設定が１７２文字であると仮定すると、ｓｅｎｔ0（５６文字）、ｓｅｎｔ5（１３１文字）が選択されるが、総文字数が１８７文字になり、（１８７−１７２）＝１５文字を削除する必要がある。
ここで、上記の文縮約の方法に従い、ｓｅｎｔ0、ｓｅｎｔ5から１５文字を削除する過程を説明する。
ｓｅｎｔ0 ＝第１次近衛内閣は、元老・西園寺公望の奏薦を受けて、公爵・貴族院議長の近衛文麿に大命降下され、組閣した内閣である。
ｓｅｎｔ5 ＝同年１１月には「東亜新秩序建設」を戦争目的と規定する声明（東亜新秩序声明、第二次近衛声明）を発表し、同年１２月には親日派の汪兆銘の重慶脱出を受けて「近衛三原則」（善隣友好、共同防共、経済提携）を日中和平の基本方針として呼びかける声明（第三次近衛声明）を発表した。
Ｌ0＝５６、Ｌ5＝１３１
ｓｃｏｒｅ0／Ｌ0＝７６．８２／５６＝１．３７
ｓｃｏｒｅ5／Ｌ5＝７４．２９／１３１＝０．５７
なので、ｓｃｏｒｅ5から１文字削除する。（ｓｅｎｔ5から１５文字削除しても７４．２９／１１６＝０．６４なのでｓｅｎｔ5のみ縮約すれば良い。）
ＷBOS，｛“”、２３６、２３６｝
Ｗ05｛“戦争”、２５３、２５５｝
Ｗ15｛“近衛”、２７７、２７９｝
Ｗ25｛“日”、２９４、２９５｝
Ｗ35｛“近衛”、３１０、３１２｝
Ｗ45｛“日”、３３３、３３４｝
Ｗ55｛“中”、３３４、３３５｝
Ｗ65｛“近衛”、３５６、３５８｝
ＷEOS｛“。”、３６６、３６７｝
ｓｅｎｔ5中に含まれる検索語間の距離（文字数）は、
ｄBOS5,05＝１７
ｄ05,15＝２１
ｄ15,25＝１６
ｄ25,35＝１５
ｄ35,45＝２１
ｄ45,55＝０
ｄ55,65＝２１
ｄ65,75＝９
となる。
【００３６】
次の計算では、文の先頭と最後に便宜上、重みが１の検索語が存在すると仮定する。すなわち、αBOS，αEOSを１．０とする。
（ｄBOS5,05×α-15）／（αBOS5＋α05）＝（１７×１．０）／（１．０＋１０．９５）＝１．４２
（ｄ05,15×α05）／（α05＋α15）＝（２１×１０．９５）／（１０．９５＋４９．９２）＝３．７８
（ｄ15,25×α15）／（α15＋α25）＝（１６×４９．９２）／（４９．９２＋７．２２）＝１３．９８
（ｄ25,35×α25）／（α25＋α35）＝（１５×７．２２）／（７．２２＋４９．９２）＝１．９０
（ｄ35,45×α35）／（α35＋α45）＝（２１×４９．９２）／（４９．９２＋７．２２）＝１８．３５
（ｄ45,55×α45）／（α45＋α55）＝０
（ｄ55,65×α55）／（α55＋α65）＝（２１×６．２）／（６．２＋４９．９２）＝２．３２
（ｄ65,75×α65）／（α65＋αEOS5）＝（９×４９．９２）／（４９．９２＋１．０）＝８．８２
であるから、ｓｅｎｔ5中のＷ35｛“近衛”｝という文字列から１９文字目（１８．３５を切り上げ）の文字を一文字削除し、ｓｅｎｔ5の１文字あたりの重みを計算すると、
ｓｃｏｒｅ5／Ｌ5＝７４．２９／１３０＝０．５７
となるので、ｓｅｎｔ5からまた１文字削除する。
【００３７】
前回と異なるのは、ｄ15,25だけなので、
（ｄ35,45×α35）／（α35＋α45）＝（２０×４９．９２）／（４９．９２＋７．２２）＝１７．４７
となるので、Ｗ35｛“近衛”｝という文字列から１８文字目を削除（合計２文字削除）する。
このまま処理を続けて、Ｗ35｛“近衛”｝という文字列から１５文字目を削除した時点（合計５文字削除）で、
（ｄ35,45×α35）／（α35＋α45）＝（１６×４９．９２）／（４９．９２＋７．２２）＝１３．９８
となる。
ここで、（ｄ35,45×α35）／（α35＋α45）は、（ｄ15,25×α15）／（α15＋α25）と同じ値になるので、今度は、Ｗ1｛“近衛”｝という文字列から１４文字目を削除（同じ値なのでどちらの文字列の近傍を削除してもよいが、便宜上、この例では、同じ値の場合には、先に出現した文字列の近傍から削除するとことにした。）。
（ｄ15,25×α15）／（α15＋α25）＝（１５×４９．９２）／（４９．９２＋７．２２）＝１３．１
となるので、Ｗ35｛“近衛”｝という文字列から１４文字目を削除する。
以上の処理を繰り返していく。
【００３８】
Ｗ15｛“近衛”｝という文字列から１０文字目を削除した時点で、
（ｄ15,25×α15）／（α15＋α25）＝（１０×４９．９２）／（４９．９２＋７．２２）＝８．７４
（ｄ35,45×α35）／（α35＋α45）＝（１１×４９．９２）／（４９．９２＋７．２２）＝９．６１
となるので、Ｗ35｛“近衛”｝という文字列から１０文字目を削除する。
これでｓｅｎｔ5から１５文字削除し、縮約処理が完了する。
【００３９】
以上の処理により、指定文字数に達し、生成されるスニペットは、
［処理結果］
第１次近衛内閣は、元老・西園寺公望の奏薦を受けて、公爵・貴族院議長の近衛文麿に大命降下され、組閣した内閣である
同年１１月には「東亜新秩序建設」を戦争目的と規定する声明（東亜新秩序声明、第二次近衛声明）を発表し、．．．日派の汪兆銘の重慶脱出を受けて「近衛三原則」（善隣友．．．済提携）を日中和平の基本方針として呼びかける声明（第三次近衛声明）を発表した。
となる。
【符号の説明】
【００４０】
１１  スニペット生成装置、１２  入出力装置、１３  スニペット生成ブロック、１４  クエリ解析部、１５  スニペット生成部、１６  重要文選択部、１７  文縮約部、１８  検索装置、１９  文書データベース、２０  検索結果取得部
【先行技術文献】
【特許文献】
【００４１】
【特許文献１】特表２００８−５３５０９５号公報
【特許文献２】米国特許出願公開第２００９／０２９２６８３号明細書
【特許文献３】特許第４２８２３８１号
【特許文献４】特許第４０８８１７６号
【非特許文献】
【００４２】
【非特許文献１】http://labs.cybozu.co.jp/blog/kazuho/archives/2006/04/summarize.php
【図１】
2012003697.tif 000004
【図２】
2012003697.tif 000005
【図３】
2012003697.tif 000006
【図４】
2012003697.tif 000007
【図５】
2012003697.tif 000008