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キーの取得
- Gemini AI API にアクセスし、APIキーを取得
- 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に分析を依頼し、世界のトレンドを把握
このプログラムを定期実行すれば、世界のニュースを毎日自動収集&分析 できます!✨
質問やカスタマイズの相談があれば、お気軽にどうぞ! 🚀
コメント
コメントを投稿