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

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

くそなぞなぞにおける言い換えの様式に応じた系統的求解法:目指せプラス一問

くそなぞなぞは元来ある種のレクリエーションとして親しまれてきましたが,近年ではくそなぞなぞコンテストが開催されるなど,ある種の競技として楽しむ向きがあります.本記事では,このような競技くそなぞなぞという観点から,くそなぞなぞの問題で用いられやすい言い換えを類型化し,辞典を中心とする各種の資料も参考にしつつ系統的に解くための指針を示します.

更新履歴

  • 2020 年 6 月 22 日:改題.「くそなぞなぞにおける言い換えのパターン」に例を追加.その他,細部の修正.
  • 2020 年 6 月 21 日:初版.

はじめに

くそなぞなぞは,当初は一部の競技プログラマーの間でのレクリエーションとして楽しまれていましたが,いまはそれだけではなく,ある種の競技としての側面を帯びるようになりました.このような,いわゆる競技くそなぞなぞには,その嚆矢となった Kuso Nazonazo Contest から数えると,すでに三年半あまりの歴史があります.最近は,くそなぞなぞ Grand Contestくそなぞなぞ Beginner Contest (く BC)を中心とする, レーティングや解説(放送)の付いたコンテストも登場し,好評を博しています.本来「お遊び」だったものそれ自体に,「競技」として取り組むことには,賛否両論があるようですが,少なくともくそなぞなぞの一つの楽しみ方として,広まりつつあるとはいえます.

くそなぞなぞコンテストへの取り組み方は人それぞれでしょうが,プログラミングコンテストと同様に,一問でも多く解き,一点でも多く得点を重ねることを目指すのも一つのやり方でしょう*1.こういった観点に立った場合,言語感覚や,勘,直感,ひらめきといったものだけに頼るのは,心もとありません.もう少し,泥臭いが確実な方法も身に着けておくとよいでしょう.そこで,本記事では,種々のウェブサイト,データベース,参考図書も駆使しつつ*2,くそなぞなぞを換言のパターンに基づき類別し,これらを系統的に解くための指針をいくつか紹介します.コンテストの時間には限りがあることもあり,以下の方法を使ったところで,必ず全問解けるとは決して保証できません.一連の方法を愚直に実行すると,夜が明けてしまうことでしょう.なにより,このような機械的手法は,無粋です.それでも,あと一問どうしても解きたいといったときに,もしかすると威力を発揮するかもしれません.

くそなぞなぞにおける言い換えのパターン

くそなぞなぞでは,問題文中のキーワード*3解の構成要素へ適切に換言し,これらの構成要素のいくつかを連結することで,を得るのがふつうです.ここで,「キーワード」「解の構成要素」「解」という概念を説明するために,以下のくそなぞなぞを取り上げます.

三つある橋梁ってな~んだ?

ここでは,キーワードは「三つ」「橋梁」です.「ある」は問題文を自然にするために挿入された語であり,「ってな~んだ?」はくそなぞなぞの問題文に通例として含むので,キーワードには含めません.本問を解くには,これらを適切に換言する必要があります.まず,「三つ」は「三」(さん)という類義語に置換でき,さらにこれは同音異義語の「桟」(さん)に通じます.また,「橋梁」は,類義語の「橋」(はし)に換言できます.これらの「桟」「橋」が,解の構成要素です.両者を連結することで,である「桟橋」が得られます.

さらなる理解のために,もう一つくそなぞなぞを例示しましょう.

出世魚を洗って作るパンってな~んだ?

ここでは,キーワードは「出世魚」「洗う」「パン」です.「作る」は上述の理由で,キーワードではなさそうです.いま,「パン」に該当するものは枚挙にいとまがないため,「出世魚」「洗う」から考えることにします.すると,前者の関連語(下位概念)として「ブリ」,「洗う」の英訳として wash が挙げられます.これらの解の構成要素を連結すると,「ブリオッシュ」というが得られます.これは残りのキーワードである「パン」にも該当するため,解として正当です.この「パン」のように,キーワードの中には,直接言い換えの対象とするのではなく,残りのキーワードから得られた解(の構成要素)が正当であるか確かめるのに使うべきものもあります.この見極め方については,後述します.

これらの例からもわかるように,一連の過程で,最も困難なのは,キーワードから解の構成要素への換言でしょう.そこで,換言のパターンをあらかじめ知っておくのが有効であるといえます.すべてのパターンを列挙することはできませんが,頻出のものとしては,以下が挙げられます.

キーワードをそのまま用いる

