カテゴリー
ジェネレーター

OpenAIとStreamlitを使ったAIツイート自動生成サイト with ソースコード

OpenAI GPT-3 APIを呼び出して、お題に沿った適当なツイートを生成するwebサイトが、ソースと共に公開されています。

指定するのは3つ。

Topic: 語らせたい話題
Mood: どんなムードで語らせるか (使える形容詞の一覧)
Twitterアカウント名: 既存のtwitterユーザーの最近のツイートを真似させる

Mood と twitterユーザーはオプションなので、topic だけでも何かしら作ってくれます。

例えばで以下のように入力してみました

Topic: Dropkick on my devil
Mood: dreamy, happy, relaxed, tender
Twitter: イーロン・マスク(elonmusk)

で、生成されたのがこれ

Just watched an episode of #DropkickOnMyDevil and it made me feel so relaxed and happy – it’s the perfect way to end the day 🌃✨ (邪神ちゃんドロップキックを観たとこ。とてもリラックスしてハッピーな気分になった。パーフェクトな一日の締めくくりだ)

模倣対象とムードを変えると、まったく違うツイートが出来上がってきます。

Topic: Dropkick on my devil
Mood: inspirational, thoughtful, dignified
Twitter: アメリカ大統領(potus)

Dropkick on My Devil is a reminder to never give up on our dreams and strive to make them reality – be courageous and never surrender despite all odds. (邪神ちゃんドロップキックは、我々が決して夢を諦めず、実現するために努力するよう伝えています。どんな困難があっても、勇気を持って負けてはいけません) #DropkickOnMyDevil #DreamsIntoReality #BeCourage

短文とはいえ自然な文章ですごいですね。

Python製のデータを表現するwebアプリフレームワーク Streamlitを使ったソースコードが公開されていて、各APIを呼び出しているだけとはいえコードが簡単で短いのも驚きます。

これが簡単にできてしまうとなると、日常的にいろいろなことをつぶやいているアカウントだからといって中が普通の人なのかどうか、まったくわからなくなっていくでしょうね。

via Twitter

カテゴリー
データ可視化

バスケットボール中継のハイライト動画をPythonで作る

Python で NBAハイライト動画を自動生成するという記事が面白かったのでご紹介。

ゲームをまるごと観戦する暇がない時、ハイライト動画を見て済ますスポーツファンは多いでしょう。ハイライト動画は球団やテレビ局などが編集して出してきますが、必ず見られるわけでも、自分が見たい粒度のハイライト動画が必ずあるわけでもないかもしれません。

ノーム・エフラットさん(Noam Ephrat)が自分だけのハイライト動画を自動で作るために使ったのは、Python、NBA公式のAPI、録画したゲーム動画、OCRライブラリ。

NBAのAPI(参考) では何分何秒にどちらのチームの誰がどういうプレイをして、シュートが入ったとか外れたとかいうプレイバイプレイ(play-by-play, PBP)の情報が公開されています。日付、ゲームID、ピリオド(クオーター)を指定するとJSONが返ってきます。これが一つ目の要素。

https://data.nba.net/data/10s/prod/v1/20220201/0022100784_pbp_1.json

そして、録画した動画をフレームごとに切り出して、中継中に表示されたゲーム時計の部分を OCR ライブラリの Tesseract でピリオドやゲーム時間を抽出します。これが二つ目の要素

あとは、プレイバイプレイの重要シーンの発生した時刻に合わせて、動画のフレームを切り出し、切り出したところをつなげていくと、ゲームが動いたところだけがまとまったハイライト動画を作ることができたということ。

ざっと見てみて、プレイバイプレイのデータにあるところだけだと、どうしても点が増えたシュート成功の場面が多くなるのかな、とも思いましたが、人間が編集したハイライト動画でも成功シーンが多いので気のせいかもしれません。

作ったハイライト動画を公開するのは著作権的にだめだと思いますが、個人でハイライトを作って観るのは問題なさそうでは。

自分の基準で抜き出すところを選べるからには、

  • ひいきチームの得点シーンばかりを集めたり
  • 応援する特定の選手の絡むシーンだけを集めたり
  • 点差や時間を考えて、より劇的にゲームが動いたシーンだけを集めたり(これは人が編集する時と似た結果になるかも)
  • 自分の使える時間に応じてハイライト動画の長さを指定して変えたり

など、よりパーソナライズされたハイライト動画を作れる可能性もありますね。

バスケットボールという競技が特に時計が重要で、常時正確な時刻が中継に表示されていることや、APIで提供されるゲームログにも時刻情報がふんだんに含まれているという点も、うまく自動生成にマッチしているというのもありそうですね。

カテゴリー
ネットのサービス

Load of the Codes – プログラマ向けテキストアドベンチャーゲーム(序章)

Lord Of The Codes は、RPG風の中世世界を舞台にしたテキストアドベンチャーゲーム。パズルを解くことで先へと進むゲームです。

偉大な魔術師コナルド・ドゥヌース(Konald Dnuth。どっかで聞いたような名前)と組んで迷宮を進むあなたは、物語の中に出てくるヒントから、謎を解いて入力し、正解することで先へ進むことができます。

ページにはReplitによる Python インタプリタ環境が埋め込まれていて、これを使って謎を解いても構いません。手元で他の言語で解いても、あるいは暗算(!)で解いても、正答さえ入れれば先へ進むことができます。

現在、2問答えるともうゲームは行き止まりで、メール登録フォームが案内されます。登録すると完全版が公開された際に優先で案内されるみたいです。

ずいぶん初期の段階で公開したものだな、と思いますが、反響があればこの先が作られやすいかもしれませんね。

via reddit