自然言語処理技法BERTよるコンテンツ商品のレビューデータに基づくユーザーの感情分析

python

レビューデータを分析してみたいです。

このような要望にお応えします。

今回は、感情分析を行いたいと思います。感情分析とは何でしょうか?

感情分析とは与えられた文章がポジティブな意見で構成されているのか、ネガティブな意見なのかを一連の単語から判断し、分類することを目指します。

感情分析は、自社製品、サービスに対する多様な意見を定量化することに役に立ちます。ユーザーはTwitter, Facebook, Instagram等のSNSで自身が持つ肯定、否定の考えを主張し、Amazonにレビューを書き残したり、ポジティブな感情とネガティブな感情の両方を表現していますよね。このような多様な意見を感情値という形で定量化させることで、ユーザエクスペリエンスの向上、ユーザーへの適切な情報推薦、品質改善に役立てることができます。

それでは、感情分析を行いたいと思います。
今回は、感情分析の効率的な実施を支援してくれるPythonで利用可能なhuggingfaceのbert-base-japanese-sentimentを利用したいと思います。

  • https://huggingface.co/daigo/bert-base-japanese-sentiment

自然言語技法BERTについて、さらっと触れておきます。

“Bidirectional Encoder Representations from Transformers(BERT)は、Googleが開発した自然言語処理(NLP)の事前学習のための技術である。BERTはGoogleのJacob Devlin氏らによって2018年に作成され、公開された。GoogleはBERTを活用してユーザー検索の理解を深めている。”
(wikipediaより抜粋。https://en.wikipedia.org/wiki/BERT_(language_model))

今回、レビューデータは、書籍コンテンツの口コミを利用します。実行環境としてGoogle Colaboratoryを使用しました。

感情分析で使用する辞書の準備をします。
以下のコマンドを実行することで感情分析で使用するツールをインストールできます。

以下のプログラムを実行することで、感情分析用のモデルを読み込むことができます。

以下のプログラムを実行することで、感情分析を実施したいテキストデータを入力し、入力データに対して感情分析された結果を取得することができます。

入力データの形式は、以下を想定しています。

感情分析を実行するプログラムは、以下になります。

出力結果は、以下になります。

各レビュー毎のポジティブ、ネガティブの度合いが出力されています。多様な意見を感情値という形で定量化させることができそうですね。

下記を参考にさせていただきました。

  • https://qiita.com/toshiyuki_tsutsui/items/604f92dbe6e20a18a17e
  • https://huggingface.co/daigo/bert-base-japanese-sentiment
  • https://github.com/ydaigo/BERT_HANDSON/blob/master/BERT_HANDS_ON.ipynb
タイトルとURLをコピーしました