Claude Media
Claudeで宿泊施設の口コミを分析する — 清掃・食事・接客を改善項目に落とす

Claudeで宿泊施設の口コミを分析する — 清掃・食事・接客を改善項目に落とす

複数サイトの口コミを1つの表に集め、清掃・食事・接客などの分類と頻度をClaudeで出して、担当部署ごとの改善項目に落とす手順です。件数と原文の検算つきです。

口コミを「部署が動ける改善項目」に変える流れ

宿泊施設の口コミは、予約サイト、地図サービス、自社サイトのアンケートなど、複数の場所に散らばります。1件ずつ読むと印象には残りますが、「清掃の指摘が増えているのか」「食事の不満は朝食だけか」といった問いには答えが出ません。

Claudeに口コミを渡すと、分類、頻度の集計、代表的な原文の抜き出しまでを会話で進められます。ただし、分類結果をそのまま会議に出すと、件数のずれや原文にない引用が混じります。この手順では、分類は広く、数字は手元で検算するという分担にします。

手順

口コミから改善項目までの5段階

  1. 1

    1つの表に集める

    サイトごとに違う列を揃え、口コミごとにIDを振ります。

  2. 2

    分類の定義を固定する

    清掃・食事・接客などの軸と、拾う基準を先に決めます。

  3. 3

    分類させて検算する

    件数と引用をスクリプトで確かめます。

  4. 4

    優先度を付ける

    頻度と、直せるかどうかの2軸で並べます。

  5. 5

    部署ごとの改善項目にする

    担当と次の確認月までを1行にします。

返信文の下書きは主題から外します。口コミ返信の下書きは別の工程で、ここでは「何を直すか」を決めるところまでを扱います。

集める口コミと、渡す形を決める

Claudeに渡せる形式は、PDF、DOCX、CSV、TXT、HTML、JSONなどです。XLSXを使うときは、アカウントでコード実行とファイル作成を有効にしておく必要があります。迷うなら、CSVかテキストで渡すのが確実です。

渡し方は2通りあります。

  • 貼り付け: 数十件までなら、チャットにそのまま貼れます。管理画面にダウンロード機能がないサイトでも使えます
  • ファイル: 数百件以上なら、CSVにまとめてアップロードします。チャットへの添付は1チャット20ファイルまで、1ファイル500MBまでです

プロジェクトのファイルに置く場合は、1ファイル30MBまでで、内容の合計がコンテキストウィンドウに収まる必要があります。四半期ごとに同じ表を足していくなら、プロジェクトに置いておくと、会話をまたいで参照できます。

口コミの転載や利用の可否は、サイトごとの規約で決まります。自社の施設に付いた口コミを社内の改善に使う範囲に留め、規約の細部は各サイトの案内で確かめてください。

列を揃える

サイトごとに、評価の尺度、投稿日の書式、項目別の点数の有無が違います。そのまま結合すると平均が意味を失うので、先に次の列に揃えます。

列名内容
id内容通し番号(R001から)
source内容取得元のサイト名
posted内容投稿日(YYYY-MM-DD)
stay_type内容家族・カップル・出張など、わかる範囲で
room_type内容客室タイプ。不明は空欄
rating内容元サイトの点数
rating_scale内容そのサイトの満点(5、10など)
text内容口コミ本文

投稿者名や、本文中に出る氏名・部屋番号は、渡す前に落とします。分析に要らない情報は最初から渡さないほうが、扱いが軽くなります。

分類の定義を先に固定する

「清掃について書かれているか」は、口コミの書き手によって表現がぶれます。Claudeに自由に分類させると、実行のたびに分類名が変わり、前の月と比べられません。そこで、分類の定義を先に文章で置きます。

宿泊施設の口コミでよく使われる軸は、次のようなものです。施設の種類に合わせて足し引きしてください。

分類

最初に置く分類軸

  • 清掃・衛生

    客室、水回り、共用部の汚れ、臭い、リネンの状態。

  • 食事

    朝食・夕食の味、量、品数、アレルギー対応、提供時間。

  • 接客・フロント

    チェックイン対応、言葉遣い、案内の正確さ、困りごとへの反応。

  • 設備・客室

    空調、水圧、Wi-Fi、ベッド、防音、広さ。

  • 立地・アクセス

    駅からの距離、周辺環境、送迎。

  • 価格・満足度

    料金と内容のつり合い、追加料金への納得感。

1件の口コミが複数の軸にまたがることは普通にあります。「朝食は美味しいが、部屋の水回りが気になった」は、食事が肯定、清掃が否定です。軸ごとに肯定・否定・言及なしを付ける設計にすると、あとで数えやすくなります。

プロジェクトの指示に定義を置く

四半期ごとに同じ軸で回すなら、定義をプロジェクトの指示欄に置きます。次の例は、書き方の一例です。

あなたは宿泊施設の口コミ分析の補助役です。
入力は id, source, posted, rating, rating_scale, text 列を持つ表です。
 
