最近WBSやNHKでよく紹介されていて話題のChatGPTに自分のことを聞いたら山と勘違いされた。
bingでは、どのように検索機能としてChatGPTを活用するのか楽しみ。
次に、以下のようなtsvファイル(sentenceとscoreの列がある)を読み込み、scoreの値が1と0の割合を計算するpythonコードが書けるか試してみた。
sentence score So there is no way for me to plug it in here in the US unless I go by a converter. 0 Good case, Excellent value. 1 Great for the jawbone. 1 Tied to charger for conversations lasting more than 45 minutes.MAJOR PROBLEMS!! 0 The mic is great. 1 I have to jiggle the plug to get it to line up right to get decent volume. 0 If you have several dozen or several hundred contacts, then imagine the fun of sending each of them one by one. 0 If you are Razr owner...you must have this! 1 Needless to say, I wasted my money. 0
以下のようにあまり考えずに聞くと、pandasを用いない実装案が出てきて、ちょっと想定外だったが、これはこれで実装できていそう。
何がすごいって、1行目がカラムのラベルだから無視して、2列目がscoreを取るようにと教えてもいないのに、
「 if not line.startswith('sentence'):」で1行目を飛ばし、「 _, score = line.strip().split('\t')」でタブでsplitして2つ目を取ってきているところである。
def calculate_ratio(file_path): with open(file_path, 'r') as file: score_counts = {0: 0, 1: 0} for line in file: if not line.startswith('sentence'): _, score = line.strip().split('\t') score = int(score) score_counts[score] += 1 total = sum(score_counts.values()) ratio_1 = score_counts[1] / total ratio_0 = score_counts[0] / total return ratio_1, ratio_0 ratio_1, ratio_0 = calculate_ratio('file.tsv') print(f"Ratio of score 1: {ratio_1}") print(f"Ratio of score 0: {ratio_0}")
次にもう少し丁寧に聞いてみた。「以下のtsvファイルを読み込んでscore列の値が1と0時の割合を計算するpythonコードを、pandasを用いて書いてください。」
そうすると、pandasを使った想定していたコードが出てきた。
これはすごい。大学の授業のpythonの演習問題は、ChatGPTで簡単に解けてしまうし、場合によっては就活のコーディングテストでもカンニングできてしまうのではないだろうか。。。
import pandas as pd def calculate_ratio(file_path): df = pd.read_csv(file_path, sep='\t') score_counts = df['score'].value_counts() total = score_counts.sum() ratio_1 = score_counts[1] / total ratio_0 = score_counts[0] / total return ratio_1, ratio_0 ratio_1, ratio_0 = calculate_ratio('file.tsv') print(f"Ratio of score 1: {ratio_1}") print(f"Ratio of score 0: {ratio_0}")
近いうちに、プログラマと記者の需要が減りそう。