部分的に黒い猫と赤い魚を食べた猫(多義文の話)

この記事は 数学デー Advent Calendar 2019 - Adventar の8日目の記事です。

あらすじ

9月。

東京で仕事を見つけた僕は、上京にあたって密かに楽しみにしているものがあった。

そう。数学デーである。


上京して最初の水曜日。仕事を少し早めに離脱した僕は、わくわくしながら神田駅へ向かった。

どんな話が広がっているんだろう。仲良くなれるかな。どれくらい知っている人がいるのかな。

いろいろな思いを胸に秘めながら、株式会社ソノリテのインターホンを押した。

そこに見えたのは、大きなホワイトボードシートに乱れ書きされた数式やグラフのようなものと、それを取り囲む人たち。
Twitterで見たことある光景そのままが目の前に広がっていた。

知っている方に軽く挨拶を済ませ、どんな話題が広がっていたのかを観察する。

「今は、頭が赤い魚を食べた猫の話をしていたんですよ」

僕「ああ、聞いたことあります。いろんな意味にとれちゃうってやつ」

「そうですね」

「ん…?」

皆の視線が僕が来ていたTシャツに集まった。

猫のTシャツだ

f:id:canaan1008:20191206181051j:plain:w500

「ポケットに入っている猫ですね」「部分的に黒い猫だ」「猫が描かれたTシャツを着ている人…」

僕「え、え、」

僕の胸元を見ながら議論が突然白熱し、数分後にはホワイトボードにこのような文が書かれていた。

部分的に黒いポケットに入っている猫が描かれたTシャツを着ている人

数学デーってスゴイ、実際に行ってみてそう思った。

多義文

こんにちは。部分的に黒いポケットに入っている猫が描かれたTシャツを着ていた人です。

日本語、難しいですよね。
何が難しいって、文の意味が一通りに定まらないことがあるんです。
こういう文は、多義文と言ったりするそうです。

例を見てみましょう。
先程の「部分的に黒い〜」もその例なのですが、いきなり複雑すぎるので今回は有名どころを取り扱おうと思います。
(以降、「部分的に黒いポケットに入っている猫が描かれたTシャツを着ている人」の話題は一切出てきません。余裕がある方はこの文章でも考えてみるとよいかもしれません。)

直感で大丈夫ですので、これから示す文章が表しているものを想像してみてください。可能であれば、絵を書いてみると面白いでしょう。黒色と赤色を用意してください。準備できましたか?それではいきます。

頭が赤い魚を食べた猫

どうですか?描けましたか?
それでは答え合わせです。答えは複数通りあります。皆様の絵はどれだったでしょうか?

f:id:canaan1008:20191206183835j:plain:w400
引用元:中村明裕 on Twitter: "頭が赤い魚を食べる猫(リメイク)… "

右側の謎の図はいったん無視して、左側の絵だけ見てみてください。
大半の方が1番目か2番目の絵になったんじゃないかな〜と思います。初見で3,4,5番目の絵を描く方はそうそういないと信じたい。あの文章を読んで真っ先に頭が魚を食べる様子は出てこないですよね…

でも、でもですよ。

5つのどの絵も、「頭が赤い魚を食べた猫」の絵であることは確かです。
それぞれの絵を見ながら、「頭が赤い魚を食べた猫」と言葉に出してみてください。「まあ、言われてみれば、確かに…」となるはずです。

同じ文章なのに、複数の意味がとれてしまう文章。これはまさに、多義文の一種です。

なぜ多義文になるのか

それでは、この文章はなぜ多義文になってしまうのでしょうか。

多義文といってもいろんなパターンがあるのですが、この文章は文節同士の関係が複数パターン取れてしまうことが原因です。

「頭が赤い魚を食べた猫」は「頭が/赤い/魚を/食べた/猫」と文節で分けることができますが、どの文節がどの文節にかかっているかが一意に定まりません。

  • 頭は何の頭? → 魚の頭? 猫の頭?
  • 赤いのは何? → 頭? 魚?

などなど、いろんな解釈ができてしまいます。

