4. 言語学習2:クラスタリング

 昼食に出されたパンにメレンゲを乗っけて焼いたようなものを平らげて、お茶をちびちびと飲んでいたら、少女が今日は散歩に行かないのかと尋ねてきた。ここでは、少なくともこの屋敷では、食事は日に三回で、朝食と昼食は客間に配膳され、夕食は食堂で供されるようだった。そして、朝食と夕食に比べ、昼食は品数も量も控えめで、時間も正午を過ぎてからだったので、どちらかというとおやつのようでもあった。三日前のその昼食の後、彼は少女に屋敷の庭を散歩してみないかと誘い、少女もすぐさまに賛成したので、二人して公園ほどの広さもある庭を歩き回ったのだ。散歩の間、彼らは取り止めのないことをポツポツと喋り、また草木を見ては、これは何という植物によく似ているだの、見たことのない花が咲いているだのと競うように言い合った(多くの植物や虫が元いた世界のものとよく似ていて、そっくりのものも多かった)。合間合間に訪れる沈黙も、彼はもちろん、少女の方も楽しんでいるようだった。それから一昨日も昨日も同じように散歩していたので、少女としては今日も当然行くものと思っていて、前日よりもゆっくりとお茶を楽しみながら立ち上がる気配のない彼に声をかけたのだろう。

「あー、さっき、お昼の前に、換気しようと思って窓開けたんですけどね。今日、おトイレの回収が来てたみたいで」

 どうやらこの文化圏では、お手洗いは汲み取り式らしかった。五日前、やはり部屋の換気をしようと窓を開けたところ強烈な臭いに襲われ、慌てて窓を閉じた。ガラス越しに庭を窺っていたら、奇妙な格好の男が裏門から荷車を引いて出て行くのが見えた。荷車には大きな桶のようなものがいくつも載せられていた。落下式便所で、便器の底から流水の音も何も聞こえてこなかったから、考えるまでもなく汲み取り式とわかる。そして、今しがた裏門から出て行った荷車が回収業者だったのだろう。その後用を足しに行った時に、お手洗いは相変わらず臭いながらに何か草木を燻したような匂いが混じっているように感じられたから、貯留槽の中身がさらわれたのは間違いない。その回収業者はこの屋敷だけに来るものなのか、同じ地区の住宅をまとめて回っているのか、それも知れないが、科学技術が、工業レベルが前近代的というのはつまり大量の人糞をくみ上げた容器が密閉されたものではないということで、臭いを盛大に撒き散らしながら荷車が行くということだ。道やドブ川に下水を垂れ流すというのよりかはよっぽど清潔だが、しかし現代日本人にはとても馴染めるものではない。その日は夕方になるまで窓を閉め切って過ごした。

 そんなわけで、彼は今日は散歩に行くつもりはなかったのだが、その理由が食事中にはふさわしくない話題だったので黙っていたのだ。そして、少女が散歩に積極的であることが判明したのは彼にとっては思わぬ収穫だった。元々は健康維持のために運動をしたほうが良いということで誘ったのだが、彼は話し上手ではなかったし、少女は嫌々付き合っているだけなのではという不安がずっとつきまとっていたからだ。彼は日中ずっと、食事と散歩以外では言語研究に没頭しているのだが、少女の方は他にすることもなくて暇を持て余しているのかも知れない。

 少女はちょっとの間、すでに飲み干されて空になったカップをいじっていたが、やがておずおずと彼の仕事の進み具合について尋ねてきた。

「あの、この国の言葉は、どうですか、分かりそうですか?」

「んー、まぁ、そんな簡単じゃないですよね。もう、なんせ教科書もないし、日本語喋れる人もいないし、和訳辞典もないし」

