以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
図1は、本実施形態によるシステム構成図である。感情分析装置1は、インターネット2と接続しており、入力された商品の名前(商品名)に基づき、インターネット2の各ウェブサイトにアクセスして、インターネット2上で公開されている当該商品についての記事を収集し、収集した記事から当該商品の評価項目(Feature)を抽出する。さらに、感情分析装置1は、商品名及び抽出した評価項目を含む、SNSのメッセージを収集して評価項目毎の感情分析を行い、評価項目毎に、良い感情を抱いているユーザと悪い感情を抱いているユーザの比率を求める。
図2は、感情分析装置1の概略的な構成図である。商品名保持部11は、操作者が商品名を、ある言語、例えば、日本語で入力すると、辞書データ12を使用して、入力された商品名を各言語、例えば、英語に変換する。入力された言語での商品名と、他の言語に変換した商品名は商品名保持部11に保存されると共に、評価項目生成部13に出力される。なお、商品名保持部11は、辞書データ12により商品名を他の言語に変換するのではなく、インターネット2上の翻訳サイトを利用して商品名を他の言語に変換する構成とすることもできる。さらに、商品名については、操作者が直接、使用する各言語での商品名を入力する構成であっても良い。
評価項目生成部13は、ネットワーク上の評価サイトにアクセスして、各言語で記載された、商品名についての記事を取得する。なお、アクセスする評価サイトについては、予め評価項目生成部13に設定しておく構成とすることができる。また、例えば、各言語での"商品名"と、同じ言語での"評価"又は"仕様"等、評価サイトに関連する単語をキーワードとして、検索サイトで検索することで、評価サイトを動的に判定する構成とすることもできる。具体的には、日本語の商品名が"あかさ"であり、英語の商品名が"ABC"である商品について、"あかさ"+"評価"で検索サイトを検索して日本語での記事を取得し、"ABC"+"REVIEW"で検索サイトを検索して英語での記事を取得する構成とすることができる。以後の処理は、特に断りのない限り、各言語それぞれについて独立して実行する。
まず、評価項目生成部13は、tf−idf、df−idf、LDA(Latent Dirichlet Allocation)といったアルゴリズムを使用して、収集した記事から商品についての評価項目を抽出する。評価サイトは、商品の評価を目的としたものであり、書込まれる記事の文章の構造は、文法に忠実なものが多く、これらアルゴリズムにより商品名と共に良く用いられる単語を判定して評価項目を容易に抽出することができる。その後、評価項目生成部13は、抽出した評価項目に優先順位を付与する。優先順位は、文章中の評価項目の位置と、当該文章に現れる感情表現、例えば、"好き"、"嫌い"、"良い"、"悪い"といった用語との位置関係に基づき判定する。例えば、商品"ABC"の評価項目"Camera"に関し、英語で"The Camera of my ABC is good"との文章がある場合、評価項目"Camera"と、感情表現である"good"との間には、3つの単語が存在するため、距離は、間に存在する単語数に1を加えた4とすることができる。なお、評価項目を示す単語と感情表現を示す単語との間の文字数により距離を判定しても良い。なお、感情表現に対応する単語は、感情表現データベース16に予め保存されている。
評価項目生成部13は、収集した各記事の文章を解析し、各評価項目について、スコアsを距離dの逆数の積算値として算出する。つまり、評価項目生成部13は、スコアsをs=s+(1/d)と、各文章に対して積算することで算出する。よって、本実施形態では、感情表現と評価項目の文書中の位置が近い程、スコアsは高くなる。そして、評価項目生成部13は、スコアsの大きい順に、評価項目の順位を付与する。図3は、評価項目生成部13が抽出した評価項目とその順位の例を示している。なお、図3(A)は、日本語の記事から取得した評価項目とその順位の例であり、図3(B)は、英語の記事から取得した評価項目とその順位の例である。図3の例に示す様に、各言語の処理は独立しているため、抽出される評価項目やその順位は言語毎に異なる。評価項目生成部13は、抽出した評価項目の上位所定数のものを、その順位と共にメッセージ収集部14に出力する。なお、上位所定数に制限するのは、処理負荷を考慮したものであり、抽出した評価項目の総てをメッセージ収集部14に出力する構成であっても良い。また、スコアsが所定値より大きい総ての評価項目を、その順位と共にメッセージ収集部14に出力する構成とすることもできる。
メッセージ収集部14は、商品名と、評価項目生成部13から入力された評価項目の少なくとも1つを含むメッセージを、ネットワーク上のSNSサイトから収集し、収集したメッセージを分析部15に出力する。分析部15は、メッセージ収集部14が収集したメッセージに対して最初にフィルタ処理を行う。フィルタ処理においては、宣伝等を目的としたメッセージを削除する。例えば、ウェブサイトのURLを含むメッセージは、宣伝目的の可能性が高いため、URLを含むメッセージを削除する。また、感情表現を含まないメッセージについても削除する。
その後、分析部15は、各評価項目について、フィルタ後のメッセージから、良い感情表現を含むメッセージ数と、悪い感情表現を含むメッセージの数をそれぞれ集計して、評価項目毎の感情比率を求める。なお、感情表現のそれぞれが、良い感情表現であるのか悪い感情表現であるかについても感情表現データベース16に記録されている。図4は、分析部15が生成する、各評価項目についての感情比率の例である。なお、図4(A)は、日本語で表現されたメッセージに基づいて生成した感情比率の例であり、図4(B)は、英語で表現されたメッセージに基づいて生成した感情比率の例である。なお、感情表現を含むメッセージの判定には、公知の感情分析アルゴリズムを使用できる。
最後に、評価項目重要度算出部17は、各言語での評価項目を集約して、各評価項目の重要度を付与する。例えば、日本語と英語により処理を実行し、日本語では、図4(A)に示す"カメラ"、"ディスプレイ"、"電池"の3つの評価項目を取得し、英語では、図4(B)に示す"Battery"(電池)、"Price"(価格)、"Camera"(カメラ)の3つの評価項目を取得したものとする。この場合、重要度を付与する対象となる評価項目は、"カメラ"、"ディスプレイ"、"電池"、"価格"の4つとなる。なお、評価項目の言語間での異同は、辞書データ12を使用して判定する。辞書データ12を使用するのではなく、インターネット2上の翻訳サイトを使用しても良い。また、本実施形態では、分析部15が出力する各言語での評価項目のうち、対応する内容を1つに纏めることで集約し、集約後の評価項目を重要度の付与対象とするが、各言語で共通して存在する評価項目のみを重要度の付与対象としても良い。
重要度は、各評価項目について、生起スコア、感情比率スコア、言語間生起差分スコア、言語間感情差分スコアを求め、これら4つのスコアの合計により求める。ある評価項目の生起スコアは、当該評価項目が感情表現と共に含まれていたメッセージの数が大きくなる程高くするスコアである。なお、スコアの生成に使用するメッセージは、分析部15でのフィルタ前のものであっても、フィルタ後のものであっても良い。なお、生起スコアは、例えば、使用した言語数の平均値とすることができる。ここで、メッセージの数が大きくなる程、スコアを高くするのは、メッセージ数が大きい程、当該評価項目に関心を抱いているユーザが多いと考えられるからである。一例として、3つの言語L1、L2、L3を使用し、分析部15によるフィルタ後の言語L1、言語L2及び言語L3のメッセージの内、それぞれ、40%、80%及び0%が評価項目#Aに言及していたものとする。この場合、例えば、(0.4+0.8+0)/3=0.4を評価項目#Aの生起スコアとすることができる。
また、ある評価項目の感情比率スコアは、当該評価項目の感情比率がバランスしていないほど、つまり、好印象と悪印象の差が大きい程高くなるスコアである。一例として、3つの言語L1、L2、L3を使用し、評価項目#Aについての言語L1及び言語L2での良い感情比率がそれぞれ80%及び20%であり、言語Cについては、評価項目#Aを評価項目生成部13が出力せず評価されなかったものとする。この場合、例えば、2×(|0.5−0.8|+|0.5−0.2|)/3=0.4を評価項目#Aの感情比率スコアとすることができる。なお、絶対値内は、良い感情の比率がその中心値である0.5とどれだけ乖離しているかを計算するものである。また、言語での平均値を2倍にするのは、各絶対値内の最大値を1にすることが目的、つまり、他のスコアとの重みの調整のためである。しかしながら、重点を置くスコアに応じ、重みは任意の値に設定できる。なお、感情比率がバランスしていないほど、スコアを高くするのは、ユーザの評価が明確であるからである。
また、ある評価項目の言語間生起差分スコアは、当該評価項目が感情表現と共に含まれていたメッセージの数の言語間での差が大きくなる程高くするスコアである。一例として、3つの言語L1、L2、L3を使用し、分析部15によるフィルタ後の言語L1、言語L2及び言語L3のメッセージの内、それぞれ、40%、80%及び0%が評価項目#Aに言及していたものとする。この場合、評価項目#Aの言語間生起差分スコアは、評価項目#Aに言及しているメッセージの割合の最大値と最小値の差として求めることができる。つまり、本例では、0.8−0=0.8を評価項目#Aの言語間生起差分スコアとすることができる。メッセージの数の言語間での差が大きくなる程、スコアを高くするのは、言語の違いにより、ユーザの評価が大きく分かれており、言語間での差を評価することは、例えば、マーケティング等に有用な情報となるからである。
また、ある評価項目の言語間感情差分スコアは、当該評価項目の感情比率の言語間での差が大きくなる程高くするスコアである。一例として、3つの言語L1、L2、L3を使用し、評価項目#Aについての言語L1及び言語L2での良い感情比率がそれぞれ80%及び20%であり、言語Cについては、評価項目#Aを評価項目生成部13が出力せず評価されなかったものとする。この場合、評価項目#Aの言語間感情差分スコアは、良い感情比率の最大値と最小値の差として求めることができる。つまり、本例では、0.8−0.2=0.6を評価項目#Aの言語間感情差分スコアとすることができる。感情比率の言語間での差が大きくなる程、スコアを高くするのは、言語の違いにより、ユーザの評価が大きく分かれており、言語間での差を評価することは、例えば、マーケティング等に有用な情報となるからである。
評価項目重要度算出部17は、評価項目の各スコアの単純な、或いは、重み付き合計値を、当該評価項目の重要度とし、分析部15が生成した感情比率と共に、評価項目の重要度を出力する。この出力は、例えば、インターネット2で公開することができる。また、当該商品の製造者や販売者等に提供される。なお、各スコアを合計する際に、各スコアには異なる重みを適用することができる。さらに、生起スコア、感情比率スコア、言語間生起差分スコア、言語間感情差分スコアの4つを総て使用するのではなく、任意の1つ以上を使用する構成であっても良い。例えば、言語間での評価の違いに重点を置く場合、言語間生起差分スコア、言語間感情差分スコアのみを用いる構成や、言語間生起差分スコア、言語間感情差分スコアのいずれかのみを用いる構成とすることができる。
以上、本実施形態では、評価サイトから評価項目を抽出し、抽出した評価項目によりSNS等のメッセージを収集して感情分析を行う。この構成により、SNS等のメッセージを使用した、評価項目ベースの感情分析が可能になる。また、本実施形態では、言語毎に、評価項目ベースの感情分析を行う。これにより、言語間での、評価項目毎の感情の違いを比較することができ、マーケティング等に有用な情報を得ることができる。さらに、本実施形態では、評価項目に重要度を付与する。この重要度は、言語間の感情分析結果が異なるものほど高くする。したがって、この重要度により、言語間で結果が異なる評価項目を特定することができ、マーケティング等に有用な情報を得ることができる。
なお、上記実施形態では、インターネット2から情報を収集したが、インターネット以外のネットワークであっても良い。また、上記実施形態において、評価項目生成部13は、インターネット2のサイトから商品名を含む記事を収集したが、例えば、商品名に関する記事を含む、インターネット2とは接続していないデータベースから商品名を含む記事を収集する構成とすることもできる。このデータベースは、例えば、商品に関するアンケートの結果のデータベースとすることができる。また、メールを解析したデータベースとすることができる。
なお、本発明による感情分析装置1は、コンピュータを上記感情分析装置1として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。