• ブログ
  • DataRobotの機能
  • DataRobot AI アクセラレーター:DataRobotで顧客の声を製品改善に活かす!レビュー分析自動化のススメ

DataRobot AI アクセラレーター:DataRobotで顧客の声を製品改善に活かす!レビュー分析自動化のススメ

2024/10/01
執筆者:
· 推定読書時間 5  分

データロボットの製造業担当の山本です。顧客のレビューや口コミから製品改善のヒント(インサイト)を得ることは、多くの企業にとって時間と労力のかかるプロセスです。本記事では、DataRobot AIアクセラレータを活用して、顧客レビューや口コミから重要なインサイトを自動的に抽出し、製品開発チームのための改善レポートを作成する方法をご紹介します。

製品レビューや口コミ分析の自動化とは?

BtoCビジネスにおいては、家電製品のレビュー分析、ソフトウェア製品のユーザーレビュー分析、ホテルの宿泊レビュー分析、飲食店の口コミ分析など、多くの分野で顧客レビューが製品改善の重要な情報源となっています。

しかし、大量のレビューを人手で分析することは非常に時間がかかり、コストもかかります。そこで今回は、DataRobot AIアクセラレータの「生成AIを使用した製品フィードバックレポートの自動化」テンプレートを活用し、効率的かつ効果的に顧客レビューを分析し、製品開発チームに有用なインサイトを提供する方法をご紹介します。

DataRobot AIアクセラレータの概要

今回使用するアクセラレータは、DataRobotのAutoMLとGenerative AIを組み合わせて活用します。AutoMLの自然言語処理機能を用いて顧客レビューから重要なキーワードを抽出し、それをもとにGenerative AIで製品改善のレコメンデーションを生成します。このプロセスにより、単純な要約ではなく、レビューの感情と強く相関するキーワードに基づいた、より実用的なインサイトを得ることができます。

活用手順

1. データ準備: 

まず、Amazon Reviews datasetを読み込みます。なお、本アクセラレータでは、家電製品に関するデータを抽出して使用しています。完全なデータセットはこちらで見つけることができます。

product_subset1 = pd.read_parquet(
    "https://s3.amazonaws.com/datarobot_public_datasets/ai_accelerators/amazon_us_reviews-train-00000-of-00002.parquet"
)
product_subset2 = pd.read_parquet(
    "https://s3.amazonaws.com/datarobot_public_datasets/ai_accelerators/amazon_us_reviews-train-00001-of-00002.parquet"
)
product_subset = pd.concat([product_subset1, product_subset2], axis=0)

このコードでは、2つのファイルからデータを読み込み、それらを結合して1つのデータフレームを作成しています。

2. モデル構築: 

DataRobot AutoMLを使用して、レビューテキストから重要なキーワードを抽出するモデルを構築します。

def get_review_keywords(product_id):
    product = product_subset[product_subset.product_id == product_id]
    product["review_text_full"] = (
        product["review_headline"] + " " + product["review_body"]
    )
    product["review_class"] = np.where(product.star_rating < 3, "bad", "good")
    project = dr.Project.create(
        product[["review_class", "review_text_full"]],
        project_name=product["product_title"].iloc[0],
    )
    
    project.analyze_and_model(
        target="review_class",
        mode=dr.enums.AUTOPILOT_MODE.QUICK,
        worker_count=20,
        positive_class="good",
    )
    project.wait_for_autopilot()
    model = project.recommended_model()
 
    # モデルの選択とワードクラウドの取得
    if model.metrics["AUC"]["crossValidation"] > 0.75:
        word_cloud = model.get_word_cloud()
        word_cloud = pd.DataFrame(word_cloud.ngrams_per_class()[None])
        keywords = "; ".join(word_cloud[word_cloud.coefficient < 0]["ngram"].tolist())
    return keywords

この関数では、以下の処理を行っています:

  • 特定の製品IDに対するレビューデータを抽出
  • レビューの見出しと本文を結合し、星評価に基づいてレビューを “good” または “bad” に分類
  • DataRobotプロジェクトを作成し、AutoMLを実行
  • 曲線下面積(AUC)が0.75以上のモデルを選択し、そのモデルのワードクラウドから負の係数を持つキーワード(ネガティブな意見に関連)を抽出

3. レポート生成:

抽出されたキーワードを基に、Azure OpenAIサービスを使用して製品改善のレコメンデーションを生成します。