この世界に来て、今日は九日目だ。初日、メグ・イシアンと別れて初めて言葉が通じないことに気がつき、二日目は五文字以下の単語の探索に、三日目から六日目の四日間は短単語リストの作成に費やした。接置詞が数十種類、加えて指示語や冠詞(あれば)、頻出の基本的な動詞、代名詞などを短単語リストに含めようとすれば、その長さは百数十から数百までが妥当なところだろうということで、最初は256種類の短単語を集めようとしていたのだが、最短で256×3単語の長さの文を、実際には少なくともその10倍以上を解析しなければならないのだと思い至り、途中で128種類に目標を修正した。朝から晩までその短単語リスト作りに取り組んだのだが、やはりそんなに簡単には片付かず、六日目、すなわち三日前に集中力が途切れて、それで気分転換に散歩をしようと思ったという面もあるのだ。散歩から戻った後は、それまでに作った八つのリストをまとめて最終的な短単語リストの作成に取り掛かった。全体で157種類あった短単語の候補をリストに含まれる頻度の高い順に並べ、その上位いくつかまでを仮の短単語リストとした時に、適当な長さの文の中でそれらがどれぐらい散らばっているのかを確かめた。上位99単語を含めたところで文中での散らばり具合が限界に近づいた、というのはつまり、その99単語が必ずしも適当に取られた文中で二単語以下おきに現れたというわけではないが、しかし文全体にそこそこの頻度で現れ、また何単語かその99単語に含まれない単語が続いている箇所があったとき、大体の場合そこには短単語リストの候補のものが含まれていたとしてもずっと下位のものだった(100位以下の単語の間には文中での出現頻度や散らばり方に関して大きな差は無さそうだった)ということだ。一応ある程度の余裕を見て、上位128単語を短単語リストに含めることにした。

 それで、七日目から今日までの二日半はいよいよ単語カードの作成に取り掛かっていた。また、四日目には執事を呼んで文字の表している音を教えてもらったのだが、その際に執事も彼がこの国の言語を学ぼうとしているのだと理解してくれて、広めのまっさらな紙(手紙用の紙よりかは質が劣るように見えた)をたくさん持ってきてくれたので、作業を続けるのには困らなかった。

「とりあえず今やってるのは、あー、なんて言えばいいんでしょう。単語の品詞と意味を調べたくて、文法を調べるためにも。それで、単語を品詞ごとにまとめようとしてるんですけどね」

実際にはまだそこまで行っておらず、黙々と単語カードを作っている途中だ。普段に使われる語彙は高々数千だろうとも、今はまだ活用形も格変化もわからないので、それらを全て別の単語として扱わざるを得ないのだ。本のページを繰って、テキストを一単語ずつ順に、単語カードを繰って既出か調べ、既出であれば文中での位置に関する情報をカードに追加し、新規であればカードを作る。文字は母音と子音を表すものがあったので、英語のアルファベットの音に似ているものが大体ABC順になるように並べ、単語カードをその文字の順に重ねてあるので、カードの探索は簡単ではあるが、それでもその単調な作業を延々繰り返すというのは辛かった。

 苦労自慢にならないように意識しつつ、しかし愚痴ぐらいは言わせてくれとそんなことをつらつらと喋っていたのを、少女の方ではどう聞いていたのであろうか。

「あのう、私も、手伝いましょうか?」

それは、彼が待ちわびていた言葉だった。幸いにして作業内容自体は簡単で、少女に手伝ってもらったとしても人為エラーはそれほど大きくはならないだろう。決して楽しい仕事ではないが、一日中何もせずに窓の外を眺めているよりかはマシかもしれない。彼は早速昼食の食器を片付けてもらって、少女にその作業内容の説明を始めた。


 その日は執事が夕食の準備ができたと呼びに来るまで作業を続けた。まず初めに、どのように言語を解読しようとしているかという計画を説明し、次にこの国の文字と発音を教え、単語の書き取りをしてもらって、彼のお世辞にも綺麗とは言えない文字と、本に印刷されている文字と、少女の彼よりかは随分とマシな文字とが正しく対応していることを確かめた。それから現在の作業、単語カードの作成方法について説明し、少女に実際にやってもらってみて、間違いなくできていることを確かめた。そこまでこなしたところで、陽は落ちて普段であれば仕事を切り上げている時刻になっていたのだが、少女の方がやる気になっていたのでそのまま作業を続けたのだ。

 夕食の席でもそれなりに会話が弾んだ。食事中におしゃべりをするのがマナー違反であったらどうしようと彼は執事の方をこっそり窺ったが、杞憂だったようで、これまでになく言葉を交わす彼らを執事はにこやかに見守っているようだった。

「タクミさんて、もしかして英会話の講師とかですか?」

「いいえ。英語はまぁ、ちょっとなら話せますけど、発音は完全に日本人英語だし。ちなみに言語学者とかでもないですよ。普通の会社員です。普通の会社で、食品添加物の研究とかしてます」