分類軸: 清掃・衛生 / 食事 / 接客・フロント / 設備・客室 / 立地・アクセス / 価格・満足度
軸ごとに「肯定」「否定」「言及なし」のどれかを付けること。
 
ルール:
- 判断の根拠として、text から原文をそのまま引用する(要約や言い換えは引用と認めない)
- 引用は必ず該当の id を添える
- 書かれていないことは推測せず「言及なし」にする
- 軸に当てはまらない内容は「その他」として別に出し、軸は勝手に増やさない

プロジェクトの指示は、そのプロジェクト内のチャットに共通で効きます。Teamプランなら、メンバーに「閲覧のみ」または「編集可」の権限で共有できます。支配人が定義を持ち、フロントや調理の担当者は閲覧だけにする運用が組めます。

落とし穴

定義を書かずに「傾向を教えて」と頼む

分類名が毎回変わり、前月との比較ができません。さらに、書かれていない不満を「傾向」として補ってしまうことがあります。定義に「言及なし」を必ず入れ、軸の追加を禁じておくと、このぶれを抑えられます。

分類させて、数字は手元で検算する

分類を依頼するときは、表を返させます。1件ずつの判定を返させておけば、あとで集計をやり直せます。

添付の口コミ表を、指示の分類軸で判定してください。
出力はCSVの形で、列は id, 軸, 判定, 引用 の4つ。
1件の口コミに複数の軸があれば、軸ごとに1行にしてください。
「言及なし」の行は出さなくて構いません。

返ってきた表は、Claudeの言う集計をそのまま信じず、別のスクリプトで検算します。コード実行を有効にしていれば、Claude自身にPythonで検算させることもできます。

import pandas as pd
 
reviews = pd.read_csv("reviews.csv")      # id, text, ...
judged  = pd.read_csv("judged.csv")       # id, 軸, 判定, 引用
 
# 1. 存在しないIDが混じっていないか
unknown = set(judged["id"]) - set(reviews["id"])
print("存在しないID:", unknown)
 
# 2. 引用が原文にそのまま入っているか
merged = judged.merge(reviews[["id", "text"]], on="id")
bad = merged[~merged.apply(lambda r: str(r["引用"]) in str(r["text"]), axis=1)]
print("原文にない引用:", len(bad), "件")
 
# 3. 軸×判定の件数
print(judged.pivot_table(index="軸", columns="判定",
                         values="id", aggfunc="count", fill_value=0))

「原文にない引用」が出た行は、判定ごと信用しないで外すか、Claudeに引用を直させて再判定します。引用が原文に入っていれば、少なくとも「その言葉は実際に書かれていた」とは言えます。判定が妥当かどうかは、上位の数件を自分の目で読んで確かめます。

分類だけの作業なら、数百件を一度に渡してもかまいません。ただし、件数が増えるほど途中の取りこぼしが出やすくなるので、数十件から100件程度ずつに分けて回し、最後に表を連結する進め方が堅実です。

切り分け

分類結果が信用できないときの切り分け

  1. Q出力のIDはすべて入力表にありますか?
    答えがいいえのとき

    入力の列を渡し直し、IDの列が崩れていないかを確かめます。

    答えがはい
  2. Q引用はほぼすべて原文に入っていますか?
    答えがいいえのとき

    指示の「要約や言い換えは引用と認めない」を強め、1回あたりの件数を減らします。

    答えがはい
  3. Q同じ内容が同じ軸に分類されていますか?
    答えがいいえのとき

    定義文に具体例を1〜2件足して、境界を示します。

    答えがはい

検算が通ったら次へ

原文の抜き出しが揃った状態で、優先度付けに進みます。

平均点ではなく、軸ごとの頻度で見る

サイトをまたいだ平均点は、尺度が違うため単純には比べられません。比べるのは、軸ごとの「否定の割合」です。

たとえば、全200件のうち清掃を否定した口コミが24件なら12%、食事を否定した口コミが9件なら4.5%です。Claudeには割合を計算させず、先ほどのスクリプトで出した件数から自分で割ります。

次に、月ごとの推移を見ます。直近の3か月と、その前の3か月を比べると、増えているのか、昔からあるのかが分かります。

判定済みの表をもとに、月ごとに「否定」の件数を軸別に集計してください。
母数が少ない月(10件未満)は、割合を出さず件数だけ示してください。

母数が小さい月に割合を出すと、1件の増減で大きく動いて見えます。そのため「10件未満は件数のみ」と最初から断っておきます。

同じ軸でも原因は割れる

「清掃」の否定が多くても、原因は一つとは限りません。水回りの汚れなのか、においなのか、リネンなのかで、直す担当も方法も変わります。そこで、否定が多い上位2軸だけ、第2段の分類を行います。

「清掃・衛生」が否定の行だけを対象に、原因を次の中から選んでください。
水回り / におい / リネン・ベッド / 床・ほこり / 共用部 / その他
各原因について、件数と、代表的な引用を3件ずつ(id付き)出してください。

