AIを活用して世界のニュースを収集・翻訳・保存するプログラム(Gemini用)

 


🌍 AIを活用して世界のニュースを収集・翻訳・保存するプログラム(Gemini用)

PythonとGemini AIを活用し、世界のニュースを収集・日本語に翻訳・データ保存するプログラム を作成します!
GoogleニュースAPIやウェブスクレイピングでニュース収集
Gemini AI(Google AI)を活用し、ニュースを自動翻訳
要約や記事のキーワード抽出も可能!
CSV・Excel・JSON形式で保存


📌 1. 必要な環境を準備

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

📌 必要なPythonライブラリ

sudo apt update && sudo apt upgrade -y
pip3 install requests beautifulsoup4 pandas openpyxl google-generativeai

📌 Gemini AI APIキーの取得

  1. Gemini AI API にアクセスし、APIキーを取得
  2. APIキーを環境変数として設定(またはコードに直接記述)
export GEMINI_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. Gemini AIを使ってニュースを日本語翻訳

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

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

import google.generativeai as genai
import os

# ====== Gemini APIキーを設定(環境変数から取得) ======
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
genai.configure(api_key=GEMINI_API_KEY)

def translate_news(df):
    translated_news = []

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

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

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

        response = genai.GenerativeModel("gemini-pro").generate_content(prompt)
        translated_text = response.text.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. 流行ワードをワードクラウドで可視化

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

📌 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/Geminiに流行分析を依頼

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

📍 プロンプト例

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

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

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

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


✅ まとめ

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

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

コメント

このブログの人気の投稿

リリックにこだわるラッパーのための、Linuxでできるミュージッククリップ制作

VSCode × TATEditor がLinux執筆環境の最強タッグだった話

Windowsからの乗り換えに最適?Q4OSの実力に迫る!