キーワードが,そのまま解の構成要素になっているというパターンです.たとえば,「オートマティックな公園ってな~んだ?」(答え:児童公園)というくそなぞなぞにおける,「公園」です*4.最も単純ですが,それだけに見落とされやすいので,注意が必要です.

キーワードを類義語に置き換える

キーワードの類義語 (synonym) が,解の構成要素になっているパターンです.くそなぞなぞでは,特に頻出であるといえます.「自習」と「独習」,「歩く」と「歩行」など,類義語は多数存在します.

キーワードを関連語(下位概念)に置き換える

キーワードと類義語の関係にあるとは言えないものの,密接な関連がある語が解の構成要素になっているというパターンです.多くは,下位概念にあたる語に置き換えることになります.たとえば,「肉」に対する「マトン」「さくら肉」「魚肉」,「腕時計」に対する「ロレックス」「オメガ」といったものです.後述のように,下位概念は枚挙にいとまがないことがふつうであり,探索はときに困難となります.

キーワードを同音異義語に置き換える

キーワードと読みは同じだが,意味や表記の異なる語が解の構成要素になっているというものです.たとえば,「会場」と「海上」,「波」と「並み」があります.

キーワードを同形異音語に置き換える

同音異義語とは逆に,キーワードと表記は同じだが,読みが異なる語が解の構成要素になっているというものです.たとえば,「乳母」は「うば」とも「めのと」とも読めます.同音異義語ほどは多くないようです.

キーワードを外国語に/から置き換える

キーワードを,別の言語で書き換える(あるいは別の言語から日本語に置き換える)と解の構成要素になるというものです.通常は「数学」から math のように,英語が問題になりますが,カタカナ語として通用しているものであれば,フランス語やイタリア語など,ほかの言語の語句が出題されることもあります.

キーワードを似た響きをもつ語句に置き換える

同音異義語と似ていますが,読みが正確には一致しないのが特徴です.たとえば,「口頭」(こうとう)と「行動」(こうどう),「スイッチ」と「不一致」などがあります.後述のように,系統的な探索が難しいのが特徴です.くそなぞなぞにおいては,競技以外でも多用される換言です.

字謎

言葉の意味ではなく,字面の操作を問題とするものです.上述の言い換えとは性質が大きく異なるため,見落としがちです.有名な「1 + 1 =」が「田」につながるとか,「たぬき」の「たからばこ」は「からばこ」だとかというものも,字謎に分類できそうです.

言い換えのパターンに応じた解の探索方法

それでは,キーワードから解の構成要素への言い換えを,直感やひらめきだけに頼らず行うにはどうすればいいのでしょうか.残念ながら,問題文のキーワードを見ただけで,それがどのパターンで言い換えられるべきなのかを知ることは,一部の例外を除いて困難です.そのため,頻出パターンのそれぞれを一つ一つ試すことになります.ただ,各パターンに対しては,各種の参考資料を用いて,解の構成要素,あるいは解の一部となりうる語句を系統的に探索する方法が存在します.以下では,それについて述べます.

そのまま用いる場合:電子版国語辞典で部分一致検索を行う

あるキーワードをそのまま含む語句を調べるには,電子版*5の辞典に対し,部分一致検索を行うとよいでしょう.たとえば,goo 辞書を用いると,入力値で始まる/で終わる/を見出しに含む語句を,中型国語辞典『デジタル大辞泉』の中から探すことができます.ただし,このような中型国語辞典は,地名や人名といったいわゆる百科項目も立項するため,キーワードによっては膨大な数の候補が表示され,収拾がつかないことがあります.そのような場合には,『明鏡国語辞典』,『新明解国語辞典』や『三省堂国語辞典』といった小型国語辞典を代わりに用いるとよいでしょう.有償になりますが,電子辞書専用機にこれらの辞典が搭載されていることがあるほか,iOS 用アプリ「辞書」(物書堂)や各プラットフォーム用アプリ「DONGRI」(イースト)といったソフトウェアの一コンテンツとして利用可能な場合もあります.

類義語・関連語(下位概念)に置き換える場合:類語辞典を引く

餅は餅屋,類語は類語辞典です.キーワードの類語や関連語(下位概念)にあたる語句を調べるには,類語辞典 (thesaurus) を用いるとよいでしょう.ここでは,日本語のものを中心に説明します.Web で利用できる無償のものとしては,類語辞書 - goo辞書 があります.これは,定評のある『使い方の分かる類語例解辞典』をもとにしたもので,普段の文章作成にも役立ちます.また,無償のデータベースとしては,WordNet があります.日本語・英語の WordNet は,たとえば WordNet EPWINGEBWin4 などの EPWING ビューアで利用することができます.

