はむ吉(のんびり)の練習ノート

プログラミングとことばに関する話題を中心に,思いついたこと,試してみたこと,学んだことを,覚え書きを兼ねてまとめます.その際に役立った,技術書,参考書,辞書,機器などの紹介も行います.

競技くそなぞなぞにおける作問の基本的手法:ことばのピースを問題文に組み上げるまで

当記事では,くそなぞなぞの作問を行う際に,私がふだん経ている過程を記します.原案から,問題文の作成に至るまでの作業について,順を追って説明します.その際に,役立つ書籍やウェブサービス等についても触れます.

更新履歴

  • 2020 年 12 月 3 日 0 時:公開.
  • 2020 年 12 月 3 日 20 時:「慣用句や連語を用いた換言」を追加.

Note

当記事は, くそなぞなぞ Advent Calendar 2020 - Adventar の記事 (12/3) として書かれました.

自己紹介

はむ吉 (@hamukichi_nbr) です.競技プログラミングのほか,辞書や言葉遊びなど,言葉に関するもろもろも趣味です.くそなぞなぞコンテストでのレーティング1724 です(12/3 現在).

はじめに

一部の競技プログラマーの間では,くそなぞなぞを出し合って楽しむという取り組みが広まっています.最近では,プログラミングコンテストに倣って,くそなぞなぞコンテストが開催されるなど,「競技くそなぞなぞ」とでも呼ぶべき動きもあります.

本記事では,競技くそなぞなぞにおける作問に目を向け,私がその際に留意している点をまとめることにしました.くそなぞなぞは,解くのももちろん楽しいのですが,解いてもらうのも,また喜ばしいものです.また,作問の経験が,くそなぞなぞを解くための「精進」*1につながるかもしれません.当ブログでは,これまでにもくそなぞなぞの作問には触れてきましたが,この記事では,それらも参照しつつ,言葉探しから問題文の作成までの過程におけるヒントや注意点が分かりやすいように,さらなる説明を加えます.また,これらの作業に役立つ書籍やウェブサービスも紹介します.ただ,私は Twitter 上ではくそなぞなぞをたびたび出したり解いたりしているものの,コンテストに問題を出した経験は皆無です.そのため,もし気になる点等があれば,指摘していただけると幸いです.

原案を得る

作問にあたって,まずは,くそなぞなぞの材料となる,語句を思いつかなければ話になりません.それは,くそなぞなぞの解そのものでも,その一部である解の構成要素でも構いません*2.とにかく,何かめぼしい語句を見つけなければなりません.そのためには,会話,読書,SNS の閲覧など,日常で出会う言葉の一つ一つに対し,「これはくそなぞなぞに使えないだろうか」という目を向ける必要があります.もちろん,気負いこんだところで何も出てこないときもあるので,たまには楽にして,serendipity にでも期待しましょう.

そうはいっても,日ごろ接する言葉をただモニタリングするだけでは,なかなかくそなぞなぞの原案に結びつかないかもしれません.そういうときは,適当な言葉を出発地点として,辞書をはじめとする文献にあたるのもよいでしょう.以前に「くそなぞなぞの作問のためのヒント:参考図書の活用法を中心に - はむ吉(のんびり)の練習ノート」でも一部に言及しましたが,たとえば以下のような文献が使えるでしょう.

国語辞書から原案を得る

気になった言葉を国語辞書で調べると,その語釈や用例を通じて,関連する別の語句に接することで,連想を広げることができます.また,国語辞書の適当なページを開き,出てきた語句から出発するという方法もあります.

無料で簡単に利用できるものとしては,中型国語辞書である,『デジタル大辞泉』があります.これは,goo 辞書コトバンクといったプラットフォームを通じて利用できます.ただ,このような中型国語辞書は,一般語から百科語(専門用語,地名・人名といった固有名詞など)や古語などまで幅広く立項するという特徴があります.ただ,後述のように,あまりにマイナーな百科語や古語は,くそなぞなぞの難度をいたずらに上げるので,注意が必要です.また,時に語釈が淡白なこともあり,連想を広げるのが難しいかもしれません.

