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

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

## 製品レビューや口コミ分析の自動化とは？
BtoCビジネスにおいては、家電製品のレビュー分析、ソフトウェア製品のユーザーレビュー分析、ホテルの宿泊レビュー分析、飲食店の口コミ分析など、多くの分野で顧客レビューが製品改善の重要な情報源となっています。しかし、大量のレビューを人手で分析することは非常に時間がかかり、コストもかかります。そこで今回は、DataRobot AIアクセラレータの[「生成AIを使用した製品フィードバックレポートの自動化」](https://github.com/datarobot-community/ai-accelerators/blob/main/generative_ai/Product%20Innovation%20GenAI/Product%20Innovation%20using%20Generative%20AI%20and%20DataRobot%20Auto%20ML.ipynb)テンプレートを活用し、効率的かつ効果的に顧客レビューを分析し、製品開発チームに有用なインサイトを提供する方法をご紹介します。

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

### 活用手順
### 1. データ準備: 
まず、[Amazon Reviews dataset](https://huggingface.co/datasets/defunct-datasets/amazon_us_reviews)を読み込みます。なお、本アクセラレータでは、家電製品に関するデータを抽出して使用しています。完全なデータセットは[こちら](https://huggingface.co/datasets/defunct-datasets/amazon_us_reviews)で見つけることができます。
```python
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を使用して、レビューテキストから重要なキーワードを抽出するモデルを構築します。
```python
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サービスを使用して製品改善のレコメンデーションを生成します。
```python
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形式で解析するパーサーを設定します。

最後に、これらの処理を組み合わせてレポートを生成します：
```python
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つのブルーレイレコーダー製品（商品名はマスキングしてあります）のレビューを分析しました。分析結果の日本語訳は以下の通りです。

<table>

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

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

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

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

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

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

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

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

[DataRobotフリートライアルに登録する](https://www.datarobot.com/jp/trial/?utm_source=blog&utm_medium=socialmedia&utm_campaign=FTJP-blog)

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

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

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

### 関連動画（DataRobot University）のご案内
こちらの記事で紹介している内容の講義動画を、オンライン学習コンテンツ[「DataRobot University」](https://jp.learn.datarobot.com/learn/learning-path/ai-accelerator )でご覧いただくことができます。なお、こちらの動画はDataRobotのお客様限定のコードが必要となります。コードが分からない方は代理店窓口の方にお問い合わせ下さい。