「へぇ。でも、なんだか慣れてません?言葉調べるの」

「うーん、どうでしょう。試行錯誤ですよ。もっといいやり方だってあるだろうし」

少女から感心されれば彼も悪い気はしないが、それで調子に乗れるほどではない。何せ、まだ結果は出ていないのだ。計画を説明した時には、これこれこのようにやれば文法が言葉の意味がわかるだろうというふうに言ったので、少女は疑いもせずにそのように了解したのであろうが、この方法がうまく行くという保証はない。案外、体当たりで人と直接コミュニケーションをとり、身振り手振りを交えながら相手の言葉を適当に真似してみて、少しずつ簡単な言い回しから習得していくという方がうまくいくのかもしれない。小さな子供とか老人とか病人とか、明らかに仕事をしていない人間が近くにいればそうしてもよかったかもしれないが。

 心なしか、前日よりも少女は元気そうに見えるというか、少なくとも料理を美味しそうに食べている。今晩供されたのは、ジャガイモを煮崩してミルクで溶いたような、マッシュポテトとポタージュの中間ぐらいの硬さの料理で、ハーブとちょうどよく効いた塩味が美味しかった。他には薄切りのベーコンがふんだんに散りばめられたサラダもある。そのサラダをフォークで突っつきながら突然少女がクスクスと笑いだした。

「これ、美味しいですけど、逆にあんまり異世界感ないですよね。ファンタジーだったらもっとこう、ドラゴンの尻尾とか、巨大な芋虫の丸焼きとか、そういうの出てきそうじゃないですか?」

言われてみれば、確かにこの世界に来てから出された料理で特に驚いたことはない。調理方法こそ多少は珍しくはあるものの、使われている素材は大体が見たことのあるようなものばかりだ。肉類は加工されたものが多く、干し肉か燻製かハムかソーセージか、そんなところだ。一度だけ川魚のソテーが出て来たこともある。野菜はレタスやキャベツのような葉物野菜に数種類の芋、豆、カブ、何かの球根、タマネギ、ナスやウリの類。そういえばトマトやカボチャ、トウモロコシは見かけなかった。どれも日本のものと比べて甘みが少なく苦味が強いが、その程度の違いでしかない。穀物は麦を細長くしたようなものがあったが、パンの材料も同じものだろうか。果物は、今のところラズベリーのようなものしか食べていないが、リキュールの材料となった柑橘系もありそうだし、そういえば絨毯の模様にブドウのようなものを見かけた。一方で、マンドレイクの根はまだ食べていないし、この先お目にかかることもないような気がする。

「巨大な芋虫、食べたいですか?まあ、殻のないエビみたいなもんでしょうけど。うーん、でも、腐葉土食ってるような奴はやだな。葉っぱ、いい香りのする葉っぱ食べてるやつがいい。知ってます?桜の木につくサクラケムシって、加熱して食べると桜の葉の、桜餅と同じ香りがするらしいですよ」

「毛虫?え、毛虫って、毒持ってるんじゃないんですか?」

「サクラケムシの毒はそんなに強くないらしいですよ。それに、虫が自前で作る毒は大体タンパク質性だから加熱で失活するんです。毒持ってる葉っぱとか菌とかを食べて、その毒を蓄積してたらやばいかもだけど、桜は毒無いですから」

この話題は今まであまり受けたことがなかったが、少女の性格か、または状況の特殊性ゆえか、よく興味を引いたようだった。

「へーえ。桜風味のエビ。美味しそう。なんであんまり食べられてないんだろ。植木とかに殺虫剤撒くの、勿体無いじゃないですか」

「見た目は毛虫、調理した後でも芋虫ですもん。万人受けはしないでしょう」

「そんなの、刻んで肉団子にでもしちゃえばいいじゃないですか」

 少女は本気でそう思っているようだが、なるほど、言われてみればそんな気もしてくる。例えばこんなのはどうだろう。サクラケムシ農場。一面に桜の木が植わっていて、あえて殺虫剤を撒かずにサクラケムシをうじゃうじゃと育てる。山飼の天蚕のように卵をばら撒いても良い。それで、サクラケムシが育ってきたら、防護服を着た作業員が桜の樹の下にシートを敷いて、棒で梢を払ってサクラケムシを落とすのだ。収穫したサクラケムシを蒸し焼きにして、そのまま出荷してもいいし、肉団子にまで加工してしまってもいい。作業員がアレルギー反応を起こしてしまったら労災ものだから、防護服を洗浄するシャワールームとかを備えるべきだろうか。GMOは面倒くさいから、人為的な淘汰圧をかけて毒性のない系統を作ってしまってもいいかもしれない。いや、それだと鳥に食われてしまうか。

