見出し画像

ChatGPT と Google Colab の強力タッグ!


PDF の内容一覧がほしい

先日、生成AIパイロット校の実践報告をまとめたページが公開されました。https://leadingdxschool.mext.go.jp/r05/ai_school/

多くの事例が PDF に掲載され、そのリンクが一覧になっているものです。
報告をされた関係者の皆さんと、それをまとめた担当の方のご尽力は相当なものと思われ、頭が下がります。
ただ、一つ一つ開いて内容を確認するのは、よほど関心のある人ではないでしょうか。
せっかくの内容を少しでも見えるようにしたいと思いました。
概要の一覧を作れば、もっと必要な内容にアクセスする人が増えると思いましたが、40近くあるファイルから手作業で一覧を作るのはかなりの手間です。

ChatGPT に作業を指示 ところが…

そこで、ChatGPT が使えるのではないかと思って試してみました。
リンクされている PDF を2つ3つ開いてみると、どれも1ページ目に掲載事例の一覧(目次)があるとわかりました。
リンクされている PDF を一つ一つ開いて、1ページ目から掲載事例の一覧を抽出するのは定型作業なので、ChatGPT に向いているのではないかと思ったのです。

🙋🏻‍♂️私
(URLを入力)このページにあるPDFをまとめてダウンロードすることはできますか。
🤖ChatGPT
直接PDFを一括でダウンロードする機能は提供されていないようです。ただし、各PDFは個別にダウンロードできます。以下のページにアクセスし、個々のリンクをクリックしてPDFをダウンロードしてください:

う〜む、そうなのか…
何とか自動化できないか考えていて、ふと思い出したのが Python のコードをChatGPTに書いてもらって自動化する方法です。
簡単なコードや外部にアクセスする必要がない場合はChatGPTの内部でPythonのコードを実行して処理してくれるのですが、今回のタスクはダメなようです。

Google Colab で Python のコードを実行

Python のコードを実行するための環境構築はちょっとした手間です。そこでもう一つ思い出したのが、Google Colab です。
Google Colab とは、Googleが提供する無料のクラウドベースのサービスで、ブラウザ上でPythonコードを記述、実行、共有することができるのです。

🙋🏻‍♂️私
このページにあるPDFをまとめてダウンロードする Python のコードを書いてください。Google Colab にコピペすればそのまま動くものをお願いします。
🤖ChatGPT
以下は、Google Colabで動作するPythonコードです。このコードを使って、指定されたウェブページにあるすべてのPDFをまとめてダウンロードできます。
(以下のコードが表示された)

import requests
from bs4 import BeautifulSoup
import os

# ダウンロード先のディレクトリを設定
download_dir = '/content/pdf_files'
os.makedirs(download_dir, exist_ok=True)

# ターゲットURL
url = 'https://leadingdxschool.mext.go.jp/r05/ai_school/'

# ウェブページの内容を取得
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# PDFリンクを抽出
pdf_links = soup.find_all('a', href=True)
pdf_urls = [link['href'] for link in pdf_links if link['href'].endswith('.pdf')]

# PDFをダウンロード
for pdf_url in pdf_urls:
    pdf_response = requests.get(pdf_url)
    pdf_name = os.path.join(download_dir, pdf_url.split('/')[-1])
    with open(pdf_name, 'wb') as f:
        f.write(pdf_response.content)
    print(f'Downloaded: {pdf_name}')

print('All PDFs have been downloaded.')

ということなので、Google Colab にアクセスします。

「ノートブックを新規作成」を押し、表示されたコードエリアに ChatGPT が表示したコードを貼り付けます。
▷ボタンを押すと実行されます。
3分ほどで40個近くのファイルが Colab 内にダウンロードできました。
左側のツールバーにあるフォルダアイコンを押すとファイルが表示されます。

さらに続けて、ダウンロードした PDF を操作できるようなので、次のように指示しました。

🙋🏻‍♂️私
/content/pdf_files ディレクトリにあるPDFの1ページ目を抽出してテキストデータにまとめ、list.txt に出力するコードを書いてください。
🤖ChatGPT
以下は、/content/pdf_files ディレクトリにあるPDFの1ページ目を抽出してテキストデータにまとめ、list.txt に出力するGoogle Colab用のPythonコードです。

次なるコード…エラー!→修正もChatGPTで

(よしよし…)と思ってまた Colab にコピペして実行してみると、エラーが出て止まってしまいました。
Colab で表示されたエラーメッセージを丸ごとChatGPT にコピーして聞いてみると、修正したコードが提示されました。
もう一度 Colab で実行してみると、またエラー…
そんなことを3回くり返して、4回目にようやく成功しました。
その結果を使って、後は手作業でまとめたのがこちらの一覧です。

まとめ

ChatGPT は自然言語でのやり取りだけでもかなりのことができますが、そこにプログラミング言語(Python)を組み合わせると、さらに高度な処理をすることができます。
これまではプログラミングをがっつり勉強してコードが書けるようになった人でないと実現できなかったことが、ちょっとかじった程度でもできる時代がやってきました。
まるっきり知識がないと難しいかもしれませんが、細かい関数や文法を知らなくても、おおよその流れがわかっていれば ChatGPT がよしなにやってくれますし、わからないところを ChatGPT に質問すればていねいに教えてくれます。

Google Colab の基本的な使い方についてはこちらの記事がわかりやすいと思います。

また、ChatGPT とPython を組み合わせてさまざまなデータ処理を行うための方法については、こちらの書籍に詳しく書かれています。

皆さんの世界がさらに広がることを祈ってます!

この記事が気に入ったらサポートをしてみませんか?