ただ,これらの Web 版類語辞典だけでは,関連語の掲載が少ない,あるいは収録語数が少ないと考えられるかもしれません.関連語を引くだけなら,キーワードを Google 検索するという方法もありますが,やはり成書の類語辞典の助けを借りたいものです.電子辞書専用機や,上述のアプリのコンテンツとしては,関連語もある程度立項する『角川類語新辞典』や,本邦最大規模の『日本語シソーラス:類語検索辞典』といったものが利用可能です.もちろん,それぞれの紙版でも構いません.

あるいは,イラストから引けるタイプの辞典を用いるという方法もあります.たとえば,私は『ワーズ・ワード』を使用しています.ただ,この辞典は現在品切れです.まだ新刊書店で手に入るものとしては,『オールカラー英語百科大図典』などがあります.

オールカラー 英語百科大図典

オールカラー 英語百科大図典

  • 発売日: 2006/03/24
  • メディア: 大型本

これらの方法で,どうしてもそれらしい類義語や関連語が見つからない場合は,電子版の国語辞典をキーワードで全文検索するという最終手段もあります.当然ながら,膨大な数の候補が得られることも少なくありません.たとえば,iOS 版の『大辞泉』アプリには,そのような全文検索機能があります.あるいは,精度は落ちますが,コトバンクでは,Google 検索が内部的に使用されているため,ある程度の全文検索が可能です.

キーワードを同音異義語に置き換える:国語辞典を読みで引く

この場合は,キーワードの読みで,国語辞典を引くとよいでしょう.電子版でも,紙版でも構いません.辞書の選択といった詳細は,上述の「そのまま用いる場合」と同様です.より簡単には,PC やスマートフォンかな漢字変換システムにかけるという方法もあります.ただ,この場合,地名や誤表記など,必ずしも広く一般には通用しないものも含まれうるという問題はあります.

キーワードを同形異音語に置き換える:電子版国語辞典をそのままの表記で引く

この場合は,キーワードをそのままの表記(漢字ならば漢字のまま)で,電子版の国語辞典を引くとよいでしょう.ただし,「地球」を「テラ」と読むような,いわゆる当て字には,必ずしも対応していないかもしれません.その場合には,Google 検索なども併用するとよいでしょう.あるいは,『当て字・当て読み漢字表現辞典』のような,専用の辞典を用いることもできます.この辞典は,私も持っており,時々繙いては面白がっています.

キーワードを外国語に/から置き換える:外国語辞典を引く

この場合は,当然ながら外国語辞典を引くことになります.英語なら,英和/和英辞典などです.Web で使える無料のものとしては,goo辞書 英和辞典・和英辞典 があります.また,先述の WordNet も,ある程度この用途で使えます.ただ,まれに理系などの専門語がキーワードに用いられることもあります.その場合には,英辞郎 on the WEB - 英和辞典・和英辞典 を使うと見つかるかもしれません.あるいは,電子辞書専用機,あるいはアプリ版辞書のコンテンツとして,研究社『新英和大辞典』『新和英大辞典』,小学館ランダムハウス英和大辞典』といった大型辞典や,小倉書店『自然科学系英和大辞典』『自然科学系和英大辞典』などといった専門語辞典を利用できることがあるため,これらを用いるというのも手です.

キーワードを似た響きをもつ語句に置き換える:押韻辞典を引くか,国語辞典をパターン検索する

このパターンについては,結局自らの言語感覚に頼るほかなく,まずはキーワードをとにかく声に出したり紙に書いたりして,手掛かりをつかむ必要があります.ただ,もしかすると,押韻辞典 (rhyming dictionary) が役に立つかもしれません.日本語では http://rhyme-db.com/,英語では Rhymer などが利用可能です.たとえば,先に述べた「すいっち」を前者で引くと,「不一致」が見つかります.あるいは,iOS 「辞書」アプリ(物書堂)のように,柔軟なパターン検索ができるシステムを用いて,国語辞典を引くという方法もあります.

字謎:特定の言い回しに注意する

字謎は,そうだと気づいてしまえば,あとは紙にでもキーワードを書けば解きやすいという性質があります.字謎を効率的に見つける系統的方法は見いだせていませんが,たとえば,「~を取る」「~を消す」「~を抜く」「~を入れる」「~をつける」「~を加える」あるいはその活用形といった,字画の追加・削除を示唆する言葉があったり,問題文の一部が不自然にかな書きされていたりすれば,字謎を疑ってみるとよいかもしれません.

