自己紹介
けんざぶ氏(以下、けんざぶ):けんざぶと申します。今日は「ハンドボールの戦評を自動生成してみた」というテーマで発表します。まずは自己紹介ですが、学生時代からハンドボールをプレーしていた経験があります。観るほうでは野球やサッカーなど、いろいろな競技を観ます。もともと北海道に住んでいたこともあって、北海道のチームをよく応援しています。2021年は静岡までサッカーを観に行ったりもしました。
spoana(Sports Analyst Meetup)自体は2019年以来の登壇です。前回は野球の戦評を自動生成してみる、というテーマで発表しました。
今日のテーマに関してですが、戦評を中心に「スポーツを表現する言葉」に興味があります。野球の戦評をやってみたり、Advent Calendarも毎年参加しています。また、2020年から、ハンドボールの戦評に取り組んでいます。2021年のAdvent Calendarと今日のspoanaで、どちらもハンドボールのテーマをやっているので、ぜひこちらも読んでもらえればと思います。
2020年の取り組み
まず、2020年にどういうことをやったのかという紹介からさせてもらえればと思います。(スライドを示して)日本のハンドボールリーグには試合結果のページがあって、そこに戦況報告とスコアという2つのリンクが置いてあります。
後ほど紹介しますが、スコアにはPDFのデータが載っていて、戦況報告には文章が書いてあります。スコアの情報だけで戦況報告のページがどれぐらい自動で生成できるかを、2020年から取り組んでいます。
戦況の報告は人間らしい美しい言葉や、いろいろな感情的な言葉を使ったりと、どうしても人間的な文章になるのでなかなか難しいかと思いつつも、戦況報告で、いろいろなスポーツの状況をなるべく表す言葉は、いろいろ生成できるかなと思ってやってみているところです。
(スライドを示して)これがそのスコアに載っているPDFですが、その試合の時系列のデータがいろいろあります。右側の枠で囲んでいるところ、縦にバーっと並んでいる、時系列で得点がどうなったかというデータがあります。少し整形はしますが、これをインプットにやってみようとしています。
2020年はどうなったかというと、先ほど紹介したスコアのデータから得点経過をいろいろ生成できました。(スライドを示して)例を2つ載せています。まず1つ目の文章は、どちらのチームのスローオフで試合が始まったか。(試合の経過)時間と、どのチームの選手が得点を決めたか、下のほうの2つ目には、タイムアウトの時間や選手の得点や、勝利チームといった表現を生成できました。
特に2020年でやったところでいうと「先制点を挙げた」や、2つ目の「3連続得点を挙げ、勝ち越した」のような、先制、同点、勝ち越しというワードや、「連続得点で何点をチームが続けて取った」ということを表現できるように作っています。
2021年の目標
(スライドを示して)ここからが2021年の目標になります。もう少し戦評らしく要約してみようというのが、一番大きな目標です。2020年に作ったものでも、テキスト速報としてこのままで完成にもできますが、やはり戦況報告を目標としてやっているところでいうと、要約のようなこともやってみようと思って2021年は取り組みました。
要約というタスクには、2つのアプローチがあると思っています。重要そうな文を抽出することと、試合の流れを理解して抽象化した文を作ることです。
2021年の取り組み:抽出
まず、抽出のほうから取り組みます。先ほど、2020年作った文章の中の、“先制”や“同点”のようなワードや連続得点のようなところを、「ここは重要な表現だ」と仮定して、これを使っている文のみを残す、抽出するというアプローチをかけてみました。
(スライドを示して)もともと20文ぐらいあったもの、スコアでいうと20プレーあったものを、半分ぐらいに落とせました。
接戦のゲームだったというのもありますが、「勝ち越した」「同点とした」「勝ち越した」「同点とした」と同じ表現が何回も繰り返し出てきてしまうのは、まだ冗長な部分なのかなというのはあります。一方で、3連続、4連続みたいな語句が出てくるところは、やはりスポーツの流れのような(ものであり)、戦評として書いてあげたい表現かと思います。
今回でいうと、3連続、4連続の得点している最中に、7メートルスロー、いわゆるペナルティースローを阻止したプレーが挟まっていて、大同特殊鋼というチームに流れがあったんじゃないかということも読み取れるかと思います。
抽出のほうで、もう1つ試したことがあります。今運営されているハンドボールリーグの公式のYouTubeのハイライト動画に載っているシーンはどういうプレーなのかと思い、そのハイライトシーンに載っていたものをフラグとして立てて、その文だけ作ることもやってみました。
先ほど抽出していた部分と同じ範囲で生成してみると、文の量は少なくなりましたが、動画で観たいハイライトのシーンと、文章で読みたい試合状況のハイライトのシーンは少し違うのと、先ほどお話した大同特殊鋼の4連続得点のようなプレーが残っていないので、もしかしたら動画と文章だと勘所が違うのかなということが、これで逆にわかったかと思います。
あらためて抽出の結果ですが、語句を基準に抽出するパターンは、試合状況を伝えるにはなかなか効果的だったと思います。一方で、接戦だと“同点”や“勝ち越し”という、同じような表現が続けて出てしまうので、その点はまだ改善の余地があると思います。
ハイライト動画のパターンでは、尺的に文の数は絞りやすいです。ハイライト動画の尺は1分半や3分ぐらいで、それほどプレーの数も多くならないので絞りやすいですが、動画で観たいシーンと試合の状況はなかなか一致しないというのがわかりました。
2021年の取り組み:抽象
続いて抽象の部分です。試合開始から生成したい場面までの試合全体を振り返って、その日最大の点差をどれぐらいに広げたとか、3連続得点みたいな、チームのその日最大のところに観点を絞って作ってみました。
(スライドを示して)今回は2行でワンセットにしています。正直、前半のところは、0、1行目については、先制点を挙げたら点差は当然1点になるので、その日最大となります。先制点なので、当然です。
8、9行目であるとしたら、「シュートで3連続得点を挙げてどうなった。これがその日最大の3連続得点。しかも点差も4点に広がった」という表現が出せるようになっていたのは、おもしろいかなと思います。
結果から、閾値を調節することで、どちらが優勢か、流れがあったかは、もっとわかりやすくなったのではないかと思います。今回は連続得点で点差を広げたところを表現しましたが、例えば「3連続得点で逆転に成功」という表現も、もう少しいろいろ作ればできるのではないかと思っています。
人間が書きそうな部分もところどころに表現できた
というわけで、今日のまとめです。「テキスト速報的ハンドボール戦評」というものを2020年に作って、それを要約することを2021年はやりました。抽出・抽象の観点からそれぞれアプローチしてみて、試合展開の観点で文を抽出するとか、点差や連続得点の観点で抽象化することをやってみました。
もともと野球をやっていたと話しましたが、さまざまな競技に対して、同じ観点で要約しようとしても、閾値は競技ごとで特徴が違うことがわかりました。
生成してみた結果、人間が書きそうな部分もところどころに表現できたのではないかと思っています。以上で発表を終わります。
質疑応答
司会者:ありがとうございます。私自身、こういう自然言語の処理のようなことは仕事でもするので、すごくおもしろいなあと思ってお聞きしていました。
質問が2件きています。まず1件目は「野球のように、勝利期待値の増減の大きさから重要シーンを抽出することは可能そうですか」ということです。
これは、2019年に発表してもらった時に、野球の勝利の期待値が高そうな重要そうなシーンを使って、野球でこういったものを作る取り組みをやっていたことを踏まえての質問かと思いますが、いかがでしょうか。
けんざぶ:そうですね。勝利期待値については、それぞれいろいろなスポーツでどういう値が出るかはやってみないとわからないので、なかなか一概にはいえないと思います。
野球でやりやすかったのは、やはりワンプレーで4点最大入ることや、チャンスがつながってたことが期待値として反映されることなどがあったと思います。特にハンドボールは、1点ずつしか入らないスポーツなので、勝ち越した1点が重要だということは想像できますが、前後半の残り時間なども考慮しないといけないと思います。
でも、もし勝利期待値が定義できるのであれば、抽出できると思っています。
司会者:ありがとうございます。お聞きしていて、野球やアメフトと比べて、確かにプレーが止まらないことはすごく難しい要素なんだなと感じました。 もう1点質問があります。ハイライト動画の情報を使ったところがあったと思うのですが、文字やプレーを抽出を具体的にどうやったかということです。
けんざぶ:ちょっと説明が悪かったかもしれません。文字を抽出したというわけではなくて、単純に僕がハイライト動画を見て、そこに映ってるシーン、たとえば、前半何分何秒の誰々の得点のシーンを、目視で今回のインプットのこの時間のこの得点とするところにに「これはハイライト動画に載ってたよ」とフラグを立てただけなので、別にテキストか何かを抽出したわけではないです。
司会者:ありがとうございます。公式のYouTubeチャンネルを作る人が、実際にどういうところをやってるのかという観点で、評価や分析のためにやってみたということですね。
けんざぶ:そうです。
司会者:なるほど。ありがとうございます。では発表終了ということで、ありがとうございました。
けんざぶ:ありがとうございました。