そのようなときには,小型国語辞書を利用するのもよいでしょう.紙媒体や電子辞書専用機のほか,最近では iOS 用「辞書」(物書堂)や,各プラットフォーム用 DONGRIイースト)など,スマートフォン用のアプリケーションにおけるコンテンツとしても利用できるものもあり,ますます使いやすくなっています.たとえば,私は『新明解国語辞典』第八版,『三省堂国語辞典』第七版,および『現代国語例解辞典』第五版といった小型国語辞書の電子版を,iPhone 上で利用し,くそなぞなぞの作成にも役立てています.掲載されているのは,現代における一般語が中心ですが,そのぶん解説は丁寧です.用法や類語といった詳細にまで言及するものも少なくありません.この性質は,後述するように,問題文作成にあたって必要な換言にも役立ちます.

なお,語釈の長さや語り口をはじめ,説明のスタイルや編集の方針は辞書によってまちまちであり,ご自身の用途や好みに合ったものをいくつか選択する必要があります*3.その手掛かりとなる書籍として,『使える! 国語辞書』があります.国語辞書の種類(大型,中型,小型など)や,前掲の三冊を含む,各辞書ごとの特徴をはじめとする,国語辞書を活用するうえで欠かせない基礎知識を凝縮した一冊です.日本語教師向けとありますが,もちろん私を含めた門外漢にも,国語辞書を片手により豊かな言語生活*4を送るうえで役立ちます.

類語辞書,連語辞書から原案を得る

「励む」から「励行する」「努力する」「骨を折る」など,意味の似た言葉を探すための辞書を類語辞書といいます.また,「辞書」と言えば「引く」のように,言葉と言葉の間の自然な結びつきを連語 (collocation) といい,これを調べるための辞書を連語辞書といいます.これらも,気になった言葉から連想を広げるのに活用できます.

無料でただちに利用できる類語辞書としては,goo 辞書に搭載の,『使い方の分かる類語例解辞典』(書籍版に基づく)があります.また,無償のデータベースである,WordNet もよいでしょう.たとえば WordNet EPWINGEBWin4 などの EPWING ビューアと組み合わせて利用すると,日本語・英語の WordNet を手軽に利用できます.図 1 には,EBWin4 で日本語 WordNet を利用している様子を示しています.「励む」というキーワードを入力することで,その意味に加えて類語・関連語の一覧が表示されていることが分かります.

f:id:hamukichi_nbr:20201128213016p:plain
図 1:EBWin4 を利用し,日本語 WordNet 1.1 を検索している様子.

また,連語辞書としては,紙媒体となりますが,『てにをは辞典』が手ごろでしょう.くそなぞなぞに限らず,日ごろの文書作成に活用できる,おすすめの一冊です.表紙はかわいらしいのですが,なかなかあなどれません.また,その関連書として,『てにをは連想表現辞典』というものもあります.これは,語句の実例等に関する記述が充実した,類語辞書と連語辞書の中間的性質を持つ辞書です.

てにをは辞典

てにをは辞典

  • 発売日: 2010/08/24
  • メディア: 単行本
てにをは連想表現辞典

てにをは連想表現辞典

  • 発売日: 2015/08/27
  • メディア: 単行本

過去のなぞなぞから原案を得る

故きを温ねて新しきを知るという言葉があるように,過去のなぞなぞを振り返ることも,インスピレーションを得るのに役立つかもしれません.たとえば,以前一覧に挙げたように,Kuso Nazonazo Contest を皮切りに,これまでにさまざまなくそなぞなぞコンテストが開催されました.これらの過去問を振り返ることで,くそなぞなぞに特有の換言といった技術を学ぶことができます.もちろん,自分がこれまでに出題したくそなぞなぞを見直してみるのも一考に値するでしょう.これらは,以前に出題されたものとの重複を避けるという面でも有用です.

なぞなぞに関する成書も,もちろん参考になります.たとえば,私はときどき『中世なぞなぞ集』という本を繙いています.本邦におけるなぞなぞの歴史は古く,中世では貴族の間で盛んに行われました.この本では,そのようななぞなぞを集約し,丁寧な説明を加えています.今でいうところの古語も多く,技巧的なものも多いという面はありますが,くそなぞなぞづくりに活用できる一冊だと思います.また,最近,『日本語ことばあそびの歴史』という本が刊行されました.これは,その名の通り,日本語における言葉遊びの歴史を,古くは万葉集の例まで引き合いに出して概説するもので,なぞなぞについても多くの紙面が割かれています.このような書物を手掛かりに,古から続くなぞなぞの流れに思いを馳せることでも,何か着想を得られるかもしれません.

