今回は、当社が提供しているプロ野球の速報サービスのひとつにテキスト速報がありますが、約10年前のリリース当時の開発の裏話を少しだけ。
プロ野球 テキスト速報をご存知ですか?
データスタジアムのメディア向けサービスの中で「野球テキスト速報」というものがあります。みなさん、プロ野球の速報サービスを提供するメディアで下図のようなコンテンツを目にしたことがあるのではないでしょうか。
SPAIAのプロ野球テキスト速報画面( https://spaia.jp/ )
テキスト速報は、データスタジアムの速報サービスの一つとして多くのスポーツメディア様に10年以上前から提供させていただいておりますが、当初から全てのテキストを自動生成しています。といっても、AIやら機械学習やらを駆使して実装されているわけではなく、辞書化・パターン化されたロジックを使って出力しています。実は当時「一球毎に登録している多くのデータがあるわけだから、そこから簡単に文章に起こせるでしょ」ってノリで作ったサービスなんです。
我々のメディア向け商品として「一球速報」というサービスがありますが、このテキスト速報は、メディアのみなさまの開発工数の削減という意味でも差別化することができました。というのも、メディアの開発のみなさまからすると、一球速報でご提供しているXMLデータは、1つ1つのタグを解析する必要があるのに対して、テキスト速報は弊社から配信した文字をそのまま表示するだけでよいからです。
テキスト速報の開発の苦労したところ
テキストを生成はSQLServerのストアドプロシージャのなかで実装しています。苦労したところと言えば、文字と文字をいかに自然につなげて文章にするかというところでしょうか。辞書となるマスタを増やし過ぎても管理が複雑になるし、一方で少なすぎても自然な文章が作れないため、これらをバランスよく設計する必要がありました。
例えば、三振ゲッツーのシーンで
「平田:空振り三振 一塁走者大島:盗塁失敗」
と出すよりも
「平田:空振り三振!スタートを切っていた一塁走者大島もアウトでダブルプレー」
と出たほうが見る方もナチュラルに感じるため、三振ゲッツーの場合には、こういう形でテキストを出力するというマスタを持たせています。
野球というスポーツにおいては、特に走塁系の事象はいろんなパターンが存在するため、テキストの様々なパターンで出力されます。そのため、当然ですが、開発当初は検証作業が非常に苦労しました。例えば、こんな感じです。
- ダブルスチールを試みるが二塁走者大島はアウト。その間に一塁走者京田は二塁へ
- ダブルスチールを試みるも二塁走者大島はアウト。その間に一塁走者京田は二塁へ進むも直後に走塁死
- ダブルスチールを試みるが一塁走者京田はアウト。その間に二塁走者大島は三塁へ
- ダブルスチールを試みるも一塁走者京田はアウト。その間に二塁走者大島は三塁へ進むが直後に走塁死
テキスト速報の今後
今回は10年以上前のお話でしたが、こんなことできないか?というアイデアから試しにやってみるというアクションは凄く大事なことだと思います。最近では、テキスト速報についても、例えば方言の入ったテキストにしてほしいといった要望もメディアさんからはいただいていたりします。テキスト速報の次のステップとして当然考えていかないといけないですことですが、今の時代ですと、AIや機械学習を使ったテキストの自動生成ということも検討しないといけないでしょうね。
リリース当初、「ノリ」で始めた開発ですが、そういうノリがまた必要な時期に来ているのかもしれません。
エンジニア積極募集中!
データスタジアムでは一緒に働いていただけるエンジニアを絶賛募集中です!
野球、サッカー、バスケをはじめとして色々なスポーツの仕事があります。
AWSやAzure、動画やAIなど技術的にもチャレンジできる職場です。
テクノロジーの力で、日本のスポーツを一緒に発展させていきましょう!
<現在募集中のポジションはこちらから>
https://www.wantedly.com/companies/company_9277271/projects