AIで口コミ・レビューを分析する方法|話題・評価・集計の分母を分ける

口コミをAIで話題別に整理する手順。架空6投稿から、複数話題、星と本文、判定保留、本文なしを分け、投稿IDと分母を保った集計表を作ります。

AIものさし編集部

口コミ・レビューをAIで分析するときは、投稿ごとの話題と、その話題への評価を分けます。星の数だけで本文を肯定・否定へ振り分けず、複数の話題、意味を確かめられない投稿、本文のない評価を別に扱い、原文へ戻れる表を作ります。

ここでは架空の6投稿から分類表と集計表を作り、何を追加で調べるかまで整理します。実在サービスの口コミ、AIによる分類結果、取得・アップロード・改善効果を実測した例ではありません。投稿内での件数を、購入者全体の発生率へ広げないことも前提です。

最初に、分析の問いと取得条件を固定する

「評判を調べる」だけでなく、「操作、配送、費用のどこに追加調査が必要か」のように、結果を何へ使うか決めます。対象商品、商品版、期間、販売経路、取得方法、取得時点、投稿依頼や謝礼の条件が分かるなら記録してください。不明な条件は不明のまま残します。

収集や再利用に使える範囲を取得元の条件で確かめ、許可されたデータだけを扱います。AI入力前には不要な氏名、連絡先、注文番号などを除き、組織で認められた環境と範囲を確認します。公開画面で読めることと、分析用に取得・再掲載できることは同じではありません。

レビューID、投稿日、商品・版、評価、本文、出所を対応させ、原文を残します。投稿者名だけで同じ人と判断したり、似た文だからという理由だけで重複を消したりしないでください。重複候補を外す場合は、元IDと理由を記録します。

口コミで分かる範囲を先に決める

レビューは、取得できた投稿の中にどの声があるかを知る材料です。投稿していない人の意見、全購入者の人数、同じ問題を経験した人全体の割合は、投稿一覧だけでは分かりません。

Statistics Canadaは、自発的に参加する標本では選択の偏りが生じうること、標本を母集団へ一般化するには強い仮定が必要なことを説明しています。これを踏まえ、ここではレビューの集計を「観測した投稿内」に限定します。Statistics Canada:非確率標本(新しいタブで開く)

商品AとBを比べる場合も、取得期間、販売期間、投稿数、投稿依頼の条件が違えば、声の差だけを商品の優劣とは扱えません。条件が揃わない比較は、違いを注記して調査の手掛かりにします。

話題と評価を、別の列にする

話題は何についての声か、評価はその話題をどう述べているかです。「操作は便利だが送料が高い」は、投稿全体を一つの感情へ押し込めず、二つの話題として残せます。

scikit-learnの公式資料でも、一つのサンプルに複数のラベルを付ける多ラベル分類と、一つだけを付ける分類を区別しています。以下はその概念を使った編集例で、scikit-learnの利用や特定AIの実装を必須にする説明ではありません。scikit-learn公式:分類の種類(新しいタブで開く)

表は横にスクロールできます

分類項目この例での定義決めないこと
操作画面、設定、手順についての記述実際の操作時間や利用者の技能
配送到着時期や受け取りについての記述遅延の原因や配送会社の責任
費用商品価格、送料など金額への記述実際の購入額、他社より高いか
話題別評価根拠ごとの肯定・否定・評価表現なし。意味が取れなければ保留星だけから本文の意味を補うこと
同じ話題の賛否肯定・否定の根拠を両方保持一つの評価に相殺すること
事実と保留話題が分かる事実文は評価表現なし。意味が取れない文は保留評価がないことを、意味不明と扱うこと

話題の境界と、含む例・含めない例を先に作ります。今回の「費用」は送料も含む規則です。別の分析で送料を配送へ入れるなら、定義を変えた記録を残し、同じ集計結果として比較しないでください。

架空の6投稿を、根拠付きで整理する

次は同じ架空商品・同じ対象期間として用意した入力です。内容も星も説明用で、実在の投稿を引用していません。

表は横にスクロールできます

ID星架空の本文分類例
R015画面は使いやすい。送料は高い。操作・肯定/費用・否定
R022予定より二日遅れて届いた。配送・否定
R034予定どおり届いた。配送・肯定
R041また同じです。文脈不足で判定保留
R053[本文なし]評価のみ。話題は付けない
R062送料が高い。画面の設定が分かりにくい。費用・否定/操作・否定

同じ話題に「画面は分かりやすいが、設定は分かりにくい」とあれば、操作の肯定と否定を、それぞれの根拠語句とともに残します。この文は分類規則を説明する別例で、上の6投稿の件数には加えません。「配送日は11月2日でした」のように話題だけが分かる事実文なら、配送・評価表現なしとし、意味不明の保留とは分けます。

R03を肯定に置くのは、今回の例で「予定どおりの到着」を肯定とする編集上の判定規則です。投稿者の感情を確定したものではありません。別の規則で事実記述として扱うなら、評価表現なしへ変更したうえで、同じ規則を他の投稿にも適用します。

R01は星5でも、送料への否定的な声を含みます。R04は星1でも、何が起きたのか分かりません。配送や品質へ勝手に分類せず、必要なら文脈を確認します。R05の星3を、本文上の「中立」という発言に変えないでください。

実際の出力では、投稿IDに加え、話題別に根拠の語句を持たせます。例えばR01の操作には「画面は使いやすい」、費用には「送料は高い」を対応させます。根拠のない話題や、投稿者の年齢・職業・購入動機などを生成しないようにします。

分類結果と、集計の分母を照合する