「日本に戻ったら、それで起業してみようかな。憧れの農家デビュー」

まず、融資してもらえないだろうな。クラウドファンディングとかどうだろう。ネタの字面は面白いけど、それでどこまでお金を集められるだろうか。

 少女は面白そうにケラケラと笑いながら彼の計画を聞いていた。それを彼はいい傾向だと思った。彼にしても、言葉を調べている間は作業に没頭できたが、それ以外の時にはあれこれ考えてしまって無為に不安になるということもよくあった。今、こうして余暇をおしゃべりしながら過ごせるというのは思った以上に心休まるものだった。


 それからの三日間は二人してただひたすらに単語カードの作成に勤しんだ。作業内容は難しくないし、手を動かせばそれだけ進んでいくので、間も無く1200枚用意したカードの用紙が全て埋められた(1200枚全てに単語が書き込まれた後も、しばらくは文中での位置を調べるために作業を続けた)。格変化や活用形のことを考えれば、実際に書き出された単語は数百種にも満たないだろう。1200枚という数は、執事が持ってきてくれた紙を切り刻んだらその数になったというだけで、特段意味がある数字ではないし、簡単な会話をするためであっても語彙が数百というのはだいぶん足りない気がする。けれども構わない、というのは、その作業の第一の目的は文法の解析であり、意味を調べるための単語カードは格変化や活用形などが判明した後で、その語形変化をまとめて一単語ごとに作るべきだからだ。

 そういうわけで、単語カードの作成は一旦お終いにして、その1200枚のカードを品詞ごとに分類することにした。さて、その方法として、同じ品詞の単語は文中で同じ位置にあるだろう、前後に隣接する冠詞や接置詞などがその単語の文中での位置の指標となるだろうという予想の下、接置詞の類を多く含むように短単語リストを作成し、単語カードには前と後ろに隣接する短単語をそれぞれ記載したのだが。短単語リストには128種の短単語が含まれているので、前に隣接する短単語の組み合わせの全体は2の128乗あり、後ろに隣接する短単語の組み合わせも同じだけあるので、単語の文中での位置を示す指標はその二乗、2の256乗、さらに、文頭、二番目、文末、それ以外の文中に現れたかも記載してあるので、単語の文中での位置の指標は2の260乗の値をとりうる。もちろん実際にはそんなにはない。あっても高々1200だ。だって、カードが今はそれだけしかないのだから。

 複数のオブジェクト(興味の対象:今の場合は単語カード)が与えられていて、そのオブジェクトをいくつかのグループに分ける操作、特に同じグループに含まれるオブジェクト同士が他のグループに含まれるものとよりもお互いにより似ているようになるような分け方をする操作を一般的にはクラスタリング、あるいはクラスタ解析と呼ぶ。また、似たもの同士を集めたそのグループのことをクラスタと呼ぶ。本来は、統計解析や機械学習、パターン認識、画像解析、バイオインフォマティクスなどの大規模データの解析を行う、つまりコンピュータで行う操作の方法論であるのだが、今はそれを手動でやらなければならない。手動で実行可能な方法を考えなければならない。彼は随分と長いこと頭を抱えて悩んでいた。実のところ、どうやってクラスタリングをしようかと思案しだしたのは単語カードの作成を始めたのと同時で、それからずっと暇な時にはぼんやりどうしようかと考えていたのだが、まだ妙案は思いついていない。だって、手動でって。

 少しづつ辿るように大学で受けた授業の内容を思い出してみる。授業名はデータ解析論とかだったか、それもずっとクラスタ解析ばかりやっていたわけではなく、統計学の復習から始まって多変量解析、主成分分析、最小記述長などなどもやっていたから、クラスタリング手法についての講義は全13回中たったの二回、それも二回目はコンセンサスクラスタリング(複数のクラスタリング結果をもとに行うクラスタリング)についてだったので、実質一回、90分間の講義でちょろっと触れたに過ぎない。クラスタリング手法は、大まかに、k平均法などの、ある(手動または自動的に決められた)数のクラスタに分ける分割型の方法と、オブジェクト間、クラスタ間の距離(どれくらい似ているか)を表す樹形図を作る階層クラスタリングの二種類に分けられる、だった気がする。

 前者に含まれる大体の手法で、k平均法や期待値最大化法などは、最初にデータを適当に分けて、そのクラスタを解析し、得られた情報をもとに再計算してより良いクラスタに分け、それを何度も繰り返して最良の分割に近づけて行くというものだ。何度も再計算、手動ではしたくない。他に、密度準拠法などでは、一回の試行ではクラスタの数を手動で与える必要も再計算もないが、しかし個々のオブジェクトの周りの密度を図るための半径と域値の二つのパラメターを与えなければならず、有意義なクラスタを得るためにはやはり何度も試行してパラメター探索を行わなければならない。手動ではしたくない。

 後者の階層クラスタリングの方はもう少しマシだろうか。階層クラスタリングでは、n個のオブジェクトが与えられた時、一つのオブジェクトを含むn個のクラスタから始めて、一つまたは複数個のオブジェクトを含むクラスタを距離の近いもの同士から順に結合して行き、そうやって少しづつクラスタを樹形図にまとめる。二つのクラスタを一つに結合することで全体のクラスタの数が一減るから、一つの樹形図にまとめるためにはn - 1回の操作が必要になる。つまり、今の場合では約1200回の操作をしなくてはいけない。

 ふへっ、と、嫌な溜息が漏れてくる。1200回の操作といえば、それほど大変には聞こえないかもしれない。けれど、一回の操作に何回の計算が含まれるだろうか。例えば100個のクラスタがあったら、100 × (100 - 1) ÷ 2のペアがあり、その中から一番距離の近いペアを探さなくてはいけないのだ。あまり考えたくもない。しかし一方で、彼がどうしようかと思い悩んでいる間、手持ち無沙汰になった少女は一人で単語の位置を調べる作業を続けていた。このようにすれば言葉がわかると豪語し、四日間も手伝ってもらった手前、やっぱりこの方法は無理がありましたなどとは言いたくない。本当に、パソコンを使えないのが痛い。せめて、iPhone上でプログラミングと実行のできるアプリがインストールされていて、かつ充電用の携帯ソーラーパネルがあればどんなにかよかったのに。駄目元で少女に尋ねてみたが、もちろんそんなものを持っているはずもなかった。

