文系の私がAI基礎の資料を作るとき#10:Pythonとトレンドの気配
中学生の頃、父が鹿児島に転勤し、母もいっしょに引っ越してしまいました。そのため、妹と私には、学期中は祖父母のいた東京の家から学校に通い、春夏冬の休暇や秋の試験休みになると二人で鹿児島へ行って過ごすという、少し変わった生活をしていた時期が2年間ほどあります。
鹿児島の思い出はたくさんありますが、その中でも忘れられないのが、初めて鹿児島に着いた日に、天文館で母が食べさせてくれたラーメンです。全国にはいろいろなラーメンがあるということさえ知らなかった私には、目の前にある、澄んだスープに入った真っ直ぐな麺は衝撃的でした。食べても食べても、どうしてもラーメンを食べている気分にならなかったことを思い出します。
あの味に再会できないだろうかと期待して、今、眺めるのがいわゆる麺フェスのチラシです。鹿児島のラーメンをみつけると、写真をチェックして、スープや麺の様子を観察することにしています。ただし、グルメフェスのチラシというのは、情報量がとても多い。現地で歩きながら見るには便利なのですが、単独で眺めて傾向を調べようとすると、なかなか大変です。
そこで、AI基礎第9回授業では、Pythonに、全国で開催されているラーメンフェスティバルのデータから鹿児島のラーメンのトレンドを見つけてもらうことにしました。
・・・と言いたいところですが、そんなことが簡単にできるわけがない。そのことを実感できるように、全国のラーメン名を集めたリストを使いながら、Pythonの基本的なデータ処理を体験してもらえるような資料作りをしてみました。つまり、数ヶ所の麺フェスのチラシから文字情報を集め、OCRでテキスト化した後、正規表現を使ってラーメン名だけを抜き出しました。
さて、苦労して先生(私)が作ったこのリストから、学生たちがトレンドを読み取ることは可能なのでしょうか。
128件の商品名が並んだリストというのは、読めないものではありません。でも、いくら先生の力作だからといって、読みたいものでもありません。チラシが何枚であろうとも、やはり、眺めたいのはエディタ上のリストではなくチラシでしょうし、眺めているうちにトレンドらしきものをふわっと感じたりするのも、チラシを見ているときの方でしょう。
だからこそ、人間とPythonの役割分担が生まれます。例えば、Pythonでは次のようなコードで「炙り」を含むラーメンを取り出すことができます。
if "炙り" in item:
...
こうした条件を使えば、特定の特徴を持つラーメン名をリストから集めたり、その数を数えたりすることができます。
トレンドは、人間が自分の足で捉えるしかありません。日頃から麺フェスに行ったり、ラーメン店を訪ねたり、業界の記事を読んだりする中で、「最近は炙りが増えている気がする」「濃厚という言葉をよく見かける」と感じる。その感覚は、人間が現場で得るものです。
しかし、その感覚が本物なのかどうかをデータで確かめる段階になると話は変わります。
Pythonはラーメンそのものを理解するわけではありません。「炙り」も「濃厚」も「熟成」も意味として知っているわけではなく、流行かどうかを判断することもできません。それでも、出現回数や頻度を数えたり、去年からの「炙り」の増加ぶりを淡々と計算してくれます。
学生には、コードを書くこと以上に、「この作業はPythonに任せられるのか」「それとも自分が担うべきなのか」を見極める感覚を持ってほしいと思いました。そんなことを考えながら、今日の問いは以下のようにおきました。
・Pythonはリストからトレンドを読み取ることができるのか
ラーメンといえば私たちの世代には伊丹十三監督の『たんぽぽ』があります。講義資料を作りながら、トレンドもまた机上ではなく現場にあることを『たんぽぽ』の場面といっしょに思い出しました。Pythonは数えてくれるけれど、「何を数えたいのか」を決めるのは、人間の経験や記憶。私もラーメンの記憶と一緒に、少しだけ寄り道です。今の学生たちはほとんど知らない作品だと思いますが、講義資料の最後に、おまけとして伊丹十三記念館のウェブサイトも紹介しておきます。
第9回の授業計画は、以下の記事で紹介しています。よろしければご覧ください。