多義文は余計な誤解や解釈違いを与えてしまう可能性がありますから、一般的には多義でないほうが望ましいですね。

でも今回の文章に関しては多義になるべくして作られた文章だと思いますので、その多義っぷりを精一杯楽しんでいきましょう(?)。

数え上げたい

さてここで、数学者の自然な疑問として次のようなものが浮かんできます。

なんで5通りなの?
「頭が/赤い/魚を/食べた/猫」には5つの文節がありますが、何が何にかかって…という構造だけを見るともっと多くの解釈の可能性があっても良いと思います。
総数だけネタバレしちゃいますと、5文節の場合は14通りのかかり方が考えられます。つまり14通りの解釈ができる可能性もあったわけです。それなのに5通りの解釈しかできず、残りの9通りの解釈がボツになってしまったのはなぜなのでしょうか。

なんかややこしくなってしまいましたが、要するに知りたいのはこういうことです。

ある文が与えられたとき、その文の解釈を数え上げることはできるか。

※この場合の解釈は、文節同士のかかり方の違いによって区別されるものとする。

考えていきましょう。

トーナメントで考える

今回のような多義文の構造について考えるときは、トーナメント表を作ると見通しがよくなります。どういうことでしょうか。

まず考えたい文章を文節に区切り、それぞれの文節をトーナメントの出場者とします。今回の例ですと「頭が」「赤い」「魚を」「食べた」「猫」の5名ですね。
そして、この出場者たちは文のときと同じ順番で左から並んでいます。
f:id:canaan1008:20191206204818p:plain
ではこの5名が戦うとき、トーナメント表としてどのようなものが考えられるでしょう?

例えば、こんなトーナメントが考えられますね。
f:id:canaan1008:20191206205137p:plain
こういうシードだらけなトーナメントも考えられます。猫の強者感がすごい。
f:id:canaan1008:20191206205505p:plain
このようなトーナメント表の作り方の総数はしっかり計算することができて、カタラン数というもので表されます。
カタラン数の説明は割愛しますが、こういった場合の数の問題でよく顔を出します。詳しくはいつものサイト(高校数学の美しい物語)を見てください。
mathtrain.jp


2019年12月14日追記:僕も記事書きました。
canaan1008.hatenablog.com

カタラン数c_nを使って5人トーナメント表の総数を求めると、(添字が1つズレることに気をつけて)c_4=14となります。ほら、14がでてきた!14通りです。
f:id:canaan1008:20191206212852p:plain

そして、そしてですよ?
これらのトーナメント1つ1つが、文節のかかり方として考えうるすべてのパターンを表しています。実際に意味が通る文章になるかどうかはまた別の問題ですが、5文節で最大14通りの意味をもたせることができる、ということです。

トーナメントの読み方

で、トーナメントってどうやって読めばいいの?って話ですね。説明します。

たとえばそうですね、先ほどのこちらのトーナメントを見てみます。
f:id:canaan1008:20191206205137p:plain
このトーナメントは、このように読みます。

  1. 「頭が」「赤い」が繋がっている → (何かの)頭が赤い or 赤いのは(何かの)頭である
  2. 「魚を」「食べた」が繋がっている → (何かが)魚を食べた
  3. 「魚を/食べた」「猫」が繋がっている → 魚を食べたのは猫 or 猫が魚を食べた
  4. 「頭が/赤い」「(魚を/食べた)/猫」が繋がっている → 「頭が赤い」のは「魚を食べた猫」 or 「魚を食べた猫」の「頭が赤い」

つまり、このような状況を表しているわけです。
f:id:canaan1008:20191206204255p:plain
わかりますか?わかりませんね。説明がとっても難しいです。

見方を変えてみましょう。
このトーナメントを見ることで、「赤いのは何か?」「何が何を食べたのか?」などがわかるようになっています。

  • 頭がどうしたの? → 赤い
  • 魚をどうしたの? → 食べた
  • 魚を食べたのは? → 猫
  • で、頭が赤いのは? → (魚を食べた)

