今回はPower BIでテキストマイニングをしてみた話です。私の環境ではAzure Cognitive Serviceを使うことができないのですが、Azure Cognitive Serviceを使わずに日本語で記載されたテキスト(今回は製品のレビューコメント)内のキーワードの出現頻度をWordCloudで可視化してみました。
(私の会社だけかもしれませんが、WordCloudはユーザーの興味をひきやすいので、Power BIの啓蒙活動の時とかにお勧めのビジュアルです!)
Power BIにはWordCloudのビジュアルが用意されていますが、日本語のテキストをそのままWordCloudに読み込むと、日本語が単語単位に分解されずに、文章がそのままみえてきてしまうので、まずはテキストを単語に分解(形態素分析)する必要があります。形態素分析するためによいライブラリがPythonには揃っているのでPythonを使って形態素分析しました。今回は形態素分析するためのライブラリとしてMeCabを使用しています。
※Power BIではPythonと連携することもできますが、スケジュール更新ができなかったため、今回はPower BI上でのPython連携はせずに、Pythonでテキスト解析した情報を別途Power BIで読み込んでいます。
https://learn.microsoft.com/ja-jp/power-bi/connect-data/desktop-python-scripts
準備
・製品のレビューコメント(ShampooLove.csv)
今回はアットコスメのレビューからスクレイピングしたデータを用意しました。
※データの内容(例)
date | name | age | ... | product | score | review | ... |
---|---|---|---|---|---|---|---|
10/5/2022 | Kaori | 29 | AAAA | 5 | 香りがよい | ||
30/8/2022 | Ayako | 34 | BBBB | 4 | 髪の毛さらさら | ||
3/11/2022 | Mari | 20 | CCCC | 6 | パッケージがかわいい |
・Python
・Power BI
処理の流れ
1.PythonでMecabを使ってレビューコメントを形態素解析
2.Power BIにて形態素解析したデータの読込み
3.Word Cloud作成(カスタムビジュアル)
手順
1.PythonでMecabを使って形態素解析
1-1.Pythonにpandas, MeCab, csvライブラリをインポートする
import pandas as pd
import MeCab
import csv
1-2.準備した"ShampooLove.csv"を読み込んでMeCabを使って形態素分析する
df = pd.read_csv('ShampooLove.csv')
tagger = MeCab.Tagger("-Ochasen")
def extractKeyword(text):
"""Morphological analysis of text and returning a list of nouns, adjective, verb, adverb"""
node = tagger.parseToNode(text)
keywords = []
while node:
if node.feature.split(",")[0] == u"名詞":
keywords.append(node.surface)
elif node.feature.split(",")[0] == u"形容詞":
keywords.append(node.feature.split(",")[6])
elif node.feature.split(",")[0] == u"動詞":
keywords.append(node.feature.split(",")[6])
elif node.feature.split(",")[0] == u"副詞":
keywords.append(node.feature.split(",")[6])
node = node.next
return keywords
1-3.同じファイルに"review-1"という列を作成し、"review"にあるレビューコメントを形態素分析した結果を返す
df['review-1'] = df['review'].apply(extractKeyword)
2.Power BIにて形態素解析したデータの読込み
詳細は省きますが、形態素解析したレビューコメントが含まれるデータ(ShampooLove.csv)をPower BIに読込みます。
3.Word Cloud作成(カスタムビジュアル)
3-1.WordCloudをVisualizations一覧からインポートする
・・・をクリックし、Get more visualsをクリックします
Power BI visualsの中からWord Cloudをクリックします
3-2.Word Cloudを設定する
Categoryに形態素分析した方の列("review-1")を設定する。Valuesにも態素分析した方の列("review-1")を設定し、単語の集計値にするために、Count of "review-1"に変更します。
3-3.Stop wordを設定する
Visualの書式設定にて、Word Cloudには表示したくない単語を設定します。
すると下記のようなWord Cloudが出来上がります!
アットコスメのデータには製品の評価(★★★★★)や肌タイプ、年齢などが含まれているのでこれらのデータを掛け合わせてどのようなキーワードが使われているかを見るのも面白そうです。
でもやっぱりAzure Cognitive Serviceは感情分析もできるっていうから使ってみたいですね~