【41日目】OpenAIとPythonで感情分析アプリを構築する

未分類

今回は、PythonとOpenAIのAPIを使って、ユーザーの入力から文章の「感情」を判定するミニアプリを作成します。AIを活用した自然言語処理(NLP)の基礎として、業務改善やデータ分析に応用可能な内容です。

1. 感情分析とは

感情分析(Sentiment Analysis)は、ある文章がポジティブ・ネガティブ・ニュートラルのどれに分類されるかを判断する手法です。マーケティング、SNS分析、カスタマーサポートなどに広く利用されています。

2. OpenAI APIの準備

事前にOpenAIのアカウントを作成し、APIキーを取得しておきましょう。

2-1. ライブラリのインストール

# OpenAIライブラリをインストール
!pip install openai

2-2. APIキーの設定

import openai

# OpenAIのAPIキーを設定
openai.api_key = "sk-あなたのAPIキー"

3. 感情分析関数の作成

# 感情分析用の関数
def analyze_sentiment(text):
    """
    入力テキストに対して感情を判定し、結果を返す関数。
    """
    prompt = f\"\"\"以下の文の感情をポジティブ、ネガティブ、ニュートラルのいずれかで答えてください:
---
{text}
\"\"\"

    # ChatGPTに問い合わせ
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",  # 使用モデル
        messages=[{"role": "user", "content": prompt}],
        max_tokens=10  # 短い返答で十分
    )

    # 応答から感情のみを抽出
    result = response["choices"][0]["message"]["content"].strip()
    return result

# テスト実行
sample = "サービスの対応がとても丁寧で安心しました。"
print(analyze_sentiment(sample))

4. 複数文の一括分析機能(応用)

# 複数の文章をリストで渡して一括分析
def batch_sentiment_analysis(text_list):
    """
    文章リストを受け取り、感情分析結果を一覧で返す。
    """
    results = []
    for text in text_list:
        sentiment = analyze_sentiment(text)
        results.append({"text": text, "sentiment": sentiment})
    return results

# テスト文
texts = [
    "この商品は本当に気に入っています!",
    "対応が遅くて残念でした。",
    "普通でした。特に印象はありません。"
]

# 一括実行
for r in batch_sentiment_analysis(texts):
    print(f"文章: {r['text']} → 感情: {r['sentiment']}")

5. まとめと今後の応用

今回は、PythonとOpenAI APIを活用したシンプルな感情分析アプリを構築しました。このスクリプトを拡張すれば、次のような応用も可能です:

  • CSVファイルやデータベースから読み込んで一括分析
  • Flaskなどと組み合わせてWebアプリ化
  • リアルタイムのSNSモニタリングツールへ発展

「感情を理解するAI」の基本として、業務改善やサービス向上にお役立てください。

コメント

タイトルとURLをコピーしました