| name | japanese-wordplay-humor-detection |
| description | 日本語の言葉遊び(縦読み・折句・ダジャレ・回文・アナグラム・もじり・替え歌)と日本的ユーモア(ボケ/ツッコミ・天丼・緊張と緩和・パロディ・自虐等)を体系的に検出・分類する。「縦読みして」「この文に仕掛けある?」「ダジャレ拾って」「ユーモアを分析して」等で発動。抽出した読みが実在し有意であることを必ず verbatim で確認してから報告する。 |
日本語 言葉遊び・ユーモア検出スキル
文章に仕込まれた言葉遊びとユーモア技法を検出・分類する。隠された縦読みのような「仕掛け」から、ダジャレ・回文のような語の遊び、ボケ/ツッコミ・天丼のような笑いの構造まで、日本語ユーモアを横断的に拾う。
発動トリガー:
- 「この文に仕掛け(縦読み等)ある?」「縦読み/斜め読みして」
- 「ダジャレ/言葉遊びを拾って」「回文になってる?」
- 「この記事/投稿のユーモアを分析・分類して」「何系の笑い?」
- メッセージが妙に整っている・行頭が不自然・語呂が良すぎる、と感じたとき
最重要原則 — 誤検出を出さない(grounding)
言葉遊び検出は偽陽性が出やすい。特に縦読み・斜め読み・アナグラムは、ランダムな文字列が偶然それらしく見えることがある。だから:
- 抽出した読みは必ず verbatim で示す。 「各行頭:マ・ほ・う・つ・か・い=魔法使い」のように、根拠の文字を1つずつ並べて初めて「検出」と言える。並べられないなら検出ではない。
- 抽出結果が実在の語・句として有意かを確認する。 意味の通らない文字列は仕掛けではなくノイズ。短い偶然一致(2〜3文字)は原則採用しない。
- 文脈的な意図の裏付けを見る。 仕込みは多くの場合テーマと響き合う(批判文に「魔法使い」を仕込む等)。意味+文脈が揃って確度が上がる。
- 断定の格付けを付ける:
確実(読みが明確に成立し意味も通る)/ 可能性(成立するが偶然の余地)/ 否定(成立しない)。怪しいだけで「検出した」と言わない。
検出対象一覧
A. 仕込み系(隠しメッセージ)
| 技法 | 定義 | 検出の起点 |
|---|
| 縦読み | 各行・各文・各箇条書きの先頭文字を縦に連結すると語句になる | 行頭文字の連結 |
| 斜め読み | n 行目の n 文字目を辿る(対角)/ 一定オフセットの斜め | 対角・等間隔抽出 |
| 折句(おりく) | 和歌・短歌などで各句の頭字が語を成す古典技法(例: かきつばた) | 句頭の連結 |
| 尻読み / 末尾読み | 各行の末尾文字を連結 | 行末文字の連結 |
| 飛ばし読み | 一定間隔(偶数文字目等)を拾うと別の文が出る | 等間隔抽出 |
B. 語の遊び系
| 技法 | 定義 | 検出の起点 |
|---|
| ダジャレ / 地口 | 同音・近似音を別義で重ねる(「布団が吹っ飛んだ」) | 仮名読みの反復・近似 |
| 同音異義 / 「これじゃない」系 | 同じ読みで意味をすり替える掛詞的遊び | 読み一致+語義差 |
| 回文 | 仮名読みが前後対称(「たけやぶやけた」) | 仮名正規化→対称判定 |
| アナグラム | 文字の並べ替えで別語になる | 文字多重集合の一致 |
| もじり / 捩り | 既知の諺・名言・作品名・歌詞を少し変えて笑いにする | 既知句との編集距離 |
| 替え歌 | 既知曲の譜割りに別歌詞を載せる(多くはパロディ) | 音数・リズムの一致+元曲想起 |
| 枕詞・縁語 | 古典的な定型修飾・連想語の使用 | 定型辞書照合 |
C. 笑いの構造系
- ボケ/ツッコミ:逸脱(ボケ)と訂正(ツッコミ)の対。漫才・コントの基本骨格。
- 天丼:同じネタ・フレーズを間を置いて再登場させる反復ギャグ(callback)。
- 緊張と緩和(桂枝雀):張り詰めた前提を一気に緩めて笑いにする。
- 不条理 / ナンセンス:論理の破綻そのものを笑いにする。
- 誇張 / 過小:スケールのズレ。
- 自虐 / 自己言及:自分(や記事自体)をネタにする。メタ。
- シニカル / 皮肉 / アイロニー:表と裏の落差。
- あるある / 共感:日常の機微への共感。
- パロディ:既存作品・様式の模倣と転倒(例: Wikipedia パロディ)。
- 下ネタ / 不謹慎 / おバカ / 脱力:系統別の笑い(後述の分類規定参照)。
詳細な検出アルゴリズム・近似音の扱い・偽陽性ガードは
references/detection-techniques.md を参照。
検出ワークフロー
入力テキスト
↓
Step 1: 正規化 行/文/箇条書きに分割。仮名読みを併記(漢字→読み)。記号・空白を保持した版も残す。
↓
Step 2: 仕込み走査 行頭・行末・対角・等間隔を機械的に抽出 → 候補文字列を得る。
↓
Step 3: 語の遊び走査 仮名読み列で反復/近似/対称/並べ替え/既知句近接を探す。
↓
Step 4: 構造走査 ボケ-ツッコミ対・反復(天丼)・落差・パロディ枠組みを見る。
↓
Step 5: 検証(必須) 候補ごとに「読みが実在し有意か」「文脈と響くか」を確認。verbatim で根拠を並べる。
↓
Step 6: 分類と確度 技法名+系統+確度(確実/可能性/否定)を付け、根拠とともに出力。
ユーモア分類規定(日本語ユーモアの系統)
検出した笑いは系統に分けて評価する(系統を取り違えると評価を誤る。下ネタを知的ユーモアの物差しで測らない)。
- 知的ユーモア / Wikipedia パロディ系:ウィット・エスプリ。おバカ系・下ネタ系とは原則両立しない。
- 下ネタ系 / おバカ系 / 脱力系 / 不謹慎系(不謹慎さ自体がネタ。国内の文化的成熟度を加味)。
- コンテクスト系:他テキストと対になり、エコシステムで意味を持つ。
- 自己言及・メタ系:CSS 芸のような視覚的自己言及を含む。
- プロンプト・インジェクション系(メタ・ネタとしての)。
評価軸の目安(採点する場合):humor(系統に応じた強さ。日本的な言葉遊び・伝統芸・ネットミーム・ローカル文化のどれかに合致するなら安易に減点しない)/ structure(一貫した着眼点)/ format / language(読みやすさ)/ completeness。
作問・隠蔽(生成側)— detect の対になる compose
言葉遊びを「検出」できることと「自分で仕込む」ことは別の技能。生成側には、検出側の grounding 本能が裏目に出る 特有の落とし穴がある(透明性が高すぎて、つい技法も答えも開示してしまう)。仕込むときは次の3つを必ず守る(いずれも実地の失敗から得た規律):
- payload を内部で verbatim 検証してから出す。 仕込んだ読み(縦/斜め/折句の抽出結果)を自分で1文字ずつ辿り、狙った語に完全一致することを送信前に確認する。漢字始まりの行は頭字がズレる事故が起きる(例:「上から」で始めると行頭字は『う』ではなく『上』)。検出と同じ verbatim 規律を、今度は自分の出力に向ける。
- 技法を明かさない(隠す目的のとき)。 「縦に読め」と辿り方を教えた時点で謎解きは終わる。パズルとして出すなら、技法名も位置も伏せる。
- 答えを平文に出さない。 仕込んだ語が可視テキストにもそのまま現れていたら、解く前に割れる。隠す対象を本文に重複させない。
補足:解かせたいなら相手の期待を外す技法を選ぶ(縦読みを警戒している相手には斜め読み・尻読み)/発見させたいならブロック範囲だけ示す/ヒント量は意図で調整(パズル=伏せる、贈り物=開示する)。作問の手順詳細は references/detection-techniques.md の「作問・隠蔽」節を参照。
出力フォーマット
{
"detections": [
{
"technique": "縦読み",
"category": "仕込み系",
"extracted": "まほうつかい(魔法使い)",
"evidence": ["1行目頭=マ", "2行目頭=ほ", "3行目頭=う", "4行目頭=つ", "5行目頭=か", "6行目頭=い"],
"confidence": "確実",
"note": "批判文に『魔法使い』を仕込む=テーマと整合"
}
],
"humor_structures": ["皮肉", "メタ(自己言及)"],
"category": "知的ユーモア",
"summary": "…"
}
確度が 否定 または根拠を verbatim で並べられない候補は detections に入れない。「仕掛けがあるかも」で止めず、成立する仕掛けだけを根拠付きで返す。