(57)【要約】【課題】ユーザにより発信されたテキスト情報に基づき当該ユーザの居住地域を推定する技術分野において、地名表現を含まない情報を発信しているユーザについても、高精度に居住地推定を可能とするための技術を提供する。【解決手段】居住地推定用データを生成する居住地推定用データ生成装置において、地域ラベル付きテキスト情報から生成されたユーザ毎の対応する地域における各単語の頻度情報を格納したユーザ地域単語情報格納手段を参照することにより、地域毎に、各単語が対象地域に対してどの程度特徴的かを示すスコアを算出し、単語とスコアを地域毎に地域特徴語格納手段に格納する特徴スコア算出手段と、前記地域特徴語格納手段に格納された各地域における特徴的な単語を用いて居住地推定用データを生成するデータ生成手段とを備える。【選択図】図１
2014106722.tif 000002
【特許請求の範囲】
【請求項１】
ユーザから発信されたテキスト情報から当該ユーザの居住地域を推定するために使用される居住地推定用データを生成する居住地推定用データ生成装置であって、
地域ラベル付きテキスト情報から生成されたユーザ毎の対応する地域における各単語の頻度情報を格納したユーザ地域単語情報格納手段を参照することにより、地域毎に、各単語が対象地域に対してどの程度特徴的かを示すスコアを算出し、単語とスコアを地域毎に地域特徴語格納手段に格納する特徴スコア算出手段と、
前記地域特徴語格納手段に格納された各地域における特徴的な単語を用いて居住地推定用データを生成するデータ生成手段と
を備えることを特徴とする居住地推定用データ生成装置。
【請求項２】
前記特徴スコア算出手段は、前記ユーザ地域単語情報格納手段に格納された地域毎の各単語について、
単語が出現する地域が少ないほど大きくなる値である逆出現頻度情報と、対象地域において単語を発信したユーザ数に該当する値である出現頻度情報とに基づいて、当該単語が対象地域に対してどの程度特徴的かを示す前記スコアを算出する
ことを特徴とする請求項１に記載の居住地推定用データ生成装置。
【請求項３】
前記データ生成手段は、前記地域特徴語格納手段に格納されたデータから、各地域に対して特徴的な単語を選択し、前記ユーザ地域単語情報格納手段を参照することにより、前記選択された各単語について、各ユーザによる発信の頻度情報を算出し、各ユーザに対応する地域における各単語についての前記頻度情報を訓練データとして出力する
ことを特徴とする請求項１又は２に記載の居住地推定用データ生成装置。
【請求項４】
ユーザから発信されたテキスト情報から当該ユーザの居住地域を推定するために使用される居住地推定用データを生成する居住地推定用データ生成装置が実行する居住地推定用データ生成方法であって、
地域ラベル付きテキスト情報から生成されたユーザ毎の対応する地域における各単語の頻度情報を格納したユーザ地域単語情報格納手段を参照することにより、地域毎に、各単語が対象地域に対してどの程度特徴的かを示すスコアを算出し、単語とスコアを地域毎に地域特徴語格納手段に格納する特徴スコア算出ステップと、
前記地域特徴語格納手段に格納された各地域における特徴的な単語を用いて居住地推定用データを生成するデータ生成ステップと
を備えることを特徴とする居住地推定用データ生成方法。
【請求項５】
前記特徴スコア算出ステップにおいて、前記居住地推定用データ生成装置は、前記ユーザ地域単語情報格納手段に格納された地域毎の各単語について、
単語が出現する地域が少ないほど大きくなる値である逆出現頻度情報と、対象地域において単語を発信したユーザ数に該当する値である出現頻度情報とに基づいて、当該単語が対象地域に対してどの程度特徴的かを示す前記スコアを算出する
ことを特徴とする請求項４に記載の居住地推定用データ生成方法。
【請求項６】
前記データ生成ステップにおいて、前記居住地推定用データ生成装置は、前記地域特徴語格納手段に格納されたデータから、各地域に対して特徴的な単語を選択し、前記ユーザ地域単語情報格納手段を参照することにより、前記選択された各単語について、各ユーザによる発信の頻度情報を算出し、各ユーザに対応する地域における各単語についての前記頻度情報を訓練データとして出力する
ことを特徴とする請求項４又は５に記載の居住地推定用データ生成方法。
【請求項７】
コンピュータを、請求項１ないし３のうちいずれか１項に記載の居住地推定用データ生成装置における特徴スコア算出手段とデータ生成手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報検索の分野に関し、特に、マイクロブログのようなユーザから発信されるテキスト情報からユーザの居住地域を推定する技術に関連するものである。
【背景技術】
【０００２】
ウェブ上の情報を用いて評判分析などを行う際に、明示的に居住地が記載されていないブログ記事やマイクロブログの著者の居住地情報を推定することで、詳細な分析を行うことが可能となり、より精緻な分析が可能となる。
【０００３】
ブログ著者の居住地推定の技術としては、例えば、非特許文献１に開示された技術がある。この方法では異なる粒度の地名表現辞書を自動構築し、その地名表現を特徴に用いて判別器を生成することで、ブログ著者の居住地を自動推定していた。このようにブログ記事など、ユーザが投稿した情報を用いてユーザの居住地推定を行うことが可能である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】安田宜仁, 平尾努, 鈴木潤, 磯崎秀樹, "ブログ作者の居住域の推定", 第12回言語処理学会年次大会論文集, 2006.
【非特許文献２】Takeshi Fuchi, Shinichiro Takagi: Japanese Morphological Analyzer using Word Co-occurence - JTAG. COLING-ACL, pp.409-413, 1998.
【非特許文献３】Crammer, K., Dekel, O., Keshet, J., Shalev-Shwartz, S. and Singer, Y., "Online Passive-Aggressive Algorithm", Journal of Machine Learning, Vol.7, pp. 551585, 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、マイクロブログのような短いテキスト表現には必ずしも地名表現が出現するとは限らず、地名表現が一切出現しないユーザについて居住地推定が不可能であるという問題があった。また、地名表現のみに限らず単純に全ての単語を特徴として用いると、居住地推定の精度が下がるという問題があった。
【０００６】
本発明は上記の点に鑑みてなされたものであり、ユーザにより発信されたテキスト情報に基づき当該ユーザの居住地域を推定する技術分野において、地名表現を含まない情報を発信しているユーザについても、高精度に居住地推定を可能とするための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明は、ユーザから発信されたテキスト情報から当該ユーザの居住地域を推定するために使用される居住地推定用データを生成する居住地推定用データ生成装置であって、
地域ラベル付きテキスト情報から生成されたユーザ毎の対応する地域における各単語の頻度情報を格納したユーザ地域単語情報格納手段を参照することにより、地域毎に、各単語が対象地域に対してどの程度特徴的かを示すスコアを算出し、単語とスコアを地域毎に地域特徴語格納手段に格納する特徴スコア算出手段と、
前記地域特徴語格納手段に格納された各地域における特徴的な単語を用いて居住地推定用データを生成するデータ生成手段とを備えることを特徴とする居住地推定用データ生成装置として構成される。
【０００８】
前記特徴スコア算出手段は、前記ユーザ地域単語情報格納手段に格納された地域毎の各単語について、単語が出現する地域が少ないほど大きくなる値である逆出現頻度情報と、対象地域において単語を発信したユーザ数に該当する値である出現頻度情報とに基づいて、当該単語が対象地域に対してどの程度特徴的かを示す前記スコアを算出するように構成することができる。
【０００９】
前記データ生成手段は、前記地域特徴語格納手段に格納されたデータから、各地域に対して特徴的な単語を選択し、前記ユーザ地域単語情報格納手段を参照することにより、前記選択された各単語について、各ユーザによる発信の頻度情報を算出し、各ユーザに対応する地域における各単語についての前記頻度情報を訓練データとして出力するように構成することができる。
【００１０】
また、本発明は、居住地推定用データ生成装置が実行する居住地推定用データ生成方法、及び、コンピュータを、居住地推定用データ生成装置における特徴スコア算出手段とデータ生成手段として機能させるためのプログラムとして構成することもできる。
【発明の効果】
【００１１】
本発明によれば、地域におけるユーザが発信する特徴的な語を高精度に抽出することが可能となり、地名表現を含まない情報を発信しているユーザについても、高精度な居住地推定が可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係る居住地推定用データ生成装置１２０の機能構成図である。
【図２】地域ラベル付きテキストＤＢ１０のデータ構造の例を示す図である。
【図３】ユーザ地域単語ＤＢ３０のデータ構造の例を示す図である。
【図４】単語抽出機能部２０の処理の流れを示すフローチャートである。
【図５】地域特徴語ＤＢ５０のデータ構造の例を示す図である。
【図６】特徴スコア算出機能部４０の処理の流れを示すフローチャートである。
【図７】訓練データＤＢ８０のデータ構造の例を示す図である。
【図８】特徴語選択機能部７０の処理の流れを示すフローチャートである。
【図９】推定モデルＤＢ１００のデータ構造の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１４】
＜居住地推定装置の全体構成＞
図１に、本実施の形態に係る居住地推定用データ生成装置１２０の機能構成図を示す。図１に示すように、居住地推定用データ生成装置１２０は、地域ラベル付きテキストＤＢ（データベース）１０、訓練データ生成部１１０、訓練データＤＢ８０、推定モデル生成機能部９０、推定モデルＤＢ１００を有する。訓練データ生成部１１０は、単語抽出機能部２０、ユーザ地域単語ＤＢ３０、特徴スコア算出機能部４０、地域特徴語ＤＢ５０、特徴語選択機能部７０を有する。ここでの各ＤＢは、複数のテーブルからなるデータを格納する記憶手段である。
【００１５】
居住地推定用データ生成装置１２０は、例えば、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、居住地推定用データ生成装置１２０の各部が有する機能は、当該居住地推定用データ生成装置１２０を構成するコンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。より具体的には、プログラムに従って、計算対象のテキスト等のデータをメモリから読み出し、ＣＰＵにより演算を行って、メモリに格納する動作を繰り返しながら処理が実行される。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００１６】
なお、居住地推定用データ生成装置１２０は、図１に示す機能部を全て含む必要はない。例えば、居住地推定用データ生成装置１２０には特徴スコア算出機能部４０と特徴語選択機能部７０を備え、ユーザ地域単語ＤＢ３０を別装置において構築しておき、特徴スコア算出機能部４０が当該別装置のユーザ地域単語ＤＢ３０にアクセスして処理を行うことで地域特徴語ＤＢ５０を生成し、特徴語選択機能部７０が訓練データを生成して、外部装置に対して訓練データＤＢ８０を出力してもよい。
【００１７】
また、例えば、居住地推定用データ生成装置１２０を、図１の構成に加えて、推定モデルＤＢ１００を用いて、ユーザから発信されたテキスト情報から居住地域の推定を行う推定手段を更に備えることとしてもよい。
【００１８】
以下、各ＤＢの内容や各機能部の処理について詳細に説明する。
【００１９】
＜単語抽出機能部２０＞
単語抽出機能部２０は、地域ラベル付きテキストＤＢ１０からデータを読み出し、当該データから単語を抽出し、頻度情報等をユーザ地域単語ＤＢ３０に出力する。
【００２０】
地域ラベル付きテキストＤＢ１０のデータ構造の例を図２に示す。図２に示すように、地域ラベル付きテキストＤＢ１０は、ユーザに対して居住地などの地域情報が予め付与された情報を格納したＤＢである。ここで地域ＩＤは、例えば都道府県コードのような地域に対して一意に付与されたＩＤであり、単位（都道府県や市区町村）には特に制約がないものとする。ただし、予めユーザに対して与えられているものとする。
【００２１】
ユーザ地域単語ＤＢ３０のデータ構造の例を図３に示す。図３に示すように、ユーザ地域単語ＤＢ３０は、各ユーザによって生成されたテキスト情報に含まれる単語の頻度情報を格納している。
【００２２】
図４は、単語抽出機能部２０の処理の流れを示すフローチャートである。図４を参照して、単語抽出機能部２０の処理の流れを説明する。
【００２３】
ステップＳ１−１）地域ラベル付きテキストＤＢ１０から未処理のレコードを選択する。
【００２４】
ステップＳ１−２）当該レコードのテキストを単語に分割し、各単語についてユーザ地域単語ＤＢ３０のユーザＩＤ、地域ＩＤに該当するレコードの頻度を加算する。該当するレコードがユーザ地域単語ＤＢ３０に存在しない場合には新たに作成する。ここで単語の分割には、例えば非特許文献２に記載された技術を用いることができる。なお、本発明は、単語の分割方法には依存しないため、予め人手によって作成された規則に基づいて単語分割する方法も利用可能である。
【００２５】
ステップＳ１−３）地域ラベル付きテキストＤＢ１０に未処理のレコードがある場合にはステップＳ１−１に戻る。そうでない場合には処理を終了する。
【００２６】
＜特徴スコア算出機能部４０＞
特徴スコア算出機能部４０は、ユーザ地域単語ＤＢ３０からデータを読み出し、当該データに基づいて、地域ＩＤ毎に特徴的な単語とそれに対応するスコアを算出し、地域特徴語ＤＢ５０に出力する。すなわち、特徴スコア算出機能部４０は、ユーザ地域単語ＤＢ３０を参照することにより、地域毎に、各単語が対象地域に対してどの程度特徴的かを示すスコアを算出し、単語とスコアを地域毎に地域特徴語ＤＢ５０に格納する。
【００２７】
地域特徴語ＤＢ５０のデータ構造の例を図５に示す。図５に示すように、地域特徴語ＤＢ５０は、地域ＩＤ毎に特徴的な単語とそれに対応するスコアを格納する。
【００２８】
図６は、特徴スコア算出機能部４０の処理の流れを示すフローチャートである。図６を参照して、特徴スコア算出機能部４０の処理の流れを説明する。
【００２９】
ステップＳ２−１）ユーザ地域単語ＤＢ０３０から未処理の単語を選択し、tとする。
【００３０】
ステップＳ２−２）単語tが出現するレコードの地域ＩＤの集合Dを求め、地域ＩＤの総数との比率に基づいて、以下の式によりIDF（Inverse Document Frequency）を計算する。
【００３１】
【数１】
2014106722.tif 000003
ここで|D|は地域ＩＤの集合の大きさであり、例えば都道府県を地域ＩＤに用いる場合には４７となる。分母の|d∈D|t∈d|は、単語tが現れる地域ＩＤの数を表す。例えば全ての地域に現れる単語について式（１）の値は０となり、出現する地域の数が減れば減るほど値は大きくなる。
【００３２】
ステップＳ２−３）ユーザ地域単語ＤＢ３０から未処理の地域ＩＤを選択し、dとする。
【００３３】
ステップＳ２−４）ユーザ地域単語ＤＢ３０において、単語tと地域dが同時に出現するレコードを取得する。取得されたレコード数は、地域dにおいて単語tを発言したユーザ数に該当する。このレコード数をTF（Term Frequency）とする。他にもTFとしてはレコード数以外にも、単純な単語頻度の加算値や、ユーザの発言数に応じた正規化を行った頻度の重み付け和などを用いることができる。
【００３４】
ステップＳ２−５）TF とIDF の積に基づいて単語tに対する地域dの特徴スコアを計算する。得られた地域dにおける単語tの特徴スコアを地域特徴語ＤＢ５０に出力する。特徴スコアは、単語tの出現する地域が少なく、単語tの地域dにおける出現頻度（上記の発言ユーザ数等）が大きいほど大きくなる値である。
【００３５】
ステップＳ２−６）ユーザ地域単語ＤＢ３０に未処理の地域がある場合にはステップＳ２−３に戻る。そうでない場合にはステップＳ２−７に進む。
【００３６】
ステップＳ２−７）ユーザ地域単語ＤＢ３０に未処理の単語がある場合には地域の処理状況についてリセットを行い、ステップＳ２−１に戻る。そうでない場合には処理を終了する。
【００３７】
上記のように、特徴スコア算出機能部４０は、ユーザ地域単語ＤＢ３０に格納された地域毎の各単語について、単語が出現する地域が少ないほど大きくなる値である逆出現頻度情報(IDF)と、対象地域において単語を発信したユーザ数に該当する値である出現頻度情報(TF)とに基づいて、当該単語が対象地域に対してどの程度特徴的かを示すスコアを算出する。
【００３８】
＜特徴語選択機能部７０＞
特徴語選択機能部７０は、ユーザ地域単語ＤＢ３０のデータと地域特徴語ＤＢ５０のデータを読み出して入力とし、訓練データを算出し、訓練データＤＢ８０に出力する。
【００３９】
図７に、訓練データＤＢ８０のデータ構造の例を示す。訓練データＤＢ８０の各カラムは語彙に対応しており、図７の例ではＭ種類の語彙を想定している。また、訓練データＤＢ８０においては１レコード１ユーザを表しており、同じ地域ラベルを持つレコードが複数存在する（図７の例では地域ラベル１３が複数出現している）ことに注意する。また、地域ラベルは地域ＩＤに対応する。
【００４０】
図８は、特徴語選択機能部７０の処理の流れを示すフローチャートである。図８を参照して、特徴語選択機能部７０の処理の流れを説明する。
【００４１】
ステップＳ３−１）地域特徴語ＤＢ５０から各地域に対してスコアが上位k件の単語を選択し、語彙集合をVとする。語彙集合Vにおいて、各単語には単語ＩＤの付与を行う。ここでkの値は予め設定されているものとし、地域毎に異なる値を設定してもよいものとする。
【００４２】
ステップＳ３−２）ユーザ地域単語ＤＢ３０（図３）から未処理のユーザを選択し、uとする。ユーザuの地域ＩＤをdとする。
【００４３】
ステップＳ３−３）ユーザ地域単語ＤＢ３０からユーザuに該当するレコードを全て取得し、そのうち、単語カラムが語彙Vに含まれるものだけを選択し、頻度を加算する。すなわち、各語彙v∈Vについてユーザuが投稿した総頻度を計算する。本例では、そのため各ユーザはM個の頻度情報（頻度０を含む）を保持する。この際、ユーザ地域単語ＤＢ３０の頻度カラムに格納されている頻度情報をそのまま用いる方法以外に、例えば地域特徴語ＤＢ５０に格納されているスコアを利用する方法も利用することができる。スコアを利用する場合、例えば、頻度カラムに格納されている頻度情報をそのまま用いて算出した総頻度に、当該単語に対応するスコアを掛けた値を利用する。
【００４４】
ステップＳ３−４）ユーザuについて集約された単語の頻度情報を訓練データＤＢ８０に出力する。ここで訓練データＤＢ８０におけるx1の値が単語ＩＤが１の頻度に対応する。また、訓練データＤＢ８０における地域ラベルはdに対応する。訓練データＤＢ８０に格納された頻度の情報は、居住地推定用データの例である。また、後述する推定モデルＤＢ１００における各クラスに対する各特徴の重みパラメータも居住地推定用データの例である。
【００４５】
ステップＳ３−５）ユーザ地域単語ＤＢ３０に未処理のユーザがある場合、ステップＳ３−２に戻る。そうでない場合には処理を終了する。
【００４６】
上記のとおり、データ生成手段の例である特徴語選択機能部７０は、地域特徴語ＤＢ５０に格納されたデータから、各地域に対して特徴的な単語を選択し、ユーザ地域単語ＤＢ３０を参照することにより、前記選択された各単語について、各ユーザによる発信の頻度情報を算出し、各ユーザに対応する地域における各単語についての前記頻度情報を訓練データとして出力する。
【００４７】
＜推定モデル生成機能部９０＞
推定モデル生成機能部９０は、訓練データＤＢ８０からデータを読み出し、当該データに基づいて推定モデルを生成し、推定モデルＤＢ１００に出力する。
【００４８】
推定モデルＤＢ１００のデータ構造の例を図９に示す。図９に示すように、推定モデルＤＢ１００は、各クラスに対して各特徴に対する重みパラメータを保持している。ここでクラスは各地域に相当し、図７の地域ラベル、図５の地域ＩＤに相当する。
【００４９】
クラスiの重みベクトルをw(i) = (w1, w2, ..., wM)Tと表現すると、入力データx = (x1, x2, ..., xM)Tに対する予測ラベルは、
【００５０】
【数２】
2014106722.tif 000004
によって計算することができる。ここでの入力データxは、特定のユーザにより発信されたテキスト情報に含まれる単語（上記重みに対応する単語）毎の頻度である。式（２）で示す方法は、全ての重みベクトルとの内積を計算したのちに、値が最も大きいクラスを選択するという方法である。推定モデル生成機能部９０には例えば非特許文献３に記載された技術を用いることができる。
【００５１】
（実施の形態のまとめ、効果）
本実施の形態の技術では、特徴スコア算出機能部４０により、地域毎の特徴的な語の選択を行い、この語を用いて訓練データを作成する。この訓練データを用いて推定モデルを作成して推定を行うことにより、地域におけるユーザが発信する特徴的な語を高精度に抽出することが可能となり、地名表現を含まない情報を発信しているユーザについても、高精度な居住地推定が可能となる。
【００５２】
特に、本実施の形態では、ステップS２−４で説明したように、地域dにおいて単語tを発言したユーザ数に該当する値を算出し、この値をTFとして用いてTF-IDFを算出して、地域毎の特徴的な単語を求めているので、多くの情報を発信するユーザの影響を過剰に受けることを避けることができる。従って、高精度に地域毎の特徴的な語の選択が可能となる。
【００５３】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００５４】
１０  地域ラベル付きテキストＤＢ
２０  単語抽出機能部
３０  ユーザ地域単語ＤＢ
４０  特徴スコア算出機能部
５０  地域特徴語ＤＢ
７０  特徴語選択機能部
８０  訓練データＤＢ
９０  推定モデル生成機能部
１００  推定モデルＤＢ
１１０  訓練データ生成部
１２０  居住地推定用データ生成装置
【図１】
2014106722.tif 000005
【図２】
2014106722.tif 000006
【図３】
2014106722.tif 000007
【図４】
2014106722.tif 000008
【図５】
2014106722.tif 000009
【図６】
2014106722.tif 000010
【図７】
2014106722.tif 000011
【図８】
2014106722.tif 000012
【図９】
2014106722.tif 000013