見出し画像

ある程度長い文章の対義語を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の逆


いいなと思ったら応援しよう!