ある程度長い文章の対義語をGPTにつくってもらった #GPTハッカソン24耐
対義語とは意外で面白いものである。
ネットミーム的なもので、こんなページもある。
ということで、GPTにある程度長い文章の対義語をつくってもらった。
お前はもう死んでいる
→ 私はまだ生きている
親父にもぶたれたことないのに
→ 子供には毎回なでられるたびなので
生殺与奪の権を他人に握らせるな
→ 自己の死生を無関与され義務を放つ
おまえの物はおれの物、おれの物もおれの物
→ 私には何もないけど、私のできることはみんなのためにある
見ろ、人がゴミのようだ
→ 実は見るな、ロボットは宝だ
ボールはともだち
→ キューブではない敵
諦めたらそこで試合終了ですよ
→ 挑戦を続ければそこから和平が始まるんじゃないですか?
START YOUR IMPOSSIBLE
→ STOP THEIR POSSIBLE
i’m lovin’ it
→ I'm not diggin' it
NO MUSIC NO LIFE
→ YES SILENCE YES DEATH
Leading Innovation
→ Following Tradition
明日の空へ、日本の翼
→ 昨日の地へ、外国の車輪
わたしらしくをあたらしく
→ ひとらしくと古く
お口の恋人
→ お尻の敵
少年ジャンプ
→ 老人ステイ
ヤングマガジン
→ オールドブック
じゃあなみんなーー!! 死んだらまた会おうなーーーー!!
→ 初めまして皆さん!生きている間に二度と会わない!
がんばれカカロット… おまえがナンバー1だ!!
→ 怠けろフリーザ… おまえは最下位だ!!
おとうさんを… いじめるなーーーっ!!!!!
→ おかあさんを… 愛してあげてください!!!
そんなんじゃ社会に出たら通用しないよ
→ こういうのでプライベートにいたら受け入れられますね
検索から生成へ
→ 破壊から隠蔽へ
教養としてのAI
→ 無知から離れて人間
なかなか良いぞ。所々変な物もありますが、クスッと笑えるフレーズもでてきますね。
と言うことでプロンプトは使ったプロンプトとソースコードを貼っておきます。
Python3系で動きます。
#モデルを指定
model_engine = "gpt-4-1106-preview"
from openai import OpenAI
client = OpenAI()
# APIキーを取得
client = OpenAI(api_key= "ここにapikeyを入れる" )
############################################
# GPT
############################################
def make_reply(text):
chat_log = []
with open("template/hantai.txt", "r" , encoding='utf-8') as f:
order = f.read()
order_input = order
chat_log.append({"role": "system", "content": order_input })
chat_log.append({"role": "user", "content": text })
response = client.chat.completions.create(
model=model_engine,
temperature = 1.0,
messages= chat_log
)
answer = response.choices[0].message.content
print(answer)
print("")
###########################3
chat_log = []
with open("template/tyuusyutu.txt", "r" , encoding='utf-8') as f:
order = f.read()
order_input = order
order_input = order_input.replace("{input}" , text)
order_input = order_input.replace("{answer}" , answer)
chat_log.append({"role": "system", "content": order_input })
response = client.chat.completions.create(
model=model_engine,
temperature = 1.0,
messages= chat_log
)
answer = response.choices[0].message.content
print(answer)
print("")
return answer
with open("input_text.txt", "r" , encoding='utf-8') as f:
input_text = f.readlines()
with open("output_text.txt", "w" , encoding='utf-8') as f:
pass
for txt in input_text:
answer = make_reply(txt)
with open("output_text.txt", "a" , encoding='utf-8') as f:
f.write(answer + "\n")
プロンプトは二段階にしました。まずはこのプロンプトで対義語をつくってもらいます。ただし、回答文は文章の形式で出されるので、別途抽出が必要です。
このような手順で言葉遊びをしたいです。
#入力例
カントリーマァム
#ステップ1
まず言葉を分解します
例えば、カントリー、マァムに分解されます。
#ステップ2
それぞれの言葉の逆の意味を考える
カントリー→メトロポリス
マァム→ダディ
#ステップ3
連結させる
メトロポリスダディ
#ステップ4(任意)
できあがった言葉が日本語として不自然な場合は整える。
結果として、カントリマァムの逆はメトロポリスダディとなります。
もう一つ例を示します。
#入力例
ワンコイン
#ステップ1
まず言葉を分解します
今回は少し特殊で、ワンコ(つまり犬)とインに分けました。
#ステップ2
それぞれの言葉の逆の意味を考える
ワンコの逆は正確には存在しませんが、今回はにゃんこ(つまりネコ)にします。何となく対立する表現なら大丈夫です
インの逆はシンプルにアウトにしました。
#ステップ3
連結させる
にゃんこアウト
#ステップ4(任意)
できあがった言葉が日本語として不自然な場合は整える。
このような言葉遊びをしたいです。理解できましたか?
これから私が打ち込む言葉の逆を考えてください。
次にこのプロンプトで、回答文の中から対義語だけを抜き出しています。
以下の文章から、{input}の逆として提案されているものを抜き出せ。
回答の候補が複数有る場合でも1つだけ抜き出せ。
#文章
{answer}
#出力フォーマット
inputの逆