template = f"""
    You are a product designer. A user will pass top keywords from negative customer reviews. \
    Using the keywords list, \
    provide multiple design recommendations based on the keywords to improve the sales of the product.
    Use only top 10 keywords per design recommendation.\
    
    Output Format should be json with fields recommendation_title, recommendation_description, keyword_tags"""

system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

chat_prompt = ChatPromptTemplate.from_messages(
    [system_message_prompt, human_message_prompt]
)
chain = LLMChain(
    llm=AzureChatOpenAI(
        deployment_name=OPENAI_DEPLOYMENT_NAME,
        openai_api_type=OPENAI_API_TYPE,
        openai_api_base=OPENAI_API_BASE,
        openai_api_version=OPENAI_API_VERSION,
        openai_api_key=OPENAI_API_KEY,
        openai_organization=OPENAI_ORGANIZATION,
        model_name=OPENAI_DEPLOYMENT_NAME,
        temperature=0,
        verbose=True,
    ),
    prompt=chat_prompt,
    output_parser=JsonOutputParser(),
)

このコードでは:

– Azure OpenAIに送信するプロンプトを設定します。

– LangChainを使用してAzure OpenAIと連携するためのチェーンを構築します。

– 出力をJSON形式で解析するパーサーを設定します。

最後に、これらの処理を組み合わせてレポートを生成します:

pdf = FPDF()
for product_id in product_list:
    keywords = get_review_keywords(product_id)
    if len(keywords) > 10:
        report = chain.run(keywords)
        if type(report) != list:
            report = chain.run(keywords)["recommendations"]
        product_name = product_subset[product_subset.product_id == product_id][
            "product_title"
        ].iloc[0]
        
        # PDFレポートの作成
        pdf.add_page()
        pdf.set_font("Arial", "B", 20)
        pdf.multi_cell(w=0, h=10, txt=product_name)
        for reco in report:
            pdf.cell(w=0, h=7, txt="\n", ln=1)
            pdf.set_font("Arial", "B", 14)
            pdf.multi_cell(w=0, h=7, txt=reco["recommendation_title"])
            pdf.set_font("Arial", "", 14)
            pdf.multi_cell(w=0, h=7, txt=reco["recommendation_description"])
            pdf.set_font("Arial", "I", 11)
            pdf.multi_cell(
                w=0, h=5, txt="Review Keywords: " + ", ".join(reco["keyword_tags"])
            )

pdf.output(f"/home/notebooks/storage/product_development_insights.pdf", "F")

このループでは:

  • 各製品に対してキーワードを抽出
  • 抽出されたキーワードを基にAzure OpenAIでレコメンデーションを生成
  • 生成されたレコメンデーションをPDFレポートに追加

これらの処理により、複数の製品に対する改善レコメンデーションを含む包括的なPDFレポートが自動生成されます。

分析結果と考察

今回は、このスクリプトを用いて2つのブルーレイレコーダー製品(商品名はマスキングしてあります)のレビューを分析しました。分析結果の日本語訳は以下の通りです。

プロダクト名改善案抽出したキーワード
ブルーレイレコーダー Aストリーミング体験の向上: 接続の最適化、バッファリングの削減、ビデオ品質の向上による、よりスムーズで信頼性の高いストリーミング体験の提供ストリーミング、ビデオ、デバイス、接続、ストリーミング、ストリーミングビデオ、Roku、サポート、サービス、再生
耐久性と信頼性の向上: デバイスの頻繁な故障や誤動作への対処、製品の全体的な耐久性と信頼性の向上による長寿命化と安定動作の確保耐久性、信頼性、デバイス、動作停止、故障、技術、不良品、保証、返品、顧客
ディスク再生の改善: 様々なディスクフォーマットとの互換性確保、読み込み時間の改善、フリーズやスキップの問題の最小化ディスク、再生、プレーヤー、ディスク再生、ブルーレイ、フリーズ、画面、再生、ビデオ、技術
カスタマーサポートの改善: コミュニケーションチャネル、応答時間、全体的な顧客満足度の向上によるカスタマーサポートサービスの改善カスタマーサポート、サポート、顧客、サービス、電話、メッセージ、払い戻し、返品、購入、スルー
デバイス接続のシームレス化: スマートフォンやテレビなどの他のデバイスとの簡単で信頼性の高い接続の確保、互換性、接続の安定性、ユーザーエクスペリエンスの向上接続性、デバイス、接続、iPhone、Roku、ストリーミング、ストリーミング、技術、画面、サービス
ブルーレイレコーダーBユーザーインターフェースの簡素化: ナビゲーションの簡素化、必要な機能を簡単に見つけられるようにするなど、より直感的でユーザーフレンドリーなインターフェースへの再設計機能、簡単、今すぐ、ヘルプ
配送サービスの改善: リアルタイム追跡と通知の提供による、迅速かつ信頼性の高い配送の確保送信、日、数日後
カスタマーサポートの強化: ライブチャットサポートの提供、サポート時間の延長など、問題や懸念に迅速に対応するためのカスタマーサポートの改善星が良い、ヘルプ
チェックアウトプロセスの合理化: 自動入力機能の実装、購入完了に必要な手順の簡素化による、迅速かつ手間のかからないチェックアウト体験の提供簡単、今すぐ
パーソナライズされたおすすめの提供: ユーザーの好みや閲覧履歴に基づいた関連製品の提案、パーソナライズされた製品提案によるショッピング体験の向上機能、lo


