(58)【調査した分野】(Int.Cl.,DB名)
前記再識別手段は、前記異なるユーザのデータを前記追加データとして使用する場合において、当該異なるユーザのデータの分類傾向に基づいて、前記識別関数を変更した関数を適用して分類を行う
ことを特徴とする請求項4に記載のデータ分類装置。
前記再識別手段は、前記出力値の絶対値が前記所定の閾値を超えない場合に、所定の時間又は所定の回数の範囲内で、前記追加データを使用した前記予測データの分類を複数回、繰り返し行う
ことを特徴とする請求項1ないし5のうちいずれか1項に記載のデータ分類装置。
前記追加データは、通信サービスに係る装置のログデータであり、前記再識別手段は、前記データ分類装置における再識別用データ格納部の中に優先度の高いログデータが存在するか否かを判定することにより、前記分類を行う
ことを特徴とする請求項1ないし6のうちいずれか1項に記載のデータ分類装置。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態で説明する予測データ、追加用データ、及びログデータは、通信システムの故障や性能低下等の予測を想定したデータになっているが、本発明は、このような分野に限らず、様々な分野に適用可能である。
【0015】
本実施の形態では、教師あり機械学習に基づき生成された識別関数を、予測したいデータ(予測データ)に適用した結果、予測データの予測結果が識別境界付近に存在する場合に、他のデータベースから得られる追加データを用いて再度識別を行うこととしている。以下、より詳細に説明する。
【0016】
(装置構成)
図2に、本実施の形態における文書分類装置100の構成図を示す。
図2に示すように、文書分類装置100は、学習データ格納部101、予測データ格納部102、再識別用データ格納部103、データ入力部104、形態素解析部105、特徴ベクトル化部106、識別関数生成部107、識別関数格納部108、識別部109、再識別部110、及び出力部111を有する。各機能部の概要は以下のとおりである。
【0017】
学習データ格納部101は、識別関数生成のもとなる学習データを格納する。予測データ格納部102は、識別関数を使用した分類の識別の対象となるデータを格納する。再識別用データ格納部103は、識別結果が識別境界付近である場合において再識別を行うために使用するデータを格納する。本実施の形態において、学習データ、予測データ、再識別用データはいずれもテキストのデータである。
【0018】
データ入力部104は、上記の各データを入力し、対応する格納部に格納する。形態素解析部105は、テキストの形態素解析を行い、当該テキストを単語に分ける。特徴ベクトル化部106は、形態素解析部105で得られたテキスト毎の形態素解析結果を入力し、テキスト毎の特徴ベクトルを算出する。
【0019】
識別関数生成部107は、教師あり機械学習の技術を用いて、特徴ベクトル化部106により得られた特徴ベクトル化された学習データから、予測データの分類を識別するための識別関数を生成する。なお、識別関数の生成には例えばサポートベクトルマシンのような従来技術を用いることができる。識別関数格納部108は、識別関数生成部107により生成された識別関数を格納する。
【0020】
識別部109は、特徴ベクトル化された予測データを識別関数に入力し、識別関数の出力値に基づいて、予測データの分類の識別を行う。再識別部110は、再識別用データを用いて再識別を行う。出力部111は、識別部109又は再識別部110による識別結果を出力する。
【0021】
なお、本実施の形態では、文書分類装置100が、学習データから識別関数を生成する機能と、識別/再識別の機能の両方を有するが、学習データから識別関数を生成する機能を有しないこととしてもよい。この場合、例えば、外部装置で生成された識別関数が文書分類装置100に入力、格納され、識別/再識別において使用される。
【0022】
本実施の形態における文書分類装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、文書分類装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0023】
以下、文書分類装置100の動作例をより詳細に説明する。以下では、最初に各実施例に共通である識別関数の生成について説明し、その後に、識別/再識別処理の各実施例を説明する。
【0024】
(識別関数の生成処理)
まず、学習データから識別関数を生成する処理を説明する。本実施の形態の学習データは特定のものに限られるわけではないが、例えば、Twitter(登録商標)等のSNSのデータや、Web上のデータである。
【0025】
図3は、文書分類装置100の学習データ格納部101に格納されている学習データの集合の例を示す図である。
図3に示すように、学習データは、"文書","正解ラベル"のカラムを含む。正解ラベルは2値のどちらかの値を取る。例えば、文書の内容について、不満かそうでないかを分類する場合に、不満と分類される場合には1、それ以外は−1を取る。
【0026】
図4のフローチャートの手順に沿って、文書分類装置100による識別関数の生成処理を説明する。まず、形態素解析部105が学習データ格納部101から学習データを取得する(ステップS101)。
【0027】
形態素解析部105は、学習データにおけるテキスト(文書)毎に形態素解析を行い、テキストを単語単位に分かち書きする(ステップS102)。テキスト毎の形態素解析結果は特徴ベクトル化部106に入力される。形態素解析技術としては従来技術を用いることができる。形態素解析の一例を以下に示す。形態素解析により単語単位と併せて品詞も抽出可能である。
【0028】
入力:「私と友達は一緒に学校に行った」
出力1:「私/と/友達/は/一緒/に/学校/に/行った」
出力2:「私:名詞/と:助詞/友達:名詞/は:助詞/一緒:名詞/に:助詞/学校:名詞/に/行った:動詞」
次に、特徴ベクトル化部106が、テキスト毎の形態素解析結果から、テキスト毎の特徴ベクトルを算出する(ステップS103)。ここでは、例えば、特徴ベクトル化部106は、各形態素(単語)の出現頻度をそのテキストの特徴としてベクトル化する。テキスト毎の特徴ベクトルは、識別関数生成部107に入力される。
【0029】
次に、識別関数生成部107は、教師あり機械学習モデルを用いて、特徴ベクトル化された学習データから、予測データを識別するための識別関数を生成する(ステップS104)。ステップS105において、識別関数生成部107から識別関数が出力され、識別関数格納部108に格納される。以下、識別関数をy(x)とする。また、基本的に、y(x)の出力値が正である場合の予測データの分類が「分類1」であり、負である場合の分類が「分類2」であるとする。
【0030】
(実施例1)
次に、文書分類装置100の動作例として、予測データの識別に関する実施例1を説明する。
【0031】
予測データは特定のものに限られるわけではないが、例えば、Twitter(登録商標)等のSNSのデータや、Web上のデータである。特に実施例1では、予測データはSNSのデータであることを想定している。例えば、データ入力部104はネットワークから当該SNSのデータをリアルタイムに取得し、予測データとして予測データ格納部102に順次格納するとともに、予測データに対して順次、以下で説明する識別/再識別処理が行われる。
【0032】
実施例1における予測データの例を
図5に示す。
図5に示すように、当該予測データは、"ユーザID"、"文書"、"発信時刻"、"発信位置"のカラムを含む。
【0033】
図6のフローチャートに示す手順に沿って、実施例1における文書分類装置100の処理手順を説明する。なお、以降の各実施例において実行される形態素解析、特徴ベクトル化については、学習データに対する形態素解析、特徴ベクトル化と同じであるため、簡単に説明する。
【0034】
新たな予測データが予測データ格納部102に格納されると、形態素解析部105が、予測データの文書(テキスト)に対して形態素解析を行う(ステップS202)。次に、特徴ベクトル化部106が、形態素解析結果から特徴ベクトルを算出する(ステップS203)。
【0035】
次に、識別部109が、特徴ベクトル化された予測データに対して識別関数を適用して出力値を計算する。そして、特徴ベクトルをx、識別関数をy(x)、閾値をtとした場合、識別部109は、|y(x)|>tを満たすかどうかの判定を行う(ステップS204)。なお、tは予め定めた正の値である。|y(x)|>tかどうかの判定を行うことは、出力値が、y(x)=0の境界付近にないか否かの判定を行うことに相当する。
【0036】
ステップS204において|y(x)|>tであると判定された場合、ステップS205に進み、識別部109は、y(x)>tならば予測データを分類1と識別し、y(x)<−tならば予測データを分類2と識別し、識別結果を出力部111を介して出力する。
【0037】
ステップS204において、|y(x)|≦tであると判定された場合、ステップS206に進み、再識別のための処理が開始される。
【0038】
実施例1では、再識別において、予測データに、再識別用データ格納部103に格納されている追加用データを付加し、当該追加用データが付加された予測データ(これを追加済予測データと呼ぶ)に対して、最初の識別処理と同様の手順で識別を実行する。
【0039】
図7に、実施例1(及び実施例2)において再識別用データ格納部103に格納されている追加用データの集合の例を示す。実施例1の追加用データは、予測データと同様のデータであり、例えば、Twitter(登録商標)等のSNSのデータや、Web上のデータであり、データ入力部104から順次入力されるものである。特に実施例1では、予測データはSNSのデータであることを想定している。
図7に示すように、当該追加用データは、"ユーザID"、"文書"、"発信時刻"、"発信位置"のカラムを含む。
【0040】
なお、予測データ格納部102に順次予測データを蓄積していくことで、実施例1(実施例2)の追加用データとして、予測データ格納部102に格納されるデータを用いることとしてもよい。
【0041】
図6のステップS206において、再識別部110は、予測データを発信したユーザと同じユーザから発信された一つ前のデータ(追加用データ)を再識別用データ格納部103から取得し、当該追加用データを予測データに追加して、新たに予測データを作成する。
【0042】
この追加が行われた予測データを追加済予測データと呼ぶことにする。一例として、追加用データの文書部分が「ABCD」であるとして、追加用データの文書部分が「EFGH」であれば、追加済予測データは「ABCDEFGH」となる。
【0043】
その後、形態素解析部105が追加済予測データに対して形態素解析を行い(ステップS207)、特徴ベクトル化部109が、形態素解析結果から特徴ベクトルを算出する(ステップS208)。
【0044】
そして、ステップS209において、再識別部110が、特徴べクトルを識別関数に入力して出力値を計算する。再識別部110は、出力値の絶対値が閾値tを超えるかどうか(|y(x)|>tを満たすかどうか)を判定し、閾値tを超えればステップS210に進み、出力値の正負に応じた分類を識別結果として出力する。
【0045】
一方、出力値の絶対値が閾値tを超えない場合(|y(x)|≦tの場合)、ステップS206に戻り、予測データと同じユーザから発信された未追加のデータのうち、一つ前のデータ(最初の予測データの2つ前のデータ)を、現在の追加済予測データに加えることで、再度、識別を実行する。|y(x)|≦tが継続する間、このような処理が繰り返される。
【0046】
本実施の形態で想定しているSNSのデータは短い場合が多く、分類が曖昧になりやすい。そこで、上記のようにデータを追加することで、分類の確度を増加させることができる。
【0047】
なお、繰り返し回数の閾値を設けて、繰り返し回数が、当該閾値に達しても|y(x)|≦tとなる場合には処理を終了してもよい。例えば、繰り返し回数の閾値を2回とした場合、再識別処理を3回行って、3回目も|y(x)|≦tとなる場合に、処理を終了する。また、処理時間の閾値を設け、例えば、再識別処理に入った時刻から当該閾値の時間を経過した時点で、|y(x)|≦tとなっている場合には、処理を終了してもよい。これらの繰り返し制御についても再識別部110が実行する。
【0048】
また、上記の例では、再識別処理時の追加用データとして、予測データのユーザと同じユーザのデータを使用することとしているが、異なるユーザのデータを使用して、上記と同様の再識別処理を行うこととしてもよい。
【0049】
この場合、ステップS206において、予測データが発信されたエリア("発信位置"で識別)に属する、予測データのユーザとは異なるユーザのデータを追加用データとして使用する。予測データの発信エリアに属する異なるユーザのデータが複数ある場合には、予測データに時間的に最も近い過去の(かつ未追加の)データを使用する。
【0050】
上記のようにして異なるユーザのデータを追加用データとして使用することは、例えば、同じユーザのデータが追加用データとして存在しない場合に行うこととしてもよいし、設定により、いずれを使用するかを決定してもよい。
【0051】
なお、異なるユーザのデータを追加用データとして使用する場合、当該異なるユーザの分類傾向によっては、予測データに追加することによって、誤った分類になる可能性がある。なお、「分類傾向」とは、当該異なるユーザの複数のデータに対して識別関数を適用した場合における分類の偏りの度合(正側に分類される割合が高い等)のことである。そこで、異なるユーザのデータを追加用データとして使用する場合には、識別関数に所定値を加える等により、識別関数の変更(シフト)を行ってもよい。
【0052】
一例として、再識別部110が、予測データと異なるユーザのデータを追加用データとして使用する場合において、当該異なるユーザについての過去の所定数のデータについて、識別関数により識別を行う。そして、例えば、当該異なるユーザのデータについて、特定の分類になる傾向が強い場合に、識別関数を変更する。一例として、上記所定数のうちの高い割合(例:8割以上)で、y(x)が予め定めた正の閾値以上となる場合に、その傾向を削減するために、f(x)=y(x)−A(Aは正の値)を、異なるユーザのデータを追加用データとして使用する場合における、ステップS209での識別関数として使用する。また、上記所定数のうちの高い割合(例:8割以上)で、y(x)が予め定めた負の閾値以下となる場合に、その傾向を削減するために、f(x)=y(x)+B(Bは正の値)を、異なるユーザのデータを追加用データとして使用する場合の識別関数として使用する。
【0053】
(実施例2)
次に、実施例2について説明する。実施例2は、基本的に実施例1と同様である。以下、主に実施例1と異なる点について説明する。
【0054】
実施例2では、再識別処理において、追加済予測データを作成する際に、所定時間内に同じユーザから発信されたデータを追加用データとして使用する。「所定時間」は特定の時間に限定されないが、実施例2では、予測データの発信時刻から過去3時間以内のデータを対象としている。
【0055】
図8は、実施例2における文書分類装置100の処理手順を示すフローチャートである。
図8のステップS301〜S305は、実施例1で説明した
図6のステップS201〜S205と同じである。
【0056】
ステップS304での判定がNoとなった場合(再識別を行うと判定した場合)、ステップS306に進む。
【0057】
ステップS306において、再識別部110は、再識別用データ格納部103に、予測データのユーザと同じユーザから発信されたデータであって、予測データの発信時刻から過去3時間以内のデータ(未追加のデータ)があるかどうかを判定する。
【0058】
ステップS306での判定がYesであれば、ステップS307に進み、3時間以内のデータのうちの一つ前のデータを追加して、追加済予測データを作成する。追加済予測データの作成自体は実施例1と同じである。一方、ステップS306での判定がNoであれば、処理を終了する。
【0059】
ステップS307〜S311は、実施例1における
図6のステップS206〜S210と同じである。ステップS310において、|y(x)|≦tである場合、ステップS306に戻り、予測データのユーザと同じユーザから発信されたデータであって、予測データの発信時刻から過去3時間以内に未追加のデータがあるかどうかを判定し、ある場合には、一つ前のデータ(最初の予測データの2つ前のデータ)を、現在の追加済予測データに加えることで、再度、識別を実行する。|y(x)|≦tが継続する間、かつ、過去3時間以内に未追加のデータがある間、このような処理が繰り返される。
【0060】
また、実施例2においても、実施例1と同様に、繰り返しの回数又は時間の閾値を設けて、閾値に達しても|y(x)|≦tとなる場合には、処理を終了することとしてもよい。
【0061】
更に、実施例2においても、実施例1と同様に、異なるユーザであって同エリアのユーザのデータを追加用データとして使用してもよい。また、実施例1の場合と同様に、異なるユーザのデータを使用する場合における識別関数の変更を行うこととしてもよい。
【0062】
また、上記の実施例1、2では、追加用データとして、予測データよりも過去のデータを使用しているが、例えば、リアルタイム処理ではなく、バッチ処理で予測データの分類を行う場合などについては、予測データの時刻よりも後の時刻のデータを追加用データとして使用することとしてもよい。また、予測データの時刻の前のデータ及び後のデータの両方を追加用データとして使用してもよい。
【0063】
(実施例3)
次に、実施例3について説明する。実施例3では、再識別処理において、通信サービスを提供するためのサーバ等の機器のログを再識別用データとして使用する。
図9に、実施例3において再識別用データ格納部103に格納されているログデータの集合の例を示す。
図9に示すように、当該ログデータは、"ホスト名","位置","時刻","優先度","メッセージ"のカラムを含む。ここでの"位置"は、"ホスト名"で示されるサーバが設置されている位置を示す。"時刻"はメッセージが出力された時刻を示す。実施例3では、文書分類装置100のデータ入力部104から、このようなログデータが入力され、再識別用データ格納部103に格納される。
【0064】
図10は、実施例3における文書分類装置100の処理手順を示すフローチャートである。
図10のステップS401〜S405は、実施例1で説明した
図6のステップS201〜S205と同じである。
【0065】
ステップS404での判定がNoとなった場合(再識別を行うと判定した場合)、ステップS406に進む。
【0066】
ステップS406において、再識別部110は、再識別用データ格納部103に、予測データの発信時刻から過去3時間以内に優先度の高いログデータ(例えば,syslogではemerge, alert, crit)があるかどうかを判定する。
【0067】
過去3時間以内に優先度の高いログデータがある場合には、識別結果を分類1として出力し(ステップS407)、該当のログデータがなければ識別結果を分類2として出力する(ステップS408)。ここで、優先度の高いログデータがある場合に「分類1」とし、ない場合に「分類2」とすることは、予め定めておくことである。
【0068】
上記の例では、予測データの発信時刻から過去3時間以内に優先度の高いログデータがあるかどうかを判定しているが、「3時間」は一例に過ぎない。「3時間」以外の時間を用いてもよい。なお、前述したとおり、予測データよりも後のログデータを利用可能な場合には、予測データよりも後の所定時間内のログデータに関して、優先度の高いログデータがあるかどうかを判定することとしてもよい。
【0069】
また、実施例1又は実施例2と、実施例3とを組み合わせて実施してもよい。例えば、実施例1、2の再識別処理を行っても分類できない場合(|y(x)|≦tとなる場合)に、ログデータを使用した分類を行うこととしてもよい。
【0070】
上記のように、実施例1、2では、予測データ以外のデータとして、予測データの前後の同一ユーザのデータ、もしくは異なるユーザの同場所のデータを用いるので、分類の判定に用いる情報量を拡充でき、分類の明確性を向上させることができる。
【0071】
また、例えば、あるイベントに関するあるユーザのデータの判定結果が曖昧である場合でも、「不満」と判定される他のログが同時刻や同場所で多く存在していれば、「不満らしさ」は増すと考えられる。また、同時刻や同場所で「不満」と判定された他のログが無ければ「不満らしさ」は減ると考えられる。このような観点で、実施例3では、予測データとは種類の異なるログを判定に使用することで、分類の明確性を向上させている。
【0072】
(実施の形態のまとめ)
以上、説明したように、本実施の形態により、学習データから教師あり機械学習に基づき生成された識別関数を用いて予測データの分類を行うデータ分類装置であって、前記予測データに対する前記識別関数の出力値の絶対値が所定の閾値を超えるか否かを判定する判定手段と、前記判定手段により、前記出力値の絶対値が前記所定の閾値を超えないと判定された場合に、追加データを使用して前記予測データの分類を行う再識別手段とを備えるデータ分類装置が提供される。実施の形態で説明した文書分類装置100は、当該データ分類装置の例である。
【0073】
前記再識別手段は、例えば、前記追加データを前記予測データに加えて得られた追加済予測データに前記識別関数を適用することにより、前記予測データの分類を行う。また、前記追加データは、前記予測データを発信したユーザと同じユーザにより発信されたデータであってもよいし、前記追加データは、前記予測データを発信したユーザとは異なるユーザのデータであって、当該予測データが発信されたエリアと同じエリアから発信されたデータであってもよい。
【0074】
前記再識別手段は、前記異なるユーザのデータを前記追加データとして使用する場合において、当該異なるユーザのデータの分類傾向に基づいて、前記識別関数を変更した関数を適用して分類を行うこととしてもよい。
【0075】
前記再識別手段は、前記出力値の絶対値が前記所定の閾値を超えない場合に、所定の時間又は所定の回数の範囲内で、前記追加データを使用した前記予測データの分類を複数回、繰り返し行うこととしてもよい。
【0076】
前記追加データは、例えば、通信サービスに係る装置のログデータであり、前記再識別手段は、前記データ分類装置における再識別用データ格納部の中に優先度の高いログデータが存在するか否かを判定することにより、前記分類を行うこととしてもよい。
【0077】
前記追加データは、前記予測データが発信された時刻から、所定時間内に出力されたデータであることとしてもよい。
【0078】
本実施の形態によれば、学習データから教師あり機械学習に基づき生成された識別関数を用いて予測データの分類を行う際に、識別境界付近に存在する分類の曖昧なデータについて、追加データを用いて再識別を行うので、明確に分類を行うことが可能となる。
【0079】
以上、本実施の形態について詳述したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。