中世なぞなぞ集 (岩波文庫 黄 130-1)

中世なぞなぞ集 (岩波文庫 黄 130-1)

  • 発売日: 1985/05/16
  • メディア: 文庫
日本語 ことばあそびの歴史 (河出文庫)

日本語 ことばあそびの歴史 (河出文庫)

  • 作者:今野真二
  • 発売日: 2020/11/05
  • メディア: 文庫

特定分野の文献から原案を得る

何でもいいから語句を思い浮かべようとしても,なかなか難しいかもしれません.そのような場合には,「日本史上の事件」「化学用語」など,あえて分野を限定した方が,語句を探しやすいことがあります.たとえば,Wikipedia には,「wikipedia:ja:日本史の出来事一覧」のように,各種の一覧記事があり,これを利用できます.また,一部の電子辞書専用機では,「分野別小事典」という形で,中型国語辞書(『デジタル大辞泉』など)のコンテンツを各専門分野ごとに分けて検索できる機能もあるので,これも有用でしょう.加えて,各科目に関する高校範囲までの教科書や参考書をお持ちであれば,それを繙くのもよいでしょう.なお,高校範囲としているのは,あまりに難解な語を用いると,誰も解けなくなるおそれがあるので,ある程度知られているであろう語句を用いるべきであるとの考えからです.実際に,くそなぞなぞ Beginner Contest などの各種コンテストでも,このような配慮はなされているようです.

原案から解の構成要素を得る

このようにして,くそなぞなぞに使えそうな語句が得られたとします.ここから,くそなぞなぞの解,あるいはその構成要素を得るには,大きく分けて次の二つの方法があります.

トップダウン方式:解を構成要素に分解する

トップダウン方式は,原案となる語句をくそなぞなぞの解そのものとみなし,それをぎなた読みの要領で分割することで,解の構成要素を得るというものです.たとえば,「前夜祭」(ぜんやさい)という語句を思いついたときに,これを解とみなし,「全」(ぜん)と「野菜」(やさい)という構成要素に分割するようなものです.くそなぞなぞで用いる語句はせいぜい十数音であり,その程度では分割数はあまり大きくならないため,分割を全部試すのも不可能ではないでしょう.ただ,うまく分割できるような語句を探すのは,なかなか骨が折れるかもしれません.

ボトムアップ方式:解の構成要素から解を探す

もう一つの方式として,ボトムアップ方式があります.これは,原案の語句を解の構成要素とみなし,それを部分文字列として含む解を探すというものです.たとえば,「リス」を解の構成要素として,それを含む「アマリリス」を解とするというようなものです.これを効率よく行う方法としては,電子版の辞書を使うといいでしょう.たとえば,goo 辞書では,中型国語辞書『デジタル大辞泉』に対し,「~で始まる」「~で終わる」「~を見出しに含む」といった部分一致検索ができるため,これを利用すると上記の探索が行えます.ただ,上述のように,中型国語辞書では専門語や古語も立項されているため,競技くそなぞなぞの作問には使いにくい語句を引き当てることも多くなります.そのような場合には,『新明解国語辞典』などの小型国語辞書の電子版(専用機またはアプリケーションのコンテンツなど)で,同様の検索をするとよいでしょう.ボトムアップ方式は,探索に時間を要するものの,トップダウン方式よりは効率的かもしれません.

解の構成要素を換言して問題文を得る

得られた解とその構成要素から,問題文を得るには,適切な換言が必要です.たとえば,astronaut という解から「明日」「取ろう」「ノート」という解の構成要素を得たとします.これらをただ連結して,不自然にならないように語句を補うと,「明日ノートを取ろうとするものってな~んだ?」となります.これでは,ただ並び替えるだけで答えが出てしまい,とりわけ,それなりの難度がある問題を作ろうとしている場合には,よろしくありません.そこで,解の構成要素を,適切なキーワードに言い換える必要があります.上述の例では,「明日」を「翌日」,「取ろう」を「書きつけよう」,「ノート」を「帳面」という類語に置き換えると,「翌日帳面に書きつけようとするものってな~んだ?」となります.「もの」では,解の候補を絞れずあまりに解きにくいので,「職業」に改めるとともに,より自然な文章になるように書き換えると,ようやく,以下のような問題文が得られます.

帳面に書きつけるのを翌日に回す職業ってな~んだ?