探索および解答における注意点

ここまで,各パターンに応じた解の探索方法について述べました.以下では,これらの方法を用いる際や,得られた答えを提出する際に注意すべき事項について記します.

なるべく具体的な語について全探索を行う

上記の方法に従えば,多くのパターンで,キーワードを辞書で引き,得られた候補を一つ一つ試すことになります.ただ,このような全探索は,なるべく具体的な言葉,すなわち候補がなるべく少なくなるものについて行うべきです.たとえば,類義語への言い換えを見てみましょう.「考える」であれば,あまりに抽象的で,「検討する」「思考する」「熟慮する」など,ごまんと類語があります.しかし,「化粧」であれば,広く用いられる類語は,「お作り」「美容」ぐらいにとどまります*6.具体的なキーワードを全探索にもちこみ,残りのキーワードは,解の正当性を確かめるのに使うとよいでしょう.

「○である△ってな~んだ」に対し△を全探索するのは悪手

これは,前節と関連する注意事項です.一般に,くそなぞなぞは 「○である△ってな~んだ」という形をとりますが,△にあるキーワードから全探索を始めるのは,それ以外の方法ではどうしても答えに至れそうにないときを除いては,たいてい得策ではありません.これは,△が「動物」や「建物」など,ごく一般的・基本的な語であり,類義語・関連語を中心とする言い換えの候補が無数にあることが多いためです.やはり△は最終的に解の正当性を確かめる程度の使い方にとどめ,○の部分で全探索などの処理を行うべきでしょう.ただし,△が「□都/道/府/県の市区町村」や「ドイツの州」のように,候補の数が数十個程度にとどまる場合は,その限りではありません.△の全探索から攻めるのも,この場合に限っては有効です.

なるべく換言を明示する形で解答する

一連の換言を行い,くそなぞなぞの解がめでたく得られたとしても,どのような形で解答すべきか悩むケースがあります.たとえば,以下のくそなぞなぞを考えましょう.

交渉する哺乳類ってな~んだ?

上述の方針に従うと,以下のような解き方になります.まず,「哺乳類」を全探索するのは無謀なので,「交渉する」を置き換えます.これは,英語の negotiation に相当し,これはカタカナ語の「ネゴシエーション」としても受け入れられています.そして,この語は短く「ネゴ」と表現されることもあります.これは「ネコ」と響きが似ており,しかも「ネコ」は「哺乳類」です.どうやら,これが答えのようです.

しかし,ここで,ある種の曖昧性が生じます.「ネゴ」と「ネコ」,どちらを答えとしてジャッジに提出すればよいのでしょうか.大まかには,言い換えを行ったことがより分かりやすくなるような表記が,想定解となりやすいのです.ここでは,「ネコ」とすると「哺乳類」を適当に挙げたようにも見えますが,「ネゴ」であればしっかりと言い換えを行ったことが見て取れます.よって,答えは「ネゴ」とすべきです.

ただ,この基準は絶対的なものではありません.先の例では,場合によっては,「ネコ」でも答えとして認められることもあります.このように,表記がいくつか考えられる場合には,AC を得るまですべて試すというのも一つの方法です.ただし,提出しすぎて,ジャッジに迷惑をかけないようにしましょう.場合によっては,提出に制限がかかることもあります.

おわりに

ここまで,くそなぞなぞをさまざまな参考資料を駆使して,系統的に解く方法を簡単に述べました.ただ,競技くそなぞなぞでは日夜新機軸の問題が作られており,すでにこれらの指針では対応できない問題も存在することでしょう.また,繰り返しになりますが,この機械的方法は無粋であるという向きもあり,使いどころには注意が必要です.それでも,くそなぞなぞを解くための基本的方針としては,一定の意味があるかもしれません.本記事が,くそなぞなぞ力の向上に役立つだけではなく,辞書などの参考資料に親しむきっかけになれば幸いです.

*1:無論,この記事はそのような取り組み方を強制するものではありません.

*2:競技プログラミングでも,規則で認められている限り,分野こそ違えど,こういったものを使うことはあるはずです.

*3:「キーフレーズ」とすべき場合もあるでしょうが,ここでは「キーワード」に統一します.

*4:この例は,後述の,下位概念への換言ともみなせます.

*5:本記事では,電子辞書専用機,ウェブサービス,アプリケーションなどを総称して「電子版」とします.

*6:ただし,関連語(下位概念)はその限りではありません.