このAIアクセラレータを活用することで、大量の顧客レビューから重要なインサイトを効率的に抽出し、製品開発チームに有用なレポートを自動生成することができました。従来の手動分析と比較して、分析時間を90%以上削減しつつ、より客観的で一貫性のあるインサイトを得ることができます。これにより、製品開発サイクルの短縮と顧客満足度の向上が期待できます。

具体的には、以下のような効果が見込まれます。

  1. 分析時間の大幅な削減: 数日かかっていた分析作業が数時間で完了
  2. インサイトの質の向上: 人間の主観に左右されない、一貫した分析結果
  3. 迅速な製品改善: 顧客フィードバックへの素早い対応が可能に
  4. コスト削減: 分析作業に関わる人件費の削減

DataRobot AI アクセラレーターを活用したレビュー分析自動化のススメについて

DataRobot AIアクセラレータを活用することで、顧客レビューの分析と製品改善レポートの作成プロセスを大幅に効率化できることが分かりました。Eコマース企業や製品開発チームの方々は、このアクセラレータを活用することで、より迅速かつ効果的に顧客のニーズに応える製品開発が可能になります。

今回ご紹介したアプローチは、Eコマース業界に限らず、顧客フィードバックを重視するあらゆる業界で応用可能です。例えば、自動車業界におけるお客様の声に基づく不具合やリコール情報の分析や、ソフトウェア製品のユーザーレビュー分析、SaaS製品の機能改善提案、ゲームのユーザーフィードバック分析など、幅広い分野での活用が期待できます。

DataRobot AIアクセラレータを活用し、データドリブンな製品開発を実現することで、競争力の強化と顧客満足度の向上につながることでしょう。

DataRobotトライアルのご案内

DataRobotでは、トライアル環境を提供しています。以下のURLからアカウントを作成し、DataRobotの主要な機能をお試しいただけます。

https://www.datarobot.com/jp/trial

AIの開発や運用に興味がある方、すでに携わっている方も、ぜひこの機会にDataRobotを体験してみてください。DataRobot AI アクセラレーターを含む様々な機能をお試しいただき、AIプロジェクトの効率化と価値創出の加速をぜひご体感ください。

ご質問やサポートが必要な場合は、アカウント作成時に提供される連絡先情報をご利用ください。より詳細な情報や個別のデモンストレーションをご希望の場合は、DataRobotの営業担当までお気軽にお問い合わせください。

ぜひトライアル環境でDataRobotの機能を体験し、貴社のAIプロジェクトを加速させてください!

執筆者について
山本 光穂(Mitsuo Yamamoto)
山本 光穂(Mitsuo Yamamoto)

データサイエンティスト

約15年車業界において最先端のIT技術を活用した製品プロトタイプ開発やデータ分析業務等に携わった知見を活用して、製造業、特に車関連企業様の課題解決支援に従事。またコミュニティ活動に積極的に取り組んでおり、データ分析コミュニティであるPyData.Tokyoのメインオーガナイザを務める。

得意な技術領域は地理情報空間分析/情報検索/機械学習等
2003 – 2005    :研究者 @ソフトウェアメーカ
2005 – 2018    :研究者 @自動車部品メーカ
2018 – 2021    :データサイエンティスト @損害保険(車分野担当)
2021 –      :データサイエンティスト @ DataRobot, Inc. – 製造業界

山本 光穂(Mitsuo Yamamoto) についてもっとくわしく