類語以外にも,換言の方法としてはさまざまなものがあります.具体的には,以下に示すように,「くそなぞなぞにおける言い換えの様式に応じた系統的求解法:目指せプラス一問 - はむ吉(のんびり)の練習ノート」で示したキーワードから解の構成要素への換言法を,逆に用いるとよいでしょう.前掲の記事と一部重複しますが,ここでも簡単にまとめます.ただ,先述のように,あまりに難解な語を用いないように,注意が必要です.また,以下に示すもの以外にも,言い換えを試み,新機軸のくそなぞなぞを目指すのもよいでしょう.

類語や上位概念への換言

競技で用いるくそなぞなぞでは,よく利用される換言法です.ここで,上位概念とは,たとえは「傘」や「雨合羽」に対する「雨具」のように,いくつかの概念を包括して表す語のことを指します.類語や上位概念は,前掲の類語辞書を用いると得ることができます.ただ,大型の類語辞書を用いた場合などには,難解な語を引き当てる場合もあります.小型国語辞書に日常語として立項があるか,あるいは,(もし可能であれば)高校までの範囲で学ぶか確かめるなど,難度を抑えるように調整しましょう.

ただ,語句によっては,しっくりとくる類語や関連語が見当たらないことがあります.そのような場合には,小型国語辞書の記述を参考に,その語を適当なフレーズに置き換えるのもよいでしょう.もちろん,語釈をただ引き写しにするのではなく,できるならば複数の辞書を見比べつつ,自分なりに咀嚼したうえで換言すべきなのは言うまでもありません.

同音異義語への換言

「怪奇」「会期」「回帰」のように,表記は異なるが読み方が異なる語を同音異義語と呼びます.これは,国語辞書などの見出し語を読みで検索することで,容易に得られます.PC やスマートフォンなどのかな漢字変換でも探せますが,難解な語が候補に入ることがあるので,要注意です.手軽な方法でありますが,その分気づかれやすい換言ではあります.難度を上げるには,ほかの換言法と「重ね掛け」したほうがいいかもしれません.

同形異音語への換言

「乳母」は「うば」とも「めのと」とも読めるように,表記は同じだが読みが異なる語を同形異音語と呼びます.これは,電子版の国語辞書を漢字で検索すると見つかります.ただ,同音異義語ほどは多くないため,必ずしも使いやすい方法とはいえません.利用できればラッキー程度に思うべきでしょう.

外国語への換言

たいていは,和英辞書を用いて英語に換言することになります.無料のものとしては,goo 辞書上の『プログレッシブ和英中辞典』第 4 版などがあります.ただ,これを用いて得られた英単語についても,(主に学習向けの小型)英和辞書で難度の確認をしておくべきでしょう.たとえば,同じく goo 辞書の『プログレッシブ英和中辞典』第 5 版の記事には,各見出し語の大まかなレベルが記載されているので,これを利用するとよいでしょう.また,カタカナ語として定着しているものであれば,仏語,伊語,中国語のように,ほかの言語への換言もできるでしょう.そのような語は,和仏,和伊,日中辞書といった二か国語辞書ではなく,むしろ日本語の国語辞書や類語辞書に当たるほうが探しやすいと思います.

演算を用いた換言

これは,四則演算や累乗,平方根といった,種々の演算を換言に利用するというものです.たとえば,次のなぞなぞ*5を解いてみましょう.

プリンセス プリンセスがいる城ってな~んだ?

「プリンセス プリンセス」と「城」がキーワードです.ここで,「城」は枚挙にいとまがないため,「プリンセス プリンセス」から換言を行います*6.あくまでも機械的に,類語に置き換えると「姫 姫」となります.これは「姫」の二乗(じじょう)とも解釈できます.すなわち,解は「姫路城」であり,これは残りのキーワードであった「城」も満たします.「足す」「引く」「掛ける」「割る」,あるいは「~乗」といった特定の語句が必要となりますが,「ひとひねり」に最適な換言法だと思います.

度量衡の変換を用いた換言

1 尺 ≈ 30.3 cm のように,度量衡の変換を,換言に利用するという方法もあります.競技くそなぞなぞの過去問を一瞥する限りでは,あまり見られないユニークな方法かもしれません.ただ,換算の仕方によっては,不自然な実数値や概数を問題文に出さざるを得なくなるため,見破られやすいという難点はあります.

字面を用いた換言