優先度は、頻度と「直せるか」の2軸で付ける

件数が多い順に直すのが自然に見えますが、現場で動けるかどうかは別の話です。建物の古さや立地は、口コミで多く指摘されても、運営側の改善では動かせません。逆に、朝食の補充の間隔や、チェックイン時の案内の言い方は、翌週から変えられます。

そこで、2軸で並べます。

すぐ直せる時間か費用がかかる直せない
指摘が多いすぐ直せる最優先で着手時間か費用がかかる計画に載せる直せない案内文で期待値を調整
指摘が少ないすぐ直せる余裕があれば時間か費用がかかる見送り直せない対象外

「直せるか」の判断は、Claudeに任せず、支配人や現場の責任者が決めます。Claudeには、軸ごとの件数と引用を渡して、次のように依頼します。

判定済みの表と、現場の判断(次の表)を合わせて、
改善項目の一覧を作ってください。
列は 項目 / 件数 / 代表的な引用(id付き) / 担当部署 / 着手の目安。
着手の目安は私が与えた「直せるか」の判断をそのまま使い、
あなたの推測を加えないでください。

「直せない」に入った項目は、改善項目ではなく、案内の書き方で期待値を調整する話になります。たとえば「駅から遠い」という指摘が多いなら、公式サイトの案内に徒歩の所要時間や送迎の有無を目立つ位置に書く、という形です。

部署ごとの1枚にまとめる

会議で使う1枚には、担当部署ごとに、次の4点を入れます。

  1. 直す項目(1行)
  2. 根拠の件数と、全体に占める割合
  3. 原文の引用(1〜2件。idつき)
  4. 次に口コミを見直す月

Excelで出したいときは、ファイル作成の機能で.xlsx、.docx、.pptx、PDFを作れます。作成したファイルはダウンロードするほか、Google Driveに保存できます。1ファイルの上限は30MBです。

改善項目の一覧を、担当部署ごとにシートを分けたExcelにしてください。
シートは 客室清掃 / 調理・食事 / フロント / 施設管理 の4つ。
各シートは 項目 / 件数 / 割合 / 引用 / 次の確認月 の列にしてください。

数字の元は検算済みの表なので、Excelの合計も手元のスクリプトの結果と突き合わせてください。月ごとの変化を前月比で見たい場合は、Claude for Excelで月次変動分析の手順が使えます。

改善したあとに、否定の割合が下がったかを見る

改善項目の効果は、半年後に同じ定義で回し直して確かめます。定義が変わると比較できないので、軸の追加や名前の変更は、期の切り替わりでまとめて行います。

見るのは次の3点です。

  • 着手した軸の否定の割合が下がったか
  • 下がっていなければ、原因の分類(水回り・においなど)が実態に合っていたか
  • 別の軸の否定が増えていないか(人手を移した影響など)

口コミを集める依頼の仕方にも注意が要ります。投稿の見返りに特典を出すような依頼は、各サイトの規約や法令の観点で問題になり得ます。点検の観点はGoogleクチコミ依頼のインセンティブ禁止の点検にまとめています。

つまずきやすい点

注意

運用で起きやすいこと

  • 使用量が増える

    ファイル作成は、通常のチャットよりも使用量を多く消費します。Excelへの書き出しを何度もやり直すと、プランの上限に近づきます。

  • 外部の情報が混じる

    口コミ本文に、第三者が書いたURLや指示めいた文面が含まれることがあります。ファイル作成やコード実行では、外部ネットワークへのリクエストを通じて、そうした文面に誘導されるリスクが説明されています。Claudeの実行ログを見ながら進め、想定外のアクセスがあれば止めます。

  • 個人情報が残る

    氏名や部屋番号を含んだまま渡すと、会話やプロジェクトに残ります。渡す前に落としておくと安全です。

  • 外国語の口コミ

    多言語の口コミは、原文の引用が日本語に訳されて返ることがあります。検算の「引用が原文に入っているか」が通らなくなるので、原文のまま引用するよう指示に入れます。

関連する記事との使い分け

自社商品のレビューCSVを分析する一般的な手順は商品レビューCSVの分析にあります。アプリストアのレビューを星の帯で見る場合はアプリのレビュー分析が近いです。この記事は、宿泊施設に固有の軸(清掃・食事・接客)と、部署ごとの改善項目への落とし込みに絞っています。

泊まる側として宿を選びたい場合は、Booking.comとTripadvisorをつないだ宿の絞り込みを参照してください。

まとめ

宿泊施設の口コミ分析は、Claudeに分類を任せ、数字は手元で検算する分担にすると、会議に出せる形になります。先に分類の定義を固定し、サイトごとの尺度の違いは平均点でなく軸ごとの否定の割合で揃えます。優先度は件数に「直せるか」を掛け合わせ、後者は現場の責任者が決めます。

最初の1回は、直近3か月の口コミを50件ほど貼り付けて、定義と検算の流れを確かめるところから始められます。

この記事を共有:XはてブLinkedIn