英文記事を日本語に要約するために、NewsAPI、BeautifulSoup、CohereAIを使用する方法



### 手順


1. **APIキーの取得**

   - NewsAPIのAPIキー

   - CohereAIのAPIキー


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

   ```bash

   pip install requests beautifulsoup4 cohere

   ```


3. **Pythonコードの作成**


```python

import requests

from bs4 import BeautifulSoup

import cohere


# APIキーを設定

newsapi_key = 'YOUR_NEWSAPI_KEY'

cohere_api_key = 'YOUR_COHERE_API_KEY'


# Cohereクライアントの初期化

co = cohere.Client(cohere_api_key)


def get_news_articles(query):

    url = f'https://newsapi.org/v2/everything?q={query}&apiKey={newsapi_key}'

    response = requests.get(url)

    articles = response.json().get('articles')

    return articles


def extract_article_content(url):

    response = requests.get(url)

    soup = BeautifulSoup(response.content, 'html.parser')

    paragraphs = soup.find_all('p')

    content = ' '.join([para.get_text() for para in paragraphs])

    return content


def summarize_article(content, language='ja'):

    response = co.summarize(

        text=content,

        model='summarize-xlarge',

        length='short'

    )

    summary = response.summary

    return summary


def main():

    query = 'technology' # 例として技術関連の記事を取得

    articles = get_news_articles(query)

    

    for article in articles[:1]: # 例として最初の記事を処理

        url = article['url']

        print(f"URL: {url}")

        

        content = extract_article_content(url)

        summary = summarize_article(content)

        

        print(f"Summary: {summary}")


if __name__ == '__main__':

    main()

```


### ショートカット


このプロセスを迅速に行うためのショートカットとして、以下の方法を検討できます。


1. **一度に複数の記事を取得し、並列処理を使用して処理速度を向上させる。**

   - `concurrent.futures`モジュールを使用して並列処理を実装します。


2. **記事の内容抽出と要約をバッチ処理する。**

   - 複数の記事を一度に処理することで効率を向上させます。


以下に並列処理を追加した例を示します。


```python

import requests

from bs4 import BeautifulSoup

import cohere

from concurrent.futures import ThreadPoolExecutor


# APIキーを設定

newsapi_key = 'YOUR_NEWSAPI_KEY'

cohere_api_key = 'YOUR_COHERE_API_KEY'

ここから先は

1,234字

¥ 1,500

この記事が気に入ったらチップで応援してみませんか?