やっぱりややこしいですが、トーナメントの第一回戦から決勝戦にかけて指差しながら読み上げると意外とわかりやすかったりします。
「まず、頭が赤い。そして、魚を食べた。それで、魚を食べたのは、猫。で、頭が赤いのは、魚を食べた猫。」
といった具合です。
騙されたと思って声に出しながらトーナメントを見てみてください。分かった気になれます。

トーナメントの読み方 その2

もう1つ例を見てみます。先ほどの2つめのシードだらけのトーナメントは、このような様子を表していました。
f:id:canaan1008:20191207203806p:plain

  • 頭がどうしたの? → 赤い
  • 頭が赤いのは? → 魚
  • その(頭が赤い)魚をどうしたの? → 食べた
  • で、((頭が赤い)魚を)食べたのは? → 猫

こちらも丁寧に声出し確認していきましょう。
「まず頭が赤い頭が赤いのは、魚。その魚を食べた食べたのは、猫。」

トーナメントの読み方 その3

そろそろ慣れてきましたか?それではテストです。このトーナメントが表している様子を描いてみてください。
f:id:canaan1008:20191207205432p:plain
順番に見ていきます。

  • 赤いのは? → 魚
  • 赤い魚を? → 食べた
  • 何が食べた? → (何かの)(!)
  • で、頭が(赤い魚を)食べたのは? → 猫

ということで、答えはこちらです。
f:id:canaan1008:20191207205738p:plain

改めて見るとヤバいな
ヤバいですが、トーナメントを作ると解釈が1つ定まることを実感していただけたでしょうか。

さて、
ここまでは、トーナメントの読み方を紹介してきました。
ここからは、解釈ができるトーナメントの作り方について考えていきます。

解釈できる/できないトーナメント

"トーナメント"がゲシュタルト崩壊してきたかと思います。僕もです。

先ほど、5文節では最大で14通りの意味を持たせることができると言いましたが、猫の文では5種類しか解釈ができませんでした。どうしてでしょう???
だって5人トーナメントは14通りある、すなわち5文節のトーナメントは(形だけ見れば)14通り考えられるわけです。その中で解釈ができたりできなかったりするのは何によって決められているのでしょうか?わたし、気になります!

まず文節ごとの関係「だけ」を見る

そのポイントは、文節の関係を見ることにあります。「頭が/赤い/魚を/食べた/猫」という文に対して、2つの文節を取り出し、それを繋げて意味が通るかどうか全種類調べます。

例えば、そうですね。「頭が」と「赤い」を取り出してみましょう。

頭が赤い

うむ。意味が通りますね。何の頭なのかはサッパリわかりませんが、日本語として意味が通らないわけではありません。

次です。「赤い」と「猫」

赤い猫

これも大丈夫そうです。

次。「赤い」と「食べた」

赤い食べた

???????
意味がわかりません。

このように文脈を取り出す方法は10通りありますが、意味が通るものは

  • 頭が 赤い
  • 頭が 食べた
  • 頭が 猫
  • 赤い 魚を
  • 赤い 猫
  • 魚を 食べた
  • 食べた 猫

の7通りあり、意味が通らないものは

  • 頭が 魚を
  • 赤い 食べた
  • 魚を 猫

の3通りあります。「頭が食べた」など一部議論が必要なものがありますが、日本語の文法として意味が通るかどうかのみを見て考えています。頭が何かを食べることが無いとは言い切れないですもんね。

このように意味が通る文節同士のことをひとまず可連結であると呼ぶことにしましょう。
「頭が」と「赤い」は可連結。「赤い」と「食べた」は可連結でない。といった感じ。

可連結の文節をまとめて表にするとこうなります。左、上の順で読みます。
f:id:canaan1008:20191207220637p:plain:w400
この表がこれからとても重要になってきます。

文節の関係からトーナメントを作る

それではここから、次の方法でトーナメントを作り上げていきます。

トーナメントの作り方

  1. 隣り合っている、かつ、可連結の文節を結ぶことができる。
  2. AとBの2つの文節を結んだら、その2つをまとめてBの文節としてみなす。
  3. 1.と2.を繰り返し、最終的に1つの文節になったら成功。

ちょっと何言ってるかわからない(サンドウィッチマン富澤)。

