【AIに働かせて楽しよう! その2】Chat-GPTにプログラミングさせてみた..
AIを自分のコピーとして働かせよう!という野望。
もしAIにはたらいてもらったら楽だよな。。というわけで先日はJKローリングを超える小説を作ってもらおうと考えましたが。ある程度小説を知らないとサポートにはなりませんでした。
そこで今回はAIにプログラミングをしてもらおうと。。
GPT-CHATでプログラミング
早速進めていきます。
お題入力。
数秒待つと早速以下の回答
import requests
from bs4 import BeautifulSoup
from collections import Counter
import matplotlib.pyplot as plt
# 指定したURLからHTMLを取得する
url = "http://example.com"
response = requests.get(url)
html = response.text
# HTMLをパースする
soup = BeautifulSoup(html, "html.parser")
# 本文を抽出する
text = soup.get_text()
# 単語の頻度を計算する
word_counts = Counter(text.split())
# 単語の頻度の上位30件を取得する
most_common_words = word_counts.most_common(30)
# ラベルとデータを取得する
labels, data = zip(*most_common_words)
# 棒グラフを描画する
plt.bar(labels, data)
plt.show()
pip install requests
pip install bs4
pip install collections
pip install matplotlib
悪くない。
UrlをNY-TIMESのものに変更
日本語サイトを選ばないのは、単語がスペース区切りの言語でないと分解できないから。
早速、Google Colaboratoryで実行する。
(※Google Colaboratoryはブラウザだけで実行できるGoogleが提供する無料のプログラム環境。Google様感謝!)
プログラムそのものの基礎知識はある程度必要、実行環境についても知識をもっている前提で動かす。
何故順番が異なるのか?ーー先にモジュールを入れないと動かない。
何故!をつけるのか?ーーーcolab特有で、この環境をのためのもの一般的にはつけなくていい。
あれ?エラー?
そういえば、そもそもcollectionsモジュールは標準モジュールのためインポート不要だった。。(このあたりは精度が甘そう)
実行結果のグラフ
あ、読めない。。
そういうところは教えてあげると直してくれる。
import matplotlib.pyplot as plt
# X軸のラベルを270度回転する
plt.xticks(rotation=270)
# 以降は通常通りに棒グラフを描画する
plt.bar(labels, data)
plt.show()
import matplotlib.pyplot as plt
# X軸のラベルを折り返す
plt.gcf().autofmt_xdate()
# 以降は通常通りに棒グラフを描画する
plt.bar(labels, data)
plt.show()
早速前者で実行
いらない単語ばっかり。
じゃあ削除する方法を聞く。
すぐに回答が来る。
import requests
from bs4 import BeautifulSoup
from collections import Counter
import matplotlib.pyplot as plt
# ストップワードのリスト
stop_words = ["a", "an", "the"]
# 指定したURLからHTMLを取得する
url = "http://example.com"
response = requests.get(url)
html = response.text
# HTMLをパースする
soup = BeautifulSoup(html, "html.parser")
# 本文を抽出する
text = soup.get_text()
# ストップワードを除去する
filtered_words = [word for word in text.split() if word not in stop_words]
# 単語の頻度を計算する
word_counts = Counter(filtered_words)
# 単語の頻度の上位30件を取得する
most_common_words = word_counts.most_common(30)
# ラベルとデータを取得する
labels, data = zip(*most_common_words)
# 棒グラフを描画する
plt.bar(labels, data)
plt.show()
うーん肝心のストップワードも知りたい。
ありがたい。
早速コピペ
(回答の書式だとプログラムにそのままならないので変換)
これでよいかと実行。
げっ。。これは記事じゃない。
よく見直すとURLをurl = "http://example.com"にしていた。。
もしかするとうまくいくかもしれない、でもせっかくなのでこの変な文字を除去したい。
早速回答
Copy codeimport requests
from bs4 import BeautifulSoup
from collections import Counter
import matplotlib.pyplot as plt
# ストップワードのリスト
stop_words = ["a", "an", "the"]
# 指定したURLからHTMLを取得する
url = "http://example.com"
response = requests.get(url)
html = response.text
# HTMLをパースする
soup = BeautifulSoup(html, "html.parser")
# styleタグを削除する
for tag in soup.find_all('style'):
tag.decompose()
# scriptタグを削除する
for tag in soup.find_all('script'):
tag.decompose()
# 本文を抽出する
text = soup.get_text()
# ストップワードを除去する
filtered_words = [word for word in text.split() if word not in stop_words]
# 単語の頻度を計算する
word_counts = Counter(filtered_words)
# 単語の頻度の上位30件を取得する
most_common_words = word_counts.most_common(30)
# ラベルとデータを取得する
labels, data = zip(*most_common_words)
# 棒グラフを描画する
plt.bar(labels, data)
plt.show()
上記だと、URLがサンプルになっている、表示が重なる、ストップワードが不足しているのでその部分は教えてもらったとおりになおして実行。
すると。。
単語を小文字にを統一したほうがよくなりそうとか色々要望出てきそうですがとりあえずここまで。
さて、ここからが所感です。
CHAT-GPTをプログラミングに活用することについて(所感)
ざっくりまとめると以下の感じ。
要するに使えるかといえば使える。初心者ほど使える。なぜなら調べるのが楽。
ベテランレベルにはなっていない。なぜなら細かい配慮してくれないのであとから見直し必要。
うまく使うならば基本を出してあとはベテランならば追加していけば加速作業できる。(上記の例だとストップワード入力されていないなとか気がつくのでその時点で追加するだけでいい)
要するにプログラミングでも楽できるツールでした。
(代替えまでではないけど効率UPするにはもってこいです。)