(57)【特許請求の範囲】
【請求項１】
ソーシャルネットワークサービス（ＳＮＳ）における投稿データに基づいて、前記投稿データを出力するＳＮＳクライアントをコンピュータが分類する方法であって、前記方法は、
前記コンピュータが、前記投稿データを取得するステップと、
前記コンピュータが、前記取得した投稿データから、ＳＮＳクライアント識別子、アカウント識別子、および本文内容を少なくとも抽出し、前記ＳＮＳクライアントごとの特徴量を算出するステップであって、前記特徴量は、平均圧縮率および総圧縮率を少なくとも含み、前記平均圧縮率は、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに、前記本文内容を結合し、かつ圧縮した場合の、前記ＳＮＳクライアント識別子ごとの平均圧縮率であり、前記総圧縮率は、前記ＳＮＳクライアント識別子ごとに前記本文内容を結合し、かつ圧縮した場合の圧縮率である、ステップと、
前記コンピュータが、前記特徴量を学習モデルのインプットデータとして、前記取得した投稿データを出力したＳＮＳクライアントを分類するステップであって、前記学習モデルは、前記ＳＮＳにおける投稿データから複数の前記ＳＮＳクライアントの前記特徴量を説明変数、および前記ＳＮＳクライアントの分類を目的変数として生成される、ステップと
を備えたことを特徴とする方法。
【請求項２】
前記特徴量は、平均投稿数をさらに含み、前記平均投稿数は、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに算出される投稿数の、前記ＳＮＳクライアント識別子ごとの平均投稿数であることを特徴とする請求項１に記載の方法。
【請求項３】
前記抽出することは、前記取得した投稿データからさらに投稿日時を抽出することを含み、前記特徴量は、投稿間隔平均標準偏差をさらに含み、前記投稿間隔平均標準偏差は、前記投稿日時から、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに投稿間隔を算出し、それぞれの標準偏差から算出される前記ＳＮＳクライアント識別子ごとの平均値であることを特徴とする請求項２に記載の方法。
【請求項４】
ソーシャルネットワークサービス（ＳＮＳ）における投稿データに基づいて、前記投稿データを出力するＳＮＳクライアントを分類する方法をコンピュータに実行させるコンピュータ実行可能命令を有するコンピュータプログラムであって、前記コンピュータプログラムは、前記コンピュータに、
前記投稿データを取得させ、
前記取得した投稿データから、ＳＮＳクライアント識別子、アカウント識別子、および本文内容を少なくとも抽出させ、前記ＳＮＳクライアントごとの特徴量を算出させ、前記特徴量は、平均圧縮率および総圧縮率を少なくとも含み、前記平均圧縮率は、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに、前記本文内容を結合し、かつ圧縮した場合の、前記ＳＮＳクライアント識別子ごとの平均圧縮率であり、前記総圧縮率は、前記ＳＮＳクライアント識別子ごとに前記本文内容を結合し、かつ圧縮した場合の圧縮率であり、
前記特徴量を学習モデルのインプットデータとして、前記取得した投稿データを出力したＳＮＳクライアントを分類させ、前記学習モデルは、前記ＳＮＳにおける投稿データから複数の前記ＳＮＳクライアントの前記特徴量を説明変数、および前記ＳＮＳクライアントの分類を目的変数として生成される
ことを特徴とするコンピュータプログラム。
【請求項５】
ソーシャルネットワークサービス（ＳＮＳ）における投稿データに基づいて、前記投稿データを出力するＳＮＳクライアントを分類するサーバコンピュータであって、前記サーバコンピュータは、
前記投稿データを取得する手段と、
前記取得した投稿データから、ＳＮＳクライアント識別子、アカウント識別子、および本文内容を少なくとも抽出し、前記ＳＮＳクライアントごとの特徴量を算出する手段であって、前記特徴量は、平均圧縮率および総圧縮率を少なくとも含み、前記平均圧縮率は、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに、前記本文内容を結合し、かつ圧縮した場合の、前記ＳＮＳクライアント識別子ごとの平均圧縮率であり、前記総圧縮率は、前記ＳＮＳクライアント識別子ごとに前記本文内容を結合し、かつ圧縮した場合の圧縮率である、手段と、
前記特徴量を学習モデルのインプットデータとして、前記取得した投稿データを出力したＳＮＳクライアントを分類する手段であって、前記学習モデルは、前記ＳＮＳにおける投稿データから複数の前記ＳＮＳクライアントの前記特徴量を説明変数、および前記ＳＮＳクライアントの分類を目的変数として生成される、手段と
を備えたことを特徴とするサーバコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソーシャルネットワークサービスにおけるノイズ投稿の分類方法およびシステムに関する。具体的には、Ｔｗｉｔｔｅｒ（登録商標）などのソーシャルネットワークサービス（以下、ＳＮＳという）における投稿データに関し、当該サービスに対して投稿を行ったり、他人の投稿を閲覧したりするためのクライアントアプリケーションソフトウェア（例えば、Ｔｗｉｔｔｅｒ  ｆｏｒ  Ａｎｄｒｏｉｄ（登録商標））を目的別に分類するための学習（分類）モデルを生成する。分類モデルにより、未知のＳＮＳクライアントを分類し、特に、不要な投稿データ（ノイズ）を出力するＳＮＳクライアントを抽出する方法およびシステムに関する。
【背景技術】
【０００２】
従来、ＳＮＳにおいて投稿される投稿データを収集し、分析することでマーケティングなどに活用することが行われている。例えば、特許文献１には、投稿データを電子掲載する際の適合度合いを評価値として指標化し、当該評価値に基づいて投稿データをランク分けすることにより分析する装置が開示されている。特許文献１における評価は、投稿データにおける文章を複数の単語に分解し、予め定義したスコア設定テーブルと各単語を照合し、単語単位でスコアを算出した後、文章全体の総スコアを算出するものである。例えば、単語単位のスコアはいわゆる重み付け値であり、不適切な単語に対し大きなスコアを設定することで、不適切な単語を多く含む投稿データの総スコアはより大きくなる。これにより、投稿データをランク分けし、電子掲載の際の適合度合いを分析することできる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６８３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１における分析を行うには、投稿データ中に、ある程度の数の単語を必要とし、単語数の少ないＳＮＳ投稿データを分析することには適していない。
【０００５】
また、近年、ＳＮＳの利用は複雑化しており、投稿データの種類も、定型文の自動投稿や、広告・キャンペーンなど様々である。また、投稿データの分析目的によって、ノイズの定義も変わってくる。加えて、投稿アプリケーションを生成するためのＡＰＩは公開されており、誰でもＳＮＳクライアントを生成することができる。すなわち、常に新しい投稿データやノイズが発生し、加えて、未知のＳＮＳクライアントも新たに発生することから、既存の静的なデータ参照では判別しきれないものが出てくることが想定される。このような状況において、投稿データごとに分析を行ってノイズを特定するためには、ＳＮＳクライアントによる投稿データのような個々の文章が短いものは、分析のインプットデータとして適さない。
【０００６】
また、ユーザは用途に応じて、ＳＮＳクライアントを使い分けている（分類している）傾向がある（例えば、分類１：ユーザ本人の投稿は、Ｔｗｉｔｔｅｒなどの投稿アプリケーション、分類２：ゲームアプリケーションのハイスコア取得、所定の電子書籍を読み終えた、などユーザの行動に伴う投稿は、行動記録アプリケーション、分類３：キャンペーン用投稿は、各企業の専用アプリケーション、分類４：自動投稿は、botアプリケーションなど）。なお、このＳＮＳクライアントの分類は、分類１がユーザの意思が最も強く、数字が多くなるにつれ弱くなり、分類４が最も弱いと考えることができる。分類２は、その内容や投稿タイミングによりユーザの思考を読み取ることができ、分類３は、ユーザのある程度の嗜好を判断することができる。分類４においては、ロボットによる自動投稿のため、ユーザ意思はないと言える。すなわち、投稿データにおけるユーザ意思が強いほど、ユーザにとっては重要度が高い投稿であり、マーケティングに活用する企業などにとっては有用性が高い投稿であるといえる。
【０００７】
以上より、ＳＮＳクライアントによる投稿データ単位ではなく、ＳＮＳクライアント単位での分析を行い、ノイズを出力するＳＮＳクライアントを抽出する方法およびシステムが求められている。
【課題を解決するための手段】
【０００８】
そこで本発明は、ＳＮＳクライアントの分類に着目し、前述した課題を解決するために、ＳＮＳにおける投稿データに基づいて、前記投稿データを出力するＳＮＳクライアントを分類する方法を実行するためのコンピュータ実行可能命令を有するコンピュータプログラムであって、前記方法は、
前記投稿データを取得するステップと、
前記取得した投稿データから、ＳＮＳクライアント識別子、アカウント識別子、および本文内容を少なくとも抽出し、前記ＳＮＳクライアントごとの特徴量を算出するステップであって、前記特徴量は、平均圧縮率および総圧縮率を少なくとも含み、前記平均圧縮率は、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに、前記本文内容を結合し、かつ圧縮した場合の、前記ＳＮＳクライアント識別子ごとの平均圧縮率であり、前記総圧縮率は、前記ＳＮＳクライアント識別子ごとに前記本文内容を結合し、かつ圧縮した場合の圧縮率である、ステップと、
前記特徴量を学習モデルのインプットデータとして、前記取得した投稿データを出力したＳＮＳクライアントを分類するステップであって、前記学習モデルは、前記ＳＮＳにおける投稿データから複数の前記ＳＮＳクライアントの前記特徴量を説明変数、および前記ＳＮＳクライアントの分類を目的変数として生成される、ステップと
を備えたことを特徴とする。
【０００９】
また、前段落に記載の発明において、前記特徴量は、平均投稿数をさらに含み、前記平均投稿数は、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに算出される投稿数の、前記ＳＮＳクライアント識別子ごとの平均投稿数であることを特徴とする。
【００１０】
さらに、前段落に記載の発明において、前記抽出することは、前記取得した投稿データからさらに投稿日時を抽出することを含み、前記特徴量は、投稿間隔平均標準偏差をさらに含み、前記投稿間隔平均標準偏差は、前記投稿日時から、前記ＳＮＳクライアント識別子および前記アカウント識別子ごとに投稿間隔を算出し、それぞれの標準偏差から算出される前記ＳＮＳクライアント識別子ごとの平均値であることを特徴とする。
【発明の効果】
【００１１】
以上説明したように、本発明により、ＳＮＳにおける投稿データに基づいて、当該投稿データを出力するＳＮＳクライアントを目的別に分類するための分類モデルを生成し、未知のＳＮＳクライアントを分類することができる。これにより、特に、ノイズを出力するＳＮＳクライアントを抽出することができる。また、ある目的を以って投稿データを分析する場合に、ノイズとなる投稿データを出力するＳＮＳクライアントを一括して分割対象から除外することが可能となり、従来と比較し、より効率的に投稿データの分析を行うことができる。さらに、分類モデルを学習させることで、今後新たに発生する種類のＳＮＳクライアントにも対応することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るシステム構成を示す図である。
【図２】本発明の一実施形態に係るＳＮＳクライアントデータ記憶部に格納されたデータを示す図である。
【図３】本発明の一実施形態に係る教師データ記憶部に格納されたデータを示す図である。
【図４】本発明の一実施形態に係る分類モデルを示す図である。
【図５】本発明の一実施形態に係る分類モデルデータ記憶部に格納されたデータを示す図である。
【図６】本発明の一実施形態に係る分類モデル生成処理を示すフローチャートである。
【図７】本発明の一実施形態に係るＳＮＳクライアント分類処理を示すフローチャートである。
【図８】本発明の一実施形態における実行する学習パターンの判断方法を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付した図面を参照して、ＳＮＳにおける投稿データに基づいて、当該投稿データを出力するＳＮＳクライアントを目的別に分類するための分類モデルを生成し、未知のＳＮＳクライアントを分類することができるＳＮＳクライアント分類システムおよび方法を詳細に説明する。
【００１４】
まず始めに、本システムの概要を説明する。図１は、本発明の一実施形態に係るシステム構成を示す図である。図１において、データセンタなどに設置された、各ＳＮＳ提供企業などが管理するＳＮＳ投稿データ蓄積サーバ１００は、インターネット１０４を介して、ユーザ端末１０２ａ、１０２ｂ・・・、および１０２ｎ（以下、まとめて「ユーザ端末１０２」という）、ならびにモバイル端末１０３ａ、１０３ｂ・・・、および１０３ｎ（以下、まとめて「モバイル端末１０３」という）と通信を行うように構成されている。
【００１５】
ＳＮＳを利用するユーザは、ユーザ端末１０２、またはモバイル端末１０３を使用して各ＳＮＳ投稿データ蓄積サーバ１００が提供するＳＮＳを利用する。各ユーザにより投稿された投稿データは、ＳＮＳ投稿データ蓄積サーバ１００に送信され、そのデータベースに集約される。なお、ＳＮＳ投稿データ蓄積サーバ１００は、図１において、単一のサーバとして示されているが、複数台のサーバによる分散システムとして構成することも可能である。また、ＳＮＳ投稿データ蓄積サーバ１００は、ＳＮＳクライアントごとに存在するため、実際は、インターネット１０４に多くのＳＮＳ投稿データ蓄積サーバ１００が接続されている。
【００１６】
また、インターネット１０４には、ＳＮＳクライアント分類サーバ１０１が接続されている。各ＳＮＳ投稿データ蓄積サーバ１００に集約された投稿データは、ＳＮＳクライアント分類サーバ１０１に送信され、ＳＮＳクライアント分類サーバ１０１上で分類モデルを用いて、ＳＮＳクライアント単位に分類される。
【００１７】
次に、ＳＮＳクライアント分類サーバ１０１の構成を詳細に説明する。なお、図１では、単一のサーバコンピュータを想定し、必要な機能構成だけを示している。
【００１８】
ＳＮＳクライアント分類サーバ１０１は、ＣＰＵ１１０に、システムバス１１５を介してＲＡＭ１１１、入力装置１１２、出力装置１１３、通信制御装置１１４、および不揮発性記憶媒体（ＲＯＭやＨＤＤなど）で構成される記憶装置１１６が接続された構成を有する。記憶装置１１６は、ＳＮＳクライアント分類システムの各機能を奏するためのソフトウェアプログラムを格納するプログラム格納領域と、当該ソフトウェアプログラムが取り扱うデータを格納するデータ格納領域とを備えている。以下に説明するプログラム格納領域の各手段は、実際は独立したソフトウェアプログラム、そのルーチンやコンポーネントなどであり、ＣＰＵ１１０によって記憶装置１１６から呼び出された後、ＲＡＭ１１１のワークエリアに展開され、かつデータベースなどを適宜参照しながら順次実行されることで、各機能を奏するものである。
【００１９】
記憶装置１１６におけるデータ格納領域は、本発明に関連するものだけを列挙すると、ＳＮＳクライアントデータ記憶部１３０、教師データ記憶部１３１、分類モデルデータ記憶部１３２、および投稿データ記憶部１３３を備える。いずれも、記憶装置１１６内に確保された一定の記憶領域である。
【００２０】
ＳＮＳクライアントデータ記憶部１３０は、投稿データを出力するＳＮＳクライアント（例えば、Ｔｗｉｔｔｅｒなどのアプリケーション）に関するデータを格納する。図２は、本発明の一実施形態に係るＳＮＳクライアントデータ記憶部１３０に格納されたデータを示す図である。図２におけるＳＮＳクライアントデータは、ＳＮＳクライアントの名称を示す「クライアント名」、ＳＮＳクライアントを目的別に分類する「カテゴリＩＤ」とその内容を示す「カテゴリ名」を含む。「カテゴリＩＤ」は、例えば、ＳＮＳクライアントが、Ｔｗｉｔｔｅｒなどのユーザ本人による投稿データを出力する投稿アプリケーションの場合は「1」、ゲームアプリケーションのハイスコア取得などユーザの行動に伴う投稿データを出力する行動記録アプリケーションの場合は「2」、キャンペーン用の投稿データを出力する各企業の専用アプリケーションの場合は「3」、一定時間ごとに辞書に登録された定型文を自動出力するbotアプリケーションの場合は「4」を格納する。この場合、カテゴリＩＤの数値が少ないほど、ユーザ意思が強い投稿データを出力するＳＮＳクライアントであると考えることができる。そのため、例えば、ユーザ意思の弱いカテゴリＩＤ「4」の投稿データはノイズデータであると考えられ、フィルタリングにより非表示対象にするなどといった実施形態が想定される。なお、ＳＮＳクライアントデータは、投稿データに含まれる「クライアント名」を抽出することにより生成されるが、抽出時点では「カテゴリＩＤ」および「カテゴリ名」を定めることができないため、両項目はデータレコード生成時点では空データである。レコード生成後、管理者などにより、「カテゴリＩＤ」および「カテゴリ名」に対しある程度のデータ（全てである必要はなく、学習に必要な最低限のデータであればよい）が手動登録され、後述する学習処理を行うことで、学習後のデータを改めて登録することもできる。
【００２１】
教師データ記憶部１３１は、分類モデルに対する教師データを格納する。図３は、本発明の一実施形態に係る教師データ記憶部１３１に格納されたデータを示す図である。図３における教師データは、「クライアント名」、各特徴量、および「カテゴリＩＤ」を含む。各特徴量は、「平均圧縮率」、「総圧縮率」、「投稿間隔平均標準偏差」、および「平均投稿数」であり、これらが分類モデルを生成するための説明変数となる。なお、各特徴量の算出については後述する。また、各特徴量の説明変数に対し、「カテゴリＩＤ」が目的変数となる。これらに基づいて、次項に示す分類モデルデータが生成されることになる。なお、本データにおけるカテゴリＩＤについても、前項のＳＮＳクライアントデータのカテゴリＩＤ同様、後述する学習処理を行うことで、学習後のデータを改めて登録することもできる。
【００２２】
分類モデルデータ記憶部１３２は、教師データに基づいて生成される学習（分類）モデルデータを格納する。本発明における分類モデルは、説明変数（特徴量）をインプットとし、説明変数によって目的変数（カテゴリＩＤ）が説明できるかを定量的に分析する（回帰分析）、二値分類器である。二値分類器は、様々な従来技術（線形回帰、決定木、ロジスティック回帰、ニューラルネットワーク、サポートベクターマシン（ＳＶＭ）、パーセプトロンなど）を用いて実現することができる。
【００２３】
図５は、本発明の一実施形態に係る分類モデルデータ記憶部１３２に格納されたデータを示す図である。また、図４は、本発明の一実施形態に係る分類モデルを示す図である。図４の分類モデルには決定木を用いている。図４の分類モデルに対応するデータが図５の分類モデルデータである。図５における分類モデルデータは、各ツリーノードを一意に識別させる「ノードＩＤ」、各ノードＩＤの親ノードＩＤを示す「親ノードＩＤ」、同一の親ノードを持つノード間の順序を示す「兄弟間順序」、各ノード内容を示す「内容」、および「カテゴリＩＤ」を含む。「兄弟間順序」は、本実施形態では、同一の親ノードに対してＹｅｓのエッジにぶら下がるノードを「1」、Ｎｏのエッジにぶら下がるノードを「2」としている。同一の親ノードに対してエッジの種類がさらに多い場合は、例えば、左のノードから１、２、３・・・と番号を割り当てることができる。
【００２４】
図５の分類モデルを用いて図４の分類モデルデータを説明すると、ルートノード［平均圧縮率＜０．７８］は「ノードＩＤ」が「0」であり、親ノードは存在しないため、「親ノードＩＤ」および「兄弟間順序」は空データである。
【００２５】
次に、ルートノードの子ノードである「平均投稿数＜５」および「平均投稿数＜２．７」の「ノードＩＤ」は、各々、「1」および「6」である。両ノードの「親ノードＩＤ」は、ルートノードである「0」が格納される。また、「兄弟間順序」は、各々、Ｙｅｓのエッジにぶら下がるノード「平均投稿数＜５」は「1」、Ｎｏのエッジにぶら下がるノード「平均投稿数＜２．７」は「2」が格納される。
【００２６】
同様に、ノード「平均投稿数＜５」の子ノードである「自動投稿」および「総圧縮率＜＝０．５５」の「ノードＩＤ」は、各々、「2」および「3」である。ここで、ノード「自動投稿」は、終端ノード（図４上では二重線のブロックとして示される）であり、学習対象であるＳＮＳクライアントが、カテゴリＩＤ「4」で示されるbotアプリケーションに分類されることを示す。そのため、「カテゴリＩＤ」には「4」が格納される。その他のノードも、同様に構成される。なお、図２、３、および５における各データは一実施形態であり、データ項目の追加、削除を妨げるものではない。
【００２７】
投稿データ記憶部１３３は、各ＳＮＳ投稿データ蓄積サーバ１００から提供された投稿データを格納する。投稿データについては後述する。
【００２８】
次に、記憶装置１１６におけるプログラム格納領域に格納されているソフトウェアプログラムは、本発明に関連するものだけを列挙すると、投稿データ取得手段１２０、ＳＮＳクライアントデータ生成手段１２１、特徴量算出手段１２２、教師データ生成手段１２３、分類モデルデータ生成手段１２４、およびＳＮＳクライアント分類手段１２５を備えている。これらの手段は、ＣＰＵ１１０によって実行される。
【００２９】
投稿データ取得手段１２０は、各ＳＮＳ投稿データ蓄積サーバ１００から提供され、投稿データ記憶部１３３に格納されている投稿データを取得する。
【００３０】
ＳＮＳクライアントデータ生成手段１２１は、取得された投稿データからＳＮＳクライアント名を抽出し、当該ＳＮＳクライアント名に基づいてＳＮＳクライアントデータを生成し、ＳＮＳクライアントデータ記憶部１３０に格納する。
【００３１】
特徴量算出手段１２２は、取得された投稿データからＳＮＳクライアント識別子、アカウント識別子、本文内容、および投稿日時などを抽出し、各特徴量（平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数）を算出する。
【００３２】
教師データ生成手段１２３は、生成されたＳＮＳクライアントデータおよび算出された各特徴量から教師データを生成し、教師データ生成手段１２３に格納する。
【００３３】
分類モデルデータ生成手段１２４は、教師データの各特徴量を説明変数、およびカテゴリＩＤを目的変数として、分類（学習）モデルデータを生成し、分類モデルデータ記憶部１３２に格納する。
【００３４】
ＳＮＳクライアント分類手段１２５は、分類対象のＳＮＳクライアントに係る各特徴量を分類モデルのインプットとして、ＳＮＳクライアントを分類する。また、ＳＮＳクライアント分類手段１２５は、分類結果を、ＳＮＳクライアントデータ記憶部１３０、および教師データ生成手段１２３に反映することもできる。
【００３５】
次に、本発明の分類モデル生成処理について流れに沿って説明する。図６は、本発明の一実施形態に係る分類モデル生成処理を示すフローチャートである。まず、ステップ１０１にて、投稿データ取得手段１２０は、各ＳＮＳ投稿データ蓄積サーバ１００から提供され、投稿データ記憶部１３３に格納されている投稿データを取得する。ここで、投稿データの取得は、一実施形態において、ＳＮＳクライアント名、アカウント名（投稿ユーザ名）、本文内容、投稿日時などがソースコード中に埋め込まれた電子ファイルを、ＳＮＳ投稿データ蓄積サーバ１００から受信することである。なお、ＳＮＳクライアント名およびアカウント名は、それぞれ、ＳＮＳクライアントおよびアカウントを識別できるものであればよく、ＩＤなどを含む任意の識別子のことである。また、投稿データの取得は、特定の期間に投稿されたデータなど取得条件を絞り込むことができる。他の実施形態では、投稿データ自体が予め絞り込まれたデータである。
【００３６】
投稿データを取得すると、ＳＮＳクライアントデータ生成手段１２１は、取得された投稿データからＳＮＳクライアント名を抽出し、当該ＳＮＳクライアント名に基づいて、ＳＮＳクライアントデータ（図２）を生成する（ステップ１０２）。生成されたＳＮＳクライアントデータは、ＳＮＳクライアントデータ記憶部１３０に格納される。ここで、ＳＮＳクライアントデータにおける「カテゴリＩＤ」および「カテゴリ名」は、データ生成時点では未だ分類されていないため、空データである。しかしながら、以降の分類（学習）処理のため、ＳＮＳクライアントデータの全て、または所在が明らかな一部のＳＮＳクライアントに係るデータの「カテゴリＩＤ」および「カテゴリ名」に対し、データを手動登録することができる。この手動登録したカテゴリデータを初期値として、以降の分類（学習）を行うことになる。
【００３７】
次に、投稿データを取得すると、特徴量算出手段１２２は、取得された投稿データからＳＮＳクライアント名、アカウント名、本文内容、投稿日時などを抽出し、各特徴量（平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数）を算出する（ステップ１０３）。各特徴量を詳細に説明する。
【００３８】
平均圧縮率は、ＳＮＳクライアントおよびアカウントごとに、投稿データ（本文内容）を圧縮した場合の、ＳＮＳクライアントごとの平均圧縮率である。同一アカウントが、所定のＳＮＳクライアントを用いて同一または類似する投稿をした場合、圧縮率が高くなり（圧縮後のファイルサイズが小さくなり）、このようなＳＮＳクライアントおよびアカウントの組み合わせが多い場合、それらの平均圧縮率も高くなる。例えば、ＳＮＳクライアントが、一定時間ごとに辞書に登録された定型文を自動出力するbotアプリケーションである場合は、アカウント毎の投稿データが同一または類似する傾向にあり、その圧縮率も高くなる。なお、botアプリケーションは、一定時間ごとのみならず、指定日時などユーザが予め設定したタイミングで、設定した内容を投稿できるものである。また、一定時間とあるが、厳密には投稿タイミングごとに数秒程度のランダム時間を付与した上で、自動投稿する、などといったものもある。なお、圧縮は、ある実施形態では、投稿データにおける本文内容（文字列）を結合し、一般的な圧縮アルゴリズムを用いて行う。そのため、平均圧縮率の計算は、同一のＳＮＳクライアントかつ同一のアカウントごとに、投稿データ中の本文内容を結合した上で圧縮し、それぞれの圧縮率に対し、同一のＳＮＳクライアントごとに平均値（これがＳＮＳクライアントごとの平均圧縮率である）をとることにより行われる。
【００３９】
一実施形態において、ＳＮＳクライアント集合Ｃに含まれるＳＮＳクライアントＣごとかつアカウントごとの平均圧縮率Ｖ1Ｃ(ｃ∈Ｃ)は、次の数式により算出することができる。
【００４０】
【数１】
0006306951.tif 000002
【００４１】
ここで、aveａ∈Ａ()は、アカウント集合Ａに含まれるアカウントａごとに、引数の平均値を算出することを表す。また、ｚｉｐ（ｓｔｒ）は文字列ｓｔｒに対して圧縮処理を行うことを表す。Ｔｗ(Ｃ,ａ)はＳＮＳクライアントＣがアカウントａにより投稿した投稿データ集合である。Σｔ∈Ｔｗ(Ｃ,ａ)ｓｔｒ(ｔ)は、投稿データ集合Ｔｗ(Ｃ,ａ)に含まれる投稿データｔの全ての文字列ｓｔｒを連結することを表す。
【００４２】
総圧縮率は、ＳＮＳクライアントごとに投稿データを圧縮した際の圧縮率である。同一のＳＮＳクライアントを使用するユーザ間で類似する投稿を行った場合に圧縮率は高くなる。総圧縮率の計算は、同一のＳＮＳクライアントごとに投稿データ中の本文内容を結合した上で圧縮することにより行われ、それぞれの圧縮率が、ＳＮＳクライアントごとの総圧縮率である。
【００４３】
一実施形態において、ＳＮＳクライアント集合Ｃに含まれるＳＮＳクライアントＣごとの総圧縮率Ｖ2Ｃ(ｃ∈Ｃ)は、次の数式により算出することができる。
【００４４】
【数２】
0006306951.tif 000003
【００４５】
各表記の意味は、平均圧縮率Ｖ1Ｃ(ｃ∈Ｃ)の説明において示した通りである。
【００４６】
投稿間隔平均標準偏差は、投稿データ中の投稿日時から、ＳＮＳクライアントおよびアカウントごとに投稿間隔を算出し、それぞれの標準偏差から算出されるＳＮＳクライアントごとの平均値である。ＳＮＳクライアントが、一定時間ごとに自動投稿するbotアプリケーションの場合は、投稿間隔が一定であるため、投稿間隔にばらつきが少なく、標準偏差およびその平均値も小さくなる。なお、ここで標準偏差を用いているのは、現在のbotアプリケーションには、一定時間ごとに投稿するものであっても、厳密には、投稿タイミングごとに数秒程度のランダム時間を付与した上で、自動投稿するものもあるためである。投稿間隔平均標準偏差の計算は、同一のＳＮＳクライアントかつ同一のアカウントごとに、投稿データから取得された投稿日時を時系列に並べた上で、投稿間隔を算出し、当該投稿間隔の標準偏差を求め、それぞれの標準偏差に対し、同一のＳＮＳクライアントごとに平均値（これがＳＮＳクライアントごとの投稿間隔平均標準偏差である）をとることにより行われる。
【００４７】
一実施形態において、ＳＮＳクライアント集合Ｃに含まれるＳＮＳクライアントＣごとかつアカウントごとの投稿間隔平均標準偏差Ｖ3Ｃ(ｃ∈Ｃ)は、次の数式により算出することができる。
【００４８】
【数３】
0006306951.tif 000004
【００４９】
ここで、aveａ∈Ａ()は、アカウント集合Ａに含まれるアカウントａごとに、引数の平均値を算出することを表す。また、stddevｔ∈Ｔｗ(Ｃ,ａ)()は、ＳＮＳクライアントＣごとかつアカウントａごとの投稿データ集合Ｔｗ(Ｃ,ａ)に含まれる投稿データｔごとに、引数の標準偏差を算出することを表す。ｍｉｎｕ ｔ ｅｄｉｆｆ(ｔｉ,ｔj)は、投稿データｔｉとｔｊとの投稿時間の差を分単位で算出することを表す。
【００５０】
平均投稿数は、ＳＮＳクライアントおよびアカウントごとに算出される投稿数（投稿数）の、ＳＮＳクライアントごとの平均投稿数である。キャンペーン用の投稿を行うアプリケーションは、投稿数が少なくなる傾向がある。平均投稿数の計算は、同一のＳＮＳクライアントかつ同一のアカウントごとに、投稿数をカウントし、同一のＳＮＳクライアントごとに平均値（これがＳＮＳクライアントごとの平均投稿数である）をとることにより行われる。
【００５１】
一実施形態において、ＳＮＳクライアント集合Ｃに含まれるＳＮＳクライアントＣごとかつアカウントごとの平均投稿数Ｖ4Ｃ(ｃ∈Ｃ)は、次の数式により算出することができる。
【００５２】
【数４】
0006306951.tif 000005
【００５３】
ここで、aveａ∈Ａ()は、アカウント集合Ａに含まれるアカウントａごとに、引数の平均値を算出することを表す。また、ｎ(Ｔｗ(Ｃ,ａ))は、ＳＮＳクライアントＣごとかつアカウントａごとの投稿データ集合Ｔｗ(Ｃ,ａ)の要素数である。
【００５４】
図６の処理フローに戻り、ステップ１０３において各特徴量を算出すると、教師データ生成手段１２３は、ステップ１０２で生成されたＳＮＳクライアントデータ、およびステップ１０３で算出された各特徴量から教師データ（図３）を生成する（ステップ１０４）。生成された教師データは、教師データ記憶部１３１に格納される。図３における「クライアント名」および「カテゴリＩＤ」は、ＳＮＳクライアントデータ（図２）からコピーすることによりデータを格納することが出来る。なお、一実施形態において、「クライアント名」および「カテゴリＩＤ」の紐付けは分析担当者が行うこともできるまた、各特徴量（平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数）は、ステップ１０３において算出された値そのものである。
【００５５】
次に、分類モデルデータ生成手段１２４は、ステップ１０４で生成された教師データの各特徴量を説明変数、およびカテゴリＩＤを目的変数として、分類（学習）モデルデータ（図５）を生成する（ステップ１０５）。生成された分類モデルデータは、分類モデルデータ記憶部１３２に格納される。分類モデルデータから示すことができる分類モデル（図４）は、いわゆる決定木であり、一般的な決定木生成アルゴリズムを用いて生成される。分類モデルデータの詳細説明、および分類モデルデータと分類モデルの関係については上述した通りである。また、分類モデル生成時の説明変数として用いられる各特徴量は、必ずしも全てを用いる必要はない。例えば、平均圧縮率および総圧縮率のみを説明変数として、学習モデルを生成することもできる。ステップ１０５の後、本処理は終了する。
【００５６】
次に、本発明のＳＮＳクライアント分類処理について流れに沿って説明する。図７は、本発明の一実施形態に係るＳＮＳクライアント分類処理を示すフローチャートである。まず、ステップ２０１にて、投稿データ取得手段１２０は、分類対象とするＳＮＳクライアントに係る投稿データ（以下、分類対象投稿データという）を投稿データ記憶部１３３から取得する。投稿データについての説明は、ステップ１０１のものと同様である。
【００５７】
次に、分類対象投稿データを取得すると、特徴量算出手段１２２は、取得された分類対象投稿データからＳＮＳクライアント名、アカウント名、本文内容、投稿日時などを抽出し、各特徴量（平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数）を算出する（ステップ２０２）。各特徴量についての説明もステップ１０３のものと同様である。
【００５８】
分類対象投稿データの各特徴量を算出すると、ＳＮＳクライアント分類手段１２５は、算出された各特徴量を、ステップ１０５で生成した分類モデルのインプットとして、分類対象のＳＮＳクライアントを分類する。分類方法は、分類モデルにおける各ノード（終端ノードを除く）および各ノードに対するエッジを条件式（例えば、if文や、switch文）として考え、分類対象のＳＮＳクライアントの各特徴量を用いて、ルートノードから各条件に沿って進み、いずれかの終端ノードに辿りつくことにより行われる。辿りついた終端ノードに係るカテゴリが、分類対象のＳＮＳクライアントが分類されたカテゴリである。
【００５９】
ステップ２０３において、分類対象のＳＮＳクライアントが分類されると、ＳＮＳクライアント分類手段１２５は、その分類結果（カテゴリＩＤおよびカテゴリ名）、およびステップ２０２で算出された各特徴量を、ＳＮＳクライアントデータ記憶部１３０、および教師データ生成手段１２３に反映することができる（ステップ２０４および２０５）。これにより、再度、分類モデル生成処理（図６）を実行することにより、分類モデルを更新（学習）することもできる。ステップ２０５の後、本処理は終了する。なお、初期値のまま分類モデルを更新しない場合は、ステップ２０４および２０５は実施せず、ステップ２０３の後、本処理は終了する。
【００６０】
なお、分類モデルを更新（学習）するか否か、どのような学習を行うかについては、所定のルールに従って、実行する学習パターンを判断することができる。図８は、本発明の一実施形態における実行する学習パターンの判断方法を示すフローチャートである。まず、ステップ３０１において、分析する投稿データの投稿期間が一定範囲の固定か否かを判断する。様々な投稿期間のデータに対して繰り返し分析を行う場合は、Ｎｏルートに進む。一方、分析する投稿データの投稿期間が一定範囲の固定であると判断されると、Ｙｅｓルートに進み、以下の実行パターン１（非学習パターン）のルールに則って、図７の分類処理を実行することができる。
【００６１】
実行パターン１（非学習パターン）
一度、分類モデルを生成した後、当該分類モデルを用いてＳＮＳクライアントを分類するが、分類モデルの学習は行わない。すなわち、分類結果や各特徴量の反映（ステップ２０４および２０５の実行）をせず、分類モデル生成処理（図６）が初回時に実行されるのみである。
【００６２】
一方、ステップ３０１において、分析する投稿データの投稿期間が一定範囲の固定でないと判断されると、Ｎｏルートに進み、過去データの保存領域が十分に確保できるか否かを判断する（ステップ３０２）。分類モデルの学習の際、過去データを用いることで、より精度の高い分類や、細かい分類が可能となる。しかしながら、そのためには過去データを保存しておくデータ領域が必要となる。過去データの保存量は、求める分類の精度などに基づいて定めることができ、過去データが定めた保存量を上回る場合は、古いものから順に削除することが出来る。
【００６３】
ステップ３０２において、過去データの保存領域が十分に確保できないと判断されると、Ｎｏルートに進み、以下の実行パターン２（未分類ＳＮＳクライアント学習パターン）のルールに則って、図７の分類処理を実行することができる。
【００６４】
実行パターン２（未分類ＳＮＳクライアント学習パターン）
第１の期間を対象として分類モデルを用いてＳＮＳクライアントを分類した後、第１の期間とは別の第２の期間に未知のＳＮＳクライアントが所定数以上発生したことを条件に、第２の期間を対象としてＳＮＳクライアントの分類を行う。第２の期間を対象とした分類の際、分類対象が既知のＳＮＳクライアントの場合は、前回の分類において既に教師データ記憶部１３１に格納されている各特徴量を用いて分類モデルの更新を行う。一方、分類対象が未知のＳＮＳクライアントの場合は、投稿データ記憶部１３３に格納された投稿データから各特徴量を算出する。更新した分類モデルのインプットとして、算出した未知のＳＮＳクライアントの各特徴量を用いて、未知のＳＮＳクライアントの分類を行う。
【００６５】
一方、ステップ３０２において、過去データの保存領域が十分に確保できると判断されると、Ｙｅｓルートに進み、投稿データに対するより精度の高い分類が必要か否かを判断する（ステップ３０３）。ステップ３０３において、投稿データに対するより精度の高い分類が必要ないと判断されると、Ｎｏルートに進み、以下の実行パターン３（全学習パターン）のルールに則って、図７の分類処理を実行することができる。
【００６６】
実行パターン３（全学習パターン）
第１の期間を対象として分類モデルを用いてＳＮＳクライアントを分類した後、第１の期間とは別の第２の期間に投稿データが所定数以上発生したことを条件に、第２の期間を対象としてＳＮＳクライアントの分類を行う。第２の期間を対象とした分類の際、分類対象のＳＮＳクライアントが既知であるか未知であるかに関わらず、投稿データ記憶部１３３に格納された投稿データから各特徴量を算出する。前回の分類において既に教師データ記憶部１３１に格納されている各特徴量を用いて分類モデルの更新を行い、更新した分類モデルのインプットとして、算出した既知および未知のＳＮＳクライアントの各特徴量を用いて、既知および未知のＳＮＳクライアントの分類を行う。
【００６７】
なお、図８に示す実行する学習パターンの判断方法は、あくまでも一実施形態であり、本発明は、これらの判断および学習パターンに限定されない。また、投稿データの分析に対して過去データを考慮したり、分析を所定の期間別に行ったりすることで、以下のようにＳＮＳクライアントをさらに細かく分類することもできる。
【００６８】
実行パターン４（過去データ考慮学習パターン）
分類モデルを用いてＳＮＳクライアントを分類した後、当該ＳＮＳクライアント分類結果が以前の分類結果と同一であった場合、分類結果および各特徴量の反映を行い、再度、分類モデル生成処理を実行することで、分類モデルの学習を行う。ＳＮＳクライアント分類結果が以前の分類結果と同一である場合のみ学習が行われるため、分類結果のブレに対応することができ、より精度の高い分類が可能となる。
【００６９】
実行パターン５（期間別分類パターン）
ＳＮＳクライアントデータ（図２）および教師データ（図３）に期間の概念を持たせ、期間ごとに分類する。すなわち、同一のＳＮＳクライアントであっても、期間ごとに、当該期間における投稿データから各特徴量が算出され、個別のカテゴリに分類される。例えば、ＳＮＳクライアント「Patent」は、期間「２０１４年３月」においてはカテゴリ「本人」であるが、「２０１４年４月」では、カテゴリ「自動投稿」であるといった分類をすることができる。
【図１】
0006306951.tif 000006
【図２】
0006306951.tif 000007
【図３】
0006306951.tif 000008
【図４】
0006306951.tif 000009
【図５】
0006306951.tif 000010
【図６】
0006306951.tif 000011
【図７】
0006306951.tif 000012
【図８】
0006306951.tif 000013