(57)【要約】【課題】計算量を低減することが可能な情報処理方法等を提供する。【解決手段】コンピュータ１を用いた情報処理方法において、ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出し、算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出する。コンピュータ１は、閾値を超える第１類似度を有するカテゴリの組み合わせを抽出し、抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する。【選択図】図１
2015056066.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いた情報処理方法において、
ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出し、
算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出し、
閾値を超える第１類似度を有するカテゴリの組み合わせを抽出し、
抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する
情報処理方法。
【請求項２】
各ユーザに対応付けてカテゴリを記憶した記憶部を参照し、ユーザ毎にカテゴリ間の組み合わせを計数することで、複数のユーザのカテゴリ間の組み合わせ数を算出する
請求項１に記載の情報処理方法。
【請求項３】
第１のカテゴリと第２のカテゴリ以外の他のカテゴリとの間の算出した組み合わせ数、及び、前記第２のカテゴリと前記第１のカテゴリ以外の他のカテゴリとの間の算出した組み合わせ数とに基づき、第１カテゴリと第２カテゴリとの間の第１類似度を算出する
請求項１または２に記載の情報処理方法。
【請求項４】
コンピュータに、
ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出し、
算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出し、
閾値を超える第１類似度を有するカテゴリの組み合わせを抽出し、
抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する
処理を実行させるプログラム。
【請求項５】
ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出する算出部と、
算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出する第１類似度算出部と、
閾値を超える第１類似度を有するカテゴリの組み合わせを抽出する抽出部と、
抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する第２類似度算出部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いた情報処理方法、プログラム、及び、情報処理装置に関する。
【背景技術】
【０００２】
従来、テキスト中の任意の単語ペアについて、複数種類の類似度を計算し、各類似度を要素とする素性ベクトルを生成する関係抽出装置等が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１１８５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、情報分析の際の計算量が膨大であるという問題があった。
【０００５】
一つの側面では、本発明は計算量の多い用語及び用語数に基づく類似度の演算量を低減することが可能な情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に開示する情報処理方法は、コンピュータを用いた情報処理方法において、ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出し、算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出し、閾値を超える第１類似度を有するカテゴリの組み合わせを抽出し、抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する。
【発明の効果】
【０００７】
一つの側面では、計算量を低減することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの概要を示す説明図である。
【図２】コンピュータのハードウェア群を示すブロック図である。
【図３】ブログ記事の例を示す説明図である。
【図４】カテゴリリストファイルのレコードレイアウトを示す説明図である。
【図５】ユーザブログ記事リストファイルのレコードレイアウトを示す説明図である。
【図６】ユーザカテゴリリストファイルのレコードレイアウトを示す説明図である。
【図７】ユーザ記事リストファイルのレコードレイアウトを示す説明図である。
【図８】カテゴリ語句リストファイルのレコードレイアウトを示す説明図である。
【図９】カテゴリ記事リストファイルのレコードレイアウトを示す説明図である。
【図１０】カテゴリ共起ファイルを示す説明図である。
【図１１】カテゴリ共起類似度ファイルのレコードレイアウトを示す説明図である。
【図１２】内容類似度ファイルを示す説明図である。
【図１３】削除後のカテゴリ記事リストファイルのレコードレイアウトを示す説明図である。
【図１４】カテゴリ記事リストファイルの生成処理手順を示すフローチャートである。
【図１５】カテゴリ共起ファイルの生成処理手順を示すフローチャートである。
【図１６】第１類似度算出処理の手順を示すフローチャートである。
【図１７】第２類似度算出処理の手順を示すフローチャートである。
【図１８】第２類似度算出処理の手順を示すフローチャートである。
【図１９】削除処理の手順を示すフローチャートである。
【図２０】上述した形態のコンピュータの動作を示す機能ブロック図である。
【図２１】実施の形態２に係るコンピュータのハードウェア群を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は情報処理システムの概要を示す説明図である。情報処理システムは情報処理装置１及びサーバコンピュータ２等を含む。情報処理装置１及びサーバコンピュータ２はインターネット等の通信網Ｎを介して接続されている。情報処理装置１は例えばパーソナルコンピュータ、サーバコンピュータ、携帯電話機、ＰＤＡ（Personal Digital Assistant）等である。以下では情報処理装置１をコンピュータ１と読み替えて説明する。サーバコンピュータ２は複数の単語を含む記事、歌詞、つぶやき、商品説明、店舗の説明、または、論文等の文章と、当該文章に対するカテゴリを付与した情報を記憶している。サーバコンピュータ２は図示しない他のコンピュータから文章及びカテゴリを受信し、受信した文章及びカテゴリを記憶する。
【００１０】
以下では、一例として複数のユーザがブログの記事にカテゴリを付して、サーバコンピュータ２にアップロードした例を挙げて説明する。コンピュータ１は定期的にサーバコンピュータ２にアクセスし、各ユーザのブログ記事及びカテゴリをダウンロードする。コンピュータ１はダウンロードした記事及びカテゴリについて情報処理を行う。以下詳細を説明する。
【００１１】
図２はコンピュータ１のハードウェア群を示すブロック図である。コンピュータ１は制御部としてのＣＰＵ（Central Processing Unit）１１、ＲＡＭ(Random Access Memory)１２、入力部１３、表示部１４、記憶部１５、及び通信部１６等を含む。ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１は記憶部１５に記憶された制御プログラム１５Ｐに従いハードウェア各部を制御する。ＲＡＭ１２は例えばＳＲＡＭ（Static RAM）、ＤＲＡＭ(Dynamic RAM)、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１２】
入力部１３はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。表示部１４は液晶ディスプレイまたは有機ＥＬ（electroluminescence）ディスプレイ等であり、ＣＰＵ１１の指示に従い各種情報を表示する。通信部１６は通信モジュールであり、通信網Ｎを介してサーバコンピュータ２との間で情報の送受信を行う。
【００１３】
記憶部１５はハードディスクまたは大容量メモリであり、上述した制御プログラム１５Ｐの他、カテゴリリストファイル１５１、ユーザブログ記事リストファイル１５２、ユーザカテゴリリストファイル１５３、ユーザ記事リストファイル１５４等を記憶する。その他、記憶部１５は、カテゴリ語句リストファイル１５５、カテゴリ記事リストファイル１５６、カテゴリ共起ファイル１５７、カテゴリ共起類似度ファイル１５８及び内容類似度ファイル１５９等を記憶する。なお、本実施形態ではコンピュータ１の記憶部１５にカテゴリリストファイル１５１等を記憶する例を挙げたがこれに限るものではない。例えば通信網Ｎを介して接続される図示しないデータベースサーバ等に上述した各種ファイルを適宜記憶しても良い。この場合、ＣＰＵ１１は、必要に応じてデータベースサーバにアクセスし、データの書き込み及び読み出しを行う。
【００１４】
図３はブログ記事の例を示す説明図である。図３の例はユーザＡのブログ記事であり、４つのブログ記事が記載されている。なお、Ａ００１はユーザのブログ記事を特定するための識別情報（以下、記事ＩＤという）である。各ブログ記事にはカテゴリが記載されている。例えば、記事ＩＤがＡ００１の「ラーメンを食べた」には「グルメ」のカテゴリが付与されており、記事ＩＤがＡ００２の「渋谷で服を買った」には「ファッション」のカテゴリが付与されている。なお、本実施形態においては、記事ＩＤにユーザを特定するための情報も付している。例えば記事ＩＤ「Ａ００１」はユーザＡの記事であり、記事ＩＤ「Ｂ００１」はユーザＢの記事である。
【００１５】
図４はカテゴリリストファイル１５１のレコードレイアウトを示す説明図である。図４に示すように予めカテゴリリストファイル１５１には分析対象となるカテゴリが記憶されている。図４の例ではグルメ、お酒、ファッション等の合計１０のカテゴリが記憶されている。なお、本実施形態では１０のカテゴリを分析する例を挙げて説明するが、あくまで一例でありカテゴリ数及びカテゴリの内容を限定するものではない。
【００１６】
図５はユーザブログ記事リストファイル１５２のレコードレイアウトを示す説明図である。ユーザブログ記事リストファイル１５２はユーザフィールド、記事ＩＤフィールド、カテゴリフィールド、本文フィールド等を含む。ユーザフィールドにはユーザの情報が記憶されている。記事ＩＤフィールドには、ユーザのブログ記事を特定するための記事ＩＤが記憶されている。ＣＰＵ１１は、サーバコンピュータ２からブログ記事をダウンロードした場合、新規に記事ＩＤを生成し、ユーザ、記事ＩＤ、カテゴリ及び本文をユーザブログ記事リストファイル１５２に記憶する。
【００１７】
カテゴリフィールドには、記事ＩＤに対応付けて付与されたカテゴリが記憶されている。本文フィールドには記事ＩＤに対応付けてブログ記事の本文がテキスト形式で記憶されている。図５の例では、ユーザＡの記事ＩＤがＡ００１の「ラーメンを食べた」がカテゴリ「グルメ」で記憶されており、またユーザＢの記事ＩＤがＢ００１の「ビールを飲んだ」がカテゴリ「お酒」で記憶されている。なお、本実施形態ではブログ記事本文の情報を記憶しているが、ブログ記事のタイトルを記憶し、分析を行っても良い。
【００１８】
図６はユーザカテゴリリストファイル１５３のレコードレイアウトを示す説明図である。ユーザカテゴリリストファイル１５３は、ユーザフィールド及びカテゴリフィールド等を含む。カテゴリフィールドには、ユーザに対応付けてカテゴリが記憶されている。ＣＰＵ１１は、ユーザブログ記事リストファイル１５２を参照し、各ユーザのカテゴリを抽出する。ＣＰＵ１１は、抽出した各ユーザのカテゴリをユーザカテゴリリストファイル１５３に記憶する。図６の例では、ユーザＡのカテゴリはグルメ、ファッション、及びお酒となる。またユーザＢのカテゴリはお酒のみとなる。
【００１９】
図７はユーザ記事リストファイル１５４のレコードレイアウトを示す説明図である。ユーザ記事リストファイル１５４はユーザフィールド、記事ＩＤフィールド、カテゴリフィールド、本文フィールド及び語句フィールド等を含む。語句フィールドには、ブログの記事本文から抽出された語句（用語）が記憶されている。ＣＰＵ１１は、本文の内容に対して公知の形態素解析を行い、語句を抽出する。ＣＰＵ１１は、抽出した語句を本文に対応付けて記憶する。図７の例では「ラーメンを食べた」に対して「ラーメン」及び「食べる」の語句が抽出されている。なお、本実施形態では形態素解析を用いた例を示したが、他の手法により語句を抽出しても良い。例えば予め記憶部に辞書を用意しておき、辞書内の語句に一致する本文中の語句を抽出するようにしても良い。
【００２０】
図８はカテゴリ語句リストファイル１５５のレコードレイアウトを示す説明図である。カテゴリ語句リストファイル１５５は、カテゴリフィールド及び語句ｘ出現頻度（用語数）フィールド等を含む。語句ｘ出現頻度フィールドにはカテゴリに対応付けてカテゴリに属する語句と、当該語句のブログ記事本文内での出現頻度を記憶している。ＣＰＵ１１は、ユーザ記事リストファイル１５４のカテゴリフィールド及び語句フィールドを参照し、カテゴリ内で使用されている語句を抽出し、当該語句のカテゴリ内での出現頻度を計数する。図８の例では、カテゴリ「グルメ」について「ラーメン」は出現頻度が３００であり、「食べる」は出現頻度が９００である。またカテゴリ「お酒」について「食べる」は出現頻度が「３００」である。このように、「飲む」、「食べる」のようにカテゴリ間で重複する語句が存在する。
【００２１】
図９はカテゴリ記事リストファイル１５６のレコードレイアウトを示す説明図である。カテゴリ記事リストファイル１５６はカテゴリフィールド及び記事リストフィールド等を含む。記事リストフィールドにはカテゴリに対応付けて各ユーザの記事ＩＤが記憶されている。ＣＰＵ１１は、ユーザ記事リストファイル１５４を参照し、カテゴリに属する各ユーザの記事ＩＤを抽出する。ＣＰＵ１１は、ユーザ名及び抽出した記事ＩＤをカテゴリに対応付けて、カテゴリ記事リストファイル１５６に記憶する。図９の例ではカテゴリ「グルメ」についてユーザＡの記事ＩＤ「Ａ００１」及び「Ａ００４」で特定される２つの記事が記憶されている。またカテゴリ「ファッション」についてユーザＡの記事ＩＤ「Ａ００２」及び「Ａ００３」で特定される２つの記事が記憶されている。なお、本実施形態では記事ＩＤを記憶する例を挙げたが、記事ＩＤにユーザを特定するための情報が記述されていない場合、ユーザの情報と共に、記事ＩＤを記憶するようにすればよい。
【００２２】
図１０はカテゴリ共起ファイル１５７を示す説明図である。カテゴリ共起ファイル１５７には２つのカテゴリ間の共起回数を記憶している。すなわち一のユーザが２つのカテゴリの記事を記載している場合に共起していると判断する。ＣＰＵ１１は、ユーザカテゴリリストファイル１５３を参照し、特定のユーザのカテゴリを読み出す。ＣＰＵ１１は、複数のカテゴリを検出した場合、全てのカテゴリの組み合わせについての共起回数をインクリメントする。ＣＰＵ１１は、他の全てのユーザについてもカテゴリの組み合わせを計数し、カテゴリ共起ファイル１５７に記憶する。図６及び図１０の例では、ユーザＡはカテゴリとして「グルメ」、「ファッション」及び「お酒」の３つがある。ＣＰＵ１１は、「グルメ」と「ファッション」との組み合わせを検出し、カテゴリ共起ファイル１５７の「グルメ」と「ファッション」との組み合わせ数をインクリメントする。
【００２３】
同様にＣＰＵ１１は、「グルメ」と「お酒」との組み合わせを検出し、カテゴリ共起ファイル１５７の「グルメ」と「お酒」との組み合わせ数をインクリメントする。またＣＰＵ１１は、「ファッション」と「お酒」との組み合わせを検出し、カテゴリ共起ファイル１５７の「ファッション」と「お酒」との組み合わせ数をインクリメントする。続いてＣＰＵ１１は、ユーザＢのカテゴリリストをユーザカテゴリリストファイル１５３から読み出す。ユーザＢはカテゴリ「お酒」しか存在しないので、共起回数はゼロとなる。以上の処理を分析対象の全ユーザに対して行う。
【００２４】
図１０の例では「グルメ」と「お酒」との双方のカテゴリに言及しているユーザは３０、「グルメ」と「ファッション」との双方のカテゴリに言及しているユーザは１００となる。なお、「グルメ」と「お酒」との組み合わせ、及び、「お酒」と「グルメ」のように、カテゴリの順序のみが異なる組み合わせは同一の組み合わせとしている。また本実施形態ではカテゴリリストファイル１５３を参照する例を挙げたが、ユーザ記事リストファイル１５４を参照して、カテゴリ共起ファイル１５７を生成してもよい。
【００２５】
図１１はカテゴリ共起類似度ファイル１５８のレコードレイアウトを示す説明図である。カテゴリ共起類似度ファイル１５８には、２つのカテゴリ間の第１類似度が記憶されている。例えばカテゴリ「グルメ」と「お酒」の第１類似度は０．９９となる。ここで、第１のカテゴリを「グルメ」とし、第２のカテゴリを「お酒」とし、第１類似度を算出する手順を説明する。ＣＰＵ１１は、カテゴリ共起類似度ファイル１５８を参照し、第１のカテゴリである「グルメ」と、第２のカテゴリである「お酒」以外の他のカテゴリとの間の組み合わせ数を読み出す。図１０の例ではファッションが１００、クルマが１２、音楽が７０、映画が４５、アニメが４０、ゲームが２５、野球が１５、サッカーが１５として読み出される。
【００２６】
同様に、ＣＰＵ１１は、カテゴリ共起類似度ファイル１５８を参照し、第２のカテゴリである「お酒」と、第１のカテゴリである「グルメ」以外の他のカテゴリとの間の組み合わせ数を読み出す。図１０の例ではファッションが４５、クルマが８、音楽が５０、映画が２０、アニメが２４、ゲームが２０、野球が１０、サッカーが５として読み出される。ＣＰＵ１１は、第１のカテゴリ「グルメ」のベクトルを｛１００、１２、７０、４５、４０、２５、１５、１５｝とする。またＣＰＵ１１は、第２のカテゴリ「お酒」のベクトルを｛４５、８、５０、２０、２４、２０、１０、５｝とする。なお、ベクトルの列方向は第１ベクトル及び第２ベクトル共に他のカテゴリ｛ファッション、クルマ、音楽、映画、アニメ、ゲーム、野球、サッカー｝である。なお、本実施形態では第１のカテゴリと、第２のカテゴリ以外の他のカテゴリとの間の組み合わせ数に基づきベクトルを求める例を挙げたがこれに限るものではない。第１のカテゴリと、第２のカテゴリを含む他のカテゴリとの間の組み合わせ数に基づき、ベクトルを求めても良い。また他のカテゴリも全ての他のカテゴリの組み合わせ数を用いる必要は必ずしも無く、一部の他のカテゴリの組み合わせ数を用いても良い。
【００２７】
ＣＰＵ１１は、第１カテゴリのベクトル及び第２カテゴリのベクトルから第１類似度を算出する。第１類似度はコサイン類似度、内積、または、相関関数等を用いて算出すればよい。例えば各ベクトルの差の２乗の合計値に基づき第１類似度を算出しても良い。本実施形態では一例としてコサイン類似度を用いる例を挙げて説明する。コサイン類似度は記憶部１５に記憶した下記式１にて算出する。
【００２８】
【数１】
2015056066.tif 000003
（式１）
【００２９】
なお、Ｖは列数であり、上述した例では８となる。ＣＰＵ１１は、第１カテゴリのベクトル及び第２カテゴリのベクトルを式１に代入し、第１類似度０．９９を算出する。ＣＰＵ１１は、他の組み合わせについても同様の処理を行い、各カテゴリの組み合わせについて第１類似度を算出し、算出した第１類似度をカテゴリ共起類似度ファイル１５８に記憶する。例えば、「グルメ」と「ファッション」との第１類似度は０．５７と低くなっている。なお、図１１に示した数値は説明を容易にするために適当な値を示している。
【００３０】
次いでＣＰＵ１１は、記憶部１５に記憶した第１閾値を読み出す。ＣＰＵ１１は、カテゴリ共起類似度ファイル１５８を参照し、第１閾値を超える第１類似度を有するカテゴリの組み合わせを抽出する。第１閾値はユーザが入力部１３から適宜の値を設定することがかのである。本実施形態では一例として第１閾値０．７４とする。ＣＰＵ１１は、第１閾値を超える組み合わせとして、「グルメ」と「ファッション」、「音楽」と「映画」、「アニメ」と「ゲーム」、「野球」と「サッカー」の４つの組み合わせを抽出する。
【００３１】
図１２は内容類似度ファイル１５９を示す説明図である。ＣＰＵ１１は、抽出したカテゴリの組み合わせについて内容類似度（以下、第２類似度）を算出する。ＣＰＵ１１は、カテゴリの組み合わせに対応付けて算出した第２類似度を内容類似度ファイル１５９に記憶する。第２類似度の算出手順は以下のとおりである。ＣＰＵ１１は、抽出した一のカテゴリの語句及び出現頻度をカテゴリ語句リストファイル１５５から読み出す。例えばカテゴリ「グルメ」の場合、「ラーメン」が300回、「食べる」が900回、「美味しい」が600回、「ワイン」が200回、「飲む」が60回、「ビール」が45回、・・・と読み出される。ＣＰＵ１１は、一のカテゴリのベクトルを生成する。上述の例では一のカテゴリのベクトルは｛３００、９００、６００、２００、６０、４５・・｝となる。なお、ベクトルの列方向は予め定められており｛ラーメン、食べる、美味しい、ワイン、飲む、ビール・・｝となる。
【００３２】
ＣＰＵ１１は、同様に抽出した他のカテゴリの語句及び出現頻度をカテゴリ語句リストファイル１５５から読み出す。例えばカテゴリ「お酒」の場合、「ビール」が320回、飲む」が600回、「食べる」が300回、「美味しい」が400回、「ワイン」が280回、「ラーメン」が80回・・・と読み出される。ＣＰＵ１１は、他のカテゴリのベクトルを生成する。上述の例では他のカテゴリのベクトルは｛３２０、６００、３００、４００、２８０、８０・・｝となる。ＣＰＵ１１は、一のカテゴリ「グルメ」のベクトルと、他のカテゴリ「お酒」のベクトルとを、式１に代入し第１カテゴリ及び第２カテゴリの語句及び出現頻度に基づく第２類似度を算出する。なお、第２類似度の算出は式１を用いる例を挙げるが他の方式により算出しても良い。
【００３３】
図１２の例では「グルメ」と「お酒」の第２類似度は０．８となる。また、「音楽」と「映画」の第２類似度は０．３、「アニメ」と「ゲーム」との第２類似度は０．７、「野球」と「サッカー」の第２類似度は０．２となる。続いてＣＰＵ１１は、記憶部１５から第２閾値を読み出す。本実施形態では第２閾値を第１閾値と同じ値とするが、他の値であっても良い。ＣＰＵ１１は、第２閾値を超える第２類似度を有するカテゴリの組み合わせを抽出する。図１２の例では「グルメ」と「お酒」、及び、「アニメ」と「ゲーム」の２つの組み合わせが抽出される。
【００３４】
ＣＰＵ１１は、カテゴリ記事リストファイル１５６を参照し、抽出したカテゴリの組み合わせ間で一致しないユーザの情報を削除する処理を行う。図１３は削除後のカテゴリ記事リストファイル１５６のレコードレイアウトを示す説明図である。ＣＰＵ１１は、抽出した一のカテゴリのユーザの記事ＩＤを読み出す。また、ＣＰＵ１１は、抽出した他のカテゴリのユーザの記事ＩＤを読み出す。ＣＰＵ１１は、記事ＩＤに付されたユーザの情報を参照し、カテゴリ間で相互にユーザが一致しないユーザの記事ＩＤを削除する。図９の例では「グルメ」の記事を記載しているユーザＨは、「お酒」の記事を記載していないため、ユーザＨの記事に係る記事ＩＤ（Ｈ００１、Ｈ００５）は削除される。同様にユーザＢの記事もカテゴリ「お酒」から削除される。一方、ユーザＡ及びユーザＣの記事は共にカテゴリ「グルメ」及び「お酒」の双方に記憶されているので、削除されない。ＣＰＵ１１は、同様の処理をもう一組の組み合わせ「アニメ」と「ゲーム」についても行う。ユーザＥ及びＨの記事が削除されず、カテゴリ「ゲーム」のユーザＦ及びＨの記事が削除される。
【００３５】
以上のハードウェア群において、各種処理内容を、フローチャートを用いて説明する。図１４はカテゴリ記事リストファイル１５６の生成処理手順を示すフローチャートである。ＣＰＵ１１は、サーバコンピュータ２からブログ記事をダウンロードする（ステップＳ１４１）。ＣＰＵ１１は、新たなブログ記事が存在する場合、記事ＩＤを生成する（ステップＳ１４２）。ＣＰＵ１１は、ブログ記事からユーザ名、カテゴリ、及び本文を抽出する。ＣＰＵ１１は、ユーザ名、記事ＩＤ、カテゴリ及び本文をユーザブログ記事リストファイル１５２に記憶する（ステップＳ１４３）。ＣＰＵ１１は、各ユーザのカテゴリを抽出し、ユーザ毎に抽出したカテゴリを記憶することで、カテゴリ語句リストファイル１５５を生成する（ステップＳ１４４）。
【００３６】
ＣＰＵ１１は、ユーザブログ記事リストファイル１５２を参照し、形態素解析により、本文中の語句を抽出する（ステップＳ１４５）。ＣＰＵ１１は、記事ＩＤに対応付けて抽出した語句をユーザ記事リストファイル１５４に記憶する（ステップＳ１４６）。ＣＰＵ１１は、ユーザ記事リストファイル１５４を参照し、カテゴリ毎に語句を抽出し、各語句の出現頻度を計数し、語句及び出現頻度を、カテゴリ語句リストファイル１５５に記憶する（ステップＳ１４７）。ＣＰＵ１１は、ユーザブログ記事リストファイル１５２を参照し、カテゴリ毎に各ユーザの記事ＩＤを、カテゴリ記事リストファイル１５６に記憶する（ステップＳ１４８）。
【００３７】
図１５はカテゴリ共起ファイル１５７の生成処理手順を示すフローチャートである。ＣＰＵ１１は、ユーザに対応するカテゴリをユーザカテゴリリストファイル１５３から読み出す（ステップＳ１５１）。ＣＰＵ１１は、読み出したカテゴリが複数存在するか否かを判断する（ステップＳ１５２）。ＣＰＵ１１は、複数存在すると判断した場合（ステップＳ１５２でＹＥＳ）、処理をステップＳ１５３へ移行させる。ＣＰＵ１１は、複数のカテゴリの組み合わせを抽出する（ステップＳ１５３）。図６のユーザＡの例では、「グルメ」と「ファッション」、「グルメ」と「お酒」、及び、「ファッション」と「お酒」の３つの組み合わせが抽出される。
【００３８】
ＣＰＵ１１は、抽出したカテゴリの組み合わせについて、カテゴリ共起ファイル１５７の対応するカテゴリの組み合わせ数をインクリメントする（ステップＳ１５４）。図６のユーザＡの例では、「グルメ」と「ファッション」、「グルメ」と「お酒」、及び、「ファッション」と「お酒」に対応するカテゴリ共起ファイル１５７の数がそれぞれインクリメントされる。ＣＰＵ１１は、カテゴリが複数存在しないと判断した場合（ステップＳ１５２でＮＯ）、ステップＳ１５３及びＳ１５４をスキップし、処理をステップＳ１５５へ移行させる。
【００３９】
ＣＰＵ１１は、以上述べた処理を全てのユーザについて処理を終了したか否かを判断する（ステップＳ１５５）。ＣＰＵ１１は、処理を終了していないと判断した場合（ステップＳ１５５でＮＯ）、ステップＳ１５６へ移行する。ＣＰＵ１１は、他のユーザのカテゴリを、ユーザカテゴリリストファイル１５３から読み出す（ステップＳ１５６）。その後処理をステップＳ１５２に戻す。以上の処理を繰り返すことにより、各ユーザのカテゴリの組み合わせに基づくカテゴリ共起ファイル１５７が完成する。ＣＰＵ１１は、全てのユーザについて処理を終了したと判断した場合（ステップＳ１５５でＹＥＳ）、一連の処理を終了する。
【００４０】
図１６は第１類似度算出処理の手順を示すフローチャートである。ＣＰＵ１１は、第１類似度を算出する対象となる第１カテゴリ及び第２カテゴリを抽出する（ステップＳ１６１）。ＣＰＵ１１は、カテゴリ共起ファイル１５７を参照し、第１カテゴリと、第２カテゴリ以外の他のカテゴリとの間の組み合わせ数を読み出す（ステップＳ１６２）。ＣＰＵ１１は、読み出した組み合わせ数に基づき、第１ベクトルを生成する（ステップＳ１６３）。ＣＰＵ１１は、カテゴリ共起ファイル１５７を参照し、第２カテゴリと、第１カテゴリ以外の他のカテゴリとの間の組み合わせ数を読み出す（ステップＳ１６４）。ＣＰＵ１１は、読み出した組み合わせ数に基づき、第２ベクトルを生成する（ステップＳ１６５）。
【００４１】
ＣＰＵ１１は、記憶部１５に記憶した式１を読み出す（ステップＳ１６６）。ＣＰＵ１１は、第１ベクトル及び第２ベクトルを式１に代入し、第１類似度を算出する（ステップＳ１６７）。ＣＰＵ１１は、第１カテゴリ及び第２カテゴリに対応付けて、算出した第１類似度を、カテゴリ共起類似度ファイル１５８に記憶する（ステップＳ１６８）。ＣＰＵ１１は、カテゴリ共起ファイル１５７に記憶した全てのカテゴリの組み合わせについて処理を終了したか否かを判断する（ステップＳ１６９）。ＣＰＵ１１は、全てのカテゴリの組み合わせについて処理を終了していないと判断した場合（ステップＳ１６９でＮＯ）、処理をステップＳ１６１０へ移行させる。
【００４２】
ＣＰＵ１１は、ステップＳ１６１とは異なる、他の第１カテゴリ及び第２カテゴリの組み合わせを抽出する（ステップＳ１６１０）。その後処理をステップＳ１６２に戻す。以上の処理を繰り返すことにより、全てのカテゴリの組み合わせについて第１類似度を算出することができる。ＣＰＵ１１は、全てのカテゴリの組み合わせについて処理を終了したと判断した場合（ステップＳ１６９でＹＥＳ）、一連の処理を終了する。
【００４３】
図１７及び図１８は第２類似度算出処理の手順を示すフローチャートである。ＣＰＵ１１は、記憶部１５に記憶した第１閾値を読み出す（ステップＳ１７１）。ＣＰＵ１１は、カテゴリ共起類似度ファイル１５８を参照し、第１閾値を超える第１類似度を有するカテゴリの組み合わせを、抽出する（ステップＳ１７２）。ＣＰＵ１１は、抽出したカテゴリの組み合わせについて以下の処理を行う。ＣＰＵ１１は、カテゴリ語句リストファイル１５５を参照し、一のカテゴリの語句及び出現頻度を読み出す（ステップＳ１７３）。ＣＰＵ１１は、語句順に出現頻度を並び替える（ステップＳ１７４）。この語句順は例えば５０音順等予め定めておけば良い。ＣＰＵ１１は、語句の出現頻度を列値とする一のカテゴリのベクトルを生成する（ステップＳ１７５）。
【００４４】
ＣＰＵ１１は、カテゴリ語句リストファイル１５５を参照し、一のカテゴリと対になる他のカテゴリの語句及び出現頻度を読み出す（ステップＳ１７６）。ＣＰＵ１１は、語句順に出現頻度を並び替える（ステップＳ１７７）。ＣＰＵ１１は、語句の出現頻度を列値とする他のカテゴリのベクトルを生成する（ステップＳ１７８）。ＣＰＵ１１は、記憶部１５から式１を読み出す（ステップＳ１７９）。ＣＰＵ１１は、一のカテゴリのベクトルと、他のカテゴリのベクトルとを式１へ代入し、第２類似度を算出する（ステップＳ１８１）。
【００４５】
ＣＰＵ１１は、算出した第２類似度を、一のカテゴリ及び他のカテゴリに対応付けて、内容類似度ファイル１５９に記憶する（ステップＳ１８２）。ＣＰＵ１１は、ステップＳ１７２で抽出した全てのカテゴリの組み合わせについて処理を終了したか否かを判断する（ステップＳ１８３）。ＣＰＵ１１は、処理を終了していないと判断した場合（ステップＳ１８３でＮＯ）、処理をステップＳ１８４へ移行させる。ＣＰＵ１１は、他の組み合わせとなる一のカテゴリ及び他のカテゴリを抽出する（ステップＳ１８４）。その後処理をステップＳ１７３へ戻す。以上の処理を繰り返すことにより第１閾値を超える第１類似度を有する全てのカテゴリの組み合わせについて第２類似度を算出する事ができる。ＣＰＵ１１は、全てのカテゴリの組み合わせについて処理を終了したと判断した場合（ステップＳ１８３でＹＥＳ）、一連の処理を終了する。
本実施例では、以上の処理により、第２類似度よりも演算量の少ない第1類似度によって、第２類似度の算出を行う組み合わせを絞り込むことで、第２類似度の演算量を削減する。これにより、本実施例では、他のカテゴリとの間でモデルに揺れが生じやすいカテゴリを実用的な時間内で求めることが可能となる。
【００４６】
図１９は削除処理の手順を示すフローチャートである。ＣＰＵ１１は、記憶部１５に記憶した第２閾値を読み出す（ステップＳ１９１）。ＣＰＵ１１は、内容類似度ファイル１５９を参照し、第２閾値を超える第２類似度を有するカテゴリの組み合わせを抽出する（ステップＳ１９２）。ＣＰＵ１１は、カテゴリ記事リストファイル１５６を参照し、一のカテゴリの記事ＩＤを読み出す（ステップＳ１９３）。ＣＰＵ１１は、記事ＩＤに対応するユーザを特定する（ステップＳ１９４）。具体的には記事ＩＤに付与されたユーザの識別情報を参照するか、または、ユーザ記事リストファイル１５４を参照して記事ＩＤに対応するユーザを特定する。
【００４７】
ＣＰＵ１１は、カテゴリ記事リストファイル１５６を参照し、ステップＳ１９２で抽出した一のカテゴリに対応する他のカテゴリの記事ＩＤを読み出す（ステップＳ１９５）。ＣＰＵ１１は、記事ＩＤに対応するユーザを特定する（ステップＳ１９６）。ＣＰＵ１１は、特定したユーザが一致しない記事ＩＤをカテゴリ記事リストファイル１５６から削除する（ステップＳ１９７）。換言すればＣＰＵ１１は、特定したユーザがカテゴリ間で共通する記事ＩＤのみを保存する。ＣＰＵ１１は、ステップＳ１９２で抽出した全てのカテゴリの組み合わせについて処理したか否かを判断する（ステップＳ１９８）。
【００４８】
ＣＰＵ１１は、全てのカテゴリの組み合わせについて処理していないと判断した場合（ステップＳ１９８でＮＯ）、処理をステップＳ１９９へ移行させる。ＣＰＵ１１は、他のカテゴリの組み合わせを選択する（ステップＳ１９９）。その後処理をステップＳ１９３へ移行させる。以上の処理を繰り返すことにより、第２閾値を超える第２類似度を有する全てのカテゴリの組み合わせについて、削除処理が終了する。ＣＰＵ１１は、全てのカテゴリの組み合わせについて処理したと判断した場合（ステップＳ１９８でＹＥＳ）、一連の処理を終了する。このように、カテゴリ間で第１類似度の高いカテゴリの組み合わせを事前に絞り込むことで、計算量を大幅に低減することが可能となる。
【００４９】
実施の形態２
図２０は上述した形態のコンピュータ１の動作を示す機能ブロック図である。ＣＰＵ１１が制御プログラム１５Ｐを実行することにより、コンピュータ１は以下のように動作する。算出部２０１は、ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出する。第１類似度算出部２０２は、算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出する。抽出部２０３は閾値を超える第１類似度を有するカテゴリの組み合わせを抽出する。第２類似度算出部２０４は抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する。
【００５０】
図２１は実施の形態２に係るコンピュータ１のハードウェア群を示すブロック図である。コンピュータ１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１０ＡにCD-ROM、DVD（Digital Versatile Disc）ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体１Ａを読み取らせて記憶部１５に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１Ｂをコンピュータ１内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【００５１】
図２１に示すコンピュータ１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１Ａまたは半導体メモリ１Ｂから読み取り、或いは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム１５Ｐとしてインストールされ、ＲＡＭ１２にロードして実行される。これにより、上述したコンピュータ１として機能する。
【００５２】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５３】
以上の実施の形態１及び２を含む実施形態に関し、さらに以下の付記を開示する。
【００５４】
（付記１）
コンピュータを用いた情報処理方法において、
ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出し、
算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出し、
閾値を超える第１類似度を有するカテゴリの組み合わせを抽出し、
抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する
情報処理方法。
【００５５】
（付記２）
各ユーザに対応付けてカテゴリを記憶した記憶部を参照し、ユーザ毎にカテゴリ間の組み合わせを計数することで、複数のユーザのカテゴリ間の組み合わせ数を算出する
付記１に記載の情報処理方法。
【００５６】
（付記３）
第１のカテゴリと第２のカテゴリ以外の他のカテゴリとの間の算出した組み合わせ数、及び、前記第２のカテゴリと前記第１のカテゴリ以外の他のカテゴリとの間の算出した組み合わせ数とに基づき、第１カテゴリと第２カテゴリとの間の第１類似度を算出する
付記１または２に記載の情報処理方法。
【００５７】
（付記４）
カテゴリに対応付けて用語及び用語数を記憶した記憶部を参照し、抽出した一のカテゴリの用語及び用語数を読み出し、
前記記憶部を参照し、他のカテゴリの用語及び用語数を読み出し、
読み出した前記一のカテゴリの用語及び用語数と前記他のカテゴリの用語及び用語数とに基づき、前記一のカテゴリと前記他のカテゴリとの間の第２類似度を算出する
付記１から３のいずれか一つに記載の情報処理方法。
【００５８】
（付記５）
閾値を超える第２類似度を有するカテゴリの組み合わせを抽出し、
カテゴリに対応付けてユーザに関する情報を記憶した記憶部を参照し、抽出したカテゴリ間で一致しないユーザに関する情報を削除する
付記１から４のいずれか一つに記載の情報処理方法。
【００５９】
（付記６）
コンピュータに、
ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出し、
算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出し、
閾値を超える第１類似度を有するカテゴリの組み合わせを抽出し、
抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する
処理を実行させるプログラム。
【００６０】
（付記７）
ユーザに対応付けられたカテゴリを参照し、カテゴリ間の組み合わせ数を算出する算出部と、
算出したカテゴリ間の組み合わせ数に基づき、カテゴリ間の第１類似度を算出する第１類似度算出部と、
閾値を超える第１類似度を有するカテゴリの組み合わせを抽出する抽出部と、
抽出した各カテゴリに対応する用語及び用語数に基づき、抽出したカテゴリ間の第２類似度を算出する第２類似度算出部と
を備える情報処理装置。
【符号の説明】
【００６１】
１      コンピュータ
１Ａ    可搬型記録媒体
１Ｂ    半導体メモリ
２      サーバコンピュータ
１０Ａ  読み取り部
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１４    表示部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
１５１  カテゴリリストファイル
１５２  ユーザブログ記事リストファイル
１５３  ユーザカテゴリリストファイル
１５４  ユーザ記事リストファイル
１５５  カテゴリ語句リストファイル
１５６  カテゴリ記事リストファイル
１５７  カテゴリ共起ファイル
１５８  カテゴリ共起類似度ファイル
１５９  内容類似度ファイル
２０１  算出部
２０２  第１類似度算出部
２０３  抽出部
２０４  第２類似度算出部
Ｎ    通信網
【図１】
2015056066.tif 000004
【図２】
2015056066.tif 000005
【図３】
2015056066.tif 000006
【図４】
2015056066.tif 000007
【図５】
2015056066.tif 000008
【図６】
2015056066.tif 000009
【図７】
2015056066.tif 000010
【図８】
2015056066.tif 000011
【図９】
2015056066.tif 000012
【図１０】
2015056066.tif 000013
【図１１】
2015056066.tif 000014
【図１２】
2015056066.tif 000015
【図１３】
2015056066.tif 000016
【図１４】
2015056066.tif 000017
【図１５】
2015056066.tif 000018
【図１６】
2015056066.tif 000019
【図１７】
2015056066.tif 000020
【図１８】
2015056066.tif 000021
【図１９】
2015056066.tif 000022
【図２０】
2015056066.tif 000023
【図２１】
2015056066.tif 000024