0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ABCモデル × LLMでユーモアを自然生成する方法(Python実装+プロンプト集付き)

0
Posted at

はじめに

ユーモア生成をやろうとすると、多くの場合こうなります:

  • ルールベース → 固くなる
  • LLM単体 → 面白さが不安定

そこで有効なのが、

ABCモデル(構造) × LLM(表現)

という分離アプローチです。

本記事では:

  • ABCモデルで「面白さの構造」を作る
  • LLMで自然な文章にする
  • Pythonでの実装方法
  • そのまま使えるプロンプト集

までまとめます。


1. 全体像(結論)

まず最初に完成形です:

入力(状況)
   ↓
ABCモデルで構造化
   ↓
ズレを抽出(A/B/C)
   ↓
意味に変換(言語化)
   ↓
LLMで自然文生成

ポイントはこれ:

❌ LLMに全部やらせない
⭕ 構造と表現を分離する


2. ABCモデルとユーモア

ABCモデルは以下の3軸:

意味 ユーモアでの役割
A 本音・生 人間くささ
B 理想・評価 「こうあるべき」
C 俯瞰・メタ ツッコミ

このときユーモアは:

A・B・Cのズレから生まれる


A: 眠い
B: 頑張るべき
C: いや寝ろよ

👉 この三層構造が「面白さ」


3. 数式の役割(重要)

ABCモデルの数式は:

  • 状態(v, Δ, State)を更新
  • 外部要因(EF)を重ねる
  • 状態遷移(TR)を起こす

つまり:

❌ 面白い文章を作る
⭕ 面白くなる「ズレ」を作る


4. 実装アーキテクチャ(Python)

3層に分けるのがコツです。


4.1 力学層(ABC計算)

def summarize_abc(model):
    A = "やる気が弱い" if model.A.v < 1 else "やる気はある"
    B = "ちゃんとすべき気持ちが強い" if model.B.v > 1.5 else "多少気にしている"
    C = "その状況を俯瞰している" if model.C.v > 1 else "あまり気づいていない"

    return A, B, C

4.2 ズレ抽出

def extract_twist(A, B, C):
    return "理想と現実がズレている"

4.3 LLM接続

def build_prompt(A, B, C, twist):
    return f"""
あなたは自然なユーモア文章を書くアシスタントです。

- 本音:{A}
- 理想:{B}
- メタ:{C}
- ズレ:{twist}

1〜2文でユーモアにしてください。
"""

5. 出力例

入力:

{
  "A": "眠くて動けない",
  "B": "ちゃんとやるべき",
  "C": "その矛盾に気づいている",
  "twist": "理想だけが先行している"
}

出力:

頑張る気持ちはあるのに、身体だけが先に退勤しています。


6. 精度を上げる3つのコツ

① C(メタ)を必ず入れる

→ ユーモアの核

② ズレを明文化する

→ LLMが理解しやすくなる

③ 抽象度を揃える

→ 崩れない文章になる


7. 応用:スタイル制御

プロンプトに追加:

- 自虐寄り
- 優しいトーン
- 皮肉気味
- ビジネス風

👉 同じ構造でも別のユーモアになる


8. まとめ

最も重要な一文:

ABCで構造を作り、LLMで表現する

これだけで、

  • 安定性
  • 自然さ
  • 再現性

が一気に上がります。


9. 巻末:そのまま使えるプロンプト集

コピペOKです。


① 基本ユーモア

あなたは自然なユーモア文章を書くアシスタントです。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

1〜2文で、軽いユーモアにしてください。
説明は禁止。

② 自虐ユーモア

あなたは自虐的なユーモアを書くプロです。

以下をもとに、少しだけ自分を笑う一文を書いてください。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

ネガティブすぎず、軽く笑えるトーンで。

③ 皮肉ユーモア

あなたは少し皮肉の効いたユーモアを書く人です。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

少しだけ知的な皮肉を入れて、短く書いてください。

④ 優しいユーモア

あなたは優しくて安心感のあるユーモアを書く人です。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

読み手が安心するような柔らかい表現にしてください。

⑤ ビジネス風ユーモア

あなたはビジネス文脈で軽いユーモアを書く人です。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

フォーマル寄りで、少しだけ笑える表現にしてください。

⑥ 一言オチ型

以下をもとに「一言でオチ」を作ってください。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

15〜25文字で。

⑦ 共感系ユーモア

あなたは「あるある」系ユーモアを書く人です。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

多くの人が共感できる形にしてください。

⑧ メタ強めユーモア

あなたはメタ視点のユーモアを書く人です。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

状況を一段上から観察する形で書いてください。

⑨ 状態説明風ユーモア

以下の状態を「それっぽい説明風」でユーモアにしてください。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

専門用語っぽくしてOKです。

⑩ 疲労・やる気系特化

あなたは「疲れている人のユーモア」を書く人です。

- 本音:{{A}}
- 理想:{{B}}
- メタ:{{C}}
- ズレ:{{twist}}

無理せず、少しだけ笑える表現にしてください。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?