ChatGPTを活用した世界のニュース収集・翻訳・分析プログラム



 

🌍 ChatGPTを活用した世界のニュース収集・翻訳・分析プログラム

PythonとChatGPT(OpenAI API)を活用し、世界のニュースを収集・日本語に翻訳・データ保存・分析するプログラム を作成します!
GoogleニュースAPIやウェブスクレイピングでニュース収集
ChatGPT(OpenAI API)を活用し、ニュースを自動翻訳&要約
人気キーワードを抽出し、流行を可視化
データをCSV・Excel・JSON形式で保存


📌 1. 必要な環境を準備

UbuntuStudioで動作させるため、まずは必要なPythonライブラリをインストールします。

📌 必要なPythonライブラリ

sudo apt update && sudo apt upgrade -y
pip3 install requests beautifulsoup4 pandas openpyxl openai wordcloud matplotlib

📌 OpenAI APIキーの取得

  1. OpenAIのAPIキー を取得
  2. APIキーを環境変数として設定(またはコードに直接記述)
export OPENAI_API_KEY="あなたのAPIキー"

🚀 2. 世界のニュースを収集

GoogleニュースのRSSフィードを使って、英語の最新ニュースを取得 します。

📌 Pythonコード(Googleニュースのスクレイピング)

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time

# ====== 収集するニュースカテゴリ(英語版Googleニュース) ======
NEWS_SOURCES = {
    "World": "https://news.google.com/rss?hl=en-US&gl=US&ceid=US:en",
    "Technology": "https://news.google.com/rss/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRFp1YlY4U0FuUnlLQUFQAQ?hl=en-US&gl=US&ceid=US:en",
    "Science": "https://news.google.com/rss/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRFp1YlY4U0FuUnVLQUFQAQ?hl=en-US&gl=US&ceid=US:en"
}

def get_news_articles():
    news_data = []

    for category, url in NEWS_SOURCES.items():
        print(f"🔍 {category} のニュースを取得中...")
        response = requests.get(url)
        soup = BeautifulSoup(response.text, "xml")

        articles = soup.find_all("item")[:5]  # 各カテゴリで最新5件取得
        for article in articles:
            title = article.title.text
            link = article.link.text
            pub_date = article.pubDate.text
            news_data.append([category, title, link, pub_date])

    df = pd.DataFrame(news_data, columns=["カテゴリ", "タイトル", "URL", "公開日"])
    df.to_excel("world_news.xlsx", index=False)
    print("✅ 世界のニュースを取得完了!")
    return df

df_news = get_news_articles()

最新のニュースを「world_news.xlsx」に保存!


📌 3. ChatGPTを使ってニュースを日本語翻訳

OpenAIのChatGPT APIを使って、取得したニュースタイトルを日本語に翻訳&要約 します。

📌 Pythonコード(ChatGPT APIで翻訳)

import openai
import os

# ====== OpenAI APIキーを設定(環境変数から取得) ======
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
openai.api_key = OPENAI_API_KEY

def translate_news(df):
    translated_news = []

    for index, row in df.iterrows():
        title = row["タイトル"]
        url = row["URL"]

        prompt = f"""
        以下のニュースタイトルを日本語に翻訳し、簡潔に要約してください:
        "{title}"

        - 日本語訳:
        - 要約:
        """

        response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )

        translated_text = response["choices"][0]["message"]["content"].split("\n")

        translated_title = translated_text[1].replace("- 日本語訳:", "").strip()
        summary = translated_text[2].replace("- 要約:", "").strip()

        translated_news.append([row["カテゴリ"], translated_title, summary, url, row["公開日"]])

        time.sleep(1)  # APIのリクエスト制限回避

    df_translated = pd.DataFrame(translated_news, columns=["カテゴリ", "日本語タイトル", "要約", "URL", "公開日"])
    df_translated.to_excel("translated_news.xlsx", index=False)
    print("✅ ニュース翻訳&要約完了!")
    return df_translated

df_translated = translate_news(df_news)

ニュースを日本語に翻訳&要約し、「translated_news.xlsx」に保存!


📊 4. 流行ワードをワードクラウドで可視化

ChatGPTで翻訳・要約したニュースから トレンドワードを抽出し、ワードクラウドで可視化 します。

📌 Pythonコード(ワードクラウド作成)

from wordcloud import WordCloud
import matplotlib.pyplot as plt

def generate_wordcloud(df):
    text = " ".join(df["日本語タイトル"] + " " + df["要約"])
    wordcloud = WordCloud(width=800, height=400, background_color="white", font_path="/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf").generate(text)

    plt.figure(figsize=(10, 5))
    plt.imshow(wordcloud, interpolation="bilinear")
    plt.axis("off")
    plt.title("世界ニュースのトレンドワードクラウド")
    plt.savefig("news_trend_wordcloud.png")
    plt.show()

generate_wordcloud(df_translated)

世界のニュースから抽出したトレンドワードをワードクラウドで可視化!


📌 5. ChatGPTに流行分析を依頼

最後に、ChatGPTに流行分析を依頼するプロンプトを作成。

📍 プロンプト例

「以下のデータは最近の世界ニュースのタイトルと要約です。このデータを基に、最新のトレンドを分析してください。

[ニュースタイトル・要約のリスト]

- 現在の世界の流行トピックTOP5
- どの分野(政治・テクノロジー・経済など)が多いか?
- 今後の予測
- このトレンドが日本にどのような影響を与える可能性があるか?」

ChatGPTに要約&分析を依頼し、世界のトレンドを把握!


✅ まとめ

🚀 Pythonで世界のニュースを自動取得・翻訳・分析するプログラムを作成!
GoogleニュースAPIをスクレイピングし、最新ニュースを収集
ChatGPT APIでニュースを日本語に翻訳&要約
ワードクラウドで流行ワードを可視化
ChatGPTに分析を依頼し、世界のトレンドを把握

このプログラムを定期実行すれば、世界のニュースを毎日自動収集&分析 できます!✨
質問やカスタマイズの相談があれば、お気軽にどうぞ! 🚀

コメント

このブログの人気の投稿

ヨーヨーの科学:回転の不思議に迫る

Q4OS:WindowsやMacOSに代わる軽量Linuxディストリビューション

軽快動作!Windowsにクリソツ!Q4OSは神的かも!