以下、図面と共に本発明に係る関連文書抽出装置、関連文書抽出方法及び関連文書抽出プログラムについて詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1に本実施形態に係る関連文書抽出装置10を示す。関連文書抽出装置10は、複数の文書(ドキュメント)から特定のトピックに関連する文書を抽出する装置である。抽出対象となる文書は、例えば、ユーザによって投稿されてWeb上で公開されるマイクロブログで公開される文書である。本実施形態では、説明を簡潔にするため、具体的な例として適宜マイクロブログの代表であるツイッターを用いる。なお、本実施形態では、抽出対象を文書と呼ぶが、マイクロブログのサービスによってはツイートあるいはコメント等とも呼ばれる。なお、抽出対象の文書は、必ずしもWeb上で公開される文書である必要は無い。
関連文書抽出装置10は、多数のユーザによって投稿された文書を入力して、それらの文書から特定のトピックに関連する文書を抽出して、それらを特定のトピックに係る文書群としてユーザに提供する。特定のトピックとしては、例えば、特定のテレビ番組が挙げられる。ユーザは、特定のトピックに係る文書群を参照することで、他のユーザが当該特定のトピックに関してどのように考えているか等を知ることができる。
図1に示すように関連文書抽出装置10は、文書格納部100と、形態素解析部110と、形態素格納部120と、トピックタグ推定部130と、トピックタグ格納部140と、トピックID付与部150と、ブラックリストハッシュタグ拡張部160と、ブラックリストタグ格納部170と、ブラックリストユーザ格納部180と、ノイズ除去部190と、トピック文書格納部200とを備えて構成される。関連文書抽出装置10は、抽出対象となる文書を取得(受信)できるように当該文書を出力する装置(例えば、マイクロブログのサービスを提供するサーバ)とインターネット等のネットワークを介して接続されている。
文書格納部100は、抽出対象となる複数の文書を予め入力して格納する文書格納手段である。文書格納部100は、例えば、インターネット経由でマイクロブログのサービスを提供すると共に文書を保存するサーバに対して文書の取得を要求して取得(受信)することとしてもよいし、当該サーバからストリーミングでドキュメントのデータを受信することとしてもよい。ツイッターにおける各文書は、例えば、ユーザによって生成(投稿)された各ツイートデータ相当のものである。格納されるデータは、必ずしも一種類のデータのみが格納されるわけではない。
図2に文書格納部100に格納される文書のサンプルフォーマットを示す。図2に示すように文書格納部100に格納される1つの文書に関するデータは、文書ID、ユーザID、投稿時間、テキスト及びハッシュタグが対応付けられたものである。図2に示す1行のデータが1つの文書に関するデータに相当する。文書IDは、それぞれの文書を特定する情報でありユニークな値である。ユーザIDは、それぞれの文書を作成したユーザを特定する情報である。このように文書格納部100は、文書を投稿したユーザに係る情報を入力して格納する。ユーザIDは、例えば、ユーザのアカウント等のユニークな値としてもよいし、ユニークな値として特定するのが困難な場合にはインターネットを用いる場合のセッション毎のIDとしてもよい。
投稿時間は、その文書がユーザによって投稿された時刻を示す情報である。テキストは、文書データに含まれる実際のテキストデータ(文書本体)である。ハッシュタグは、文書に付与されたタグ情報である。ハッシュタグはツイッターの用語であるが、ユーザが明示的に特定のトピックに関して投稿したいときに文書に付与されるタグ、例えば特定のイベントを認識できるタグ、つまりイベント識別子である。それぞれの文書には、必ずしも何かしらのハッシュタグ(イベント識別子)を含む必要はなく、ハッシュタグを含まない場合にはNULL値が入るものとする。
形態素解析部110は、文書格納部100によって格納されている文書データを読み出して、当該文書データのテキストを単語に分割する単語取得手段である。形態素解析部110は、テキストから単語への分割を、例えば、形態素解析によって行う。この際の形態素解析は従来の技術を利用することができる。但し、単語への分割は必ずしも形態素解析が用いられる必要はなく、任意の方法で行われてもよい。以降の説明では単語を形態素とする。形態素の取得は、文書毎に行われる。形態素解析部110は、テキストから得られた形態素に係る情報を形態素格納部120に出力する。
形態素格納部120は、形態素解析部110から入力された形態素を格納する手段である。図3に形態素格納部120に格納される形態素のサンプルフォーマットを示す。図3に示すように形態素格納部120に格納される1つの形態素に関するデータは、文書ID、ユーザID、投稿時間、形態素及び品詞が対応付けられたものである。図3に示す1行のデータが1つの形態素に関するデータに相当する。文書ID、ユーザID及び投稿時間は、形態素の取得元となった文書の文書ID、ユーザID及び投稿時間である。形態素は、形態素解析部110によって得られた形態素である。品詞は、形態素解析部110による解析によって得られた形態素の品詞である。例えば、形態素が名詞であるか否かの情報が格納される。
トピックタグ推定部130は、各文書が特定のトピックに関連する文書であるか否かを判断するために用いる情報を生成する手段である。トピックタグ推定部130は、トピックタグ格納部140に格納された情報を用いて、上記の情報を生成してトピックタグ格納部140に格納する。ここでトピックタグ格納部140について説明する。
トピックタグ格納部140は、デフォルトトピックタグ格納部141と、トピック特徴語格納部142と、拡張トピックハッシュタグ格納部143とを含む。
デフォルトトピックタグ格納部141は、トピックを示すデフォルトトピックタグを予め入力して格納するデフォルトトピックタグ格納手段である。デフォルトトピックタグは、関連する文書を抽出したいトピックに関連するタグであり、例えば、関連文書抽出装置10の管理者によって予め登録される。デフォルトトピックタグが含まれる文書は、当該デフォルトトピックタグに係るトピックに関連する文書として抽出される。この抽出は、文字列マッチングにより行われる。デフォルトトピックタグは、例えば、形態素、ハッシュタグあるいはキーワードの何れかである。デフォルトトピックタグはトピックごとに存在する。例えば、トピックが「XXドラマ:YYY(ドラマタイトル)」の場合、「(YYYに出演している俳優である)AAAA」、「YYY」、「(YYYに出演している俳優である)BBBB」等がデフォルトトピックとされる。
図4にデフォルトトピックタグ格納部141に格納されるデフォルトトピックタグのサンプルフォーマットを示す。図4に示すようにデフォルトトピックタグ格納部141に格納される1つのデフォルトトピックタグに関するデータは、トピックID及びタグが対応付けられたものである。図4に示す1行のデータが1つのデフォルトトピックタグに関するデータに相当する。トピックIDは、一つのトピックを特定するIDである。タグは、デフォルトトピックタグ本体である。デフォルトトピックタグ格納部141に格納されるデフォルトトピックタグは、図4に示すように一つのトピック(一つのトピックID)に対して複数あってもよい。また、デフォルトトピックタグ格納部141は、複数のトピック(複数のトピックID)それぞれを示す複数のデフォルトトピックタグを入力することとしてもよい。
トピック特徴語格納部142と、拡張トピックハッシュタグ格納部143とに格納される情報はトピックタグ推定部130から入力される情報であるので後述する。
トピックタグ推定部130は、デフォルトトピックタグ格納部141に格納されたデフォルトトピックタグを用いて、各文書が特定のトピックに関連する文書であるか否かを判断するために用いる情報を生成する。この情報は、文書にデフォルトトピックタグが含まれていないが、当該文書にデフォルトトピックタグに係るトピックに関連する文書であるか否かを判断するためのものである。
トピックタグ推定部130は、トピック特徴語推定部131と、トピックハッシュタグ推定部132とを含んで構成され、それぞれが異なる情報を生成する。
トピック特徴語推定部131は、トピックの特徴語を推定する手段である。トピックの特徴語とは、当該トピックに関連する文書に特徴的に出現する形態素である。トピック特徴語推定部131は、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグを読み出し、文書格納部100によって格納されている複数の文書からデフォルトトピックタグを含む文書を、トピックに関連する文書(トピック文書)として抽出するデフォルト文書抽出手段である。この時、投稿時間に基づいて抽出時から直近数時間等の予め設定された一定期間の文書を取得する。トピック特徴語推定部131は、文書格納部100及び形態素格納部120に格納されている情報を参照して、抽出されたトピック文書(トピック文書群)における形態素の出現頻度を算出する第1出現頻度算出手段である。この際、トピック特徴語推定部131は、形態素の出現頻度として当該形態素が含まれる文書を投稿したユーザ数を算出する。また、トピック特徴語推定部131は、形態素毎に当該形態素が含まれる文書を投稿したユーザ数に対する、文書を投稿した全ユーザ数の割合から逆出現頻度を算出する。
トピック特徴語推定部131は、上記の値からトピック文書(トピック文書群)に特徴的な形態素(特徴量)を抽出する。トピック特徴語推定部131は、トピックID毎に、対象のトピックの特徴を記述する情報である特徴量を生成する。特徴量は、複数の特徴(素性)から構成され、形態素毎に素性が生成される。例えば、「今日」という素性はスコアが「0.5」付いており、「晴」という素性はスコアが「0.2」付いているといった具合である。
具体的には、以下のように生成する。まず、トピック特徴語推定部131は、各文書に含まれる形態素から以下の式により、各形態素についてのIDF(Inverse Document Frequency)値(逆出現頻度)を算出する。
ここで、iは形態素を示す添え字、|D|は総ユニークユーザ数、|{d:t
i∈d}|は、形態素iを含む文書を投稿したユニークユーザ数である。IDF値は、その単語が出現する文書数が少なければ少ないほど、その単語が出現する文書にとっては、有用であることを示すスコアである。
なお、このように文書数でなく、ユーザ数で頻度を算出しているのは以下のような理由である。文書数を単純に用いるとノイズが混じることがある。例えば、同じユーザが同じ内容の文書を複数投稿することがある。人によっては何十回も同じ内容の文書を投稿することもある。ここでの計算をユニークユーザ数ベースにすると、同一ユーザが複数回同じ内容の文書を投稿していたとしても1回しかカウントされない。従って、算出されるスコアとしてはより信頼性の高いものとなる。1ユーザが形態素のスコアに与える影響を均一にしているという考え方もできる。
続いて、トピック特徴語推定部131は、トピックID毎に各トピック文書に含まれる形態素(トピックIDが付与された形態素)から以下の式により、各形態素についてのTF(Term Frequency)値(出現頻度)を算出する。
ここで、jはトピックIDを示す添え字、n
i,jは、形態素iを含むトピックIDjに係る文書(トピックIDjのデフォルトトピックタグを含む文書)を投稿したユニークユーザ数である。なお、TF値は、与えられた文書において、ある単語がどれだけ顕著に出現するかを示し、この値が大きければ大きいほどその単語が文書の内容をよく表現していることを示す。
続いて、トピック特徴語推定部131は、トピックIDjにおける形態素iのTFIDF値(tfidfi,j)を以下の式により求める。
tfidfi,j=tfi,j・idfi
これを各形態素に対して行うことでトピックIDの特徴量(形態素i毎のTFIDF値)を生成する。全てのトピックIDの特徴量を生成するまで続ける。このように算出した形態素毎のスコアは、トピックと相関が高い形態素ほど高いスコアが付く。
テレビ番組に関する特徴量は、例えば、「YYY(ドラマタイトル):1.0、AAAA(俳優名):0.9、CCCC(役名):0.7、DDDD(役名):0.4」(形態素:TFIDF値)のようになる。このように特徴量を見ることで、この番組の特徴が明確である。
なお、上記の計算の際にIDFにlogをかけたり、IDFを定数で累乗したりすることで、IDFに重みを付けてスコア(TFIDF値)の調整を行ってもよい。また、形態素毎の文字数も用いて、例えば、以下の式のようにTFIDF値を算出することとしてもよい。
tfidfi,j=tfi,j・idfi・log(lengthi)
ここで、lengthiは、形態素iの文字数である。また、power(log(lengthi),定数)(log(lengthi)の定数乗)をかけることで文字列の重みをかけてもよい。このようにすることでより具体的に記述している形態素に対して重みを上げることができる。また文字数が少ない形態素は頻繁に出現するため、ノイズとしてスコアが高くなりがちである。
トピック特徴語推定部131は、算出したトピックID毎の各形態素のTFIDF値をトピック特徴語格納部142に出力して格納させる。ここで、TFIDF値が予め設定された閾値以上の形態素(特徴語)についてのみ、トピック特徴語格納部142に格納させることとしてもよい。図5にトピック特徴語格納部142に格納される特徴量のサンプルフォーマットを示す。図5に示すようにトピック特徴語格納部142に格納される特徴量のデータは、形態素毎のデータであり、1つの形態素に関するデータは、トピックID、作成日、タグ及びスコアが対応付けられたものである。図5に示す1行のデータが何れかのトピックIDの1つの形態素に関するデータに相当する。トピックIDは、特徴量に係るトピックのトピックIDである。作成日は、このデータが作成された時刻である。タグは、形態素である。スコアは、トピック特徴語推定部131によって算出されたTFIDF値である。以上が、トピック特徴語推定部131によって生成される情報である。
トピックハッシュタグ推定部132は、トピックに係るデフォルトトピックタグ以外のハッシュタグを推定する手段である。トピックハッシュタグ推定部132は、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグを読み出し、文書格納部100によって格納されている複数の文書からデフォルトトピックタグ以外のタグ(トピックに係るハッシュタグの候補となるハッシュタグ)を含む文書をタグ文書(タグ文書群)として抽出するタグ文書抽出手段である。この時、投稿時間に基づいて抽出時から直近数時間等の予め設定された一定期間の文書を取得する。トピックハッシュタグ推定部132は、文書格納部100及び形態素格納部120に格納されている情報を参照して、抽出されたタグ文書(タグ文書群)における形態素の出現頻度を算出する第2出現頻度算出手段である。この際、トピックハッシュタグ推定部132は、形態素の出現頻度として当該形態素が含まれる文書を投稿したユーザ数を算出する。また、トピックハッシュタグ推定部132は、形態素毎に当該形態素が含まれる文書を投稿したユーザ数に対する、文書を投稿した全ユーザ数の割合から逆出現頻度を算出する。
具体的には、トピックハッシュタグ推定部132は、トピック特徴語推定部131と同様に各形態素についてのIDF値(逆出現頻度)を算出する。なお、トピック特徴語推定部131及びトピックハッシュタグ推定部132によって算出され利用されるIDF値は形態素毎に同一の値となるため、何れか一方が算出したIDF値をもう一方において利用することとしてもよい。
続いて、トピックハッシュタグ推定部132は、デフォルトトピックタグ以外のタグ毎に各タグ文書に含まれる形態素(ハッシュタグが付与された形態素)から以下の式により、各形態素についてのTF値(出現頻度)を算出する。
ここで、jはハッシュタグを示す添え字、n
i,jは、形態素iを含むと共にハッシュタグjを含む文書を投稿したユニークユーザ数である。
続いて、トピックハッシュタグ推定部132は、ハッシュタグjにおける形態素iのTFIDF値(tfidfi,j)を以下の式により求める。
tfidfi,j=tfi,j・idfi
これを各形態素に対して行うことでハッシュタグの特徴量(形態素i毎のTFIDF値)を生成する。全てのハッシュタグの特徴量を生成するまで続ける。なお、TFIDF値の重み付け等は上述したトピック特徴語推定部131による方法と同様に行ってもよい。
また、トピックハッシュタグ推定部132は、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグを読み出し、文書格納部100によって格納されている複数の文書からデフォルトトピックタグを含む文書を、トピックに関連する文書(トピック文書)として抽出するデフォルト文書抽出手段である。この時、投稿時間に基づいて抽出時から直近数時間等の予め設定された一定期間の文書を取得する。トピックハッシュタグ推定部132は、文書格納部100及び形態素格納部120に格納されている情報を参照して、抽出されたトピック文書(トピック文書群)における形態素の出現頻度を算出する第1出現頻度算出手段である。この際、トピックハッシュタグ推定部132は、形態素の出現頻度として当該形態素が含まれる文書を投稿したユーザ数を算出する。また、トピックハッシュタグ推定部132は、形態素毎に当該形態素が含まれる文書を投稿したユーザ数に対する、文書を投稿した全ユーザ数の割合から逆出現頻度を算出する。
トピックハッシュタグ推定部132は、トピック特徴語推定部131と同様にトピックIDjにおける形態素iのTFIDF値(tfidfi,j)を求める。なお、トピック特徴語推定部131及びトピックハッシュタグ推定部132によって算出され利用される、トピックIDjにおけるTFIDF値は形態素毎に同一の値となるため、何れか一方が算出したTFIDF値をもう一方において利用することとしてもよい。
トピックハッシュタグ推定部132は、上記のように算出したトピックIDの特徴量と、タグの特徴量とを比較する第2トピック文書判定手段の一機能である。具体的には、トピックハッシュタグ推定部132は、トピックID毎に全ての(デフォルトトピックタグ以外の)ハッシュタグとの類似度(similarity)をコサイン距離として以下の式を用いて算出する。
ここでA及びBは、それぞれトピックIDの特徴量及びハッシュタグの特徴量である。Ai及びBiは、各形態素iのTFIDF値である。なお、形態素の出現頻度によって示される特徴量間の類似度の算出には、上記のコサイン距離以外にも、ジャカード距離又はユークリッド距離が用いられてもよい。また、それ以外でも特徴量間の類似度の算出が可能なものであれば、任意の算出方法を用いることができる。
トピックハッシュタグ推定部132は、トピックID毎に類似度が予め設定した閾値以上のハッシュタグの類似度があるか否か判断して、類似度が閾値以上のタグを当該トピックIDのトピックに係るタグであるものとする。この処理を全てのトピックIDに対して行うことで、当該トピックIDのトピックに係るハッシュタグ(類似しているハッシュタグ)を抽出することができる。
トピックハッシュタグ推定部132は、トピックIDのトピックに係るハッシュタグ(拡張トピックハッシュタグ)を示す情報を拡張トピックハッシュタグ格納部143に出力して格納させる。図6に拡張トピックハッシュタグ格納部143に格納される拡張トピックハッシュタグのサンプルフォーマットを示す。図6に示すように拡張トピックハッシュタグ格納部143に格納される拡張トピックハッシュタグのデータは、拡張トピックハッシュタグ毎のデータであり、1つの拡張トピックハッシュタグに関するデータは、トピックID、作成日及びハッシュタグが対応付けられたものである。図6に示す1行のデータが1つの拡張トピックハッシュタグに関するデータに相当する。トピックIDは、拡張トピックハッシュタグに係るトピックのトピックIDである。作成日は、このデータが作成された時刻である。ハッシュタグは、拡張トピックハッシュタグである。以上が、トピックハッシュタグ推定部132によって生成される情報である。
トピックID付与部150は、トピックタグ格納部140に格納された情報を用いてトピックに関連する文書を抽出するトピック文書抽出手段である。特にトピックID付与部150は、文書にデフォルトトピックタグが含まれていないが、トピックに関連する文書を抽出するトピック文書抽出手段である。
トピックID付与部150は、まず、文書格納部100によって格納されている文書を取得する。この時、投稿時間に基づいて取得時から直近数時間等の予め設定された一定期間の文書を取得する。デフォルトトピックタグ格納部141に格納されている情報に基づくトピックに関連する文書を抽出するには以下のように行う。トピックID付与部150は、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグを読み出し、取得した文書にデフォルトトピックタグが含まれているか否かを判断し、デフォルトトピックタグが含まれていた文書に当該デフォルトトピックタグに係るトピックIDを付与する。
トピック特徴語推定部131に格納されている情報に基づくトピックに関連する文書を抽出するには以下のように行う。トピックID付与部150は、トピック特徴語推定部131によって格納されている特徴量(トピックID毎の各形態素のTFIDF値(スコア))の情報を読み出し、特徴量の情報から各トピックIDに対する取得した各文書のスコアを算出するスコア算出手段である。トピックID付与部150は、スコア付与対象の文書に特徴量に係る形態素(特徴語)が含まれているか判断する。トピックID付与部150は、文書に含まれていた特徴語のスコアを合算する。
なお、スコアの算出の際に文書において特徴語が複数回出現する場合、1回出現の場合と同様に文書のスコアを算出することとしてもよい。即ち、同じ特徴語のスコアを複数回カウントしない。文書が「今日は、晴れてよかった。今日はいい天気」の場合、特徴語「今日」のスコアが1.0の場合、この文書に含まれる「今日」から派生するスコアを1.0+1.0=2.0でなく1.0とする。
このように複数回カウントしないことでノイズの除去が可能である。不適切な文書をトピック文書として抽出することを回避できる。例えば、あるワードが特徴語として抽出されたがその特徴語のスコアが低かったとする。その特徴がある文書の中に頻繁に出現した場合、重複カウントを許容してしまうとトピック文書として抽出してしまう可能性がある。重複カウントを許可しないことでこれを回避できる。
トピックID付与部150は、算出されたスコアに基づいて、当該スコアに係る文書がトピックに関連する文書であるか否かを判定する第1トピック文書判定手段である。具体的には、トピックID付与部150は、スコアが予め設定した閾値であるか否かを判断して、閾値以上であった場合、当該文書がそのトピックに関連する文書であると判断しトピックIDを付与する。この処理をトピック特徴語推定部131に格納される特徴量に係るトピックID分繰り返しトピックIDを付与する。
拡張トピックハッシュタグ格納部143に格納されている情報に基づくトピックに関連する文書を抽出するには以下のように行う。トピックID付与部150は、拡張トピックハッシュタグ格納部143によって格納されている拡張トピックハッシュタグを読み出し、取得した文書に拡張トピックハッシュタグが含まれているか否かを判断する(即ち、取得した文書が拡張トピックハッシュタグに係るタグ文書であるか否かを判断する)ことで、当該文書がトピックに関連する文書であるか否かを判定する第2トピック文書判定手段である。トピックID付与部150は、拡張トピックハッシュタグが含まれていた文書に当該デフォルトトピックタグに係るトピックIDを付与する。拡張トピックハッシュタグ格納部143に格納される拡張トピックハッシュタグに係るトピックID分繰り返しトピックIDを付与する。トピックID付与部150は、トピックIDを付与した文書をノイズ除去部190に出力する。
本実施形態では、文書格納部100に格納されている文書からノイズの除去を行う。即ち、文書格納部100に格納されている文書がトピックに関連する文書として不適切なものか否かを判断して、不適切なものであると判断されるとその文書を関連する文書から除外する。
ツイッターではハッシュタグを付けて特定のトピックに対して自分のツイートをシェアするのは一般的だが、独立する複数のトピックのハッシュタグを付け自分のコメントを投稿するユーザがいる。この場合、複数のトピックに対して投稿されており、投稿内容としては個々のトピックとは関係性が非常に薄く、テレビに関して言えば政治に対する批判であったり、放送局批判であったりすることが多い。トピックに関連する文書を精度よく抽出するにあたって、これらノイズをフィルタリングすることは重要である。以下の構成は、文書からノイズの除去を行うためのものである。
ブラックリストハッシュタグ拡張部160は、各文書がノイズにあたるか、即ち、各文書が抽出するのに不適切な特定のトピックに関連する文書であるか否かを判断するために用いる情報を生成する手段である。ブラックリストハッシュタグ拡張部160は、ブラックリストタグ格納部170に格納された情報を用いて、上記の情報を生成してブラックリストタグ格納部170に格納する。ここでブラックリストタグ格納部170について説明する。
ブラックリストタグ格納部170は、デフォルトブラックリスト形態素格納部171と、デフォルトブラックリストハッシュタグ格納部172と、拡張ブラックリストハッシュタグ格納部173とを含む。
デフォルトブラックリスト形態素格納部171は、ブラックリスト形態素を入力して格納する手段である。ブラックリスト形態素は、文書に含まれていた場合にその文書が除外されるべきものとされる形態素である。ブラックリスト形態素は、例えば、関連文書抽出装置10の管理者によって予め登録される。図7(a)にデフォルトブラックリスト形態素格納部171に格納されるブラックリスト形態素のサンプルフォーマットを示す。図7(a)に示すように1行のデータが1つのブラックリスト形態素に関するデータに相当し、ブラックリスト形態素毎に格納されている。
デフォルトブラックリストハッシュタグ格納部172は、不適切なトピックを示すデフォルトトピックタグであるブラックリストハッシュタグを予め入力して格納するデフォルトトピックタグ格納手段である。ブラックリストハッシュタグは、関連する文書を除外したいトピックに関連するタグであり、例えば、関連文書抽出装置10の管理者によって予め登録される。ブラックリストハッシュタグが含まれる文書は、不適切なトピックに関連する文書として除外される。この除外は、文字列マッチングにより行われる。ブラックリストハッシュタグは、例えば、ハッシュタグである。
図7(b)にデフォルトブラックリストハッシュタグ格納部172に格納されるブラックリストハッシュタグのサンプルフォーマットを示す。図7(b)に示すように1行のデータが1つのブラックリストハッシュタグに関するデータに相当し、ブラックリストハッシュタグ毎に格納されている。
拡張ブラックリストハッシュタグ格納部173格納される情報はブラックリストハッシュタグ拡張部160から入力される情報であるので後述する。
ブラックリストハッシュタグ拡張部160は、デフォルトブラックリストハッシュタグ格納部172に格納されたブラックリストハッシュタグを用いて、各文書が除外されるべき文書(除外されるべきトピックに関連する文書)であるか否かを判断するために用いる情報を生成する。この情報は、文書にブラックリストハッシュタグが含まれていないが、当該文書が除外されるべき文書であるか否かを判断するためのものである。
ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグに係る特徴語を推定する手段である。ブラックリストハッシュタグの特徴語とは、当該ブラックリストハッシュタグを含む文書に特徴的に出現する形態素である。ブラックリストハッシュタグ拡張部160は、デフォルトブラックリストハッシュタグ格納部172によって格納されているブラックリストハッシュタグを読み出し、文書格納部100によって格納されている複数の文書からブラックリストハッシュタグを含む文書を、除外されるべき文書として抽出するデフォルト文書抽出手段である。この時、投稿時間に基づいて抽出時から直近数時間等の予め設定された一定期間の文書を取得する。ブラックリストハッシュタグ拡張部160は、文書格納部100及び形態素格納部120に格納されている情報を参照して、抽出された除外されるべき文書(文書群)における形態素の出現頻度を算出する第1出現頻度算出手段である。この際、ブラックリストハッシュタグ拡張部160は、形態素の出現頻度として当該形態素が含まれる文書を投稿したユーザ数を算出する。また、ブラックリストハッシュタグ拡張部160は、形態素毎に当該形態素が含まれる文書を投稿したユーザ数に対する、文書を投稿した全ユーザ数の割合から逆出現頻度を算出する。
ブラックリストハッシュタグ拡張部160は、上記の値から除外されるべき文書(文書群)に特徴的な形態素(特徴量)を抽出する。ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグ毎に、対象のトピックの特徴を記述する情報である特徴量を生成する。
具体的には、以下のように生成する。まず、ブラックリストハッシュタグ拡張部160は、各文書に含まれる形態素から以下の式により、各形態素についてのIDF値(逆出現頻度)を算出する。
ここで、iは形態素を示す添え字、|D|は総ユニークユーザ数、|{d:t
i∈d}|は、形態素iを含む文書を投稿したユニークユーザ数である。なお、このIDF値は、トピックタグ推定部130によって算出されたものと同様のものであるのでトピックタグ推定部130によって算出されたものを用いることとしてもよい。
続いて、ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグ毎に各抽出された除外されるべき文書に含まれる形態素(ブラックリストハッシュタグが付与された形態素)から以下の式により、各形態素についてのTF値(出現頻度)を算出する。
ここで、jはブラックリストハッシュタグを示す添え字、n
i,jは、形態素iを含むブラックリストハッシュタグjに係る文書(ブラックリストハッシュタグjを含む文書)を投稿したユニークユーザ数である。
続いて、ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグjにおける形態素iのTFIDF値(tfidfi,j)を以下の式により求める。
tfidfi,j=tfi,j・idfi
これを各形態素に対して行うことでブラックリストハッシュタグの特徴量(形態素i毎のTFIDF値)を生成する。全てのブラックリストハッシュタグの特徴量を生成するまで続ける。なお、TFIDF値の重み付け等は上述した方法と同様に行ってもよい。
ブラックリストハッシュタグ拡張部160は、算出したブラックリストハッシュタグ毎の各形態素のTFIDF値をブラックリストタグ格納部170に出力して格納させる。ここで、TFIDF値が閾値以上の形態素(特徴語)についてのみ、ブラックリストタグ格納部170に格納させることとしてもよい。
また、ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグ以外の除外されるべき文書に含まれるハッシュタグを推定する手段である。ブラックリストハッシュタグ拡張部160は、デフォルトブラックリストハッシュタグ格納部172によって格納されているブラックリストハッシュタグを読み出し、文書格納部100によって格納されている複数の文書からブラックリストハッシュタグ以外のタグ(除外されるべき文書に含まれるハッシュタグの候補となるハッシュタグ)を含む文書(文書群)を抽出するタグ文書抽出手段である。この時、投稿時間に基づいて抽出時から直近数時間等の予め設定された一定期間の文書を取得する。ブラックリストハッシュタグ拡張部160は、文書格納部100及び形態素格納部120に格納されている情報を参照して、抽出された文書(文書群)における形態素の出現頻度を算出する第2出現頻度算出手段である。この際、ブラックリストハッシュタグ拡張部160は、形態素の出現頻度として当該形態素が含まれる文書を投稿したユーザ数を算出する。また、ブラックリストハッシュタグ拡張部160は、形態素毎に当該形態素が含まれる文書を投稿したユーザ数に対する、文書を投稿した全ユーザ数の割合から逆出現頻度を算出する。
具体的には、ブラックリストハッシュタグ拡張部160は、上記と同様に各形態素についてのIDF値(逆出現頻度)を算出する。なお、ブラックリストハッシュタグ拡張部160は、上記あるいはトピックタグ推定部130が算出したTF値を利用することとしてもよい。
続いて、ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグ以外のタグ毎に各タグ文書に含まれる形態素(ハッシュタグが付与された形態素)から以下の式により、各形態素についてのTF値(出現頻度)を算出する。
ここで、jはハッシュタグを示す添え字、n
i,jは、形態素iを含むと共にハッシュタグjを含む文書を投稿したユニークユーザ数である。なお、ブラックリストハッシュタグ拡張部160は、トピックタグ推定部130が算出したTF値を利用することとしてもよい。
続いて、ブラックリストハッシュタグ拡張部160は、ハッシュタグjにおける形態素iのTFIDF値(tfidfi,j)を以下の式により求める。
tfidfi,j=tfi,j・idfi
これを各形態素に対して行うことでハッシュタグの特徴量(形態素i毎のTFIDF値)を生成する。全てのハッシュタグの特徴量を生成するまで続ける。なお、TFIDF値の重み付け等は上述した方法と同様に行ってもよい。
また、ブラックリストハッシュタグ拡張部160は、デフォルトブラックリストハッシュタグ格納部172によって格納されているブラックリストハッシュタグを読み出し、文書格納部100によって格納されている複数の文書からブラックリストハッシュタグを含む文書を、除外されるべき文書として抽出するデフォルト文書抽出手段である。この時、投稿時間に基づいて抽出時から直近数時間等の予め設定された一定期間の文書を取得する。ブラックリストハッシュタグ拡張部160は、文書格納部100及び形態素格納部120に格納されている情報を参照して、抽出された除外されるべき文書(文書群)における形態素の出現頻度を算出する第1出現頻度算出手段である。この際、ブラックリストハッシュタグ拡張部160は、形態素の出現頻度として当該形態素が含まれる文書を投稿したユーザ数を算出する。また、ブラックリストハッシュタグ拡張部160は、形態素毎に当該形態素が含まれる文書を投稿したユーザ数に対する、文書を投稿した全ユーザ数の割合から逆出現頻度を算出する。
ブラックリストハッシュタグ拡張部160は、上記と同様にブラックリストハッシュタグjにおける形態素iのTFIDF値(tfidfi,j)を求める。なお、ブラックリストハッシュタグjにおけるTFIDF値は形態素毎に同一の値となるため、上記で算出したTFIDF値を利用することとしてもよい。
ブラックリストハッシュタグ拡張部160は、上記のように算出したブラックリストハッシュタグの特徴量と、ハッシュタグの特徴量とを比較する第2トピック文書判定手段の一機能である。具体的には、ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグ毎に全ての(ブラックリストハッシュタグ以外の)ハッシュタグとの類似度(similarity)をコサイン距離として以下の式を用いて算出する。
ここでA及びBは、それぞれブラックリストハッシュタグの特徴量及びハッシュタグの特徴量である。Ai及びBiは、各形態素iのTFIDF値である。なお、形態素の出現頻度によって示される特徴量間の類似度の算出には、上記のコサイン距離以外にも、ジャカード距離又はユークリッド距離が用いられてもよい。また、それ以外でも特徴量間の類似度の算出が可能なものであれば、任意の算出方法を用いることができる。
ブラックリストハッシュタグ拡張部160は、ブラックリストハッシュタグ毎に類似度が予め設定した閾値以上のハッシュタグの類似度があるか否か判断して、類似度が閾値以上のハッシュタグを除外されるべき文書に係るハッシュタグであるものとする。この処理を全てのブラックリストハッシュタグに対して行うことで、除外されるべき文書に係るハッシュタグを抽出することができる。
ブラックリストハッシュタグ拡張部160は、抽出した除外されるべき文書に係るハッシュタグ(拡張ブラックリストハッシュタグ)を示す情報を拡張ブラックリストハッシュタグ格納部173に出力して格納させる。図7(c)に拡張ブラックリストハッシュタグ格納部173に格納される拡張ブラックリストハッシュタグのサンプルフォーマットを示す。図7(c)に示すように1行のデータが1つの拡張ブラックリストハッシュタグに関するデータに相当し、ブラックリストハッシュタグ毎に格納されている。
ブラックリストユーザ格納部180は、ブラックリストユーザを示すブラックリストユーザIDを入力して格納する手段である。ブラックリストユーザは、そのユーザに投稿された文書が除外されるべきものとされるユーザである。ブラックリストユーザIDは、例えば、関連文書抽出装置10の管理者によって予め登録される。図7(d)にブラックリストユーザ格納部180に格納されるブラックリストユーザIDのサンプルフォーマットを示す。図7(d)に示すように1行のデータが1つのブラックリストユーザIDに関するデータに相当し、ブラックリストユーザID毎に格納されている。なお、ユーザID以外でもブラックリストユーザを認識できる情報であれば、どのような情報が用いられてもよい。
ノイズ除去部190は、トピックID付与部150から入力された文書が不適切な(不適切なトピックに関連する)文書(ノイズ)であるか否かを判定して文書の除外を行うトピック文書抽出手段の一機能である。具体的には、ノイズ除去部190は、以下の機能を有する。
ノイズ除去部190は、デフォルトブラックリスト形態素格納部171からブラックリスト形態素を読み出して、トピックID付与部150から入力された文書にブラックリスト形態素が含まれていないか否かを判定する。この判定は文書とブラックリスト形態素との文字列のマッチングにより行われる。ノイズ除去部190は、文書にブラックリスト形態素が含まれていると判定すると当該文書を除外されるべき不適切な文書として除外する。
ノイズ除去部190は、トピックID付与部150から入力された文書が別の文書を引き継いで投稿されたものか、あるいは別の文書に対して返信されたものかを判定する。具体的には、ノイズ除去部190は、文書がRT(リツイート)であるか、あるいは返信ツイートであるかの判定を行う。RTであるいか否かの判定は、公式Twitter APIより行うことが可能である。また、テキスト解析を行うことで上記の判定を行うこととしてもよい。具体的には、文書に“RT”との文字列が含まれているか、あるいはユーザ名が含まれているかで容易に判定が可能である。ノイズ除去部190は、文書が別の文書を引き継いで投稿されたもの、あるいは別の文書に対して返信されたものであると判定すると当該文書を除外されるべき不適切な文書として除外する。
ノイズ除去部190は、マルチポスト判定を行う。マルチポストとは、複数のトピックに対しての投稿のことを指す。即ち、文書が複数のトピックに関連する文書であるか否かを判定する。例えば、放送局を1トピックとした場合、ハッシュタグにそれぞれ放送局に係るハッシュタグである#fffと#zzzとが含まれる文書は複数の放送局に対して文書を投稿しているため、マルチポストとみなす。ノイズ除去部190は、トピックID付与部150から入力された文書がトピックID付与部150によって複数のトピックIDが付与されているか否かを判定することで、文書がマルチポストされたものであるか否かを判定する。ノイズ除去部190は、文書がマルチポストされたものであると判定すると当該文書を除外されるべき不適切な文書として除外する。
ノイズ除去部190は、トピックID付与部150から入力された文書がブラックリストユーザによって投稿されたものかを判定する。ノイズ除去部190は、ブラックリストユーザ格納部180からブラックリストユーザのユーザIDを読み出して、トピックID付与部150から入力された文書を投稿したユーザのユーザIDとブラックリストユーザのユーザIDとを比較して、合致した場合、文書がブラックリストユーザによって投稿されたものであると判定する。ノイズ除去部190は、文書がブラックリストユーザによって投稿されたものであると判定すると当該文書を除外されるべき不適切な文書として除外する。
ノイズ除去部190は、ブラックリストタグ格納部170に格納された情報を用いて、トピックID付与部150から入力された文書が不適切な文書であるか否かを判定する。特にノイズ除去部190は、文書にブラックリストハッシュタグが含まれていないが、不適切な文書を判定して除外する。
ノイズ除去部190は、デフォルトブラックリストハッシュタグ格納部172によって格納されているブラックリストハッシュタグを読み出し、文書にデフォルトトピックタグが含まれているか否かを判定し、デフォルトトピックタグが含まれていた文書を除外されるべき不適切な文書として除外する。
ノイズ除去部190は、ブラックリストタグ格納部170によって格納されている特徴量(デフォルトトピックタグ毎の各形態素のTFIDF値(スコア))の情報を読み出し、特徴量の情報から各デフォルトトピックタグに対する各文書のスコアを算出するスコア算出手段である。ノイズ除去部190は、スコア付与対象の文書に特徴量に係る形態素(特徴語)が含まれているか判断する。ノイズ除去部190は、文書に含まれていた特徴語のスコアを合算する。なお、トピックID付与部150によるスコアの算出と同様に、スコアの算出の際に文書において特徴語が複数回出現する場合、1回出現の場合と同様に文書のスコアを算出することとしてもよい。
ノイズ除去部190は、算出されたスコアに基づいて、当該スコアに係る文書が除外されるべき不適切な文書であるか否かを判定する第1トピック文書判定手段である。具体的には、ノイズ除去部190は、スコアが予め設定した閾値であるか否かを判断して、閾値以上であった場合、当該文書を除外されるべき不適切な文書であると判断して除外する。この処理をブラックリストタグ格納部170に格納される特徴量に係るブラックリストハッシュタグ分繰り返し文書を除外する。
ノイズ除去部190は、拡張ブラックリストハッシュタグ格納部173によって格納されている拡張ブラックリストハッシュタグを読み出し、取得した文書に拡張ブラックリストハッシュタグが含まれているか否かを判断することで、当該文書が除外されるべき不適切な文書であるか否かを判定する第2トピック文書判定手段である。ノイズ除去部190は、拡張ブラックリストハッシュタグが含まれていた文書を除外されるべき不適切な文書であると判断して除外する。拡張ブラックリストハッシュタグ格納部173に格納される拡張ブラックリストハッシュタグ分繰り返し文書を除外する。
ノイズ除去部190は、上記によって除外されなかった文書をトピック文書格納部200に出力する。また、ノイズ除去部190によって除外された文書については、トピックタグ推定部130による処理に用いないようにしてもよい。例えば、文書格納部100に格納される文書、及び形態素格納部に格納される形態素にノイズ除去部190によって除去された文書に係るものであるか否かの情報を対応付けておき、除去された文書に係るものはトピックタグ推定部130に入力させないようにしてもよい。
トピック文書格納部200は、ノイズ除去部190から入力された、1つのトピックIDが付与された文書を入力して格納する手段である。トピックIDが付与された文書は、当該トピックIDに係るトピックに関連する文書として抽出されたものである。図8にトピック文書格納部200に格納される文書のサンプルフォーマットを示す。図8に示すようにトピック文書格納部200に格納される文書に関するデータは、文書格納部100に格納される文書に関するデータに加えてトピックIDが対応付けられたものとなっている。トピック文書格納部200に格納されたトピックIDが付与された文書は、例えば、トピックID毎にトピックに関連する文書としてユーザに提供される。以上が、関連文書抽出装置10の機能構成である。
図9に関連文書抽出装置10のハードウェア構成を示す。図9に示すように関連文書抽出装置10は、CPU(Central Processing Unit)1001、主記憶装置であるRAM(RandomAccess Memory)1002及びROM(Read Only Memory)1003、通信を行うための通信モジュール1004、並びにハードディスク等の補助記憶装置1005等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述した関連文書抽出装置10の機能が発揮される。以上が、関連文書抽出装置10の構成である。
引き続いて、図10〜21のフローチャートを用いて、本実施形態に係る関連文書抽出装置10で実行される処理である関連文書抽出方法を説明する。図10に関連文書抽出方法全体を示すフローチャートを示す。本処理では、まず、文書格納部100によって、抽出対象となる複数の文書が入力されて格納される(S01)。文書格納部100に入力された文書は、形態素解析部110に出力される。続いて、形態素解析部110によって文書に対する形態素解析が行われて文書が形態素に分割される(S02、単語取得ステップ)。形態素解析部110による形態素解析によって得られた形態素を示す情報は、形態素格納部120に格納される。
続いて、トピックタグ推定部130によって、文書格納部100に格納された文書、形態素解析部110に格納された形態素、及びトピックタグ格納部140に格納された情報から、各文書が特定のトピックに関連する文書であるか否かを判断するために用いる情報が生成される(S03)。この処理は、トピック特徴語推定部131及びトピックハッシュタグ推定部132それぞれによって行われる。
図11〜図13のフローチャートを用いてトピック特徴語推定部131による処理を説明する。図11に示すようにトピック特徴語推定部131によって、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグが読み出され、文書格納部100によって格納されている複数の文書からデフォルトトピックタグを含む文書がトピックに関連する文書(トピック文書)として抽出される(S301、デフォルト文書抽出ステップ)。続いて、トピック毎に特徴量が生成される(S302、第1出現頻度算出ステップ)。この処理を図12のフローチャートを用いてより詳細に説明する。
まず、各形態素についてのIDF値が算出される(S3021、第1出現頻度算出ステップ)。続いて、トピックID(処理対象)毎に各トピック文書に含まれる形態素から各形態素についてのTF値が算出される(S3022、第1出現頻度算出ステップ)。続いて、算出されたIDF値とTF値とから、各トピックIDにおける形態素のTFIDF値が求められる(S3023、第1出現頻度算出ステップ)。求められたTFIDF値が特徴量である。S3022及びS3023の処理は、全てのトピックIDに対しての処理が終了するまで繰り返し行われる。
続いて、図11に戻り、トピックID毎に特徴語がトピック特徴語格納部142に格納される(S303、第1出現頻度算出ステップ)。この処理を図13のフローチャートを用いてより詳細に説明する。この処理は、トピックID毎に行われる。形態素毎に、形態素のTFIDF値が予め設定された閾値以上である否かが判断される(S3031、第1出現頻度算出ステップ)。TFIDF値が予め設定された閾値以上であると判断された場合、そのトピックIDに関して当該形態素及びTFIDF値がトピック特徴語格納部142に出力されて格納される(S3032、第1出現頻度算出ステップ)。TFIDF値が予め設定された閾値以上でないと判断された場合、特段の処理は行われず次の形態素についての処理に移る。上記の処理は、各トピックIDに関して全ての形態素に対して繰り返し行われ、また、全てのトピックIDに対しての処理が終了するまで繰り返し行われる。以上が、トピック特徴語推定部131による処理である。
続いて、図14、図15のフローチャートを用いてトピックハッシュタグ推定部132による処理を説明する。図14に示すようにトピックハッシュタグ推定部132によって、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグが読み出され、文書格納部100によって格納されている複数の文書からデフォルトトピックタグ以外のハッシュタグを含む文書(タグ文書)が抽出される(S311、タグ文書抽出ステップ)。続いて、ハッシュタグ毎に特徴量が生成される(S312、第2出現頻度算出ステップ)。特徴量の生成は、上述した図12のフローチャートを用いて説明した処理と同様に行われる。但し、この場合、図12に示す処理のループはハッシュタグ毎に行われ、全てのハッシュタグに対しての処理が終了するまで繰り返し行われる。
続いて、文書格納部100によって格納されている複数の文書からデフォルトトピックタグを含む文書がトピックに関連する文書(トピック文書)として抽出される(S313、デフォルト文書抽出ステップ)。続いて、トピック毎に特徴量が生成される(S314、第1出現頻度算出ステップ)。特徴量の生成は、上述した図12のフローチャートを用いて説明した処理と同様に行われる。
続いて、上記のように算出したトピックIDの特徴量とハッシュタグの特徴量とが比較されて、比較結果に基づいてトピックIDのトピックに係るハッシュタグ(拡張トピックハッシュタグ)が拡張トピックハッシュタグ格納部143に出力されて格納される(S315、第2トピック文書判定ステップ)。
この処理を図15のフローチャートを用いてより詳細に説明する。この処理は、トピックID及びハッシュタグ毎に行われる。トピックIDとハッシュタグとの特徴量の類似度が算出される(S3151、第2トピック文書判定ステップ)。この類似度は、上述したように例えば、コサイン距離が用いられる。続いて、算出された類似度が予め設定された閾値以上である否かが判断される(S3152、第2トピック文書判定ステップ)。類似度が予め設定された閾値以上であると判断された場合、そのハッシュタグが、そのトピックIDについての拡張トピックハッシュタグとして拡張トピックハッシュタグ格納部143に出力されて格納される(S3153、第2トピック文書判定ステップ)。類似度が予め設定された閾値以上でないと判断された場合、特段の処理は行われず次のハッシュタグについての処理に移る。上記の処理は、各トピックIDに関して全てのハッシュタグに対して繰り返し行われ、また、全てのトピックIDに対しての処理が終了するまで繰り返し行われる。以上が、トピックハッシュタグ推定部132による処理である。
続いて、図10に戻り、ブラックリストハッシュタグ拡張部160によって、文書格納部100に格納された文書、形態素解析部110に格納された形態素、及びブラックリストタグ格納部170に格納された情報から、各文書がノイズにあたるか、即ち、各文書が抽出するのに不適切な特定のトピックに関連する文書であるか否かを判断するために用いる情報が生成される(S04)。
本処理では、ブラックリストハッシュタグ拡張部160によって、ブラックリストハッシュタグに係る特徴語が推定される。この推定では、各形態素についてのIDF値、ブラックリストハッシュタグ毎の各形態素についてのTF値が算出され、ブラックリストハッシュタグ毎の形態素のTFIDF値が算出される。算出されたブラックリストハッシュタグ毎の各形態素のTFIDF値はブラックリストタグ格納部170に出力して格納される。ここで、TFIDF値が予め設定した閾値以上の形態素(特徴語)についてのみ、ブラックリストタグ格納部170に格納させることとしてもよい。
また、ブラックリストハッシュタグ拡張部160によって、拡張ブラックリストハッシュタグが推定される。この処理を図16、図17のフローチャートを用いて説明する。図16に示すようにブラックリストハッシュタグ拡張部160によって、デフォルトブラックリストハッシュタグ格納部172によって格納されているブラックリストハッシュタグが読み出され、文書格納部100によって格納されている複数の文書からブラックリストハッシュタグ以外のハッシュタグを含む文書(タグ文書)が抽出される(S411、タグ文書抽出ステップ)。続いて、ハッシュタグ毎に特徴量が生成される(S412、第2出現頻度算出ステップ)。特徴量の生成は、上述した図12のフローチャートを用いて説明した処理と同様に行われる。但し、この場合、図12に示す処理のループはハッシュタグ毎に行われ、全てのハッシュタグに対しての処理が終了するまで繰り返し行われる。
続いて、文書格納部100によって格納されている複数の文書からブラックリストハッシュタグを含む文書が抽出される(S414、デフォルト文書抽出ステップ)。続いて、ブラックリストハッシュタグ毎に特徴量が生成される(S415、第1出現頻度算出ステップ)。特徴量の生成は、上述した図12のフローチャートを用いて説明した処理と同様に行われる。但し、この場合、図12に示す処理のループはブラックリストハッシュタグ毎に行われ、全てのブラックリストハッシュタグに対しての処理が終了するまで繰り返し行われる。
続いて、上記のように算出したブラックリストハッシュタグの特徴量とハッシュタグの特徴量とが比較されて、比較結果に基づいてブラックリストハッシュタグに係るハッシュタグ(拡張ブラックリストハッシュタグ)が拡張ブラックリストハッシュタグ格納部173に出力されて格納される(S415、第2トピック文書判定ステップ)。
この処理を図17のフローチャートを用いてより詳細に説明する。この処理は、ブラックリストハッシュタグ及びハッシュタグ毎に行われる。ブラックリストハッシュタグとハッシュタグとの特徴量の類似度が算出される(S4151、第2トピック文書判定ステップ)。この類似度は、上述したように例えば、コサイン距離が用いられる。続いて、算出された類似度が予め設定された閾値以上である否かが判断される(S4152、第2トピック文書判定ステップ)。類似度が予め設定された閾値以上であると判断された場合、そのハッシュタグが、そのブラックリストハッシュタグについての拡張ブラックリストハッシュタグとして拡張ブラックリストハッシュタグ格納部173に出力されて格納される(S4153、第2トピック文書判定ステップ)。類似度が予め設定された閾値以上でないと判断された場合、特段の処理は行われず次のハッシュタグについての処理に移る。上記の処理は、各ブラックリストハッシュタグに関して全てのハッシュタグに対して繰り返し行われ、また、全てのブラックリストハッシュタグに対しての処理が終了するまで繰り返し行われる。以上が、ブラックリストハッシュタグ拡張部160による処理である。
続いて、図10に戻り、トピックID付与部150によって、トピックタグ格納部140に格納された情報が用いられて、文書格納部100によって格納されている文書がトピックに関連する文書であるか否かが判断されてその判断に応じて文書にトピックIDが付与される(S05、トピック文書抽出ステップ)。
この処理を図18のフローチャートを用いてより詳細に説明する。トピックID付与部150によって、トピック特徴語推定部131によって格納されている特徴量の情報が読み出されて、その情報に基づいて文書にトピックIDが付与される(S501、トピック文書抽出ステップ)。
この処理を図19のフローチャートを用いてより詳細に説明する。この処理は、トピックの付与対象の文書毎に行われる。まず、トピック(トピックID)毎にトピック特徴語推定部131によって格納されている特徴量の情報が取得される(S5011、スコア算出ステップ)。続いて、文書の「スコア合計値」が初期化される(値がゼロにされる)(S5012、スコア算出ステップ)。続いて、特徴語毎に文書に含まれるか否かが判断される(S5013、スコア算出ステップ)。特徴語が文書に含まれると判断される場合には、その特徴語のスコア(TFIDF値)が「スコア合計値」に加算される(S5014、スコア算出ステップ)。特徴語が文書に含まれないと判断される場合には、その特徴語のスコアは「スコア合計値」に加算されない。
全ての特徴語について上記の処理(S5013、S5014)が終了すると、「スコア合計値」が予め設定された閾値以上か否かが判断される(S5015、第1トピック文書判定ステップ)。「スコア合計値」が予め設定された閾値以上であると判断される場合には、その文書に対してそのトピックのトピックIDが付与される(S5016、第1トピック文書判定ステップ)。「スコア合計値」が予め設定された閾値以上でないと判断される場合には、その文書に対してそのトピックのトピックIDは付与されない。上記の処理は、各文書に関して全てのトピックついて繰り返し行われ、また、全ての文書に対しての処理が終了するまで繰り返し行われる。
続いて、図18に戻り、トピックID付与部150によって、デフォルトトピックタグ格納部141によって格納されているデフォルトトピックタグ、及び拡張トピックハッシュタグ格納部143によって格納されている拡張トピックハッシュタグが読み出されて、その情報に基づいて文書にトピックIDが付与される(S502、トピック文書抽出ステップ(第2トピック文書判定ステップ))。
この処理を図20のフローチャートを用いてより詳細に説明する。この処理は、トピックの付与対象の文書毎に行われる。まず、トピック(トピックID)毎に当該トピックに対応付けられているデフォルトトピックタグ及び拡張トピックハッシュタグが取得される(S5021)。続いて、各デフォルトトピックタグ及び拡張トピックハッシュタグが、文書に含まれるか否かが判断される(S5022、第2トピック文書判定ステップ)。デフォルトトピックタグ及び拡張トピックハッシュタグが文書に含まれると判断される場合には、その文書に対してそのトピックのトピックIDが付与される(S5023、第2トピック文書判定ステップ)。デフォルトトピックタグ及び拡張トピックハッシュタグが文書に含まれないと判断される場合には、その文書に対してそのトピックのトピックIDは付与されない。上記の処理(S5022,S5023)は、トピックに対応付けられている全てのデフォルトトピックタグ及び拡張トピックハッシュタグに対して行われる。また、上記の処理は、各文書に関して全てのトピックついて繰り返し行われ、また、全ての文書に対しての処理が終了するまで繰り返し行われる。
トピックID付与部150によってトピックIDが付与された文書は、ノイズ除去部190に出力される。
続いて、ノイズ除去部190によって、トピックID付与部150から入力された文書が不適切な文書であるか否かが判定されて文書の除外が行われる(S601、トピック文書抽出ステップ)。
この処理を図21のフローチャートを用いてより詳細に説明する。この処理は、トピックID付与部150から入力された(トピックが付与された)文書毎に行われる。デフォルトブラックリスト形態素格納部171からブラックリスト形態素(NGワード)が読み出されて、文書にブラックリスト形態素が含まれていないか否かが判定される(S601)。文書にブラックリスト形態素が含まれていると判定された場合、当該文書が除外されるべき不適切な文書として除外される(後続の処理が行われない)。
文書にブラックリスト形態素が含まれていないと判定された場合、続いて、文書がRTであるか、あるいは返信ツイートであるかの判定が行われる(S602)。文書がRTあるいは返信ツイートであると判定された場合、当該文書が除外されるべき不適切な文書として除外される(後続の処理が行われない)。
文書がRTあるいは返信ツイートの何れでもないと判定された場合、続いて、文書がマルチポストされたものであるかの判定が行われる(S603)。文書がマルチポストされたものであると判定された場合、当該文書が除外されるべき不適切な文書として除外される(後続の処理が行われない)。
文書がマルチポストされたものでないと判定された場合、続いて、ブラックリストユーザ格納部180からブラックリストユーザのユーザIDが読み出されて、文書がブラックリストユーザによって投稿されたものであるか否かが判定される(S604)。文書がブラックリストユーザによって投稿されたものであると判定された場合、当該文書が除外されるべき不適切な文書として除外される(後続の処理が行われない)。
文書がブラックリストユーザによって投稿されたものでないと判定された場合、続いて、ブラックリストタグ格納部170によって格納されている特徴量(デフォルトトピックタグ毎の各形態素のTFIDF値(スコア))、及び拡張ブラックリストハッシュタグ格納部173によって格納されている拡張ブラックリストハッシュタグが読み出されて、それらに基づいて上述したように文書が除外されるべき不適切な文書か否かが判定される(S605)。文書が除外されるべき不適切な文書と判定されると、当該文書は除外される(後続の処理が行われない)。文書が除外されるべき不適切な文書ではないと判定されると、当該文書がノイズ除去部190からトピック文書格納部200に出力される。
続いて、図10に戻り、トピック文書格納部200によって入力された文書が、付与されたトピックIDと合わせて格納される。以上が、本実施形態に係る関連文書抽出装置10で実行される処理である。なお、上記の処理は、例えば、予め設定した時間間隔毎、あるいは関連文書抽出装置10の管理者の操作をトリガとして行われることとしてもよい。なお、上記の処理では文書に対するトピックIDの付与と、トピックIDを付与するために用いる情報(特徴量や拡張トピックハッシュタグ)の生成とを一連の処理としているが、それらの処理が独立に互いに異なるタイミングで行われることとしてもよい。
上述したように本実施形態では、トピックを示すデフォルトトピックタグを含む文書における単語の出現頻度を用いてトピックに関連する文書が抽出される。即ち、トピックを示すデフォルトトピックタグを含んでいなくても上記の出現頻度に応じた文書がトピックに関連する文書として抽出される。これにより、本実施形態によれば、複数のツイート等の文書から特定のトピックに関連する文書を適切に抽出することができる。従って、トピックに関連する文書を網羅的に抽出することが可能になる。網羅性以外にも、動的なトピックハッシュタグ及びトピック特徴語の推定が可能なため、リアルタイムにトピックに関連する文書の抽出が可能になる。
本実施形態のように特徴語によって文書のスコアを算出して文書を抽出することとしてもよい。この構成によれば、例えば、デフォルトトピックタグを含む文書において出現頻度が高い単語が含まれる文書をトピックに関連する文書として抽出することができ、特定のトピックに関連する文書を確実に抽出することができる。これにより、ハッシュタグが付いていない文書も抽出が可能となり、抽出が可能な文書数が増える。
また、スコアの算出の際に文書に単語が複数回出現する場合、1回出現の場合と同様に文書のスコアを算出することとしてもよい。この構成によれば、文書に頻繁に含まれる単語によって文書のスコアが高くなることを防止することができ、不適切な文書をトピックに関連する文書として抽出することを回避することができる。
また、本実施形態のようにタグ文書とトピック文書との特徴量の比較によってトピックハッシュタグを拡張して文書を抽出することとしてもよい。この構成によれば、デフォルトトピックタグ以外のタグを含む文書(群)をトピックに関連する文書として抽出することができ、特定のトピックに関連する文書を確実に抽出することができる。従って、トピックに関連するタグ(ハッシュタグあるいはキーワード)を1つ又は複数事前にデフォルトトピックタグとして登録しておくことでタグの動的な推定が可能になり、抽出が可能な文書数が増える。
一般的にハッシュタグは特定のトピックを意識し投稿者は文書を作成する。つまりトピックとトピックハッシュタグとは、1対Nの関係であるためトピックに紐付くハッシュタグをできるだけ多く吸い上げることで、より多くのトピック文書の抽出が可能になる。例えば、ユーザは放送している番組に関するツイートを、放送局ハッシュタグをつけて投稿することが多い。しかしながら有名な番組では番組自体のハッシュタグが存在する。トピックとハッシュタグとの特徴量を比較することで動的に放送されている番組に関連するハッシュタグをより早く検出することができる。
また、本実施形態のようにノイズを除去することとしてもよい。文書の抽出にあたりノイズの除去は重要である。この構成によれば、不適切な文書を除外し、例えば不適切な文書をユーザへ提示することを防止することができる。また、ノイズを除去した文書群に基づいて、トピックハッシュタグ及びトピック特徴語を推定することとすれば、それらの推定精度が向上する。上述したようにトピックハッシュタグ及びトピック特徴語の推定では、特徴量がトピックを示す基準値となるため、このデータのノイズが多いほど推定される情報の質が落ちる。従ってシードとなるデータのクレンジングが重要である。また、ノイズフリーなトピックに関連する文書の抽出が可能になる。また、文書の抽出と同様にノイズの除去も動的に行うことで更に適切なノイズの除去が可能になる。また、ブラックリストが自動的にリアルタイムに拡充されるため、手動でブラックリストを登録する必要性が少なくなる。
但し、抽出対象の文書群に含まれるノイズが小さいと考えられる場合には、必ずしもノイズ(不適切な文書)の除去を行う必要はない。
また、本実施形態のように出現頻度をユーザ単位でカウントすることとしてもよい。この構成によれば、ユーザ毎の影響を均一にし、例えば、1ユーザが複数回同じ内容の文書を投稿したことによる影響を抑えることができる。これにより、適切に特定のトピックに関連する文書を抽出することができる。但し、文書を投稿したユーザの情報が取得できない場合やユーザが同じ内容の投稿をすることを考えられない場合等には、出現頻度を文書単位でカウントすることとしてもよい。即ち、IDF値やTF値を文書単位でカウントして算出することとしてもよい。
また、本実施形態のようにTFIDF値を用いた形態素単位の素性で特徴量を表現することで形態素のポピュラリティと珍しさを表現することができる。これにより、複数のツイート等の文書から特定のトピックに関連する文書を更に適切に抽出することができる。
また複数のトピックに係る文書を除外することとしてもよい。複数のトピックに対して投稿された文書(マルチトピック投稿)は、それぞれのトピックに関連しないケースが多い。従って、この構成によれば、不適切な文書をトピックに関連する文書として抽出することを回避することができる。
引き続いて、上述した一連の関連文書抽出装置10による処理をコンピュータに実行させるための関連文書抽出プログラムを説明する。図22に示すように、関連文書抽出プログラム40は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体30に形成されたプログラム格納領域31内に格納される。
関連文書抽出プログラム40は、文書格納モジュール400と、形態素解析モジュール410と、形態素格納モジュール420と、トピックタグ推定モジュール430と、トピックタグ格納モジュール440と、トピックID付与モジュール450と、ブラックリストハッシュタグ拡張モジュール460と、ブラックリストタグ格納モジュール470と、ブラックリストユーザ格納モジュール480と、ノイズ除去モジュール490と、トピック文書格納モジュール500とを備えて構成される。文書格納モジュール400と、形態素解析モジュール410と、形態素格納モジュール420と、トピックタグ推定モジュール430と、トピックタグ格納モジュール440と、トピックID付与モジュール450と、ブラックリストハッシュタグ拡張モジュール460と、ブラックリストタグ格納モジュール470と、ブラックリストユーザ格納モジュール480と、ノイズ除去モジュール490と、トピック文書格納モジュール500とを実行させることにより実現される機能は、上述した関連文書抽出装置10の文書格納部100と、形態素解析部110と、形態素格納部120と、トピックタグ推定部130と、トピックタグ格納部140と、トピックID付与部150と、ブラックリストハッシュタグ拡張部160と、ブラックリストタグ格納部170と、ブラックリストユーザ格納部180と、ノイズ除去部190と、トピック文書格納部200との機能とそれぞれ同様である。
なお、関連文書抽出プログラム40は、その一部若しくは全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録(インストールを含む)される構成としてもよい。また、関連文書抽出プログラム40の各モジュールは、1つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の関連文書抽出プログラム40の処理が行われる。