言葉の意味ではなく,字面を問題とする換言も,そこそこ有用です.現代のなぞなぞでよく知られているものとしては,「たぬき」の「たからくじ」は「からくじ」のように,文字を抜いたり付け加えたりするものがあります.思いついた語句を,そのままでは解やその構成要素に使いづらいときには,これを用いて微調整することができます.ただ,「取る」「抜く」あるいは「付ける」「加える」のように,特有のフレーズが現れやすいので,看破されやすいという難点はあります.ほかには,前述の「姫路城」(姫二乗)や,「紀紀紀」から「三畳紀」(三乗紀)を答えさせるもののように,前述の「演算を用いた換言」と組み合わせるという方法もあります.「むべ山風を嵐といふらむ」で有名な字謎も,換言に利用できるかもしれません.このような換言を系統的に行うのに役立つ成書は,今のところ見つけられていませんが,先述のように,過去のなぞなぞを参考にするのがよいでしょう.

似た響きをもつ語句への換言

この方法は,競技以前のくそなぞなぞでも多用されてきたものです.押韻 (rhyming) 辞書が役立つでしょう.オンラインで利用できるものとしては,日本語では「韻検索-作詞支援ツール/単語データベース(韻検索/母音検索/連想表示) 56万語を収録!! - ブラウザで使えるWeb便利ツール」や「韻を踏む言葉の検索サイト【韻ノート】| 韻の辞書と解説/保存が可能」,英語では「Rhymer」などがあります.ただ,これはほかの換言法とは異なり,理詰めだけではなく,語感というあいまいなものに頼る必要があるという性質があります.あまり無理な換言をすると,とりわけ競技では使いにくいので注意が必要です.

慣用句や連語を用いた換言

慣用句や,上述の連語のうち,半ば決まりきった言い回しとして用いられるものも,くそなぞなぞでの言い換えに使えるかもしれません*7 .たとえば,次のくそなぞなぞを考えてみましょう.

損をする食い物ってな~んだ?

「食い物」に該当するものはごまんとありますし,「損」を類語に置き換えてもうまくいきません.ここで,「損をする」ことを意味する慣用句として「割を食う」があり,これは問題文の条件に合います.よって,答えは「割」です.一般のなぞなぞでは時々見られる手法ですが,くそなぞなぞの過去問を見る限りでは,そう多用されている換言ではないようです.ただ,鍵となっている慣用句や確立した連語を知らなければ,解くのが途端に困難になるおそれはあります.一般向けの小型国語辞書に掲載されているものにとどめておいたほうがいいかもしれません.

おわりに

本記事では,私がくそなぞなぞの作成にあたり経ている主なプロセスを,なんとか言語化してみました.ただ,ここに含められていないが,無意識に行っている作業もあるかもしれません.また,作ったくそなぞなぞの validation や,難度に基づく点数の設定についても,考える必要があるでしょう.これらについては,可能であれば,今後の記事等で触れたいと思います.いろいろと書き連ねましたが,お読みいただき,ありがとうございます.

関連する記事

これまでに書いたくそなぞなぞ関連記事(各コンテストの解説や,解答・作問の方法論など)は,以下にまとめています.
hamukichi.hatenablog.jp

また,辞書となぞなぞの関係については,以下のような記事も書いています.
hamukichi.hatenablog.jp

*1:問題演習や各種技法の習得により実力を付ける行為を意味する,本邦の競技プログラミングクラスタにおける俗語です.

*2:なお,くそなぞなぞの「解」「解の構成要素」については,「くそなぞなぞにおける言い換えの様式に応じた系統的求解法:目指せプラス一問 - はむ吉(のんびり)の練習ノート」および後述の例を参照してください.

*3:とりあえず現行の一般向け国語辞典をすべて買ってから引き比べるという方法もあります.私は,気がつけばそうなっていました.

*4:もちろん,くそなぞなぞに限りません.

*5:ここでは有名なバンドの名前が使われていますが,あくまでもなぞなぞの例に用いているだけで,他意はありません.

*6:一般に,「△ってな〜んだ」の△に該当するものをはじめから全探索するのは悪手です.ただし,ほかのキーワードの換言がうまくいかない場合や,△の要素数が有限のときには,やむなく△の全探索を行うこともあります.

*7:私が出題したくそなぞなぞに対し,寄せていただいた解答,およびそれに対するコメントを受けて,着想を得ました.