Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
何の画像か当てちゃるBot紹介/image_guess_bot
Search
ふわせぐ
April 11, 2022
Programming
0
120
何の画像か当てちゃるBot紹介/image_guess_bot
大学3年のときに開発したBotの紹介スライドです
ふわせぐ
April 11, 2022
Tweet
Share
More Decks by ふわせぐ
See All by ふわせぐ
object-oriented-conference-2024
fuwasegu
13
3.7k
proud of my organization LT
fuwasegu
1
260
Qiita Night PHP 2023
fuwasegu
0
13k
php conference okinawa 2022
fuwasegu
0
1.4k
QiitaConference2022
fuwasegu
1
1.1k
sleepagotchi
fuwasegu
2
2.5k
新卒 Laravel 初心者が成長していく中で 感じたコレジャナイ感/PHPerKaigi 2022
fuwasegu
8
12k
入社初日に社内サービスを全部一人で引き継いだ新卒フルサイクルエンジニアの話
fuwasegu
4
5.7k
Other Decks in Programming
See All in Programming
Deep Dive into React Stream/Serialize
mugi_uno
4
840
Sheets API使ってみた
toshi0383
2
180
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.1k
An adventure of Happy Eyeballs
coe401_
0
110
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
400
戦略的DDDは重いのか? / Is strategic DDD heavy?
pictiny
3
1.8k
Apache Hive 4 on Treasure Data
ryukobayashi
1
470
ソースコードを美しくたもつために ~コードレビューの認知限界を突破し、年間400リリースを達成する~
kotauchisunsun
1
140
TypeScriptの型とパフォーマンス (TSKaigi 2024)
ypresto
13
3.9k
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
690
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
580
RustでAWS Lambda functionをいい感じに書く
taiki45
2
130
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Faster Mobile Websites
deanohume
300
30k
Building Effective Engineering Teams - LeadDev
addyosmani
33
1.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Bash Introduction
62gerente
605
210k
Writing Fast Ruby
sferik
622
60k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Automating Front-end Workflow
addyosmani
1357
200k
Optimizing for Happiness
mojombo
370
69k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Transcript
何の画像か当てちゃるbot 開発作品紹介 発表者:静岡⼤学情報学部情報科学科3年 ⽵下拓秀
⾃⼰紹介(⼗進同好会について) メンバー ⽵下拓秀(静岡⼤学 情報学部) 友⼈K(◯◯⼤学 医学部医学科) ⼗進同好会とは 世界⼀愛されてもおかしくないプログラミング⾔語、⼗進BASICに魅せられてプログラミングを 始めた某中学校吹奏楽部OBのみが参加できる⾮常に敷居の⾼い同好会
作品概要 何の画像か当てちゃるbot botに対してリプで画像を送るとその画像が 何の画像かを考えて返してくれる。 この有名⼈誰だっけ、、、や、これって何て名前だっけ、、、 という⽇常の悩みを解決。 ちなみに⻑崎弁を操ります。
技術的な話 開発⾔語:python 使⽤API:Twitter API(Twython経由)
技術的な話 botの動き リプを発⾒ ↓ 画像URLを抽出 ↓ Google画像検索にかける ↓ 検索結果ページをスクレイピング ↓
最頻出単語を答えとして採⽤ ↓ 返信 ①
技術的な話 ①リプを発⾒ cron(⾃動実⾏するためのデーモンプロセス) により1分ごとにリプを確認。
技術的な話 botの動き リプを発⾒ ↓ 画像URLを抽出 ↓ Google画像検索にかける ↓ 検索結果ページをスクレイピング ↓
最頻出単語を答えとして採⽤ ↓ 返信 ① ②
技術的な話 ②画像URLの抽出 画像検索⽤のURLを抽出する。 Twitter APIを使⽤。
技術的な話 botの動き リプを発⾒ ↓ 画像URLを抽出 ↓ Google画像検索にかける ↓ 検索結果ページをスクレイピング ↓
最頻出単語を答えとして採⽤ ↓ 返信 ① ② ③
技術的な話 ③Google画像検索にかける requestにより検索にかける。 ※ヘッダー情報の中のUser-Agentを設定しないと検索結果を返 してくれなかったのでChromeに設定。
技術的な話 botの動き リプを発⾒ ↓ 画像URLを抽出 ↓ Google画像検索にかける ↓ 検索結果ページをスクレイピング ↓
最頻出単語を答えとして採⽤ ↓ 返信 ① ② ③ ④
技術的な話 ④検索結果ページをスクレイピング 検索結果ページのHTMLデータを正規表現を⽤いて⽇本語の部分 だけを切りだしてリストに格納。
技術的な話
技術的な話 botの動き リプを発⾒ ↓ 画像URLを抽出 ↓ Google画像検索にかける ↓ 検索結果ページをスクレイピング ↓
最頻出単語を答えとして採⽤ ↓ 返信 ① ② ③ ④ ⑤
技術的な話 ⑤最頻出単語を答えとして採⽤ リストの中の語句から、最も多く出現する単語が恐らくその画像 を説明してくれると決め打ち。
技術的な話 botの動き リプを発⾒ ↓ 画像URLを抽出 ↓ Google画像検索にかける ↓ 検索結果ページをスクレイピング ↓
最頻出単語を答えとして採⽤ ↓ 返信 ① ② ③ ④ ⑤ ⑥
技術的な話 ⑥返信 ⻑崎弁に乗せて答えを発信。
サーバーの話 常時動かすためにやっていること ★無料レンタルサーバー「XREA(エクスリア)」 pythonが使える!、、、、でも、cronが使えない! ★cron-job 定期的に指定URLにリクエストを送るサービス
これの何が画期的か ・学習していないデータも判別可能! 例えば、、、 Microsoft Azure Computer Vision APIとか 学習済みの有名⼈なら名前が出るけど、、、 底辺YouTuberの名前とか絶対出ない。
他の技術との融合 画像認識 Web スクレイピング ⾃然⾔語処理
ぜひフォロー、拡散、利⽤を。 何の画像か当てちゃるbot @namaoshi_bot
ご静聴ありがとうございました。 気が向いたらQiitaにまとめようと思います。