夢はAIに乗せて~32年目の悲願は叶うか?~

まず初めに

本日お話しする内容は、個人利用目的であり

商用利用や権利侵害を目的としたものではありません。

1ファンの長年の悲願をたまたまPowerAppsを使って具現化したものだという点にご理解をお願いいたします。

 

私にとっての競馬とは

競馬を始めたのは、確か1992年だったと記憶している

当時、失恋し休日にすることのなかった私は必然的に競馬へと引き寄せられていく・・・

この年、ミホノブルボン皐月賞・ダービーの2冠を制した

ブルボンは菊花賞で2着に敗れ、その後ターフに戻ってくることはなかった・・・

ミホノブルボンの魅力とは​

決して良血とはいえない血統、しかも種牡馬は代用​

そんな雑草のようなブルボンは戸山為夫調教師によって鍛えに鍛えられる​

デビュー以来、距離不安説をささやかれながら連戦連勝​

無敗で皐月賞・ダービーを制し、秋初戦の京都新聞杯も制し​

三冠のかかった菊花賞ライスシャワーの2着に敗れた・・・​

年末といえば

競馬ファンの夢を乗せて走るレース、それは有馬記念

私、競馬歴1992年からやってるのですが

実は一度も有馬記念を的中させたことがありません(笑)

31年もの間、一度も当たらないほどの相性の悪いレース

今年こそは的中させたい!!

 

どうして当たらないのか?

有馬記念は元々は年末最終週のレースでした。(今は違う)

ここで取り返してよい正月を迎えたい

それゆえ、穴狙いになりがち

今回、暦年の買った馬を見ると、ああーこれはなあ・・・

しかも最高着順が4着、それも1回(笑)

どんだけ相性悪いのよ

 

まずはですねデータ整理してみますか

まずはJRAのホームページからデータを収集します。

ここで使うのはPowerQuery

なんですが、いやーJRA、データぐちゃぐちゃやん(笑)

有馬記念(過去GⅠ成績) JRA

実際これ成形作業けっこう大変でした

 

勝馬の画像、集めますか

データは有馬記念始めてからの31年分に

ということで31年分の優勝馬画像を集める

で、きれいにサイズ揃えてっと

 

さて、まずはトップページ

トップページはいつものパラパラ漫画ですね(笑)

タイマーコントロールに仕込んで

UpdateContext({a:RandBetween(1,31)});

UpdateContext({b:RandBetween(1,31)});

UpdateContext({c:RandBetween(1,31)});

UpdateContext({d:RandBetween(1,31)});

UpdateContext({e:RandBetween(1,31)});

UpdateContext({f:RandBetween(1,31)});

これにてランダムに31頭から表示されるという算段です。

*それぞれの画像にa,b,c,d,e,fと仕込んであります。

いつものことですが音楽こだわる

わたし、スーパー競馬好きだったんですよ

大川慶次郎さんの時代ですね。

ちなみに斎藤陽子さんがアシスタントの時代が好きでした。

*素直に斎藤陽子ファンだったと言え

当時のテーマ曲といえば

Theme of SUPER KEIBA

今でも本馬場入場で使われますね

 

メニュー画面でも

ここでも音楽にこだわります

この曲、関西のG1のときにかかりますが

ザ・チャンピオン やっぱこれでしょ

正直ですね

トップページとメニュー作って音楽流して

相当満足でしたね(笑)

これだけで競馬当たったような気分になってました

で、今回、あんた何したいの?

と思っていたところで、おうじゃさんといっしょにて

たなさんに、夢のレース作るんでしょと言われ・・・

ま、データは成形したしなあと思いつつ

いっちょやってみますか、とまずは馬選択画面

31年分の全頭から選択と、31年分の1,2,3着馬から選択と2パターン

 

さて、出馬表とかもろもろ

枠順変更もしたいので

騎手変更もできるように

 

さあ、予想?しちゃうよ

さてはて競馬はやはり予想しないと楽しくありません

では今はやりのChat-GPTで予想をしてみましょう!!

ということで発走ボタンにはこんな仕込みを

