(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024035205
(43)【公開日】2024-03-13
(54)【発明の名称】意見分析システム、意見分析方法、及びプログラム
(51)【国際特許分類】
G06F 16/35 20190101AFI20240306BHJP
【FI】
G06F16/35
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023140135
(22)【出願日】2023-08-30
(31)【優先権主張番号】63/402,450
(32)【優先日】2022-08-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】中山 祐輝
(72)【発明者】
【氏名】村上 浩司
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175FA03
(57)【要約】
【課題】意見分析の精度を高める。
【解決手段】意見分析システム(1)のコメント取得部(101)は、サービスを利用するユーザにより入力された、サービスに関する第1コメントを取得する。クラスタリング実行部(104)は、第1コメントに関するクラスタリングを実行する。意見ワード取得部(105)は、クラスタリングの実行結果に基づいて、サービスに対する意見に関する意見ワードを取得する。意見分析部(106)は、意見ワードに基づいて、第1コメントに含まれる第1センテンスにおける意見を分析する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
サービスを利用するユーザにより入力された、前記サービスに関する第1コメントを取得するコメント取得部と、
前記第1コメントに関するクラスタリングを実行するクラスタリング実行部と、
前記クラスタリングの実行結果に基づいて、前記サービスに対する意見に関する意見ワードを取得する意見ワード取得部と、
前記意見ワードに基づいて、前記第1コメントに含まれる第1センテンスにおける前記意見を分析する意見分析部と、
を含む意見分析システム。
【請求項2】
前記意見分析部は、前記意見ワードに基づいて、前記第1センテンスにおける前記意見を分析する、
請求項1に記載の意見分析システム。
【請求項3】
前記クラスタリング実行部は、前記第1センテンスに関する特徴に基づいて、前記第1センテンスに関する前記クラスタリングを実行し、
前記意見ワード取得部は、前記第1センテンスに関するクラスタごとに、前記意見ワードを取得する、
請求項1又は2に記載の意見分析システム。
【請求項4】
前記意見分析部は、前記第1センテンスに前記意見ワードが含まれるか否かを判定することによって、前記意見を分析する、
請求項1又は2に記載の意見分析システム。
【請求項5】
前記意見は、前記意見ワードと、当該意見ワードに関する他の要素と、を含む複数の要素で表現され、
前記意見分析部は、前記第1センテンスに前記意見ワードが含まれると判定された場合に、前記第1センテンスのうち、当該意見ワードの部分以外の他の部分に基づいて、前記他の要素を取得することによって、前記意見を分析する、
請求項4に記載の意見分析システム。
【請求項6】
前記意見分析部は、前記他の部分の中から、前記第1センテンスに含まれる前記意見ワードと係り受けの関係にある係り受けワードを、前記他の要素として取得する、
請求項5に記載の意見分析システム。
【請求項7】
前記複数の要素は、前記意見ワード、前記係り受けワード、及び前記意見に関する極性を含み、
前記意見分析部は、前記意見ワード及び前記係り受けワードの少なくとも一方に基づいて、前記極性を取得することによって、前記意見を分析する、
請求項6に記載の意見分析システム。
【請求項8】
前記意見ワード取得部は、前記クラスタリングの実行結果に基づいて、クラスタごとに、前記意見ワードに関する複数の候補ワードを取得し、当該複数の候補ワードの中から、前記意見ワードを取得する、
請求項1又は2に記載の意見分析システム。
【請求項9】
前記意見ワード取得部は、前記候補ワードごとに、当該候補ワードに関する出現頻度を計算し、当該出現頻度に基づいて、前記意見ワードを取得する、
請求項8に記載の意見分析システム。
【請求項10】
前記クラスタリング実行部は、
前記第1センテンスに対し、形態素解析を実行し、
前記第1センテンスから取得された複数の形態素の中に、互いに連続する複数の名詞が含まれている場合には、当該複数の名詞を結合して結合名詞を取得し、
前記結合名詞に基づいて、前記クラスタリングを実行する、
請求項1又は2に記載の意見分析システム。
【請求項11】
前記意見分析システムは、クラスタごとに、当該クラスタの前記意見ワードと、所定のトピックに関連付けられた関連ワードと、に基づいて、当該クラスタが当該所定のトピックに関係するか否かを推定するクラスタ推定部を更に含み、
前記意見分析部は、当該推定結果に基づいて、前記意見を分析する、
請求項1又は2に記載の意見分析システム。
【請求項12】
前記意見分析システムは、前記他の部分から前記他の要素が取得されなかった場合に、所定の補填方法に基づいて、前記他の要素を補填する補填部を更に含む、
請求項5に記載の意見分析システム。
【請求項13】
前記第1コメントは、質問に対する回答であり、
前記補填部は、前記質問の内容に基づいて、前記他の要素を補填する、
請求項12に記載の意見分析システム。
【請求項14】
前記補填部は、前記第1センテンスと似た内容を含む第3センテンスから取得された前記他の要素に基づいて、前記第1センテンスの前記他の要素を補填する、
請求項12に記載の意見分析システム。
【請求項15】
前記第1コメントには、前記第1コメントに関する分類が関連付けられており、
前記補填部は、前記分類に基づいて、前記他の要素を補填する、
請求項12に記載の意見分析システム。
【請求項16】
前記意見分析部は、前記意見ワードに基づいて、前記第1コメントに含まれる第1センテンス又は第2コメントに含まれる第2センテンスにおける前記意見を分析する、
請求項1又は2に記載の意見分析システム。
【請求項17】
前記意見分析部は、前記意見ワードに基づいて、前記第2センテンスにおける前記意見を分析する、
請求項16に記載の意見分析システム。
【請求項18】
前記意見分析部は、
前記第2センテンスに前記意見ワードが含まれるか否かを判定することによって、前記意見を分析する、
請求項16に記載の意見分析システム。
【請求項19】
コンピュータが、
サービスを利用するユーザにより入力された、前記サービスに関する第1コメントを取得するコメント取得ステップと、
前記第1コメントに関するクラスタリングを実行するクラスタリング実行ステップと、
前記クラスタリングの実行結果に基づいて、前記サービスに対する意見に関する意見ワードを取得する意見ワード取得ステップと、
前記意見ワードに基づいて、前記第1コメントに含まれる第1センテンスにおける前記意見を分析する意見分析ステップと、
を実行する意見分析方法。
【請求項20】
サービスを利用するユーザにより入力された、前記サービスに関する第1コメントを取得するコメント取得部、
前記第1コメントに関するクラスタリングを実行するクラスタリング実行部、
前記クラスタリングの実行結果に基づいて、前記サービスに対する意見に関する意見ワードを取得する意見ワード取得部、
前記意見ワードに基づいて、前記第1コメントに含まれる第1センテンスにおける前記意見を分析する意見分析部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、意見分析システム、意見分析方法、及びプログラムに関する。
【背景技術】
【0002】
従来、サービスを利用するユーザにより入力された、サービスに関するコメントに基づいて、ユーザの意見を分析する技術が検討されている。例えば、特許文献1には、複数の地域におけるトピックに対する評価を分析するために、地域ごとに、当該地域で使用される言語の投稿文書の全体からキーワードを抽出し、当該抽出されたキーワードに基づいて、投稿文書の全体から感情を分析することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術では、投稿文書の全体から感情を分析する技術なので、感情の分析に向かない表現が投稿文書の全体の中に含まれていると、この表現のために、感情分析の精度が低下する可能性がある。例えば、ある投稿文書の中に、感情の分析に向くセンテンスと、感情の分析に向かないセンテンスと、が含まれていたとすると、投稿文書の全体を分析対象にすると、感情の分析に向かないセンテンスがノイズになってしまい、精度が低下する可能性がある。
【0005】
本開示の目的の1つは、意見分析の精度を高めることである。
【課題を解決するための手段】
【0006】
本開示に係る意見分析システムは、サービスを利用するユーザにより入力された、前記サービスに関する第1コメントを取得するコメント取得部と、前記第1コメントに関するクラスタリングを実行するクラスタリング実行部と、前記クラスタリングの実行結果に基づいて、前記サービスに対する意見に関する意見ワードを取得意見ワード取得部と、前記意見ワードに基づいて、前記第1コメントに含まれる第1センテンスにおける前記意見を分析する意見分析部と、を含む。
【図面の簡単な説明】
【0007】
【
図1】意見分析システムの全体構成の一例を示す図である。
【
図2】意見分析システムの大まかな流れの一例を示す図である。
【
図3】意見分析システムで実現される機能の一例を示す図である。
【
図4】コメントデータベースの一例を示す図である。
【
図5】クラスタデータベースの一例を示す図である。
【
図8】意見分析システムで実行される処理の一例を示すフロー図である。
【
図10】クラスタにラベルを付与する処理の一例を示す図である。
【
図11】opinion wordが取得され、かつ、aspect termが取得されなかった第1センテンスのaspect termを補填する方法の一例を示す図である。
【発明を実施するための形態】
【0008】
[1.意見分析システムの全体構成]
本開示に係る意見分析システムの実施形態の一例を説明する。
図1は、意見分析システムの全体構成の一例を示す図である。例えば、意見分析システム1は、サーバ10及びユーザ端末20を含む。サーバ10及びユーザ端末20の各々は、インターネット又はLAN等のネットワークNに接続可能である。ここで、「意見」とは、後述するトピックワードの内容に対するユーザの評判、評価、又は感情の何れかを含む。
【0009】
サーバ10は、サーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0010】
ユーザ端末20は、ユーザのコンピュータである。例えば、ユーザ端末20は、パーソナルコンピュータ、タブレット端末、スマートフォン、又はウェアラブル端末である。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様である。操作部24は、タッチパネル又はマウス等の入力デバイスである。表示部25は、液晶ディスプレイ又は有機ELディスプレイである。
【0011】
なお、記憶部12,22に記憶されるプログラムは、ネットワークNを介して供給されてもよい。また、各コンピュータには、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方が含まれてもよい。例えば、情報記憶媒体に記憶されたプログラムが、読取部及び入出力部の少なくとも一方を介して供給されてもよい。
【0012】
また、意見分析システム1は、少なくとも1つのコンピュータを含めばよく、
図1の例に限られない。例えば、意見分析システム1は、ユーザ端末20を含まずに、サーバ10だけを含んでもよい。この場合、ユーザ端末20は、意見分析システム1の外部に存在する。例えば、意見分析システム1は、サーバ10以外の他のコンピュータを含み、当該他のコンピュータによって、意見分析に関する処理が実行されてもよい。例えば、他のコンピュータは、パーソナルコンピュータ、タブレット端末、又はスマートフォンである。
【0013】
[2.意見分析システムの概要]
意見分析システム1は、サービスを利用するユーザにより入力されたコメントに基づいて、サービスに対するユーザの意見を分析する。本実施形態では、サービスの一例として、通信サービスを説明する。サービス自体は、任意の種類であってよく、通信サービスに限られない。例えば、電子商取引サービス、オンラインフリーマーケットサービス、旅行予約サービス、決済サービス、金融サービス、又はその他のサービスに対し、意見分析システム1が適用されてもよい。また、サービスに限らずアイテム・人(対象)についてのコメントに適用するようにしてもよい。この場合、意見分析システム1は、ユーザにより入力されたコメントに基づいて、対象に対するユーザの意見を分析する。
【0014】
コメントは、サービスに関する内容を示す文字列である。例えば、コメントは、お客様の声と呼ばれることもある。コメントは、少なくとも1つのセンテンスを含む。本実施形態では、ユーザが任意の文字列をコメントとして入力できる場合を説明するが、コメントのフォーマットは、ある程度定められていてもよい。例えば、半構造化テキストを利用して、コメントが入力されてもよい。コメントには、ユーザの何らかの意見が表れることがある。コメント内の全てのセンテンスにユーザの意見が表れるとは限らない。例えば、一部のセンテンスは、ユーザの意見ではなく、単なる事実のみが表れることもある。
【0015】
意見は、サービスに対する感想である。意見は、サービスに対する称賛又は苦情ということもできる。本実施形態では、意見分析手法の一例として、ABSA(Aspect Based Sentiment Analysis)を説明する。ABSAは、所定のキーワードを観点として抽出し、当該キーワードに対する極性を予測する手法である。極性は、肯定的であるか、否定的であるか、を示す情報である。意見分析手法自体は、任意の手法であってよく、ABSAに限られない。例えば、観点とは異なる他のキーワードに基づいて極性を予測する手法、又は、極性を予測せずに観点若しくは他のキーワードのみを抽出する手法が利用されてもよい。
【0016】
図2は、意見分析システム1の大まかな流れの一例を示す図である。例えば、ユーザがユーザ端末20を操作してサーバ10にアクセスすると、サービスに関するコメントを入力するための入力フォームF及びボタンBを含む入力画面SCが表示部25に表示される。入力画面SCは、任意の形式であってよく、
図2の形式に限られない。例えば、入力画面SCは、サービスに関する質問に対してユーザが回答するアンケート形式であってもよい。
【0017】
例えば、ユーザは、操作部24を操作して、入力フォームFに対し、任意のコメントを入力する。
図2の例では、コメントが英語で入力されているが、コメントは、日本語、中国語、フランス語、又はスペイン語といった任意の言語で入力可能である。本実施形態で説明する処理も、コメントの言語に応じた処理が実行されるようにすればよい。ユーザがボタンBを選択すると、ユーザ端末20は、サーバ10に対し、入力フォームFに入力されたコメントを送信する。
【0018】
図2の例では、「I went to XYZ mobile shop. The network connection becomes very good.」といったコメントが入力されている。このコメントは、「I went to XYZ mobile shop.」及び「The network connection becomes very good.」といった2つのセンテンスを含む。1つ目のセンテンス「I went to XYZ mobile shop.」は、ユーザが店舗に行ったという事実だけを示すので、ユーザの意見が表れていない。2つ目のセンテンスは、ユーザが感じたサービスの品質を示すので、ユーザの意見が表れている。
【0019】
例えば、人間が
図2のコメントを見れば、1つ目のセンテンスにユーザの意見が表れておらず、かつ、2つ目のセンテンスにユーザの意見が表れていることを理解できる。更に、人間が2つ目のセンテンスを見れば、サービスの品質の1つである「network connection」が「very good」であるといった「positive」なユーザの意見が表れていることを理解できる。本実施形態では、サーバ10は、コメントを分析することによって、2つ目のセンテンスに、上記意見が表れていることを特定できるようになっている。
【0020】
例えば、サーバ10は、ユーザの意見が表れたセンテンスの中から、(aspect term,opinion word,polarity)といった3つの要素を取得する。これら3つの要素を取得する手法は、ASTE(Aspect Sentiment Triplet Extraction)と呼ばれることがある。ASTEは、ABSAの一手法である。aspect termは、ABSAにおける観点を示す。opinion wordは、aspect termが示す観点における意見の内容を示す。polarityは、肯定的であるか、又は、否定的であるかを示す。以降、上記3つの要素を、分析結果データという。
【0021】
例えば、先述した特許文献1の技術をASTEに適用したとする。先述したように、特許文献1の技術は、投稿文書の全体を意見分析の対象にするので、意見分析に適さないセンテンスが投稿文書に含まれていると、このセンテンスがノイズになり意見分析の精度が低下する可能性がある。そこで、本実施形態では、コメントの全体ではなく、コメントに含まれるセンテンスを意見分析の対象にすることによって、意見分析の精度を高めるようにしている。以降、本実施形態の詳細を説明する。
【0022】
[3.意見分析システムで実現される機能]
図3は、意見分析システム1で実現される機能の一例を示す図である。
【0023】
[3-1.サーバで実現される機能]
サーバ10は、データ記憶部100、コメント取得部101、形態素解析部102、結合部103、クラスタリング実行部104、トピックワード取得部105、及び意見分析部106を含む。データ記憶部100は、記憶部12により実現される。コメント取得部101、形態素解析部102、結合部103、クラスタリング実行部104、トピックワード取得部105、及び意見分析部106は、制御部11により実現される。
【0024】
[データ記憶部]
データ記憶部100は、意見分析に必要なデータを記憶する。例えば、データ記憶部100は、コメントデータベースDB1、クラスタデータベースDB2、及び辞書データベースDB3を記憶する。
【0025】
図4は、コメントデータベースDB1の一例を示す図である。コメントデータベースDB1は、コメントに関する各種データが格納されたデータベースである。例えば、コメントデータベースDB1には、コメントID、コメント、センテンスID、センテンス、及び分析結果データが格納される。コメントIDは、コメントを一意に識別可能なデータである。コメントは、任意のデータ形式でコメントデータベースDB1に格納されてよく、例えば、テキスト形式、リッチテキスト形式、ドキュメント形式、又は電子メール形式であってもよい。
【0026】
センテンスIDは、コメントに含まれるセンテンスを一意に識別可能なデータである。コメントの中のセンテンスは、ピリオド等の記号の位置によって特定されるようにすればよい。コメントは、複数のセンテンスを含んでもよいし、1つのセンテンスだけを含んでもよい。分析結果データは、意見分析部106による分析結果を示す。先述したように、本実施形態では、分析結果データは、(aspect term,opinion word,polarity)といった3つの要素を示す。ユーザの意見が表れていないセンテンスには、分析結果データは関連付けられない。
【0027】
なお、コメントデータベースDB1には、コメントに関する他のデータが格納されてよい。例えば、コメントを入力したユーザの名前、ユーザのメールアドレス、コメントが取得された日時が、コメントデータベースDB1に格納されていてもよい。例えば、コメントに含まれるセンテンスが属するクラスタのクラスタID又はラベルが、コメントデータベースDB1に格納されていてもよい。例えば、アンケート形式のコメントであれば、コメントに対応する質問を識別可能な情報が、コメントデータベースDB1に格納されていてもよい。
【0028】
図5は、クラスタデータベースDB2の一例を示す図である。クラスタデータベースDB2は、クラスタリング実行部104によるクラスタリングの実行結果に関する各種データが格納されたデータベースである。例えば、クラスタデータベースDB2には、クラスタID、ラベル、コメントID、センテンスID、候補ワード、及び出現頻度が格納される。クラスタIDは、クラスタを一意に識別可能なデータである。
【0029】
本実施形態では、クラスタは、互いに似た意味を持つセンテンスの集まりである。クラスタは、トピック又はグループと呼ばれることもある。クラスタは、センテンスの集まりに限られず、互いに似た意味を持つコメント又は候補ワードの集まりであってもよい。ラベルは、クラスタの名前である。本実施形態では、ラベルが人手で入力されるものとする。例えば、意見分析システム1の管理者がラベルを示す文字列を入力すると、この文字列が、ラベルとしてクラスタデータベースDB2に格納される。
【0030】
コメントID及びセンテンスIDは、クラスタに属するセンテンスを含むコメントのコメントIDと、当該センテンスのセンテンスIDと、である。本実施形態では、コメントID及びセンテンスIDの組み合わせによってセンテンスが特定される場合を説明するが、センテンスIDだけによってセンテンスを特定できる場合には、コメントIDは、クラスタデータベースDB2に格納されなくてもよい。
【0031】
候補ワードは、後述のトピックワードの候補となるワードである。候補ワードは、センテンスに含まれるワードの全部又は一部である。本実施形態では、後述の形態素解析によって取得された形態素又は結合名詞が候補ワードに相当する。英語のような分かち書きの言語では、形態素解析を利用せずに、スペースで区切られたワードがそのまま候補ワードとして取得されてもよい。出現頻度は、クラスタに属するセンテンスの中で候補ワードが出現する頻度である。出現頻度は、後述のトピックワード取得部105によって計算される。出現頻度は、出現回数ということもできる。
【0032】
図6は、辞書データベースDB3の一例を示す図である。辞書データベースDB3は、トピックワードに関する各種データが格納されたデータベースである。例えば、辞書データベースDB3には、トピックワードが取得されたクラスタのクラスタID及びラベルと、トピックワードと、が格納される。本実施形態では、1つのクラスタから、少なくとも1つのトピックワードが取得されるものとする。1つのクラスタから取得されるトピックワードには、上限数が定められていてもよいし、特に上限数がさだめられていなくてもよい。
【0033】
トピックワードは、何らかの話題を意味するトピックを表すワードである。トピックワードは、意見ワードの一例である。このため、本実施形態でトピックワードと記載した箇所は、意見ワードと読み替えることができる。意見ワードは、サービスに対するユーザの意見に関するワードである。即ち、意見ワードは、ユーザの意見が何らかの形で表れたワード、又は、当該ワードに関連性のあるワードである。意見ワードは、クラスタを代表するワードということもできる。意見ワードは、複数のワードを含んでもよいし、1つのワードだけを含んでもよい。意見ワードは、特にトピックの概念に関係のないワードであってもよい。
【0034】
本実施形態では、aspect termがトピックワードに相当する場合を例に挙げるが、トピックワードは、aspect term以外の他のワードであってもよい。例えば、opinion wordがトピックワードに相当してもよい。例えば、ABSA以外の意見分析手法を利用する場合には、ユーザの何らかの意見を示すワードが、トピックワードとして利用されるようにすればよい。後述のトピックワード取得部105により取得されたトピックワードが辞書データベースDB3に格納される。
【0035】
例えば、データ記憶部100は、上記データ以外にも、極性推定モデルM1を記憶する。極性推定モデルM1は、polarityを推定するためのモデルである。本実施形態では、機械学習手法を利用した極性推定モデルM1を例に挙げるが、極性推定モデルM1は、機械学習手法以外の他の手法を利用したモデルであってもよい。例えば、極性推定モデルM1は、ルールベースを利用したモデルであってもよい。
【0036】
例えば、極性推定モデルM1がルールベースを利用したモデルである場合、aspect term及びopinion wordの少なくとも一方と、polarityと、の関係が予めルールとして定義されている。このルールは、テーブル形式又は他の形式のデータとして、データ記憶部100に記憶されているものとする。あるセンテンスに含まれるaspect term及びopinion wordの少なくとも一方に関連付けられたpolarityが、このセンテンスの分類結果データに含めるpolarityとして取得される。
【0037】
例えば、極性推定モデルM1が機械学習手法を利用したモデルである場合、機械学習手法自体は、種々の手法を利用可能である。例えば、極性推定モデルM1は、教師有り学習、半教師有り学習、又は教師無し学習の何れの手法を利用してもよい。本実施形態では、BERT(Bidirectional Encoder Representations from Transformers)と呼ばれる手法を利用した極性推定モデルM1を例に挙げるが、極性推定モデルM1は、BERT以外のTransformer又はニューラルネットワーク等の他の手法を利用してもよい。例えば、極性推定モデルM1は、Q&Aベースモデルと呼ばれる手法が利用されてもよい。例えば、aspect termが主語に相当し、opinion wordが述語に相当するセンテンスであれば、極性推定モデルM1は、主語と述語の係り受けを手掛かりにして、polarityを推定する。
【0038】
本実施形態の極性推定モデルM1には、訓練用のaspect term及びopinion wordと、訓練用のpolarityと、のペアである訓練データが学習されている。訓練用のpolarityは、訓練用のaspect term及びopinion wordを含むセンテンスが肯定的であるか否定的であるかを示すデータである。訓練用のpolarityは、訓練用のaspect term及びopinion wordに対応する正解となるpolarityである。訓練データは、人手で作成されてもよいし、公知のツールが利用されて自動的に作成されてもよい。例えば、極性推定モデルM1は、訓練用のaspect term及びopinion wordが入力されると、訓練用のpolarityが出力されるように、パラメータが調整されている。極性推定モデルM1の学習手法自体は、機械学習手法で利用されている種々の手法を利用可能である。極性推定モデルM1には、肯定的な意見を示す訓練データと、否定的な意見を示す訓練データと、の両方が学習されている。
【0039】
なお、データ記憶部100は、任意のデータを記憶可能である。データ記憶部100が記憶するデータは、上記の例に限られない。例えば、データ記憶部100は、形態素解析で利用される形態素解析ツール、クラスタリングで利用されるクラスタリングツール、及び出現頻度を計算するためのプログラムを記憶してもよい。例えば、データ記憶部100は、候補ワードがトピックワードになるための出現頻度の閾値を記憶してもよい。
【0040】
[コメント取得部]
コメント取得部101は、サービスを利用するユーザにより入力された、サービスに関するコメントを取得する。以降、コメント取得部101が取得するコメントを、第1コメントと記載する。第1コメントは、クラスタリングの対象となるコメントである。即ち、第1コメントは、トピックワードを取得するために利用されるコメントである。本実施形態では、第1コメントが意見分析の対象にもなる場合を説明するが、第1コメントは、意見分析の対象にならなくてもよい。即ち、第1コメントは、トピックワードを取得するためだけに利用されるコメントであってもよい。この場合、後述する変形例のように、第2コメントが意見分析の対象となる。
【0041】
例えば、コメント取得部101は、ユーザ端末20から、入力フォームFに入力された第1コメントを取得する。第1コメントは、操作部24からの入力ではなく、ユーザ端末20のマイクによって検出されたユーザの音声を利用して入力されてもよい。この場合、ユーザの音声がテキストに変換されたものが第1コメントに相当する。コメント取得部101は、第1コメントに含まれるピリオド等の記号の位置に基づいて、第1センテンスを特定する。第1センテンスは、第1コメントに含まれるセンテンスである。
【0042】
例えば、コメント取得部101は、第1コメントを、少なくとも1つの第1センテンスに分割する。コメント取得部101は、他の第1コメントと重複しないように、コメントIDを発行する。コメント取得部101は、他の第1センテンスと重複しないように、センテンスIDを発行する。コメント取得部101は、コメントID、第1コメント、センテンスID、及び第1センテンスを互いに関連付けてコメントデータベースDB1に格納する。コメント取得部101は、任意のタイミングで、コメントデータベースDB1に格納された第1コメントを取得できる。
【0043】
なお、コメント取得部101は、入力画面SCを一例とするウェブサイト以外の他の手段を利用して、第1コメントを取得してもよい。例えば、コメント取得部101は、ユーザ端末20にインストールされた専用のアプリケーション、電子メール、SNS、SMS、又はメッセージアプリを利用して、第1コメントを取得してもよい。例えば、コメント取得部101は、これらの複数の手段を利用して、第1コメントを取得してもよい。
【0044】
[形態素解析部]
形態素解析部102は、第1センテンスに対し、形態素解析を実行する。形態素解析自体は、種々の形態素解析ツールを利用可能である。例えば、英語の第1センテンスであれば、形態素解析部102は、Tree Tagger又はNLTKといった形態素解析ツールに基づいて、第1コメントの形態素解析を実行してもよい。例えば、日本語の第1センテンスであれば、形態素解析部102は、MeCab又はJUMANといった形態素解析ツールに基づいて、第1センテンスの形態素解析を実行してもよい。
【0045】
例えば、形態素解析部102は、第1センテンスを複数の形態素に分解する。形態素解析部102は、第1センテンスごとに、当該第1センテンスを複数の形態素に分解し、当該複数の形態素をデータ記憶部100に記録する。第1コメントに複数の第1センテンスが含まれる場合には、形態素解析部102は、複数の第1センテンスの各々に対して形態素解析を実行し、複数の第1センテンスの各々から分解された複数の形態素を、データ記憶部100に記録する。
【0046】
なお、形態素解析では、個々の形態素の品詞も特定できるので、形態素解析部102は、個々の形態素の品詞もデータ記憶部100に記録するものとする。
図2の例であれば、2つ目の第1センテンスに含まれる「network」が、形態素解析によって「net」と「work」の2つの名詞に分解されたとすると、形態素解析部102は、「net」の品詞が名詞であることと、「work」の品詞が名詞であることと、をデータ記憶部100に記録する。形態素解析部102は、他の形態素についても同様に、品詞をデータ記憶部100に記録する。
【0047】
[結合部]
結合部103は、第1センテンスから取得された複数の形態素の中に、互いに連続する複数の名詞が含まれている場合には、当該複数の名詞を結合して結合名詞を取得する。
図2の例であれば、第1センテンスに含まれる「network」が、「net」と「work」といった2つの名詞に分解されたとすると、結合部103は、これら連続した2つの名詞を結合して「network」といった結合名詞を取得する。結合部103は、3つ以上の名詞が連続する場合も同様に、連続する3つ以上の名詞を結合して結合名詞を取得すればよい。
【0048】
[クラスタリング実行部]
クラスタリング実行部104は、第1コメントに関するクラスタリングを実行する。本実施形態では、クラスタリング手法として、k-meansクラスタリングを例に挙げるが、クラスタリング手法自体は、種々の手法を利用可能である。例えば、ウォード法、群平均法、最短距離法、又はDBSCANといったクラスタリング手法を利用可能である。例えば、クラスタリング実行部104は、確率モデルの一種であるトピックモデルと呼ばれるクラスタリング手法を利用して、クラスタリングを実行してもよい。クラスタリングは、教師無し学習の手法が利用されてもよい。
【0049】
本実施形態では、クラスタリング実行部104は、第1コメントに含まれる第1センテンスに関する特徴に基づいて、第1センテンスに関するクラスタリングを実行する。第1センテンスに関する特徴とは、第1センテンスの全部又は一部の特徴を示すデータである。特徴は、埋め込み表現と呼ばれることもある。例えば、クラスタリング実行部104は、第1コメントに含まれる第1センテンスの特徴ベクトルを取得する。第1センテンスに関する特徴は、任意の形式で表現可能であり、ベクトル形式に限られない。例えば、第1センテンスに関する特徴は、配列又は単一の数値といった他の形式で表現されてもよい。
【0050】
本実施形態では、第1センテンスの特徴ベクトルの取得方法として、fastTextを例に挙げるが、特徴ベクトルの取得方法自体は、種々の方法を利用可能である。例えば、BOW又はWord2vecと呼ばれる手法が利用されて、第1センテンスの特徴ベクトルが取得されてもよい。例えば、クラスタリング実行部104は、複数の第1コメントから複数の第1センテンスを取得し、複数の第1センテンスの各々の特徴ベクトルを取得する。
【0051】
例えば、クラスタリング実行部104は、複数の第1センテンスの各々の特徴ベクトルに基づいて、k-meansクラスタリングを実行する。クラスタリング実行部104は、互いに特徴ベクトルが似ているセンテンス同士が同じクラスタに属するように、クラスタリングを実行する。特徴ベクトルが似ているとは、ベクトル空間上における距離が近いことである。例えば、クラスタリング実行部104は、互いに距離が近い順に所定数の第1センテンスを特定し、当該所定数の第1センテンスが同じクラスタに属するように、クラスタリングを実行する。クラスタリング実行部104は、クラスタごとに、クラスタIDを生成し、当該クラスタに属するセンテンスが関連付けられるように、クラスタデータベースDB2を更新する。
【0052】
図7は、クラスタの一例を示す図である。
図7の例では、3つのクラスタC1~C3が示されている。以降、クラスタC1~C3を区別しない時は、単にクラスタCという。クラスタCの数は、2つ又は4つ以上であってもよく、3つに限られない。例えば、クラスタCの上限数が定められていてもよいし、特に上限数が定められていなくてもよい。本実施形態では、第1コメントに含まれる第1センテンスのクラスタリングが実行される場合を説明するが、クラスタリングの対象になるのは、第1センテンスではなく、第1コメント全体であってもよいし、第1コメントに含まれる個々のワード(形態素又は結合名詞)であってもよい。
【0053】
例えば、クラスタC1には、第1センテンスS101,S102等が属する。クラスタリング実行部104は、第1センテンスS101,S102等の各々に含まれる候補ワードW1,W2等を取得する。本実施形態では、トピックワードとして、名詞であるaspect termが取得されるので、クラスタリング実行部104は、形態素解析によって名詞に分類された形態素を、候補ワードW1,W2等として取得する。候補ワードW1,W2等は、互いに重複がないように取得される。後述のトピックワード取得部105により、候補ワードW1,W2等の各々の出現頻度が計算されて、トピックワードW2等が取得される。
【0054】
例えば、クラスタC2には、センテンスS201,S202等が属する。クラスタリング実行部104は、センテンスS201,S202等の各々に含まれる候補ワードW1,W3等を取得する。クラスタリング実行部104は、形態素解析によって名詞に分類された形態素を、候補ワードW1,W3等として取得する。候補ワードW1,W3等は、互いに重複がないように取得される。後述のトピックワード取得部105により、ワードW1,W3等の各々の出現頻度が計算されて、トピックワードW3等が取得される。
【0055】
例えば、クラスタC3には、センテンスS301,S302等が属する。クラスタリング実行部104は、センテンスS301,S302等の各々に含まれる候補ワードW1,W4等を取得する。クラスタリング実行部104は、形態素解析によって名詞に分類された形態素を、候補ワードW1,W4等として取得する。候補ワードW1,W4等は、互いに重複がないように取得される。後述のトピックワード取得部105により、ワードW1,W4等の各々の出現頻度が計算されて、トピックワードW4等が取得される。
【0056】
なお、クラスタリング実行部104は、トピックワードとして、形容詞であるopinion wordが取得される場合、クラスタリング実行部104は、形態素解析によって形容詞に分類された形態素を、候補ワードとして取得すればよい。また、aspect termは、名詞以外の品詞であってもよいし、opinion wordは、形容詞以外の品詞であってもよい。クラスタリング実行部104は、候補ワードとして取得した品詞の形態素を、候補ワードとして取得すればよい。クラスタリング実行部104は、特に品詞に関係なく、全てのワードを候補ワードとして取得してもよい。
【0057】
本実施形態では、形態素解析によって分解された複数の名詞が連続する場合には、互いに結合されて結合名詞になるので、クラスタリング実行部104は、結合名詞に基づいて、クラスタリングを実行する。例えば、クラスタリング実行部104は、結合名詞に基づいて、第1センテンスの特徴ベクトルを取得し、クラスタリングを実行する。クラスタリング実行部104は、結合される前の複数の名詞ではなく結合名詞に基づいて、第1センテンスの特徴ベクトルを取得する。クラスタリングの実行方法は、先述した通りである。
【0058】
[トピックワード取得部]
トピックワード取得部105は、クラスタリングの実行結果に基づいて、トピックワードを取得する。例えば、トピックワード取得部105は、クラスタCごとに、当該クラスタに属する第1センテンスに含まれるワードを、トピックワードとして取得する。例えば、トピックワード取得部105は、第1センテンスが属するクラスタCごとに、当該クラスタCを代表するトピックワードを取得する。
【0059】
本実施形態では、トピックワード取得部105は、クラスタリングの実行結果に基づいて、クラスタCごとに、トピックワードに関する複数の候補ワードを取得し、当該複数の候補ワードの中から、トピックワードを取得する。例えば、トピックワード取得部105は、候補ワードごとに、当該候補ワードに関する出現頻度を計算し、当該出現頻度に基づいて、トピックワードを取得する。
【0060】
例えば、トピックワード取得部105は、クラスタCごとに、候補ワードの出現をカウントし、出現頻度として取得する。出現頻度の計算方法自体は、任意の方法であってよく、例えば、単純に出現回数をカウントする方法であってもよいし、TF-IDF法が利用されてもよい。TF-IDF法が利用される場合には、ある特定のクラスタCだけで頻出する候補ワードの出現頻度が高くなり、どのクラスタCでも満遍なく出現する候補ワードの出現頻度はひくくなる。
【0061】
図7の例では、トピックワード取得部105は、クラスタC1における候補ワードW1,W2等の各々の出現頻度を計算し、クラスタID、候補ワード、及び出現頻度を互いに関連付けてクラスタデータベースDB2に格納する。トピックワード取得部105は、クラスタC2における候補ワードW1,W3等の各々の出現頻度を計算し、クラスタID、候補ワード、及び出現頻度を互いに関連付けてクラスタデータベースDB2に格納する。クラスタC3における候補ワードW1,W3等の各々の出現頻度を計算し、クラスタID、候補ワード、及び出現頻度を互いに関連付けてクラスタデータベースDB2に格納する。
【0062】
例えば、トピックワード取得部105は、出現頻度が閾値以上の候補ワードを、トピックワードとして取得してもよい。閾値は、全てのクラスタCで共通であってもよいし、クラスタCに応じた閾値が定められてもよい。例えば、クラスタCに属する候補ワードの数に応じた閾値であってもよい。トピックワード取得部105は、出現頻度が高い順に所定数の候補ワードをトピックワードとして取得してもよい。
【0063】
図7の例では、トピックワード取得部105は、TF-IDF法に基づいて、出現頻度を計算する。候補ワードW1は、クラスタC1~C3でまんべんなく出現するので、TF-IDF法に基づく出現頻度としては低くなる。候補ワードW1は、クラスタC1~C3の各々を代表するワードではなく、サービスに対する何らかのコメントを入力する時に汎用的に用いられるワードにすぎないので、トピックワードとして取得されない。
【0064】
一方、候補ワードW2は、クラスタC1だけで頻出するので、TF-IDF法に基づく出現頻度としては高くなる。候補ワードW2は、クラスタC1の特徴をよく表す代表的なワードなので、クラスタC1のトピックワードとして取得される。同様に、候補ワードW3は、クラスタC2の代表的なワードなので、クラスタC2のトピックワードとして取得される。候補ワードW4は、クラスタC3の代表的なワードなので、クラスタC3のトピックワードとして取得される。
【0065】
なお、トピックワード取得部105は、予め定められた方法に基づいて、トピックワードを取得すればよい。トピックワードの取得方法は、上記の例に限られない。例えば、トピックワード取得部105は、出現頻度を計算せずに、候補ワードの全てをトピックワードとして取得してもよい。例えば、トピックワード取得部105は、複数の候補ワードの中からランダムに選択した候補ワードを、トピックワードとして取得してもよい。
【0066】
[意見分析部]
意見分析部106は、トピックワードに基づいて、第1コメントに含まれる第1センテンスにおける意見を分析する。本実施形態では、意見分析部106は、トピックワードに基づいて、第1センテンスにおける意見を分析する場合を説明する。なお、意見分析部106は、トピックワードに基づいて、第2コメントに含まれる第2センテンスにおける意見を分析してもよい。第2センテンスにおける意見を分析する場合は、後述の変形例で説明する。
【0067】
第2コメントは、第1コメントとは異なるコメントである。第2コメントは、クラスタリングの対象にはならないコメントである。即ち、第2コメントは、トピックワードを取得するためには利用されないコメントである。先述したコメント取得部101は、第2コメントを取得してもよい。第2コメントの取得方法は、第1コメントの取得方法と同様であってよい。以降説明する実施形態では、第1コメントに含まれる第1センテンスが意見分析の対象になるものとする。
【0068】
本実施形態では、意見分析部106は、第1センテンスにトピックワードが含まれるか否かを判定することによって、意見を分析する。意見は、トピックワードと、当該トピックワードに関する他の要素と、を含む複数の要素で表現されるので、意見分析部106は、第1センテンスにトピックワードが含まれると判定された場合に、第1センテンスのうち、当該トピックワードの部分以外の他の部分に基づいて、他の要素を取得することによって、意見を分析する。
【0069】
例えば、意見分析部106は、他の部分の中から、第1センテンスに含まれるトピックワードと係り受けの関係にある係り受けワードを、他の要素として取得する。係り受けワードの取得方法自体は、種々の係り受け解析ツールを利用可能である。例えば、先述した形態素解析ツールには係り受け解析が可能なツールも存在するので、意見分析部106は、形態素解析ツールを利用して、係り受けワードを取得してもよい。例えば、本実施形態のように、名詞であるaspect termがトピックワードに相当する場合には、意見分析部106は、名詞と係り受けの関係にある形容詞を、係り受けワードとして特定してもよい。
【0070】
図2の例であれば、意見分析部106は、トピックワードであるaspect term「network connection」と係り受けの関係にある「very good」を、係り受けワードとして特定する。意見分析部106は、当該特定された係り受けワード「very good」を、opinion wordとして取得する。この場合、第1センテンスのうちのaspect term以外の部分「The becomes very good.」が他の部分に相当し、opinion wordが他の要素に相当する。
【0071】
なお、トピックワードは、opinion wordであってもよい。
図2の例であれば、意見分析部106は、トピックワードであるopinion word「very good」と係り受けの関係にある「network connection」を、係り受けワードとして特定する。意見分析部106は、当該特定された係り受けワード「network connection」を、aspect termとして取得する。この場合、aspect termが他の要素に相当する。形容詞であるopinion wordがトピックワードに相当する場合、意見分析部106は、形容詞と係り受けの関係にある名詞(主語)を、係り受けワードとして特定してもよい。
【0072】
本実施形態では、意見を表現する複数の要素は、トピックワード、係り受けワード、及び意見に関するpolarityを含む。polarityは、意見が肯定的であるか否かを示す情報である。本実施形態では、polarityは、positive又はnegativeの2値で表現される場合を説明するが、これらの2値ではなく、中間値が存在してもよい。例えば、polarityは、どの程度positiveであるか、又は、どの程度negativeであるかといたような度合いを、パーセンテージで表現する情報であってもよい。
【0073】
例えば、意見分析部106は、トピックワード及び係り受けワードの少なくとも一方に基づいて、polarityを取得することによって、意見を分析する。本実施形態では、意見分析部106は、トピックワード及び係り受けワードの両方に基づいて、polarityを取得する場合を説明するが、意見分析部106は、トピックワード又は係り受けワードの何れか一方のみに基づいて、polarityを取得してもよい。
【0074】
例えば、意見分析部106は、トピックワード及び係り受けワードと、極性推定モデルM1と、に基づいて、polarityを取得する。意見分析部106は、トピックワード及び係り受けワードを極性推定モデルM1に入力する。極性推定モデルM1は、トピックワード及び係り受けワードの特徴ベクトルを計算し、特徴ベクトルに応じたpolarityを出力する。意見分析部106は、極性推定モデルM1から出力されたpolarityを取得する。
【0075】
例えば、意見分析部106は、上記のような意見分析の実行結果に基づいて、分析結果データを生成し、コメントデータベースDB1に格納する。分析結果データは、任意の目的で利用可能である。例えば、サーバ10は、意見分析システム1の管理者の端末に対し、分析結果データを送信してもよい。管理者の端末では、分析結果データに基づいて、種々のユーザの意見を、クラスタCのラベルと関連付けて表示してもよい。
【0076】
[3-2.ユーザ端末で実現される機能]
ユーザ端末20は、データ記憶部200、表示制御部201、及び操作受付部202を含む。データ記憶部200は、記憶部22により実現される。表示制御部201及び操作受付部202は、制御部21により実現される。
【0077】
[データ記憶部]
データ記憶部200は、第1コメントの入力に必要なデータを記憶する。例えば、データ記憶部200は、入力画面SCを表示するために必要なブラウザを記憶する。例えば、データ記憶部200は、ブラウザではなく、専用のアプリケーションを記憶してもよい。例えば、音声を利用して第1コメントが入力される場合には、データ記憶部200は、音声をテキストに変換する変換ツールを記憶してもよい。
【0078】
[表示制御部]
表示制御部201は、入力画面SCを表示部25に表示させる。
【0079】
[操作受付部]
操作受付部202は、第1コメントを入力する操作を受け付ける。
【0080】
[4.意見分析システムで実行される処理]
図8は、意見分析システム1で実行される処理の一例を示すフロー図である。
図8では、サーバ10が実行する処理が示されている。
図8の処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。
図8の処理が実行される前に、サーバ10は、複数のユーザ端末20の各々から第1コメントを取得し、複数のユーザの各々が入力した第1コメントをコメントデータベースDB1に格納しているものとする。
【0081】
図8のように、サーバ10は、コメントデータベースDB1に格納された第1コメントを取得する(ST1)。ST1では、サーバ10が所定数の第1コメントを取得する場合を説明するが、サーバ10は、第1コメントを1つずつ取得し、ST2以降の処理を繰り返し実行してもよい。サーバ10は、第1コメントを第1センテンスに分解し、第1センテンスに対し、形態素解析を実行する(ST2)。サーバ10は、第1センテンスから取得された複数の形態素のうち、連続する名詞を結合することによって、結合名詞を取得する(ST3)。連続する名詞が存在しない場合には、ST3の処理は実行されない。
【0082】
サーバ10は、第1センテンスの特徴ベクトルを取得する(ST4)。サーバ10は、ST4で取得した特徴ベクトルに基づいて、クラスタリングを実行する(ST5)。ST5では、サーバ10は、特徴ベクトルが類似するセンテンス同士が同じクラスタCに属するように、クラスタリングを実行する。サーバ10は、クラスタCごとに、候補ワードの出現頻度を計算する(ST6)。サーバ10は、クラスタCごとに、候補ワードの出現頻度に基づいて、トピックワードを取得する(ST7)。ST7では、サーバ10は、閾値以上の出現頻度を有する候補ワードを、トピックワードとして取得する。ST7までの処理によって、辞書データベースDB3の作成が完了する。
【0083】
サーバ10は、第1コメントごとに、トピックワードと係り受けの関係にある係り受けワードを特定する(ST8)。ST8では、サーバ10は、aspect termであるトピックワードと係り受け関係にある係り受けワードを、opinion wordとして特定する。サーバ10は、第1センテンスごとに、当該第1センテンスから取得したトピックワード及び係り受けワードと、極性推定モデルM1と、に基づいて、当該第1センテンスのpolarityを取得し(ST9)、本処理は終了する。
【0084】
本実施形態の意見分析システム1は、サービスを利用するユーザにより入力された、サービスに関する第1コメントに関するクラスタリングの実行結果に基づいて、サービスに対する意見に関するトピックワードを取得する。意見分析システム1は、トピックワードに基づいて、第1コメントに含まれる第1センテンスにおける意見を分析する。これにより、第1コメント全体を意見分析の対象とするのではなく、第1センテンスを意見分析の対象にすることによって、第1コメントの中に意見分析に向かない第1センテンスが含まれていたとしても、この第1センテンスがノイズになることを防止できるので、意見分析の精度が高まる。
【0085】
また、意見分析システム1は、トピックワードに基づいて、第1センテンスにおける意見を分析する。後述する変形例のように、意見分析システム1は、第2センテンスを意見分析の対象にしてもよいが、第1センテンスを意見分析の対象にすることによって、後述する変形例のように意見分析モデルを作成しなくても、第1センテンスにおける意見を分析できる。
【0086】
また、意見分析システム1は、第1コメントに含まれる第1センテンスに関する特徴に基づいて、第1センテンスに関するクラスタリングを実行する。意見分析システム1は、第1センテンスに関するクラスタCごとに、当該クラスタCを代表するトピックワードを取得する。第1センテンスをクラスタリングの対象にすることによって、意見分析により適したトピックワードを取得できるので、意見分析の精度がより高まる。
【0087】
また、意見分析システム1は、第1センテンスにトピックワードが含まれるか否かを判定することによって、意見を分析する。これにより、クラスタCを代表するトピックワードを含む第1センテンスの意見分析を実行できるので、意見分析の精度が高まる。
【0088】
また、意見分析システム1は、第1センテンスにトピックワードが含まれると判定された場合に、第1センテンスのうち、当該トピックワードの部分以外の他の部分に基づいて、他の要素を取得することによって、意見を分析する。トピックワードの部分以外の他の部分を利用して意見を分析することによって、意見分析の精度がより高まる。
【0089】
また、意見分析システム1は、トピックワードの部分以外の他の部分の中から、第1センテンスに含まれるトピックワードと係り受けの関係にある係り受けワードを、他の要素として取得する。トピックワードと係り受けの関係にある係り受けワードを利用して意見を分析することによって、意見分析の精度がより高まる。
【0090】
また、意見分析システム1は、トピックワード及び係り受けワードの少なくとも一方に基づいて、polarityを取得することによって、意見を分析する。これにより、意見の極性を推定できる。
【0091】
また、意見分析システム1は、クラスタリングの実行結果に基づいて、クラスタCごとに、トピックワードに関する複数の候補ワードを取得する。意見分析システム1は、当該複数の候補ワードの中から、トピックワードを取得する。クラスタCごとに、複数の候補ワードの中からトピックワードを取得することによって、クラスタCに適したトピックワードを取得できるので、意見分析の精度がより高まる。
【0092】
また、意見分析システム1は、候補ワードごとに、当該候補ワードに関する出現頻度を計算する。意見分析システム1は、当該出現頻度に基づいて、トピックワードを取得する。これにより、クラスタCに属する第1センテンスの中でよく出現する候補ワードをトピックワードとすることによって、クラスタCを代表するトピックワードを取得できるので、意見分析の精度がより高まる。
【0093】
また、意見分析システム1は、第1コメントから取得された複数の形態素の中に、互いに連続する複数の名詞が含まれている場合には、当該複数の名詞を結合して結合名詞を取得する。意見分析システム1は、結合名詞に基づいて、クラスタリングを実行する。これにより、本来は1つの名詞であるワードが形態素解析によって複数の名詞に分解されてしまったとしても、元々の1つのワードである結合名詞に戻すことができるので、意見分析の精度がより高まる。
【0094】
[5.変形例]
なお、本開示は、以上に説明した実施形態の例に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0095】
図9は、変形例における機能の一例を示す図である。
図9のように、以降説明する変形例では、クラスタ推定部107及び補填部108が実現される。クラスタ推定部107及び補填部108は、制御部11を主として実現される。また、データ記憶部100は、意見分析モデルM2を記憶する。意見分析モデルM2の詳細については、後述する。
【0096】
[5-1.変形例1]
例えば、実施形態では、クラスタCのラベルが人手で付与される場合を説明したが、クラスタCのラベルは、自動的に付与されてもよい。変形例1の意見分析システム1は、クラスタ推定部107を更に含む。クラスタ推定部107は、クラスタCごとに、当該クラスタCのトピックワードと、所定のトピックに関連付けられた関連ワードと、に基づいて、当該クラスタCが当該所定のトピックに関係するか否かを推定する。関連ワードは、所定のトピックを代表するワードである。関連ワードは、シードワードと呼ばれることもある。
【0097】
図10は、クラスタCにラベルを付与する処理の一例を示す図である。変形例1では、クラスタ推定部107は、クラスタCごとに、トピックワードの特徴ベクトルと、関連ワードの特徴ベクトルと、を取得する。特徴ベクトルの取得方法は、実施形態で説明した通りである。関連ワードの特徴も、ベクトル形式以外の他の形式(例えば、配列形式又は単一の数値)で表現されてもよい。変形例1では、実施形態と同様に、fastTextが利用される場合を説明する。
【0098】
図10の例では、トピックが「品質」であり、関連ワードが「電波強度」である。この関連ワードは、サービスにおける品質の1つを表すワードである。クラスタ推定部107は、クラスタC1のトピックワードW2の特徴ベクトルと、関連ワードの特徴ベクトルと、のコサイン類似度sim1を計算する。クラスタ推定部107は、クラスタC2のトピックワードW3の特徴ベクトルと、関連ワードの特徴ベクトルと、のコサイン類似度sim2を計算する。クラスタ推定部107は、クラスタC3のトピックワードW4の特徴ベクトルと、関連ワードの特徴ベクトルと、のコサイン類似度sim3を計算する。
【0099】
例えば、クラスタ推定部107は、コサイン類似度sim1~sim3のうち、最も高いコサイン類似度sim1に関連付けられたクラスタC1に、関連ワードに関連付けられたトピックを、ラベルとして付与する。クラスタ推定部107は、コサイン類似度sim1~sim3と、閾値と、に基づいて、ラベルを付与してもよい。例えば、コサイン類似度sim1~sim3のうち、閾値以上のものがコサイン類似度sim1だけだったとすると、クラスタ推定部107は、閾値以上であるコサイン類似度sim1に関連付けられたクラスタC1に、関連ワードに関連付けられたトピックを、ラベルとして付与する。
【0100】
変形例1の意見分析部106は、クラスタ推定部107の推定結果に基づいて、意見を分析する。変形例1の分析結果データには、実施形態で説明した3要素に加えて、トピックワードが属するクラスタCのラベルも含まれる。意見分析部106は、クラスタCのラベルも含む分析結果データを取得することによって、意見を分析する。
【0101】
変形例1の意見分析システム1は、クラスタCごとに、当該クラスタCのトピックワードWと、所定のトピックに関連付けられた関連ワードと、に基づいて、当該クラスタCが当該所定のトピックに関係するか否かを推定する。意見分析システム1は、当該推定結果に基づいて、意見を分析する。これにより、意見分析の精度がより高まる。
【0102】
[5-2.変形例2]
例えば、ユーザが入力した第1コメントに含まれる第1センテンスが文章として不十分だと、第1センテンスから3要素を特定できないこともある。例えば、aspect termが取得されたがopinion wordが省略された第1センテンスが存在することもある。逆に、opinion wordが取得されたがaspect termが省略された第1センテンスが存在することもある。この場合、3要素のうち、取得されなかった要素が何らかの方法で補填されてもよい。
【0103】
変形例2の意見分析システム1は、補填部108を含む。補填部108は、トピックワード以外の他の部分から、トピックワードに関する他の要素が取得されなかった場合に、所定の補填方法に基づいて、他の要素を補填する。他の要素が取得された場合には、補填部108による補填は行われない。変形例2では、トピックワードがopinion wordであり、他の要素がaspect termである場合を例に挙げる。補填方法は、変形例2で説明する方法以外にも、変形例3又は4で説明する方法であってもよい。
【0104】
図11は、opinion wordが取得され、かつ、aspect termが取得されなかった第1センテンスのaspect termを補填する方法の一例を示す図である。
図11のように、変形例2の入力画面SCは、アンケート形式であるものとする。第1コメントは、質問に対する回答である。補填部108は、質問の内容に基づいて、他の要素を補填する。例えば、
図11の例では、質問「接続環境はいかがでしたか?」に対し、第1コメントとして「I went to XYZ mobile shop. Very good.」が得られたとする。第1コメントは、「I went to XYZ mobile shop.」及び「Very good.」といった2つの第1センテンスを含む。実施形態と同様に、1つ目の第1センテンスは、ユーザの意見が表れていない。
【0105】
図11の例では、2つ目の第1センテンスは、主語が省略されている。このため、実施形態のように、トピックワードであるopinion word「Very good」の係り受けが存在しないので、「network connection」といったaspect termを特定できない。この場合、補填部108は、aspect termを特定できなかった第1センテンスの質問「接続環境はいかがでしたか?」に基づいて、aspect termを補填する。例えば、補填部108は、この質問の主語である「接続環境」をそのままaspect termとして補填してもよいし、この質問に予め「network connection」といったaspect termを関連付けておき、この質問に関連付けられた「network connection」をaspect termとして補填してもよい。
【0106】
なお、補填部108の補填方法は、上記の例に限られない。例えば、「ご利用になったサービスで良かったものは何ですか?」といった質問に対し、第1コメントとして、「Network connection.」が取得されたとする。この場合、第1コメントは、1つの第1センテンスのみから構成される。更に、トピックワードとして、aspect termである「network connection」が取得されたとする。この場合、第1コメントの第1センテンスは、opinion wordが省略されているので、補填部108は、上記質問に含まれる形容詞「悪い」をそのままopinion wordとして補填してもよいし、この質問に予め「very good」といったopinion wordを関連付けておき、この質問に関連付けられた「very good」をopinion wordとして補填してもよい。
【0107】
変形例2の意見分析システム1は、トピックワード以外の他の部分から、トピックワードに関する他の要素が取得されなかった場合に、所定の補填方法に基づいて、他の要素を補填する。これにより、第1センテンスが不完全であり、他の要素が取得できなかったとしても、他の要素を補填できるので、意見分析の精度が高まる。例えば、第1センテンスからaspect termしか取得できなかったとしても、opinion wordを補填することによって、aspect termを含まない不十分な第1センテンスの意見分析が可能になる。逆に、第1センテンスからopinion wordしか取得できなかったとしても、aspect termを補填することによって、opinion wordを含まない不十分な第1センテンスの意見分析が可能になる。
【0108】
また、意見分析システム1は、質問の内容に基づいて、トピックワードに関する他の要素を補填する。これにより、第1センテンスが不完全だった場合の他の要素の補填の精度が高まる。例えば、ユーザは、「接続環境はいかがでしたか?」といった質問に対し、接続環境に関する回答を入力するので、第1センテンスがaspect termを含まない不完全なものだったとしても、第1センテンスは、接続環境に関する内容であると推定できる。この場合に、質問に基づいてaspect termを補填できる。例えば、ユーザは、「ご利用になったサービスで悪いものは何ですか?」といった質問に対し、悪かったサービスを入力するので、第1センテンスがopinion wordを含まない不完全なものだったとしても、第1センテンスは、ユーザが悪いと感じたサービスであると推定できる。この場合に、質問に基づいて、opinion wordを補填できる。
【0109】
[5-3.変形例3]
例えば、変形例2において、第1センテンスが不完全だった場合に、似た内容の第3センテンスからaspect termとopinion wordが取得された場合には、第3センテンスから取得されたaspect term及びopinion wordの少なくとも一方から、不完全で取得できなかったものが補填されてもよい。変形例3の入力画面SCは、実施形態のようなフリーフォーム形式であるものとするが、変形例2のような質問形式であってもよい。なお、変形例3では、トピックワードがopinion wordであるものとする。
【0110】
例えば、ユーザが、「I went to XYZ mobile shop. The service becomes very good.」といった第1コメントを入力したとする。実施形態で説明したように、1つ目の第1センテンスは、ユーザの意見が表れていない。2つ目の第1センテンスには、トピックワードとしてopinion wordである「very good」が含まれている。係り受け先は、主語の「The service」であるが、抽象的なワードであり、aspect termとして不適切だったとする。
【0111】
上記の例において、他のユーザが、「I went to XYZ mobile shop. The network connection becomes very good.」といった第3コメントを入力したとする。第3コメントに含まれるセンテンスを、第3センテンスという。この場合、実施形態で説明したように、第3コメントの2つ目の第3センテンスから、aspect term「network connection」と、opinion word「very good」と、を取得できる。これらの取得方法は、実施形態の説明における第1コメント及び第1センテンスを、それぞれ第3コメント及び第3センテンスと読み替えるようにすればよい。
【0112】
変形例3の補填部108は、第1センテンスと似た内容を含む第3コメントから取得された他の要素に基づいて、第1センテンスの他の要素を補填する。例えば、上記の例では、トピックワードとして、opinion wordである「very good」が取得されているが、aspect wordは取得されていない。例えば、補填部108は、第1コメントの2つ目の第1センテンスの特徴ベクトルと、第3コメントの2つ目の第3センテンスの特徴ベクトルと、に基づいて、これらの第1センテンス及び第3センテンスが類似することを特定する。これらが類似するとは、特徴ベクトル同士の距離が閾値未満になることである。例えば、補填部108は、第3センテンスから取得されたaspect termである「network connection」を、第1センテンスから取得されなかったaspect termとして補填する。第3センテンスは、特徴ベクトルではなく、第1センテンスと同じopinion wordを含むセンテンスであってもよい。この場合、特徴ベクトルは計算されず、aspect termを含まない第1センテンスと同じopinion wordを含む第3センテンスが特定される。
【0113】
なお、補填部108の補填方法は、上記の例に限られない。例えば、第1センテンスからaspect termが取得され、かつ、opinion wordが取得されなかった場合に、補填部108は、第1センテンスと似た内容の第3センテンスから取得されたopinion wordを、第1センテンスのaspect termとして補填してもよい。例えば、ユーザが「I went to XYZ mobile shop. The network connection becomes...」といったように、opinion wordを省略した第1センテンスを入力したとする。この場合に、補填部108は、2つ目の第1センテンスと似た第3センテンス「The network connection becomes very good.」を特定する。補填部108は、この第3センテンスから取得したopinion wordである「very good」を、第1センテンスのopinion wordとして特定してもよい。
【0114】
変形例3の意見分析システム1は、第1センテンスと似た内容を含む第3センテンスから取得された他の要素に基づいて、第1センテンスの他の要素を補填する。これにより、第1センテンスが不完全だった場合の他の要素の補填の精度が高まる。例えば、第1センテンスがaspect termを含まない不完全なものだったとしても、第1センテンスと似た内容を含む第3センテンスから取得されたaspect termで補填できる。例えば、第1センテンスがopinion wordを含まない不完全なものだったとしても、第1センテンスと似た内容を含む第3センテンスから取得されたopinion wordで補填できる。
【0115】
[5-4.変形例4]
例えば、第1コメントは、入力画面SC等の専用のフォームに入力されたものではなく、SNS上の投稿であってもよい。この場合に、第1コメントには、ハッシュタグと呼ばれる情報が関連付けられていることがある。ハッシュタグは、第1コメントの内容を分類可能な情報である。この場合に、補填部108は、不完全な第1センテンスに関連付けられたハッシュタグに基づいて、第1センテンスに足りない要素を補填してもよい。
【0116】
ハッシュタグは、分類の一例である。このため、ハッシュタグと記載した箇所は、分類と読み替えることができる。分類は、第1コメントを何らかの形で分類する情報であればよく、ハッシュタグに限られない。例えば、ハッシュマーク以外の記号を利用した情報が、分類に相当してもよい。変形例4では、第1コメントを入力したユーザが分類を入力する場合を説明するが、予め定められた複数の分類の中から、ユーザが分類を選択するようにしてもよい。
【0117】
変形例4の補填部108は、ハッシュタグに基づいて、他の要素を補填する。例えば、ユーザが、SNSの投稿として、「I went to XYZ mobile shop. The service becomes very good.」といった第1コメントを入力したとする。この第1コメントに、ハッシュタグ「#network connection」が関連付けられていたとする。変形例3で説明したように、この第1コメントの2つ目の第1センテンスは、opinion word「very good」を含むが、aspect termを含まない。補填部108は、ハッシュタグに含まれる「network connection」を、aspect termとして取得する。
【0118】
なお、補填部108の補填方法は、上記の例に限られない。例えば、ユーザが、SNSの投稿として、「I went to XYZ mobile shop. The network connection becomes...」といった第1コメントを入力したとする。この第1コメントに、ハッシュタグ「#very good」が関連付けられていたとする。変形例3で説明したように、この第1コメントの2つ目の第1センテンスは、opinion wordを含まない。補填部108は、ハッシュタグに含まれる「very good」を、opinion wordとして取得してもよい。
【0119】
変形例4の意見分析システム1は、第1コメントに関連付けられたハッシュタグに基づいて、他の要素を補填する。これにより、第1センテンスが不完全だった場合の他の要素の補填の精度が高まる。例えば、第1センテンスがaspect termを含まない不完全なものだったとしても、第1センテンスに関連付けられたハッシュタグから取得されたaspect termで補填できる。例えば、第1センテンスがopinion wordを含まない不完全なものだったとしても、第1センテンスに関連付けられたハッシュタグから取得されたopinion wordで補填できる。
【0120】
[5-5.変形例5]
例えば、実施形態及び変形例1~4では、第1センテンスに対する意見分析が実行される場合を説明したが、第2センテンスに対する意見分析が実行されてもよい。第2センテンスに対する意見分析は、実施形態及び変形例1~4における意見分析部106の説明で第1センテンスと記載した箇所を第2センテンスと読み替えるようにすればよい。なお、意見分析部106は、第1センテンス又は第2センテンスに対する意見分析を実行すればよい。意見分析部106は、第1センテンス及び第2センテンスの両方に対する意見分析を実行してもよい。
【0121】
意見分析部106は、トピックワードに基づいて、第2センテンスにおける意見を分析する。例えば、意見分析部106は、第2センテンスにトピックワードが含まれるか否かを判定することによって、意見を分析する。第2センテンスにトピックワードが含まれると判定された場合に、第2センテンスのうち、当該トピックワードの部分以外の他の部分に基づいて、他の要素を取得することによって、意見を分析してもよい。例えば、意見分析部106は、他の部分の中から、第2センテンスに含まれるトピックワードと係り受けの関係にある係り受けワードを、他の要素として取得してもよい。これらの処理は、実施形態で第1センテンスと記載した箇所を、第2センテンスと読み替えることにより実行されるようにすればよい。
【0122】
例えば、変形例2と同様に、第2コメントは、質問に対する回答であってもよい。例えば、変形例3と同様に、補填部108は、第2センテンスと似た内容を含む第3センテンスから取得された他の要素に基づいて、第2センテンスの他の要素を補填してもよい。例えば、変形例4と同様に、第2コメントには、ハッシュタグを一例とする分類情報が関連付けられていてもよい。第2コメントが不完全である場合に不足した要素を補填する方法は、変形例2~4の説明で第1センテンスと記載した箇所を第2センテンスと読み替えるようにすればよい。
【0123】
変形例5の意見分析システム1は、第2センテンスにおける意見を分析する。これにより、第1コメントに基づいて取得したトピックワードを利用して、第2センテンスにおける意見分析を実行できる。
【0124】
また、意見分析システム1は、第2センテンスに意見ワードが含まれるか否かを判定することによって、意見を分析する。これにより、クラスタCを代表するトピックワードを含む第2センテンスの意見分析を実行できるので、意見分析の精度が高まる。
【0125】
[5-6.変形例6]
例えば、変形例5のように第2センテンスにおける意見を分析する場合に、意見分析部106は、トピックワードに基づいて、意見を分析するための意見分析モデルM2の学習を実行する。意見分析モデルM2は、機械学習手法を利用した機械学習モデルの一例である。このため、意見分析モデルM2と記載した箇所は、機械学習モデルと読み替えることができる。
【0126】
例えば、意見分析モデルM2は、教師有り学習、半教師有り学習、又は教師無し学習の何れの手法を利用してもよい。本実施形態では、BERTと呼ばれる手法を利用した意見分析モデルM2を例に挙げるが、意見分析モデルM2は、BERT以外のTransformer又はニューラルネットワークの手法を利用してもよい。例えば、意見分析モデルM2は、Q&Aベースモデルと呼ばれる手法が利用されてもよい。
【0127】
意見分析モデルM2には、第1センテンスと、第1センテンスから取得されたaspect term、opinion word、及びpolarityと、のペアである訓練データが学習されている。第1センテンスからaspect term、opinion word、及びpolarityを取得する方法は、実施形態で説明した方法と同様の方法が利用されてよい。訓練データは、人手で作成されてもよいし、公知のツールが利用されて自動的に作成されてもよい。例えば、意見分析モデルM2は、第1センテンスが入力されると、第1センテンスから取得されたaspect term、opinion word、及びpolarityが出力されるように、パラメータが調整されている。意見分析モデルM2の学習手法自体は、機械学習手法で利用されている種々の手法を利用可能である。
【0128】
例えば、意見分析部106は、学習済みの意見分析モデルM2と、第2センテンスと、に基づいて、意見を分析する。意見分析部106は、学習済みの意見分析モデルM2に対し、第2センテンスを入力する。意見分析モデルM2は、第2センテンスの特徴ベクトルを計算し、特徴ベクトルに応じたaspect term、opinion word、及びpolarityを出力する。意見分析部106は、意見分析モデルM2が出力したaspect term、opinion word、及びpolarityを取得することによって、意見を分析する。
【0129】
変形例6の意見分析システム1は、トピックワードに基づいて、意見を分析するための意見分析モデルM2の学習を実行する。意見分析システム1は、学習済みの意見分析モデルM2と、第2センテンスと、に基づいて、意見を分析する。これにより、第2センテンスに対する意見分析の精度が高まる。
【0130】
[5-7.その他変形例]
例えば、上記変形例を組み合わせてもよい。
【0131】
例えば、サーバ10で実現されるものとして説明した機能は、ユーザ端末20又は他のコンピュータで実現されてもよいし、複数のコンピュータで分担されてもよい。例えば、コメント取得部101が第1のコンピュータで実現され、形態素解析部102及び結合部103が第2のコンピュータで実現され、クラスタリング実行部104、トピックワード取得部105、及び意見分析部106が第3のコンピュータで実現されるといったように、複数のコンピュータで処理が分担されてもよい。
【符号の説明】
【0132】
1 意見分析システム、B ボタン、F 入力フォーム、N ネットワーク、10 サーバ、11 制御部、12 記憶部、13 通信部、20 ユーザ端末、21 制御部、22 記憶部、23 通信部、24 操作部、25 表示部、M1 極性推定モデル、M2 意見分析モデル、SC 入力画面、100 データ記憶部、101 コメント取得部、102 形態素解析部、103 結合部、104 クラスタリング実行部、105 トピックワード取得部、106 意見分析部、107 クラスタ推定部、108 補填部、200 データ記憶部、201 表示制御部、202 操作受付部、DB1 コメントデータベース、DB2 クラスタデータベース、DB3 辞書データベース。