(57)【特許請求の範囲】
【請求項１】
著者を示す著者情報及び文書掲載に関するサービスを示すサービス情報を有するウェブ上に掲載された複数の文書の各々から抽出した単語に基づいて、各文書の特徴値を算出し、前記抽出した単語の数及び前記特徴値が共通する複数の文書を類似文書群として検出する類似文書群検出手段と、
前記類似文書群検出手段により検出された類似文書群に含まれる各文書が有する著者情報のうち、類似した文書を複数掲載した履歴を有する著者を示す情報として登録された対象著者情報に一致する著者情報の数が所定数以上の場合に、前記類似文書群に含まれる各文書を分析対象用文書から除外する著者判定手段と、
前記著者判定手段により前記分析対象用文書から除外されなかった類似文書群について、前記抽出された単語の数、該類似文書群に含まれる文書の数、著者の数、及びサービスの数の少なくとも１つに基づいて、該類似文書群に含まれる各文書を分析対象用文書とするか否かを判定する分析対象判定手段と、
を含む文書分類装置。
【請求項２】
コンピュータを、請求項１記載の文書分類装置を構成する各手段として機能させるための文書分類プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書分類装置及びプログラムに係り、特に複数の文書から分析や検索に利用するための文書を分類する文書分類装置及びプログラムに関する。
【背景技術】
【０００２】
近年では、インターネットが一般化したことにより、Ｗｅｂ上の情報量は飛躍的に増加している。そのため、現在では、これら大量の情報を効率よく整理して扱う技術が必須となっている。Ｗｅｂページに記載されている情報は様々であるが、例えば、購入した商品に関する感想や視聴した映画の批評などといったユーザ視点での意見を述べた文書は、その商品や映画に対するユーザの評判を知るうえで有益な情報となる。
【０００３】
このような著者の独特の意見が書かれている文書は、検索や分析に有用な情報であり、言い換えれば、類似した文書が複数存在する場合には、その文書に記述された意見は独自の意見とは言い難い。
【０００４】
そこで、類似した文書を検出する技術として、文単位で類似ページを検出することで、文同士の包含関係、一部重複、同一などを判定する手法が提案されている（例えば、非特許文献１参照）。また、近似最近傍点探索技術のひとつである、近接する点は同じ値となり、離れた点は違う値となるようなハッシュ関数を用いるＬｏｃａｌｉｔｙ−Ｓｅｎｓｉｔｉｖｅ  Ｈａｓｈｉｎｇ（ＬＳＨ）という技術を応用して、短い文章の読点の数や「てにをは」の些細な違いを考慮して類似文書を検出する手法が提案されている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】柴田、姜、黒橋、「同一文抽出に基づく類似ページの検出と分類」、人工知能学会論文誌２５（１）、ｐ２２４−２３２、２０１０年
【非特許文献２】Piotr Indyk and Rajeev Motwani, "Approximate Neraest Neighbors: Towards Removing the Curse of Dimensionality." In STOC, 1998.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、情報検索の場合であれば、検索結果として同じような文書がいくつも抽出されることは好ましくない。また、分析の場合であれば、類似した文書の数はある程度の意味を持つが、短い文書で類似した文書が複数存在しても分析の対象とする情報としては価値が低いと考えられる。加えて、ある程度の長さの文書に対して複数の類似した文書が存在する場合は、スパムと疑うべき可能性もある。より具体的には、同一と考えられるユーザが同じような意見をいくつかのブログに投稿した場合や、悪質なスパム行為として同じような文章を掲載している場合、そのような文書は分析に利用することで有害な情報となる。
【０００７】
しかしながら、非特許文献１及び２などの手法では、一致もしくは類似した文からなるＷｅｂ文書を検出することはできるが、上述のような事情を考慮した上での分析はできず、分析などに有用な文書（著者の独特の意見が書かれている文書）かどうかの判別をするには、別途文書の分析を行わなければならない、という問題がある。
【０００８】
本発明は上記事情に鑑みて成されたものであり、分析や検索に有用な文書を分類することができる文書分類装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の文書分類装置は、著者を示す著者情報及び文書掲載に関するサービスを示すサービス情報を有するウェブ上に掲載された複数の文書の各々から抽出した単語に基づいて、各文書の特徴値を算出し、前記抽出した単語の数及び前記特徴値が共通する複数の文書を類似文書群として検出する類似文書群検出手段と、前記類似文書群検出手段により検出された類似文書群に含まれる各文書が有する著者情報のうち、類似した文書を複数掲載した履歴を有する著者を示す情報として登録された対象著者情報に一致する著者情報の数が所定数以上の場合に、前記類似文書群に含まれる各文書を分析対象用文書から除外する著者判定手段と、前記著者判定手段により前記分析対象用文書から除外されなかった類似文書群について、前記抽出された単語の数、該類似文書群に含まれる文書の数、著者の数、及びサービスの数の少なくとも１つに基づいて、該類似文書群に含まれる各文書を分析対象用文書とするか否かを判定する分析対象判定手段と、を含んで構成されている。
【００１０】
本発明の文書分類装置によれば、類似文書群検出手段が、著者を示す著者情報及び文書掲載に関するサービスを示すサービス情報を有するウェブ上に掲載された複数の文書の各々から抽出した単語に基づいて、各文書の特徴値を算出し、抽出した単語の数及び特徴値が共通する複数の文書を類似文書群として検出する。そして、著者判定手段が、類似文書群検出手段により検出された類似文書群に含まれる各文書が有する著者情報のうち、類似した文書を複数掲載した履歴を有する著者を示す情報として登録された対象著者情報に一致する著者情報の数が所定数以上の場合に、類似文書群に含まれる各文書を分析対象用文書から除外し、分析対象判定手段が、著者判定手段により分析対象用文書から除外されなかった類似文書群について、抽出された単語の数、類似文書群に含まれる文書の数、著者の数、及びサービスの数の少なくとも１つに基づいて、類似文書群に含まれる各文書を分析対象用文書とするか否かを判定する。
【００１１】
このように、抽出された単語に基づいて算出された特徴値が同一の文書を類似文書群として検出し、文書の著者が類似した文書を複数掲載した履歴を有する著者として登録されている文書を分析対象用文書から除外し、また、抽出された単語の数、文書の重複数、著者数、サービス数に基づいて、各文書を分析対象用文書とするか否かを判定するため、分析または検索に有用な文書を分類することができる。
【００１２】
また、本発明の文書分類プログラムは、コンピュータを、上記の文書分類装置を構成する各手段として機能させるためのプログラムである。
【発明の効果】
【００１３】
以上説明したように、本発明の文書分類装置によれば、分析または検索に有用な文書を分類することができる、という効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態に係る文書分類装置の機能的構成を示すブロック図である。
【図２】本実施の形態における文書分類処理ルーチンの内容を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１６】
本実施の形態に係る文書分類装置１０は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、後述する文書分類処理ルーチンを実行するためのプログラムを記憶したＲＯＭ（Read Only Memory）とを備えたコンピュータで構成することができる。
【００１７】
このコンピュータは、機能的には、図１に示すように、類似文書群検出部１２と、ブラックリスト判定部１４と、仕分け判定部１６とを含んだ構成で表すことができる。なお、ブラックリスト判定部１４は、本発明の著者判定手段の一例であり、仕分け判定部１６は、本発明の分析対象判定手段の一例である。
【００１８】
類似文書群検出部１２は、文書掲載に関するサービスによりＷｅｂ上に掲載された文書を示す文書データが蓄積されたＷｅｂクローラ蓄積データベース（ＤＢ）２０から、所定期間（例えば、１日）にクロールされた文書データを取得する。ここで、文書データは、その文書が掲載されたＷｅｂページのＵＲＬ及び本文データ（テキストデータ）を含むものとする。なお、本実施の形態では、文書掲載に関するサービスとしてブログサービスによりＷｅｂ上に掲載された文書がＷｅｂクローラ蓄積ＤＢ２０に蓄積されている場合について説明する。
【００１９】
類似文書群検出部１２は、取得した複数の文書データの各々から、文を構成するうえで特徴となる名詞、形容詞語幹、動詞語幹といった単語を抽出し、文書の特徴を表す語群として辞書順に並べ、重複する単語は一つにして、ＭＤ(Message Digest Algorithm)５やＳＨＡ(Secure Hash Algorithm)２５６などで固有のハッシュ値を算出して、文書固有の特徴値とする。ここでは、文書から抽出する単語を語幹としているが、これに限定されない。ただし、語幹に限定した場合には、活用により異なる語尾や、「てにをは」や読点の数といった些細な違いを無視して、類似した文書を検出するためのより適切な単語を抽出することができる。この特徴値が同一の文書は、内容が類似している文書として扱い、同一の特徴値を持つ文書を類似文書群としてまとめ、類似文書群記録部２２に記録する。なお、上記のような手法で文書毎の特徴値を算出することで、同一の特徴値を持つ文書は、特徴値算出の際に抽出された単語数も同一となる。
【００２０】
ブラックリスト判定部１４は、類似文書群記録部２２に記録された類似文書群毎に、類似文書群に含まれる各文書データのＵＲＬに基づいて、その文書の著者を推定する。ブログなどでは、そのＵＲＬに著者固有の部分を持つ場合が多いため、ＵＲＬから著者固有の部分を抽出することにより、著者を推定する。そして、推定した著者のうち、著者ブラックリストＤＢ２４に登録された著者に該当する著者が１人でも存在するか否かを判定する。著者ブラックリストＤＢ２４には、類似した文書を複数掲載した履歴を有する著者が登録されている。著者ブラックリストＤＢ２４に該当する著者が１人でも存在する場合には、その類似文書群に含まれる各文書は同じ著者によって書かれた可能性が高いため、その類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。なお、仕分けＤＢ２６は、分析には利用しないが蓄積だけはしておく文書データを記録するためのデータベースである。
【００２１】
なお、ここでは、著者ブラックリストＤＢ２４に該当する著者が１人でも存在する場合に、類似文書群に含まれる各文書を仕分けＤＢ２６に記録する場合ついて説明したが、著者ブラックリストＤＢ２４に該当する著者の数が所定数（例えば、２人）以上の場合に、類似文書群に含まれる各文書を仕分けＤＢ２６に記録するようにしてもよい。
【００２２】
また、ブラックリスト判定部１４は、類似文書群について、類似文書群検出部１２で抽出された単語の数が閾値ｔｈＢＬを超えている場合、つまりある程度の長さの文書であるにもかかわらず文書同士が類似している場合には、類似文書群に含まれる各文書の他の著者についても、既に著者ブラックリストＤＢ２４に登録されている著者に関連する著者とみなし、著者ブラックリストＤＢ２４に追加する。
【００２３】
仕分け判定部１６は、ブラックリスト判定部１４により仕分けＤＢ２６に蓄積されなかった類似文書群について、抽出された単語の数、その類似文書群に含まれる文書の数（文書の重複数）、著者の数、及びブログサービスの数に基づいて、類似文書群に含まれる各文書を仕分けＤＢ２６に蓄積するか、分析用ＤＢ２８に蓄積するかを判定する。なお、分析用ＤＢ２８は、分析に利用する文書データを記録するためのデータベースである。
【００２４】
より具体的には、仕分け判定部１６は、抽出された単語数が閾値ｔｈｍｉｎ以下の場合、類似文書群に含まれる各文書を仕分けＤＢ２６へ記録する。これは、例えば、抽出された単語数が２〜５個の場合、文書が短いために偶然文書同士が類似（重複）することが多く、また、検索用途でも分析用途でも有用な情報を含むことが少ないためである。
【００２５】
また、仕分け判定部１６は、抽出された単語数が閾値ｔｈｍａｘ１以上で、かつ文書の重複数が閾値ｔｈＤ以上の場合、類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。これは、ある程度長い文書が偶然類似する確率はかなり低く、スパムもしくは同一著者のミラーであると考えられることによる。具体的には、抽出された単語数が多く（例えば、１０以上）、文書の重複数も多く（例えば、１０以上）、かつ各文書のブログサービスが同一の場合は、各文書は「ブログ始めました」等の定型文であることが多い。さらに、抽出された単語数がより多い場合には、各文書はスパム記事である場合が多い。従って、これらの文書は仕分けＤＢ２６に記録する。また、スパム判別は様々な手法が考えられるが、ここでは、抽出された単語数が閾値ｔｈｍａｘ１よりさらに多い閾値ｔｈｍａｘ２を超え、かつ各文書のブログサービスが同一の場合には、各文書はスパムと捉え、各文書の著者を著者ブラックリストＤＢ２４に追加する。なお、ブログサービスが同一か否かの判定は、各文書データのＵＲＬに基づいて、その文書が掲載されているブログサービスを推定して行う。上述の著者の推定と同様に、ブログなどでは、そのＵＲＬにブログサービスを示す固有のホスト名やサービス名を含む場合が多いため、ＵＲＬからサービス名を示す部分を抽出し、場合によっては別途辞書などを用いて特定のサービス名を付与することにより、各文書のブログサービスを推定する。
【００２６】
また、仕分け判定部１６は、類似文書群に含まれる各文書のＵＲＬに基づいて、ブログサービスの数及び著者数を抽出する。ブログサービスの数及び著者数は、上述のとおりＵＲＬからブログサービス及び著者を推定し、その数を重複を排除してカウントすることにより抽出する。ブログサービス数と著者数とが共に１の場合は、仕分けＤＢ２６に記録すると共に、その著者を著者ブラックリストＤＢ２４に追加する。これは、同一著者が同一ブログサービスへ類似した記事をいくつも書いていることになるためである。
【００２７】
また、仕分け判定部１６は、ブログサービス数が１で、著者数／文書の重複数が１に近い場合（例えば、０．８〜１．２）は、類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。これは、同一ブログサービスにおいて定型的な文書である場合である。例えば、新規ユーザの「ブログ始めました」といった記事や、ソーシャルイベントによるテンプレート記事の投稿である。そのため、一般的な文書と分けるために、仕分けＤＢ２６に記録する。
【００２８】
また、仕分け判定部１６は、上記以外の類似文書群に含まれる各文書を、分析用ＤＢ２８に記録する。
【００２９】
次に、本実施の形態に係る文書分類装置１０の作用について説明する。Ｗｅｂ上のブログサービスからクロールされた文書データがＷｅｂクローラ蓄積ＤＢ２０に蓄積され、文書分類装置１０において、所定期間毎に図２に示す文書分類処理ルーチンが実行される。
【００３０】
ステップ１００で、類似文書群検出部１２が、Ｗｅｂクローラ蓄積ＤＢ２０から、所定期間にクロールされた文書データを取得する。
【００３１】
次に、ステップ１０２で、類似文書群検出部１２が、取得した複数の文書データの各々から、文を構成するうえで特徴となる名詞、形容詞語幹、動詞語幹といった単語を抽出し、文書の特徴を表す語群として辞書順に並べ、重複する単語は一つにして、ＭＤ５やＳＨＡ２５６などで固有のハッシュ値を算出して、文書固有の特徴値とする。そして、同一の特徴値を持つ文書を類似文書群としてまとめ、類似文書群記録部２２に記録する。
【００３２】
次に、ステップ１０４で、ブラックリスト判定部１４が、類似文書群記録部２２に記録された類似文書群から１つの類似文書群を読み出す。
【００３３】
次に、ステップ１０６で、ブラックリスト判定部１４が、上記ステップ１０４で読み出した類似文書群に含まれる各文書データのＵＲＬに基づいて、各文書の著者を推定し、推定した著者のうち、著者ブラックリストＤＢ２４に登録された著者に該当する著者が存在するか否かを判定する。著者ブラックリストＤＢ２４に該当する著者が存在しない場合には、ステップ１１４へ移行し、存在する場合には、ステップ１０８へ移行する。
【００３４】
ステップ１０８では、ブラックリスト判定部１４が、読み出した類似文書群について、上記ステップ１０２で抽出された単語の数が閾値ｔｈＢＬを超えているか否かを判定する。抽出された単語の数＞閾値ｔｈＢＬの場合には、ステップ１１０へ移行し、類似文書群に含まれる各文書の他の著者についても、既に著者ブラックリストＤＢ２４に登録されている著者に関連する著者とみなし、著者ブラックリストＤＢ２４に追加して、ステップ１１２へ移行する。一方、抽出された単語の数≦閾値ｔｈＢＬの場合には、そのままステップ１１２へ移行する。ステップ１１２では、読み出した類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。
【００３５】
ステップ１１４では、仕分け判定部１６が、上記ステップ１０４で読み出した類似文書群について抽出された単語の数が閾値ｔｈｍｉｎを超えているか否かを判定する。抽出された単語の数＞閾値ｔｈｍｉｎの場合には、ステップ１１６へ移行し、抽出された単語の数≦閾値ｔｈｍｉｎの場合、ステップ１１２へ移行して、類似文書群に含まれる各文書を仕分けＤＢ２６へ記録する。
【００３６】
ステップ１１６では、仕分け判定部１６が、抽出された単語数が閾値ｔｈｍａｘ１より小さいか、または文書の重複数が閾値ｔｈＤより小さいか否かを判定する。抽出された単語数＜閾値ｔｈｍａｘ１、または文書の重複数＜閾値ｔｈＤの場合には、ステップ１２０へ移行し、抽出された単語数≧閾値ｔｈｍａｘ１、かつ文書の重複数≧閾値ｔｈＤの場合には、ステップ１１８へ移行する。
【００３７】
ステップ１１８では、仕分け判定部１６が、抽出された単語数が閾値ｔｈｍａｘ２を超え、かつ各文書のブログサービスが同一か否かを判定する。肯定判定される場合には、ステップ１１０へ移行して、各文書の著者を著者ブラックリストＤＢ２４に追加して、ステップ１１２へ移行する。否定判定される場合には、そのままステップ１１２へ移行する。ステップ１１２では、読み出した類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。
【００３８】
ステップ１２０では、仕分け判定部１６が、類似文書群に含まれる各文書のＵＲＬに基づいて、ブログサービスの数及び著者数を抽出し、ブログサービス数が１以外、または著者数が１以外か否かを判定する。ブログサービス数≠１、または著者数≠１の場合には、ステップ１２２へ移行し、ブログサービス数及び著者数が共に１の場合には、ステップ１１０へ移行して、各文書の著者を著者ブラックリストＤＢ２４に追加し、次に、ステップ１１２で、読み出した類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。
【００３９】
ステップ１２２では、仕分け判定部１６が、ブログサービス数が１以外、または著者数／文書の重複数が１に近くない（著者数／文書の重複数≦１−α、または著者数／文書の重複数≧１＋α）か否かを判定する。ブログサービス数≠１、または著者数／文書の重複数が１に近くない場合には、ステップ１２４へ移行して、読み出した類似文書群に含まれる各文書を分析用ＤＢ２８に記録する。ブログサービス数＝１、かつ著者数／文書の重複数が１に近い場合には、ステップ１１２へ移行して、読み出した類似文書群に含まれる各文書を仕分けＤＢ２６に記録する。
【００４０】
次に、ステップ１２６で、類似文書群記録部２２に記録された全ての類似文書群について上記の処理が終了したか否かを判定し、終了していない場合には、ステップ１０４へ戻って、次の類似文書群を読み出して、ステップ１０６〜１２４の処理を繰り返す。全ての類似文書群について上記の処理が終了した場合には、文書分類処理ルーチンを終了する。
【００４１】
以上説明したように、本実施の形態に係る文書分類装置によれば、抽出された単語に基づいて算出された特徴値が同一の文書を類似文書群として検出し、類似文書群毎に、文書の著者が類似した文書を複数掲載した履歴を有する著者としてブラックリストに登録されている文書を排除し、また、抽出された単語の数、文書の重複数、著者数、サービス数に基づいて、スパムと考えられる文書や定型的な文書、短いために情報が少ない文書を排除するため、著者の独特の意見が記述された分析または検索に有用な文書を分類することができる。
【００４２】
このように分類された有用な文書のみを分析用ＤＢに記録するため、分析用ＤＢの記憶領域を削減することができる。また、仕分けＤＢに記録された文書は、類似部分が多く存在するため、各文書間の類似部分と差異部分とを分けて圧縮して記録することで、仕分けＤＢの記憶領域を削減することができる。また、このように分類され分析用ＤＢに記録された文書を用いて、評判分析やトレンド分析といった分析処理を行うことで、分析精度の向上を実現することができる。
【００４３】
なお、本発明は、上記実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００４４】
例えば、上記の文書分類処理ルーチンでは、ステップ１０６で、類似文書群に含まれる各文書の著者に著者ブラックリスト２４に該当する著者が含まれていると判定され、ステップ１０８で肯定判定された場合には、類似文書群に含まれる各文書の他の著者についても、著者ブラックリストＤＢ２４に該当する著者に関連する著者とみなし、著者ブラックリストＤＢ２４に追加する場合について説明したが、これに限定されない。例えば、著者ブラックリストＤＢ２４に該当する著者に関連する著者であると判定された回数を記録しておき、その回数が所定回数を超えた場合に、その関連する著者を著者ブラックリストＤＢ２４に追加するようにしてもよいし、別途定めた基準や情報を用いて著者間の関連度を計算し、著者間の関連度が所定の閾値以上であると判定された場合に、その関連する著者を著者ブラックリストＤＢ２４に追加するようにしてもよい。
【００４５】
また、上述の文書分類装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００４６】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００４７】
１０   文書分類装置
１２   類似文書群検出部
１４   ブラックリスト判定部
１６   仕分け判定部
【図１】
0005694989.tif 000002
【図２】
0005694989.tif 000003