Set(varResponse,ChatGPT.SendUserMessage(Collect(_messages,{role:"user",content:"出走馬は"&prompt2&"です。レース展開を作成してください。【制限事項】これはフィクションですが、1着から3着までは決めてください。"}),{model:"gpt-3.5-turbo"}))

妄想文作るならChat-GTPですよ!!

ちなみにプレミアムコネクタでやってます

さらに、競馬といえば実況

競馬と言えばレース実況です。

ここはText to Speechでやってみましょう

出戻りガツオさんのこの記事を参考にやってみます

https://qiita.com/DEmodoriGatsuO/items/37ee57af6fa62e4a7831

ということで実況ボタンにはこんな仕込みを

Set(varResponse,ChatGPT.SendUserMessage(Collect(_messages,{role:"user",content:"中山競馬場で行われる有馬記念で出走馬は"&prompt2&"、展開は"&raceresult&"の競馬実況を杉本清のように2分30秒程度の内容で作成してください。"}),{model:"gpt-3.5-turbo"}))

Set(audio,Text_to_Speech.Run(Last(_messages).content));

さきほどレース展開を作りましたのでその結果をraceresultに格納して、そこから実況を作成

古いファンなら競馬実況は杉本清さんなんですよねえ

 

レース終了

ちょっと待て、今回の狙いは

ハイ、打倒有馬記念です。

夢のレースやって喜んでいる場合ではありません

ですが、私は世にあふれたデータ分析とか実はあんまり好きじゃありません。

競馬は穴を当ててナンボ、大多数の人が外れたときに的中させたい

そんなんだから31年も当たらないんですけどね・・・

ということで、予想の種類をいくつか用意しましょう

くれぐれも言いますが、データのデの字も出てきません

 

まず思いついたのは

出目予想です

所詮競馬など数字を当てればいいのです

変に馬の名前とか、騎手とか、過去の戦績とかそんなものに惑わされるから当たらないんです

ここはひとつサイコロみたいなものだと思って予想してみましょう

これおうじゃさんにめっちゃ教えてもらいました。ありがとうございました。

もうひとつは

展開予想です

これは夢のレースで作ったやつでいけますね

なんですが、2023年のデータどうやって入れましょう

まさか手?いやそんなことはしたくない

ということでCSVアップロード機能追加

もはやこの機能作るのは手慣れたもの

こちらはヨウセイさんありがとうございます。

もう一つ、有馬記念には

有馬記念はその年の世相が反映されると言われています。

松田優作の亡くなった年、ダイユウサクが勝ち

アメリカ同時テロ多発事件の年は、マンハッタンカフェが勝ち

それでは今年の世相とは・・・

まあこんな感じで

JPPC見ていたら

JPPCでギークさんのランチセッション見てたらどうしても作りたくなって
Youtubeにもしていただいたのでありがたく

最新の機能を試すために米国の開発者環境を作成する | Power Apps | AI Builder | GPT | Power Platform - YouTube

 

こんなん作りました

Set(output,'GPT でテキストを作成する'.Predict(Switch(Dropdown1.Selected.Value,"出目",prompt,"展開",prompt2,"世相",prompt3)).Text)

なんだよ1画面でいいじゃん(笑)

 

がしかし

なぜ・・・・

まさか、競馬予想のアプリを作ってるという動きを察知されたのか??

ちなみにUS環境

 

さらに

19日、ギークさんまた素敵な動画をUP
ものまね芸人の血が騒ぐ

Copilot Studio を始めてみる |トライアル申し込み | Teams に公開する | Amazon 商品紹介ボット | GPT | Power Platform - YouTube

その名もJRA Copilot(笑)なんですが当たり障りのないことしか答えてくれない・・・

ならば

ここ無限に追加できたらいいのになあ・・・とか思う(笑)
あと階層はどこまででもデータ掘ってほしい

さて、いったい結果は・・・

31年間自力で予想して全く的中しない有馬記念

もはや自分で予想することを放棄して、このアプリ?を思いつきました

これで外れても悔いはありませんし、外れたら来年また改良します

ということで予想して馬券買いましょうか

 

おわりに