例示は理解の試金石。実際に作ってみましょう。


まず、文節を順番通りに書きます。可連結かどうかをまとめた表も用意します。
f:id:canaan1008:20191207223643p:plain
準備ができたら、隣り合っていて、可連結の文節を探します。
そうですね、今回は「魚を」と「食べた」を結びましょう。この2つは隣り合っていて、表に○がついているので結ぶことができます。
f:id:canaan1008:20191207223651p:plain
そして、ここが1つめのポイントです。
2つの文節を結んだら、右側にある文節を下に進めます。今回は「食べた」ですね。
ちょうどトーナメント形式の試合のように動かしましょう。
f:id:canaan1008:20191207223659p:plain
動かしたところで、2つめのポイントです。
この状態を「頭が」「赤い」「食べた」「猫」の4つの文節が隣り合っているとみなします。

そうして、最初と同じように、隣り合っていて可連結な文節を探します。
「食べた」と「猫」にしましょうか。
f:id:canaan1008:20191207223707p:plain
右側にある文節を下に進めましょう。「猫」ですね。
f:id:canaan1008:20191207223716p:plain
そうすることで、「頭が」「赤い」「猫」の3つの文節になりました。

そして、隣り合っていて可連結…「赤い」と「猫」にしましょうか。サクサクいきます。
f:id:canaan1008:20191207225631p:plain
「猫」を下に進めて、「頭が」「猫」が残りました。

この2つも隣り合っていて可連結なので、結びます。
f:id:canaan1008:20191207225641p:plain
最終的に「猫」の1文節になりました。ここまで来たら成功です。お疲れさまでした。


では、今からとても大切なことを言うのでよく聞いていてください。いいですか?

トーナメント作りに成功したとき、それは解釈ができるトーナメントになっています。

これは言い換えると(対偶を取ると)、

解釈ができないトーナメントは、上記の方法で作ることができません。

ということを言っています。マジ?

実際にいま作ったトーナメントは、このような様子を表しています。
f:id:canaan1008:20191208181203p:plain
※これは完全な猫ではなく、頭が猫になっている人です*1

つまりどうやって全パターン作ればいいのか

このことがわかってしまえば、全パターンを網羅する方法は簡単です。

表を見ながら片っ端からトーナメントを作っていけばいいのです。

この方法のよいところは、
一度表を作ってしまえば「頭が」「赤い」などの文節の意味にとらわれず、ただ表に○がついているかどうかにのみ着目すればよい
点にあります。

実際、「頭が赤い魚を食べた猫」の表を見ながらトーナメントを作ると5種類しか作成できないことがわかります。

いや〜この方法が確立されてしまえば、トーナメントを作ったり数え上げたりするのも簡単になりますね。

ある文が与えられたとき、その文の解釈を数え上げることはできるか。

※この場合の解釈は、文節同士のかかり方の違いによって区別されるものとする。


→ 上記の「トーナメントの作り方」に従って作ればよい。

まとめと次回予告

今回は、「頭が赤い魚を食べた猫」を例にとって多義文の解釈とトーナメントの関係を見てきました。
また、文節同士が可連結かどうかをみることで、文節の意味にいちいち囚われずに解釈可能なトーナメントを作る方法を紹介しました。

これで、多義文があったときにその解釈を簡単に数え上げることができますね。

Q. 本当に簡単か?
A. 地味にめんどい

ということで、次回の記事では表だけを見ながら解釈を数え上げることについて考えたいと思います。

それでは。

余談

数学デーでは14通りすべての解釈ができる文として

すごい巨大なカエルの子どもの顔

というものが見つかっています。
写真ではちょっと省略されていますが、トーナメントのそれぞれの出場者は左から順に「すごい」「巨大な」「カエルの」「子供の」「顔」です。トーナメントがしっかり14種類あり、それぞれ異なる様子を表していることが確認できるかと思います。*2

*1:もっというと人じゃないかもしれない。正確に言うと、何かの頭が猫、ですね。

*2:キラキラは「すごい」を表しています。これを書き分けるもっちょさんもすごいな?