「日本に帰ったら、いつまた異世界に落っこちても大丈夫なように、iPadとiPad用のキーボードと携帯ソーラー充電器を持ち歩くことにしますわ。仕事にも普通に使えるだろし」

iOSではPythonista 3というPythonのプログラミングと実行のできるアプリもある。

「あはー。もしかして、ソーラー充電器持ち歩いてる人って異世界経験者とかですかね」

「あ、それありうる」

「……あの、やっぱり難しそうですか?」

彼の疲れを感じ取ったのであろう、気遣うように聞いてきた少女に彼は曖昧な笑顔を返し、多分大丈夫だと伝えてもう一度考え直してみた。朝食後にこの問題に取り組み始めてから、まだ三時間しか経っていない。投げ出すには早い。


 色々と悩んだ挙句、やっぱり階層クラスタリングよりもk平均法の方が手動に向いているのではないかという結論に落ち着いた。k平均法にもいくつかバリエーションがあるが、最も標準的で単純なのはおそらくLloydのアルゴリズムで、彼が知っていたのもそれだった。この方法では、まず最初にk個の適当な”平均”が与えられ、(1)各オブジェクトをそのk個の平均の中で最も距離の近いものに割り振り、(2)そうやって得られた各クラスタに含まれるオブジェクトの平均をとって新たなk個の平均として、この(1)と(2)を収束するまで繰り返す。結果、各クラスタに含まれるオブジェクトは他のクラスタの平均とよりも自身のクラスタの平均と近くなるように全体を分けることができると期待される。最初に与えられる平均は特徴空間でランダムに取られた点でもいいし、ランダムに選ばれたオブジェクトでもいい。ちなみに、場所によってはk平均法の紹介で、最初にオブジェクトをランダムにk個のクラスタに分けて、それから(2)と(1)を繰り返すと書いてあるが(2019年10月時点のWikipediaの日本語ページなど)、このやり方だと最初に与えられる平均が全て全体の平均に近い値になりやすいので効率が悪い。

 懸案事項のどれくらい手間がかかるかという点だが、収束の速さは解析対象のデータによるので、やってみないとわからない。繰り返しの各回で(1)のオブジェクトを一つづつk個のクラスタの平均と比べて距離を計算するというのは省略しようがないが、(2)の平均を計算するという方はほぼ完全に省略することができるのではないだろうか。今彼が考えているのはこういう方法だ。繰り返しの各回で、(2)で各クラスタの平均を計算する代わりに、各クラスタから五つかそこらのオブジェクトをランダムに選んでそのクラスタの代表とする。そして、(1)ではオブジェクトとクラスタの平均の間の距離として、そのオブジェクトとクラスタの代表それぞれとの距離のうちで最大のものを取る。各オブジェクトと代表全部との距離を計算しなければいけないので、その部分だけに関していえば各クラスタに一つの平均との距離を計算するのに対して五倍の計算量になる(代表の数が五つの場合)。しかし、紙も十分にないところで260次元のベクトルの平均を計算したくはない。クラスタに含まれるオブジェクトが皆似たものであれば、すなわち代表も似たもの同士になり、収束するだろう。バラバラなオブジェクトが含まれるクラスタからはバラバラな代表が選ばれやすいだろうから、そのクラスタにはオブジェクトは集まりにくく、もしかしたら消滅するかもしれない。また、たまたま選ばれた代表が似たもの同士であれば、その代表に似たものだけが残り、また他のクラスタからも似たものが集められるだろう。クラスタが消滅したら、そのまま操作を続けてもいいし、一番バラバラな代表を持つクラスタから代表を二つ作ってもいい。一番最初にk個の代表を与える際には、データ全体から必要な数のオブジェクトをランダムに選んで通常のクラスタリング手法によってk個に分ければいい、それは難しくない。

 それから、オブジェクト間の距離だが、前後に隣接する短単語、文頭か文末かなどのフラグを元とする集合を考えて、その集合の和集合と共通部分の大きさの比から与えるのが良さそうだ。これは専門的にはJaccard距離と呼ばれるもので、空でない集合AとBの間のJaccard距離は1 - |A \cap B|/|A \cup B|で与えられる。例えばA = {p, q, r}, B = {q, r, s}だったら、AB間のJaccard距離は1 - |{q, r}|/|{p, q, r, s}| = 1/2になる。A = Bだったら0になるし、共通の元を持たなければ1になる。他にマンハッタン距離などを考えることもできるが、そちらの方が計算が簡単かもしれないが、整数よりも標準化された有理数の方がきっちり分けられるのではないかと、なんとなく勘で決めた。もし実際にやってみて計算が煩わしければ、その時には途中でマンハッタン距離に変更してもいいのだし。

 ゆっくりと息を吐いて、考えをノートにまとめてみる。パッと見た感じでは、これならば行けそうな気がする。この他に手動で実行可能なアルゴリズムも思いつかない(これが実行可能だという保証もないのだが)。それとも、統計学や情報学の専門家に見せたら鼻で笑われるだろうか。ともかく、このまま悩んでいるのも時間の無駄であるし、この問題に関していえば作業を始めた後でもっといいやり方を思いつくということもないだろう。もう一度ノートを頭から丁寧に読んで、特に問題も見つからなかったので、これで行くことにして、少女に手順を説明するための準備を始めた。もうすでに日も暮れかかっていて、作業を始めるのは明日からになる。結局丸一日をクラスタリングの方法を考えるのに費やしてしまったが、もしこの方法がそのままうまくいったとしたら、むしろトントン拍子に進んでいると言えるかもしれない。ニコニコ顔で伸びをする彼のことを少女はもの問いたげに見ていたので、次の作業の内容を明日説明すると伝えた。

 高揚した気分のまま、湯浴みの間も、夕飯の時も、そのあとも、あれやこれやと細部に思考が及んだ。まず、そのk平均法を行うにはクラスタの数と代表の数の二つのパラメターを与えなければならない。クラスタの数についてだが、どんなにうまくクラスタリングしても名詞、動詞、形容詞、副詞というふうには別れないだろう、というのは、意味によって主語になりやすいもの、目的語になりやすいもの、自動詞的に使われるもの、他動詞的に使われるものなどに別れ、文中での位置、隣接する短単語にも偏りができると予測されるからだ。だとすれば、名詞と動詞にそれぞれに二つ分、代名詞、形容詞、副詞、接置詞、接続詞の九つぐらいが妥当だろうか。いや、同じ品詞が二つ以上のクラスタに分かれるよりも違う品詞が一つのクラスタにまとめられてしまう方が後の解析がややこしくなるような予感がするから、一つ多めにとって10個のクラスタに分けることにしよう。それから代表の数だが、これも実際にやってみないとわからない。とりあえず三つか五つで試しに代表の初期値を作ってみる、つまり、その10倍の数のオブジェクトを全体からランダムに選び出して、距離の近いもの同士をまとめて10個の代表を作ってみて、各代表に含まれるオブジェクト同士の間の距離が十分に小さければその代表をそのまま使えばいいし、そうでなければ代表の数を少しだけ増やしてまた試してみればいい。最大でも10個以下にしようか。

 その晩、彼は何か一仕事成し遂げたような達成感と満足感に浸りなが眠った。今日思いついたアルゴリズムは既に誰かによって報告されているものだろうか。いや、中身は至極簡単なものだが、しかし手動クラスタリングなど考えている人もそうはおるまい。いやいや、もしかしたら、距離は定義できても平均を求めることが困難な場合では有効かもしれない。どんな場合だろう。ベクトル空間以外の特徴空間、例えば、それこそ自然言語の解析とか。それにそれに、コンピュータを使ってやるとしたら、十分に大きな数のクラスタから始めて、途中でいくつかのクラスタが消滅したとしてもそのまま捜査を続けるというふうにすれば、自動的にクラスタの数を決めることもできるかもしれない。むしろそういう手法として開発されているかもしれないな、なんて思っていると、一端の研究者にでもなれたかのような気分になってくる。博士課程に進学した彼の友人が言っていた、「わかったとき最高にハイになる」という言葉が思い出されて、くっくっと笑いが漏れてきた。

 実際に研究者が研究としてやるのだったら、もしそのクラスタリングアルゴリズムが新規のものであったとしても、こんな方法を思いつきましたでは終わりにはならず、計算量はどれくらいになるか、どのようなデータにならば応用できるか、実際に適当なデータを解析した際どのような結果が得られたか、他の既知の手法と比較してどうか、などなど、一つの仕事としてまとめるためにはやらなければならないことがたくさんある。研究者以外の人から見たら、研究者がやっていることは、言っていることは、意味も意義もよくわからないかもしれない。それこそ魔法の呪文のようにも聞こえるだろう。クラスタリングに関する論文などには、Wikipediaの解説ページに載っているような散布図よりも折れ線グラフの方がづらづらと載せられていたりするのだ。現実の研究者は、映画や漫画や小説の中でのように、何か宇宙や世界の秘密をわかりやすく解説してくれたりはしない。誰にでもわかりやすくしかも正確(この正確で客観的であるというのが重要だ)に説明できるような簡単なことは研究対象にならないからだ(ちなみに、専門が同じ研究者からすれば相手の説明はわかりやすかったりもする)。その晩ずっとニコニコしていた彼も、外から見ればだいぶ奇妙に映ったかもしれない。けれども彼自身からしたら、子供が初めて自転車に乗れた時のように、学生が部活動の大会で記録を残せた時のように、社会人が一つの仕事を成功させた時のように、本当に、とっても嬉しかったのだ。


 次の日はまずクラスタリングのやり方の説明をして、それからはお昼を挟んでずっと文中での位置が同じもの(文頭文末に現れたかと、隣接する短単語が全て同じもの)同士をまとめる作業を行なった。散歩には行かなかった、のは、その日もまた例の汲み取り回収が来ていたからだ。四日目、九日目、そして14日目に来たということは、五日おきに回収しているらしい。単語カードの作成にはそろそろ飽きていたということもあり、作業内容が新しくなったことで、散歩に行けずやる気が削がれるということもなく、タイミング的にはちょうど良かったのかもしれない。

 最初に、単語カードの作成中に得られた印象を元に、カードを一枚づつ繰って六つのグループに分けた。単語カードに文中での位置を記載していた時に、文頭には現れずまたある数種の短単語と隣接しているグループ、二番目に現れかつ別の数種の短単語と隣接しているグループというふうに、数種の偏りがあることに気がついていたのだ。その印象は、クラスタリングが、ひいては解読がうまくいくのではないかという期待を抱かせた。その六つのグループそれぞれの中で文中での位置が同じもの同士をまとめていった結果、1200枚のカードを800組程度までまとめられた。また、何度か代表の初期値を用意するという作業を繰り返してみて、四枚のカードで一つのクラスタの代表にしようと決めた。

 それからの七日間はずっとクラスタリングを続けた。初めのうちこそ一枚の単語カードと代表全てをつぶさに見比べて計算したりしていて作業もなかなか進まなかったが、やがて慣れてくると、パッと見比べただけで距離の大小が大体わかるようになり、実際に距離を計算するのはいくつかの代表の一枚づつとだけというふうになり、それをおしゃべりしながらできるようになった。それでも七日間もかかってしまったのは、800という、コンピュータで処理すればすぐさまに終わるがしかし、手で計算するにはやはり大きすぎるデータサイズだったからだ。

 毎日その作業を九時間ほどもやっていたし、そうでなくても一日をほぼずっと一緒に過ごしていたのだが、彼からすれば驚くべきことだったのだが、その作業中のおしゃべりにおいて、二人ともそれほど苦労せずに話題を見つけることができた。それらは会話をするための会話であって、特に何かを議論するわけでもなく、ただ、日本におけるそれぞれの生活のこと、学校や会社、友人の話、好きな食べ物やお菓子の話、旅行や行事の経験談、そんなあれこれを喋っていただけだ。つまり、普通におしゃべりしていただけだ。彼が驚いたのは、歳が10以上も離れている女子と、しかも共通の趣味を持っているわけでもないのに、それでもその普通のおしゃべりができるとは思っていなかったからだ。要は、彼は根が人見知りで、ただ怖がっていただけだったのだが。これも彼にとっては新たな発見であったと言えるかもしれない。

