最初にお伝えしたいのは、テキストマイニングは難しい専任業務じゃなく、Power BIがあれば「今日から動かせる現場作業」になり得る、ということ。レビュー、問い合わせ、アンケートの自由記述、コールログ、社内の改善要望……どれも宝の山。けれど、忙しいチームは“最初の一歩”で止まりがち。ここでは、実装まで迷わないように方法を3段階で整理し、最短で“使える見える化”に着地させます。
-
方法A:Power Queryだけ(ノーコードで試す)
-
方法B:Power BI+Azure AI(キーフレーズ・感情を付与)
-
方法C:Power BI+Python(日本語形態素解析で深掘り)
読み終わるころには、Power BIでテキストマイニングの基本設計が整い、チームに合う方法を「そのまま」採用できる状態になります。
なぜ、Power BIでテキストマイニングなのか
現場の意思決定はスピードが命。高度な分析環境が整うのを待っていると、改善のタイミングを逃します。Power BIの強みは、
-
データの取り込み・整形(Power Query)
-
可視化と共有(レポート、ダッシュボード)
-
更新と運用(自動更新、権限)
が一続きで設計できること。テキストマイニングの結果をすぐにKPIとクロスでき、施策→結果の往復を回せます。複雑な前処理は後から足せます。まずは小さく、早く、見える化。これが最短距離です。
全体像:3つの方法を“段階的”に使い分ける
方法A(Power Queryのみ)
-
目的:まず動かす。単語頻度・ワードクラウド・月次推移で“全体感”を掴む。
-
強み:学習コスト最小。導入1日で形になる。
方法B(Power BI+Azure AI)
-
目的:キーフレーズ抽出や感情スコアで“意味”を安定化。
-
強み:再現性と保守性。テキストマイニングの属人性を下げる。
方法C(Power BI+Python)
-
目的:日本語形態素解析(名詞限定、動詞の原形化、n-gram、クラスタ)で“仮説検証の密度”を上げる。
-
強み:自由度。ドメイン辞書や同義語統一など、現場の言葉に最適化できる。
3つを“排他”で選ぶ必要はありません。Aで着火 → Bで安定化 → Cで深掘りの順が、費用対効果と運用のバランスが良い王道です。どの段階でも、記事中に自然にPower BIやテキストマイニングのキーワードが馴染むはず。
まずはデータ支度:5列あれば走り出せる
最低限、以下が揃えば分析が成立します。
-
Date
:日付または日時 -
Channel
:Web/店舗/電話など接点 -
CustomerID
:匿名化でも可 -
Comment
:自由記述(日本語想定) -
Score
:満足度、星、NPS、CSATなど数値
CSV・Excel・SQLのどれでもOK。Power BIで「データの取得 → 変換データ」を開き、Power Queryで前処理します。テキストマイニングは方法に関係なく、最初のノイズ取りが8割です。
前処理のコツ:見た目は地味、効き目は抜群
-
空白・改行の整理
Text.Clean
+Text.Trim
で基本の掃除。全角空白は半角へ。 -
URL/メール/電話の除去
http
,https
,www
,@
, 連続数字+ハイフンなどをText.Replace
で削る。 -
絵文字・機種依存文字
レポート用途で不要なら、Text.Select
で日本語・英数字・基本記号のみ残す。 -
大小文字
英字が混ざるならText.Lower
で統一。 -
Stopwords(除外語)
小さなテーブルで辞書化し、マージ→フィルタで落とす。例:です/ます/こと/もの/よう/ある/ない/当社/御社/本日
など。
この整備だけで、Power BIのグラフが一気に読みやすくなります。テキストマイニングの“方法”は派手なテクニックより、まず汚れを落とすが正解。
方法A:Power Queryだけで“動く”テキストマイニング
手順の流れ
-
Comment_Clean
列を作る(前処理を反映) -
記号やスペース・句読点で分割→行に展開(荒い分割でもブランド名や型番は拾える)
-
Stopwords辞書と突合→ノイズ語を除去
-
単語別カウント→月次やチャネルとクロス
-
AppSourceのWord Cloudビジュアルを追加して頻度を視覚化
得られるもの
-
月別トップ単語ランキング
-
チャネル別の差(店舗は「接客」、Webは「画面」「速度」など)
-
満足度スコア×単語の関係
まず可視化を作る→辞書を磨く→仮説が立つ。この順に進むと、会議が前に転がります。特別なスクリプトなし。Power BIの標準機能で十分戦えます。
方法B:Power BI+Azure AIでKeyPhrase・感情を付与
キーフレーズ抽出と感情分析は、テキストマイニングで“意味”に踏み込む代表的な方法。Power BIからAzureのテキスト分析APIを呼び出し、keyPhrases
とsentiment
(ポジ・ニュートラル・ネガ、スコア)を列として持たせます。
実装パターン
-
Web API連携(Power Queryの
Web.Contents
)
手元のサブスクリプションキーでPOST→JSON展開。 -
AI Insights(Premium/PPU)
GUIベースで設定。ガバナンス重視の環境に向く。
可視化テンプレート
-
感情スコア×時系列(リリースや施策と一緒に)
-
KeyPhraseのTreemap(大まかなテーマを俯瞰)
-
Score×KeyPhrase(満足/不満を分ける代表語)
属人性が下がり、レポートの再現性が増します。「運用に乗るテキストマイニングの方法」という意味で、Power BIと相性が抜群。
方法C:Power BI+Pythonで日本語形態素解析(Janome)
「名詞だけ数えたい」「動詞は原形で集計したい」「二語連接を見たい(n-gram)」――ここまでくると形態素解析の出番。Power BIはPythonスクリプト実行が可能。JanomeやMeCab系を使えば、日本語の粒度を自分でコントロールできます。
事前準備
-
Python 3.x /
pip install janome pandas
-
Power BIの「オプション → Pythonスクリプト」でパスを設定
スクリプト例(Power Queryで実行)
この後はToken
でカウント、TopNをDAXで切替、必要に応じてビッグラム(Token
の次単語をshift(-1)
で結合)へ。Power BIでテキストマイニングの深度を一段上げる方法です。
レポート構成:迷ったら“この型”
-
サマリーカード
件数、平均Score、感情スコア、ネガ比率 -
時系列グラフ
コメント数と感情スコアの週次・月次推移 -
Word Cloud
単語頻度(Stopwords調整で精度UP) -
Treemap/ヒートマップ
KeyPhraseやトピック×チャネル -
原文テーブル(ドリルスルー)
選択した単語・フレーズを含む原文のみ抽出表示
ポイントは、KPIと“往復”できること。売上・解約・CSATなどの指標と同じ画面で、テキストからの示唆を確認できると、施策の優先順位が自然に定まります。Power BIの得意分野です。
DAXとモデル設計の最小原則
-
スター型で軽くする:
FactComments
(明細)に、DimDate
/DimChannel
/DimTopic
を紐づけ。 -
TopN切替はパラメータテーブル+RANKX。
-
増分更新でデータ量を抑制(展開で行数が爆増するため)。
これだけでレポートが軽く、更新も安定。テキストマイニングの“良い方法”は、難しい数式よりモデルをシンプルに保つこと。
ドメイン辞書を“現場語”に寄せる
-
固有名詞:製品名や機能名は残す、部署名・社内略語は場合により除外。
-
助詞・助動詞:基本は落とす。
-
同義語統一:「サポート=サポセン」「UI=画面」「落ちる=クラッシュ」など置換テーブルで正規化。
-
NG・PII:個人情報や誹謗中傷は検出→マスク列を持つ。
辞書を1つのテーブルにして、Power BIのクエリで参照。誰でも編集できる“運用資産”にしておくと、テキストマイニングの精度は自然に上がります。
運用の詰め:更新・権限・パフォーマンス
-
更新:ファイルならOneDrive/SharePointに置き、自動更新。DB接続はゲートウェイを用意。
-
権限:データセット管理者と閲覧者を分離。RLS(行レベルセキュリティ)も検討。
-
パフォーマンス:展開で行数が増えるため、期間は相対12週間などに絞る。履歴は別テーブル化。
-
テスト:匿名化サンプルでレビュー→本番切替。
運用が安定すると、“テキストマイニングの方法”がチーム文化として根づきます。Power BIの定期更新で、毎週の定例が“言葉に基づく意思決定”へ変わります。
つまずきあるあると即効リカバリ
-
ワードクラウドがノイズだらけ
→ Stopwordsを増やす、名詞限定、頻度しきい値。 -
否定文の扱いが難しい
→ 感情スコア(方法B)と原文テーブルの併用で二重チェック。 -
API制限に引っかかる
→ バッチサイズ調整、再試行ロジック、夜間更新に切替。 -
更新が遅い
→ 期間を短縮、増分更新、スキーマを軽くする。
“動く状態”を最優先。Power BIの強みは、直して回せること。テキストマイニングの方法は、完璧主義より回転数です。
今日から動かすチェックリスト
-
Date/Channel/CustomerID/Comment/Score
の5列が揃っている -
Comment_Clean
列を作って空白・URL・記号を整理 -
方法Aで頻度表+Word Cloud+原文テーブルを置く
-
代表語・感情が必要なら方法BでKeyPhrase/感情を付与
-
深掘りが必要なら方法Cで形態素解析に切替
-
KPI(売上/解約/CSAT)と同じレポートにまとめる
-
更新・権限・増分更新を設定して定例化
まとめ:小さく始め、速く回し、必要な“方法”だけ足す
Power BIでテキストマイニングを始めるなら、
-
方法Aで“見える化”を最短で達成、
-
方法Bで“意味づけ”を安定化、
-
方法Cで“仮説検証”を深掘り、
という段階設計が最も実務的。重要なのは、意思決定に使える観点が毎週増えること。辞書は走りながら磨けばよい。まずは、サマリー・ワードクラウド・原文テーブルの三点セットを作り、KPIと並べる。そこから先は、チームの言葉がレポートを育ててくれます。
テキストマイニングの方法はひとつじゃない。あなたの現場に合う“ちょうどいい”を、Power BIで今日から動かしていきましょう。
コメント