前に書いた機械学習の記事に使ったPythonのコードを、話題になっているChatGPTにコードレビューさしてみました。
英語と日本語でどれくらい違いが出るか比べてみました。
使ったコードはデータの読み取り
の章で紹介した、以下のコードです。
行っているのは衛星画像のr種類のデータをファイルから読み込み、r個要素の入った3次元配列を返しています。それをさらにr個要素の入った1次元の配列にし直しています。
def k_get_raw_data(city,dataset,r,x,y,h,w):
mimage = np.zeros((h, w, r), dtype=int)
for i in range(r):
b = i + 1
with rasterio.open(city + '\\' + dataset + str(b) + '.tiff') as src:
data = src.read()
img = data[0][y:y+h, x:x+w]
mimage[:, :, i] = img
new_shape = (mimage.shape[0] * mimage.shape[1], mimage.shape[2])
X = mimage[:, :, :r].reshape(new_shape)
return X
素晴らしいですね。拡張子でTIFFと使っていたりしているからかもしれませんが、TIFF画像の読み込みをしていることも分かっているようです。
次に英語で同じコードをレビューしてもらいます。新しいChatを開いて、英語で聞いてみます。
日本語の時よりさらに詳細に解説してくれています。
- ただTIFFだけでなくGeoTIFFと言い切っている
- パラメータの詳細な解説をしている。それぞれの属性までもStringなのかIntegerなのかなど説明している。
- 読み込んだデータから一部を切り出しているのですが、それがx,y地点から始まり高さh、幅wで切り出していることも説明。
- いくつかの注意事項も説明している。読み込むソースデータがフォルダーにあることを前提にしていることも指摘。これによって本来はエラーハンドリングなどを追加する必要性も考えられる。
ちなみに、英語でレビューしてもらったものを日本語で返答するように聞いてみました。
これは、英語で一度返しているのでそれを翻訳した感じのように見受けられます。
それにしても完成度は驚きです。