「ケーキ、ケーキはあれが好きだな。ヨックモックのミルクレープ。プレーンの。ミル・クレープってフランス語だけど、あれ元祖は日本なんだって。でもってフランスではそんなに見かけないんだって」

「ヨックモック?」

「あー、ほら、あの、シガール。くるって細長く巻いてある円筒形クッキー。ああいうのcigar cookieっていうらしいけど、あれのところ」

「あ、食べたことある。あれ美味しいですよね。ヨックモックはフランスの会社じゃないんですか?」

「ん、そういえば、あれどこの会社なんだろ」

ヨックモックは1942年創業の、東京都港区南青山に本社を構える日本企業である。彼が、東京に出てきてからは、あちこちに美味しいケーキ屋があるので、休日には遠出して食べに行くこともあるのだなどと話したら、しばらく聞いていた少女は、大人の男性が甘いものに夢中になるのは意外だと感じたが、それは自分の偏見だったのかという感想を述べた。しかし、甘い物好きの成人男性も今やそこまで珍しくはない。あれこれ話してみると、普通の家庭の普通の女子中学生(彼女は区立の学校に通う中学三年生だった)よりも、自分で自由にできるお金のある独身会社員の方がよほどいろいろ食べているらしかった。

 そして、少女は洋菓子よりも和菓子の方に興味があると言った。曰く、去年の夏に祖父母の家で食べた両口屋是清のみぞれ羹が衝撃的に美味しかったらしい。柚子の風味の効いた道明寺は白から薄黄緑へのグラデーションが綺麗で、小豆がちらほら浮いていて見た目も可愛い。コンビニ羊羹では物足らず、しかし棹物がそこいらでポンポン売られているわけでもなく、たまの贅沢に和菓子喫茶の暖簾をくぐっていたという。

「あー、早く日本に帰りたい。帰っておいしい豆大福食べたい」

そう嘆いて見せる少女は、しかし悲壮感をまとっているわけではない。

「その前に、この国のお菓子ももっと色々食べてみたい」

笑いながらそう言って、少女は調べ終わった単語カードを徐々に高くなりつつあるクラスタの山札の一つに重ね、新しいカードを未処理の山から一枚手に取った。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る