【文献】
豊田 正史,検索エンジンスパムとその対策技術,人工知能学会誌 第23巻 第6号,日本,(社)人工知能学会,2008年11月 1日,第23巻,第6号,p.760−766
【文献】
西田 京介、外3名,データ圧縮によるTwitterのツイート話題分類,第3回データ工学と情報マネジメントに関するフォーラム 論文集,日本,電子情報通信学会データ工学専門委員会,2011年 8月 4日,p.1−7
(58)【調査した分野】(Int.Cl.,DB名)
前記特徴量は、平均投稿数をさらに含み、前記平均投稿数は、前記SNSクライアント識別子および前記アカウント識別子ごとに算出される投稿数の、前記SNSクライアント識別子ごとの平均投稿数であることを特徴とする請求項1に記載の方法。
前記抽出することは、前記取得した投稿データからさらに投稿日時を抽出することを含み、前記特徴量は、投稿間隔平均標準偏差をさらに含み、前記投稿間隔平均標準偏差は、前記投稿日時から、前記SNSクライアント識別子および前記アカウント識別子ごとに投稿間隔を算出し、それぞれの標準偏差から算出される前記SNSクライアント識別子ごとの平均値であることを特徴とする請求項2に記載の方法。
ソーシャルネットワークサービス(SNS)における投稿データに基づいて、前記投稿データを出力するSNSクライアントを分類する方法をコンピュータに実行させるコンピュータ実行可能命令を有するコンピュータプログラムであって、前記コンピュータプログラムは、前記コンピュータに、
前記投稿データを取得させ、
前記取得した投稿データから、SNSクライアント識別子、アカウント識別子、および本文内容を少なくとも抽出させ、前記SNSクライアントごとの特徴量を算出させ、前記特徴量は、平均圧縮率および総圧縮率を少なくとも含み、前記平均圧縮率は、前記SNSクライアント識別子および前記アカウント識別子ごとに、前記本文内容を結合し、かつ圧縮した場合の、前記SNSクライアント識別子ごとの平均圧縮率であり、前記総圧縮率は、前記SNSクライアント識別子ごとに前記本文内容を結合し、かつ圧縮した場合の圧縮率であり、
前記特徴量を学習モデルのインプットデータとして、前記取得した投稿データを出力したSNSクライアントを分類させ、前記学習モデルは、前記SNSにおける投稿データから複数の前記SNSクライアントの前記特徴量を説明変数、および前記SNSクライアントの分類を目的変数として生成される
ことを特徴とするコンピュータプログラム。
ソーシャルネットワークサービス(SNS)における投稿データに基づいて、前記投稿データを出力するSNSクライアントを分類するサーバコンピュータであって、前記サーバコンピュータは、
前記投稿データを取得する手段と、
前記取得した投稿データから、SNSクライアント識別子、アカウント識別子、および本文内容を少なくとも抽出し、前記SNSクライアントごとの特徴量を算出する手段であって、前記特徴量は、平均圧縮率および総圧縮率を少なくとも含み、前記平均圧縮率は、前記SNSクライアント識別子および前記アカウント識別子ごとに、前記本文内容を結合し、かつ圧縮した場合の、前記SNSクライアント識別子ごとの平均圧縮率であり、前記総圧縮率は、前記SNSクライアント識別子ごとに前記本文内容を結合し、かつ圧縮した場合の圧縮率である、手段と、
前記特徴量を学習モデルのインプットデータとして、前記取得した投稿データを出力したSNSクライアントを分類する手段であって、前記学習モデルは、前記SNSにおける投稿データから複数の前記SNSクライアントの前記特徴量を説明変数、および前記SNSクライアントの分類を目的変数として生成される、手段と
を備えたことを特徴とするサーバコンピュータ。
【発明を実施するための形態】
【0013】
以下、添付した図面を参照して、SNSにおける投稿データに基づいて、当該投稿データを出力するSNSクライアントを目的別に分類するための分類モデルを生成し、未知のSNSクライアントを分類することができるSNSクライアント分類システムおよび方法を詳細に説明する。
【0014】
まず始めに、本システムの概要を説明する。
図1は、本発明の一実施形態に係るシステム構成を示す図である。
図1において、データセンタなどに設置された、各SNS提供企業などが管理するSNS投稿データ蓄積サーバ100は、インターネット104を介して、ユーザ端末102a、102b・・・、および102n(以下、まとめて「ユーザ端末102」という)、ならびにモバイル端末103a、103b・・・、および103n(以下、まとめて「モバイル端末103」という)と通信を行うように構成されている。
【0015】
SNSを利用するユーザは、ユーザ端末102、またはモバイル端末103を使用して各SNS投稿データ蓄積サーバ100が提供するSNSを利用する。各ユーザにより投稿された投稿データは、SNS投稿データ蓄積サーバ100に送信され、そのデータベースに集約される。なお、SNS投稿データ蓄積サーバ100は、
図1において、単一のサーバとして示されているが、複数台のサーバによる分散システムとして構成することも可能である。また、SNS投稿データ蓄積サーバ100は、SNSクライアントごとに存在するため、実際は、インターネット104に多くのSNS投稿データ蓄積サーバ100が接続されている。
【0016】
また、インターネット104には、SNSクライアント分類サーバ101が接続されている。各SNS投稿データ蓄積サーバ100に集約された投稿データは、SNSクライアント分類サーバ101に送信され、SNSクライアント分類サーバ101上で分類モデルを用いて、SNSクライアント単位に分類される。
【0017】
次に、SNSクライアント分類サーバ101の構成を詳細に説明する。なお、
図1では、単一のサーバコンピュータを想定し、必要な機能構成だけを示している。
【0018】
SNSクライアント分類サーバ101は、CPU110に、システムバス115を介してRAM111、入力装置112、出力装置113、通信制御装置114、および不揮発性記憶媒体(ROMやHDDなど)で構成される記憶装置116が接続された構成を有する。記憶装置116は、SNSクライアント分類システムの各機能を奏するためのソフトウェアプログラムを格納するプログラム格納領域と、当該ソフトウェアプログラムが取り扱うデータを格納するデータ格納領域とを備えている。以下に説明するプログラム格納領域の各手段は、実際は独立したソフトウェアプログラム、そのルーチンやコンポーネントなどであり、CPU110によって記憶装置116から呼び出された後、RAM111のワークエリアに展開され、かつデータベースなどを適宜参照しながら順次実行されることで、各機能を奏するものである。
【0019】
記憶装置116におけるデータ格納領域は、本発明に関連するものだけを列挙すると、SNSクライアントデータ記憶部130、教師データ記憶部131、分類モデルデータ記憶部132、および投稿データ記憶部133を備える。いずれも、記憶装置116内に確保された一定の記憶領域である。
【0020】
SNSクライアントデータ記憶部130は、投稿データを出力するSNSクライアント(例えば、Twitterなどのアプリケーション)に関するデータを格納する。
図2は、本発明の一実施形態に係るSNSクライアントデータ記憶部130に格納されたデータを示す図である。
図2におけるSNSクライアントデータは、SNSクライアントの名称を示す「クライアント名」、SNSクライアントを目的別に分類する「カテゴリID」とその内容を示す「カテゴリ名」を含む。「カテゴリID」は、例えば、SNSクライアントが、Twitterなどのユーザ本人による投稿データを出力する投稿アプリケーションの場合は「1」、ゲームアプリケーションのハイスコア取得などユーザの行動に伴う投稿データを出力する行動記録アプリケーションの場合は「2」、キャンペーン用の投稿データを出力する各企業の専用アプリケーションの場合は「3」、一定時間ごとに辞書に登録された定型文を自動出力するbotアプリケーションの場合は「4」を格納する。この場合、カテゴリIDの数値が少ないほど、ユーザ意思が強い投稿データを出力するSNSクライアントであると考えることができる。そのため、例えば、ユーザ意思の弱いカテゴリID「4」の投稿データはノイズデータであると考えられ、フィルタリングにより非表示対象にするなどといった実施形態が想定される。なお、SNSクライアントデータは、投稿データに含まれる「クライアント名」を抽出することにより生成されるが、抽出時点では「カテゴリID」および「カテゴリ名」を定めることができないため、両項目はデータレコード生成時点では空データである。レコード生成後、管理者などにより、「カテゴリID」および「カテゴリ名」に対しある程度のデータ(全てである必要はなく、学習に必要な最低限のデータであればよい)が手動登録され、後述する学習処理を行うことで、学習後のデータを改めて登録することもできる。
【0021】
教師データ記憶部131は、分類モデルに対する教師データを格納する。
図3は、本発明の一実施形態に係る教師データ記憶部131に格納されたデータを示す図である。
図3における教師データは、「クライアント名」、各特徴量、および「カテゴリID」を含む。各特徴量は、「平均圧縮率」、「総圧縮率」、「投稿間隔平均標準偏差」、および「平均投稿数」であり、これらが分類モデルを生成するための説明変数となる。なお、各特徴量の算出については後述する。また、各特徴量の説明変数に対し、「カテゴリID」が目的変数となる。これらに基づいて、次項に示す分類モデルデータが生成されることになる。なお、本データにおけるカテゴリIDについても、前項のSNSクライアントデータのカテゴリID同様、後述する学習処理を行うことで、学習後のデータを改めて登録することもできる。
【0022】
分類モデルデータ記憶部132は、教師データに基づいて生成される学習(分類)モデルデータを格納する。本発明における分類モデルは、説明変数(特徴量)をインプットとし、説明変数によって目的変数(カテゴリID)が説明できるかを定量的に分析する(回帰分析)、二値分類器である。二値分類器は、様々な従来技術(線形回帰、決定木、ロジスティック回帰、ニューラルネットワーク、サポートベクターマシン(SVM)、パーセプトロンなど)を用いて実現することができる。
【0023】
図5は、本発明の一実施形態に係る分類モデルデータ記憶部132に格納されたデータを示す図である。また、
図4は、本発明の一実施形態に係る分類モデルを示す図である。
図4の分類モデルには決定木を用いている。
図4の分類モデルに対応するデータが
図5の分類モデルデータである。
図5における分類モデルデータは、各ツリーノードを一意に識別させる「ノードID」、各ノードIDの親ノードIDを示す「親ノードID」、同一の親ノードを持つノード間の順序を示す「兄弟間順序」、各ノード内容を示す「内容」、および「カテゴリID」を含む。「兄弟間順序」は、本実施形態では、同一の親ノードに対してYesのエッジにぶら下がるノードを「1」、Noのエッジにぶら下がるノードを「2」としている。同一の親ノードに対してエッジの種類がさらに多い場合は、例えば、左のノードから1、2、3・・・と番号を割り当てることができる。
【0024】
図5の分類モデルを用いて
図4の分類モデルデータを説明すると、ルートノード[平均圧縮率<0.78]は「ノードID」が「0」であり、親ノードは存在しないため、「親ノードID」および「兄弟間順序」は空データである。
【0025】
次に、ルートノードの子ノードである「平均投稿数<5」および「平均投稿数<2.7」の「ノードID」は、各々、「1」および「6」である。両ノードの「親ノードID」は、ルートノードである「0」が格納される。また、「兄弟間順序」は、各々、Yesのエッジにぶら下がるノード「平均投稿数<5」は「1」、Noのエッジにぶら下がるノード「平均投稿数<2.7」は「2」が格納される。
【0026】
同様に、ノード「平均投稿数<5」の子ノードである「自動投稿」および「総圧縮率<=0.55」の「ノードID」は、各々、「2」および「3」である。ここで、ノード「自動投稿」は、終端ノード(
図4上では二重線のブロックとして示される)であり、学習対象であるSNSクライアントが、カテゴリID「4」で示されるbotアプリケーションに分類されることを示す。そのため、「カテゴリID」には「4」が格納される。その他のノードも、同様に構成される。なお、
図2、3、および5における各データは一実施形態であり、データ項目の追加、削除を妨げるものではない。
【0027】
投稿データ記憶部133は、各SNS投稿データ蓄積サーバ100から提供された投稿データを格納する。投稿データについては後述する。
【0028】
次に、記憶装置116におけるプログラム格納領域に格納されているソフトウェアプログラムは、本発明に関連するものだけを列挙すると、投稿データ取得手段120、SNSクライアントデータ生成手段121、特徴量算出手段122、教師データ生成手段123、分類モデルデータ生成手段124、およびSNSクライアント分類手段125を備えている。これらの手段は、CPU110によって実行される。
【0029】
投稿データ取得手段120は、各SNS投稿データ蓄積サーバ100から提供され、投稿データ記憶部133に格納されている投稿データを取得する。
【0030】
SNSクライアントデータ生成手段121は、取得された投稿データからSNSクライアント名を抽出し、当該SNSクライアント名に基づいてSNSクライアントデータを生成し、SNSクライアントデータ記憶部130に格納する。
【0031】
特徴量算出手段122は、取得された投稿データからSNSクライアント識別子、アカウント識別子、本文内容、および投稿日時などを抽出し、各特徴量(平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数)を算出する。
【0032】
教師データ生成手段123は、生成されたSNSクライアントデータおよび算出された各特徴量から教師データを生成し、教師データ生成手段123に格納する。
【0033】
分類モデルデータ生成手段124は、教師データの各特徴量を説明変数、およびカテゴリIDを目的変数として、分類(学習)モデルデータを生成し、分類モデルデータ記憶部132に格納する。
【0034】
SNSクライアント分類手段125は、分類対象のSNSクライアントに係る各特徴量を分類モデルのインプットとして、SNSクライアントを分類する。また、SNSクライアント分類手段125は、分類結果を、SNSクライアントデータ記憶部130、および教師データ生成手段123に反映することもできる。
【0035】
次に、本発明の分類モデル生成処理について流れに沿って説明する。
図6は、本発明の一実施形態に係る分類モデル生成処理を示すフローチャートである。まず、ステップ101にて、投稿データ取得手段120は、各SNS投稿データ蓄積サーバ100から提供され、投稿データ記憶部133に格納されている投稿データを取得する。ここで、投稿データの取得は、一実施形態において、SNSクライアント名、アカウント名(投稿ユーザ名)、本文内容、投稿日時などがソースコード中に埋め込まれた電子ファイルを、SNS投稿データ蓄積サーバ100から受信することである。なお、SNSクライアント名およびアカウント名は、それぞれ、SNSクライアントおよびアカウントを識別できるものであればよく、IDなどを含む任意の識別子のことである。また、投稿データの取得は、特定の期間に投稿されたデータなど取得条件を絞り込むことができる。他の実施形態では、投稿データ自体が予め絞り込まれたデータである。
【0036】
投稿データを取得すると、SNSクライアントデータ生成手段121は、取得された投稿データからSNSクライアント名を抽出し、当該SNSクライアント名に基づいて、SNSクライアントデータ(
図2)を生成する(ステップ102)。生成されたSNSクライアントデータは、SNSクライアントデータ記憶部130に格納される。ここで、SNSクライアントデータにおける「カテゴリID」および「カテゴリ名」は、データ生成時点では未だ分類されていないため、空データである。しかしながら、以降の分類(学習)処理のため、SNSクライアントデータの全て、または所在が明らかな一部のSNSクライアントに係るデータの「カテゴリID」および「カテゴリ名」に対し、データを手動登録することができる。この手動登録したカテゴリデータを初期値として、以降の分類(学習)を行うことになる。
【0037】
次に、投稿データを取得すると、特徴量算出手段122は、取得された投稿データからSNSクライアント名、アカウント名、本文内容、投稿日時などを抽出し、各特徴量(平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数)を算出する(ステップ103)。各特徴量を詳細に説明する。
【0038】
平均圧縮率は、SNSクライアントおよびアカウントごとに、投稿データ(本文内容)を圧縮した場合の、SNSクライアントごとの平均圧縮率である。同一アカウントが、所定のSNSクライアントを用いて同一または類似する投稿をした場合、圧縮率が高くなり(圧縮後のファイルサイズが小さくなり)、このようなSNSクライアントおよびアカウントの組み合わせが多い場合、それらの平均圧縮率も高くなる。例えば、SNSクライアントが、一定時間ごとに辞書に登録された定型文を自動出力するbotアプリケーションである場合は、アカウント毎の投稿データが同一または類似する傾向にあり、その圧縮率も高くなる。なお、botアプリケーションは、一定時間ごとのみならず、指定日時などユーザが予め設定したタイミングで、設定した内容を投稿できるものである。また、一定時間とあるが、厳密には投稿タイミングごとに数秒程度のランダム時間を付与した上で、自動投稿する、などといったものもある。なお、圧縮は、ある実施形態では、投稿データにおける本文内容(文字列)を結合し、一般的な圧縮アルゴリズムを用いて行う。そのため、平均圧縮率の計算は、同一のSNSクライアントかつ同一のアカウントごとに、投稿データ中の本文内容を結合した上で圧縮し、それぞれの圧縮率に対し、同一のSNSクライアントごとに平均値(これがSNSクライアントごとの平均圧縮率である)をとることにより行われる。
【0039】
一実施形態において、SNSクライアント集合Cに含まれるSNSクライアントCごとかつアカウントごとの平均圧縮率V
1C(c∈C)は、次の数式により算出することができる。
【0041】
ここで、ave
a∈A()は、アカウント集合Aに含まれるアカウントaごとに、引数の平均値を算出することを表す。また、zip(str)は文字列strに対して圧縮処理を行うことを表す。Tw(C,a)はSNSクライアントCがアカウントaにより投稿した投稿データ集合である。Σ
t∈Tw(C,a)str(t)は、投稿データ集合Tw(C,a)に含まれる投稿データtの全ての文字列strを連結することを表す。
【0042】
総圧縮率は、SNSクライアントごとに投稿データを圧縮した際の圧縮率である。同一のSNSクライアントを使用するユーザ間で類似する投稿を行った場合に圧縮率は高くなる。総圧縮率の計算は、同一のSNSクライアントごとに投稿データ中の本文内容を結合した上で圧縮することにより行われ、それぞれの圧縮率が、SNSクライアントごとの総圧縮率である。
【0043】
一実施形態において、SNSクライアント集合Cに含まれるSNSクライアントCごとの総圧縮率V
2C(c∈C)は、次の数式により算出することができる。
【0045】
各表記の意味は、平均圧縮率V
1C(c∈C)の説明において示した通りである。
【0046】
投稿間隔平均標準偏差は、投稿データ中の投稿日時から、SNSクライアントおよびアカウントごとに投稿間隔を算出し、それぞれの標準偏差から算出されるSNSクライアントごとの平均値である。SNSクライアントが、一定時間ごとに自動投稿するbotアプリケーションの場合は、投稿間隔が一定であるため、投稿間隔にばらつきが少なく、標準偏差およびその平均値も小さくなる。なお、ここで標準偏差を用いているのは、現在のbotアプリケーションには、一定時間ごとに投稿するものであっても、厳密には、投稿タイミングごとに数秒程度のランダム時間を付与した上で、自動投稿するものもあるためである。投稿間隔平均標準偏差の計算は、同一のSNSクライアントかつ同一のアカウントごとに、投稿データから取得された投稿日時を時系列に並べた上で、投稿間隔を算出し、当該投稿間隔の標準偏差を求め、それぞれの標準偏差に対し、同一のSNSクライアントごとに平均値(これがSNSクライアントごとの投稿間隔平均標準偏差である)をとることにより行われる。
【0047】
一実施形態において、SNSクライアント集合Cに含まれるSNSクライアントCごとかつアカウントごとの投稿間隔平均標準偏差V
3C(c∈C)は、次の数式により算出することができる。
【0049】
ここで、ave
a∈A()は、アカウント集合Aに含まれるアカウントaごとに、引数の平均値を算出することを表す。また、stddev
t∈Tw(C,a)()は、SNSクライアントCごとかつアカウントaごとの投稿データ集合Tw(C,a)に含まれる投稿データtごとに、引数の標準偏差を算出することを表す。minu t ediff(t
i,t
j)は、投稿データt
iとt
jとの投稿時間の差を分単位で算出することを表す。
【0050】
平均投稿数は、SNSクライアントおよびアカウントごとに算出される投稿数(投稿数)の、SNSクライアントごとの平均投稿数である。キャンペーン用の投稿を行うアプリケーションは、投稿数が少なくなる傾向がある。平均投稿数の計算は、同一のSNSクライアントかつ同一のアカウントごとに、投稿数をカウントし、同一のSNSクライアントごとに平均値(これがSNSクライアントごとの平均投稿数である)をとることにより行われる。
【0051】
一実施形態において、SNSクライアント集合Cに含まれるSNSクライアントCごとかつアカウントごとの平均投稿数V
4C(c∈C)は、次の数式により算出することができる。
【0053】
ここで、ave
a∈A()は、アカウント集合Aに含まれるアカウントaごとに、引数の平均値を算出することを表す。また、n(Tw(C,a))は、SNSクライアントCごとかつアカウントaごとの投稿データ集合Tw(C,a)の要素数である。
【0054】
図6の処理フローに戻り、ステップ103において各特徴量を算出すると、教師データ生成手段123は、ステップ102で生成されたSNSクライアントデータ、およびステップ103で算出された各特徴量から教師データ(
図3)を生成する(ステップ104)。生成された教師データは、教師データ記憶部131に格納される。
図3における「クライアント名」および「カテゴリID」は、SNSクライアントデータ(
図2)からコピーすることによりデータを格納することが出来る。なお、一実施形態において、「クライアント名」および「カテゴリID」の紐付けは分析担当者が行うこともできるまた、各特徴量(平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数)は、ステップ103において算出された値そのものである。
【0055】
次に、分類モデルデータ生成手段124は、ステップ104で生成された教師データの各特徴量を説明変数、およびカテゴリIDを目的変数として、分類(学習)モデルデータ(
図5)を生成する(ステップ105)。生成された分類モデルデータは、分類モデルデータ記憶部132に格納される。分類モデルデータから示すことができる分類モデル(
図4)は、いわゆる決定木であり、一般的な決定木生成アルゴリズムを用いて生成される。分類モデルデータの詳細説明、および分類モデルデータと分類モデルの関係については上述した通りである。また、分類モデル生成時の説明変数として用いられる各特徴量は、必ずしも全てを用いる必要はない。例えば、平均圧縮率および総圧縮率のみを説明変数として、学習モデルを生成することもできる。ステップ105の後、本処理は終了する。
【0056】
次に、本発明のSNSクライアント分類処理について流れに沿って説明する。
図7は、本発明の一実施形態に係るSNSクライアント分類処理を示すフローチャートである。まず、ステップ201にて、投稿データ取得手段120は、分類対象とするSNSクライアントに係る投稿データ(以下、分類対象投稿データという)を投稿データ記憶部133から取得する。投稿データについての説明は、ステップ101のものと同様である。
【0057】
次に、分類対象投稿データを取得すると、特徴量算出手段122は、取得された分類対象投稿データからSNSクライアント名、アカウント名、本文内容、投稿日時などを抽出し、各特徴量(平均圧縮率、総圧縮率、投稿間隔平均標準偏差、平均投稿数)を算出する(ステップ202)。各特徴量についての説明もステップ103のものと同様である。
【0058】
分類対象投稿データの各特徴量を算出すると、SNSクライアント分類手段125は、算出された各特徴量を、ステップ105で生成した分類モデルのインプットとして、分類対象のSNSクライアントを分類する。分類方法は、分類モデルにおける各ノード(終端ノードを除く)および各ノードに対するエッジを条件式(例えば、if文や、switch文)として考え、分類対象のSNSクライアントの各特徴量を用いて、ルートノードから各条件に沿って進み、いずれかの終端ノードに辿りつくことにより行われる。辿りついた終端ノードに係るカテゴリが、分類対象のSNSクライアントが分類されたカテゴリである。
【0059】
ステップ203において、分類対象のSNSクライアントが分類されると、SNSクライアント分類手段125は、その分類結果(カテゴリIDおよびカテゴリ名)、およびステップ202で算出された各特徴量を、SNSクライアントデータ記憶部130、および教師データ生成手段123に反映することができる(ステップ204および205)。これにより、再度、分類モデル生成処理(
図6)を実行することにより、分類モデルを更新(学習)することもできる。ステップ205の後、本処理は終了する。なお、初期値のまま分類モデルを更新しない場合は、ステップ204および205は実施せず、ステップ203の後、本処理は終了する。
【0060】
なお、分類モデルを更新(学習)するか否か、どのような学習を行うかについては、所定のルールに従って、実行する学習パターンを判断することができる。
図8は、本発明の一実施形態における実行する学習パターンの判断方法を示すフローチャートである。まず、ステップ301において、分析する投稿データの投稿期間が一定範囲の固定か否かを判断する。様々な投稿期間のデータに対して繰り返し分析を行う場合は、Noルートに進む。一方、分析する投稿データの投稿期間が一定範囲の固定であると判断されると、Yesルートに進み、以下の実行パターン1(非学習パターン)のルールに則って、
図7の分類処理を実行することができる。
【0061】
実行パターン1(非学習パターン)
一度、分類モデルを生成した後、当該分類モデルを用いてSNSクライアントを分類するが、分類モデルの学習は行わない。すなわち、分類結果や各特徴量の反映(ステップ204および205の実行)をせず、分類モデル生成処理(
図6)が初回時に実行されるのみである。
【0062】
一方、ステップ301において、分析する投稿データの投稿期間が一定範囲の固定でないと判断されると、Noルートに進み、過去データの保存領域が十分に確保できるか否かを判断する(ステップ302)。分類モデルの学習の際、過去データを用いることで、より精度の高い分類や、細かい分類が可能となる。しかしながら、そのためには過去データを保存しておくデータ領域が必要となる。過去データの保存量は、求める分類の精度などに基づいて定めることができ、過去データが定めた保存量を上回る場合は、古いものから順に削除することが出来る。
【0063】
ステップ302において、過去データの保存領域が十分に確保できないと判断されると、Noルートに進み、以下の実行パターン2(未分類SNSクライアント学習パターン)のルールに則って、
図7の分類処理を実行することができる。
【0064】
実行パターン2(未分類SNSクライアント学習パターン)
第1の期間を対象として分類モデルを用いてSNSクライアントを分類した後、第1の期間とは別の第2の期間に未知のSNSクライアントが所定数以上発生したことを条件に、第2の期間を対象としてSNSクライアントの分類を行う。第2の期間を対象とした分類の際、分類対象が既知のSNSクライアントの場合は、前回の分類において既に教師データ記憶部131に格納されている各特徴量を用いて分類モデルの更新を行う。一方、分類対象が未知のSNSクライアントの場合は、投稿データ記憶部133に格納された投稿データから各特徴量を算出する。更新した分類モデルのインプットとして、算出した未知のSNSクライアントの各特徴量を用いて、未知のSNSクライアントの分類を行う。
【0065】
一方、ステップ302において、過去データの保存領域が十分に確保できると判断されると、Yesルートに進み、投稿データに対するより精度の高い分類が必要か否かを判断する(ステップ303)。ステップ303において、投稿データに対するより精度の高い分類が必要ないと判断されると、Noルートに進み、以下の実行パターン3(全学習パターン)のルールに則って、
図7の分類処理を実行することができる。
【0066】
実行パターン3(全学習パターン)
第1の期間を対象として分類モデルを用いてSNSクライアントを分類した後、第1の期間とは別の第2の期間に投稿データが所定数以上発生したことを条件に、第2の期間を対象としてSNSクライアントの分類を行う。第2の期間を対象とした分類の際、分類対象のSNSクライアントが既知であるか未知であるかに関わらず、投稿データ記憶部133に格納された投稿データから各特徴量を算出する。前回の分類において既に教師データ記憶部131に格納されている各特徴量を用いて分類モデルの更新を行い、更新した分類モデルのインプットとして、算出した既知および未知のSNSクライアントの各特徴量を用いて、既知および未知のSNSクライアントの分類を行う。
【0067】
なお、
図8に示す実行する学習パターンの判断方法は、あくまでも一実施形態であり、本発明は、これらの判断および学習パターンに限定されない。また、投稿データの分析に対して過去データを考慮したり、分析を所定の期間別に行ったりすることで、以下のようにSNSクライアントをさらに細かく分類することもできる。
【0068】
実行パターン4(過去データ考慮学習パターン)
分類モデルを用いてSNSクライアントを分類した後、当該SNSクライアント分類結果が以前の分類結果と同一であった場合、分類結果および各特徴量の反映を行い、再度、分類モデル生成処理を実行することで、分類モデルの学習を行う。SNSクライアント分類結果が以前の分類結果と同一である場合のみ学習が行われるため、分類結果のブレに対応することができ、より精度の高い分類が可能となる。
【0069】
実行パターン5(期間別分類パターン)
SNSクライアントデータ(
図2)および教師データ(
図3)に期間の概念を持たせ、期間ごとに分類する。すなわち、同一のSNSクライアントであっても、期間ごとに、当該期間における投稿データから各特徴量が算出され、個別のカテゴリに分類される。例えば、SNSクライアント「Patent」は、期間「2014年3月」においてはカテゴリ「本人」であるが、「2014年4月」では、カテゴリ「自動投稿」であるといった分類をすることができる。