著者:佐藤 秀輔
対話型AIサービス「ChatGPT」が注目を集めています。特に、2023年3月に登場した「GPT-4」という大規模言語モデル(LLM)を利用可能になってからは自然言語の理解力が飛躍的に向上し、指示に基づいて、さまざまな処理を自動化できるようになっています。本特集では、ChatGPTを個人で活用する例として、家計簿レビューをさせる方法と、API(Application Programming Interface)を利用してWebスクレイピングをさせる方法を紹介します。
シェルスクリプトマガジン Vol.91は以下のリンク先でご購入できます。
図1 ランダムな家計簿データを生成するPythonスクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import datetime import random itemlist = ['食料品', '外食費', '日用品', '家財道具', '交通費', '電気代', '水道代', 'ガス代', 'ガソリン代', 'その他'] for i in range(366): basedate = datetime.datetime(2024, 1, 1) date = basedate + datetime.timedelta(days=i) item = itemlist[random.randrange(10)] amount = random.randrange(100) * 100 print(f"{date.date()},{date.time()},{item},{amount}") |
図10 Webスクレイピング対象となるWebページの例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>サンプル商品リスト</title> </head> <body> <h1>商品リスト</h1> <div class="product" id="product1"> <h2>商品名:スニーカー</h2> <p>価格:\5000</p> <p>評価:4.5 星</p> </div> <div class="product" id="product2"> <h2>商品名:バックパック</h2> <p>価格:\8000</p> <p>評価:4.0 星</p> </div> <div class="product" id="product3"> <h2>商品名:水筒</h2> <p>価格:\1500</p> <p>評価:4.8 星</p> </div> </body> </html> |
図11 Webスクレイピング用のPythonスクリプトの例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import json from bs4 import BeautifulSoup # HTMLファイルを開く with open('sample.html', 'r', encoding='utf-8') as file: html_content = file.read() # BeautifulSoupオブジェクトを作成 soup = BeautifulSoup(html_content, 'lxml') # 商品情報を抽出 products = soup.find_all('div', class_='product') product_list = [] for product in products: product_name = product.find('h2').text.replace('商品名:', '').strip() price = product.find_all('p')[0].text.replace('価格:', '').strip() rating = product.find_all('p')[1].text.replace('評価:', '').strip() # 各商品情報を辞書として追加 product_list.append({ '商品名': product_name, '価格': price, '評価': rating }) # JSON形式で結果を出力 json_output = json.dumps(product_list, ensure_ascii=False, indent=4) print(json_output) |