最初に投稿IDを一つずつ持つ台帳を作り、本文の有無、処理状態、分析状態、部分保留の有無を別の列にします。処理状態は「未処理・処理完了・対象外」のいずれか一つとし、この排他的な区分の合計を全投稿数へ一致させます。

この例は全6投稿を処理完了として整理し、未処理0、処理完了6、対象外0で計6です。本文の有無は別の区分で、本文あり5+本文なし1=6となります。処理完了6投稿の分析状態は「話題付与済み4・全体保留1・本文なし1」で、互いに重ならず計6です。R04のように全体の意味が取れない場合も、保留と判定する処理は完了しています。

一部の話題を分類し、残りだけ不明な投稿は「話題付与済み」のまま部分保留ありを付け、保留箇所を残します。部分保留件数は話題付与済み件数の内数で、総件数へ足しません。今回の6投稿には部分保留は0件です。本文あり5、話題付与済み4、部分保留など、包含関係のある数を足して全件数にしないでください。

話題ごとの件数は、「その話題が一度以上ある投稿数」とします。同じ投稿で送料への不満を二回述べても、費用の該当投稿数を二件にはしません。

表は横にスクロールできます

話題該当ID該当投稿数本文あり5投稿を分母にした割合
操作R01、R0622/5=40%
配送R02、R0322/5=40%
費用R01、R0622/5=40%

合計は6件の話題割当、割合は120%です。一つの投稿に複数話題があるため、話題数の合計を投稿数や人数と同じにしません。分母の5投稿には保留のR04も含めています。「分類できた4投稿を分母」とする別の表なら各50%になりますが、表題と計算条件を変えて明示する必要があります。

星の分布も別に確認できます。この例は星1が1件、星2が2件、星3・4・5が各1件で、計6件です。星の分布と話題別の評価は別の表へします。「費用が2件」を「費用に不満な顧客が全体の40%」とは書かないでください。

AIへの依頼は、分類と集計を分ける

指定したレビューだけを使ってください。
対象商品・版・期間:[条件]。
話題定義:[含む例、含めない例、送料の扱いなど]。
出力1:投稿ID|話題|根拠語句|根拠ごとの評価|保留理由。
同じ話題内に賛否があれば、肯定と否定を根拠語句ごとに両方残し、相殺しないでください。
話題が分かり評価表現がない事実文は「評価表現なし」、意味が取れない文は「保留」としてください。
判定規則により肯定・否定とする事実表現があれば、その規則を明示し、本人の感情を断定しないでください。
一つの投稿に複数話題を付けて構いません。
本文のない評価、文脈不足、対象外を分けてください。
星の値だけから、本文にない話題や意味を補わないでください。
投稿者の属性、原因、実際の価格、全顧客の割合を推測しないでください。
出力2:投稿ID台帳。IDごとに本文有無、処理状態、分析状態、部分保留有無、保留箇所を別列にしてください。
処理状態は未処理/処理完了/対象外から一つだけ選び、その合計を全ID数と一致させてください。
本文あり/本文なしは別の排他的区分で、全ID数と一致させてください。
処理完了IDだけを、話題付与済み/全体保留/本文なしから一つずつ選び、その合計を処理完了数と一致させてください。
部分保留は話題付与済みの内数とし、保留箇所を残してください。
包含関係のある数や別の区分を足して全件数にしないでください。未処理・対象外の分析状態は未適用にしてください。
出力3:各話題を含む投稿数と該当ID。分母と複数話題の規則を明記してください。
本文に存在しない引用を作らないでください。
入力:[利用が認められたデータ]

AIが集計値まで返した場合も、ID一覧から数え直します。話題の延べ数、異なる投稿数、異なる投稿者数を混ぜないでください。AIが読めた範囲が一部なら、その部分を全件の結果として報告しないよう、処理済みIDと未処理IDを分けます。

確認は、典型例だけで終えない

話題ごとに肯定・否定・曖昧な例を読み、保留、本文なし、分類されなかった行も確認します。AIが長文や強い表現だけを代表例として選んでいないかも見ます。抽出して確認するなら、選び方、件数、読んだIDを記録してください。

分類を直した場合は、分類表だけでなく集計を更新します。費用から配送へ一件移したのに集計表を直さない、保留を解消したのに分母や状態別件数が以前のまま、といった不整合を残さないためです。

比較期間や商品版を変える場合は、同じ定義と取得条件を使えるかを確認します。分類基準を変えたなら、前の期間も同じ規則で数え直すか、方法が違うため直接比較できないと明記します。更新後に声が増えたことだけで、更新が原因だとは断定しません。

集計から、次に調べることを決める

今回の架空例では三つの話題が各2投稿です。同数だから同じ優先度とは限りません。費用は両方否定、操作と配送は肯定・否定が混在するため、原文と実際の業務記録へ戻ります。

費用なら送料の説明・購入条件、操作なら該当画面と手順、配送なら対象の到着予定と実績を確認する候補になります。レビュー本文だけから原因を決めず、確認先、必要な資料、未確認の条件を別の調査表へ残します。

件数だけで重大な問題を見落とさないことも必要です。個別案件の対応が必要な声は、組織の窓口へつなぎ、分析上の多寡とは別に扱います。代表コメントを共有する場合は、利用範囲や個人を推測できる情報、再掲載の条件を確認します。

アンケートの質問文と回答を扱う場合は、自由記述を分類する方法で質問文との対応を保ちます。集計表やグラフへ進む場合は、アンケート結果の集計・可視化も参考にし、今回の口コミの分母と取得条件を引き継いでください。

参考資料

資料の確認日:2026年10月20日。6投稿と分類表は架空例です。実データの取得、AI分類、製品操作、投稿者の同一性、原因、改善効果は実測していません。

次に読む・使う

この記事の次に必要な情報へ進めます。