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
顔文字を3万個集める技術/kaomoji_over_30_thousand
Search
color_box
June 08, 2019
Technology
1
2.3k
顔文字を3万個集める技術/kaomoji_over_30_thousand
顔文字を集める話をしました。
名古屋Ruby会議04で使用したスライドです。
color_box
June 08, 2019
Tweet
Share
More Decks by color_box
See All by color_box
バグから生まれたgem太郎
colorbox
0
150
108-days-project
colorbox
1
1.4k
永和システムマネジメントのご紹介/introducing esm
colorbox
0
490
Kataの作り方 / how to make Kata
colorbox
3
490
『esmメンバーの関心事_開発手法と開発環境編』/esm_member_concern.pdf
colorbox
0
480
2018オブラブカレンダー配布会
colorbox
0
1.2k
関数型言語と私/function-and-me
colorbox
0
250
1人開発体制からチーム開発体制移行時にやることやったこと+α
colorbox
0
1.1k
Other Decks in Technology
See All in Technology
Agile Leadership Summit Keynote 2026
m_seki
1
650
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
Cosmos World Foundation Model Platform for Physical AI
takmin
0
940
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
240
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
350
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
450
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
77
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Language of Interfaces
destraynor
162
26k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
320
AI: The stuff that nobody shows you
jnunemaker
PRO
2
260
Agile that works and the tools we love
rasmusluckow
331
21k
Transcript
6/8/2019 Slides localhost:10000/?print-pdf#/ 1/31 顔文字を 顔文字を 3万個集める技術 3万個集める技術 永和亭 色箱
@color_box
6/8/2019 Slides localhost:10000/?print-pdf#/ 2/31 気をつけよう 気をつけよう 夏の暑さと 夏の暑さと 並列処理 並列処理
色箱
6/8/2019 Slides localhost:10000/?print-pdf#/ 3/31 集めた顔文字 集めた顔文字
6/8/2019 Slides localhost:10000/?print-pdf#/ 4/31
6/8/2019 Slides localhost:10000/?print-pdf#/ 5/31 動機 動機 知らないもののことを知りたいし集めたい 収集用のアプリ作成がおもしろそう
6/8/2019 Slides localhost:10000/?print-pdf#/ 6/31 結果 結果 約60万の顔文字を収集完了 約60万の顔文字を収集完了 ノイズ、重複除去で5%程度残ると推定 ノイズ、重複除去で5%程度残ると推定
6/8/2019 Slides localhost:10000/?print-pdf#/ 7/31 約3万 約3万 の顔文字を収集 の顔文字を収集 (・3・)b
6/8/2019 Slides localhost:10000/?print-pdf#/ 8/31 集め方 集め方 1. ツイートを集める 2. ツイートから顔文字を抽出する
( ‘ᾥ’ )シンプル
6/8/2019 Slides localhost:10000/?print-pdf#/ 9/31 Twitter Twitterからツイートを集める からツイートを集める
6/8/2019 Slides localhost:10000/?print-pdf#/ 10/31 ユーザーの収集 ユーザーの収集 顔文字紹介アカウントのフォロワー 顔文字紹介アカウントのフォロワー 顔文字使用頻度の高いアカウントのフォロワー 顔文字使用頻度の高いアカウントのフォロワー
顔文字利用者を中心にユーザー収集 ツイートに顔文字が現れる確率が高そう
6/8/2019 Slides localhost:10000/?print-pdf#/ 11/31 ユーザーからツイート収集 ユーザーからツイート収集 Twitter APIの制約を守りつつ収集用のtaskを回す Parallel gem
で並列高速化 ( ^ω^ 三 ^ω^ )ヒュンヒュン
6/8/2019 Slides localhost:10000/?print-pdf#/ 12/31
6/8/2019 Slides localhost:10000/?print-pdf#/ 13/31
6/8/2019 Slides localhost:10000/?print-pdf#/ 14/31 暑さと並列実行にCPUがやられ 暑さと並列実行にCPUがやられ る る 全CPUを並列実行で酷使すると 電源につないでいてもMBPのバッテリーが減る
( ᾥ )
6/8/2019 Slides localhost:10000/?print-pdf#/ 15/31 データが吹っ飛ぶ データが吹っ飛ぶ CPUを酷使したせいかmacが吹っ飛ぶ ついでにSQLiteも吹っ飛ぶ バックアップは大事 \(^o^)/オワタ
6/8/2019 Slides localhost:10000/?print-pdf#/ 16/31 ツイートから顔文字を抽出 ツイートから顔文字を抽出
6/8/2019 Slides localhost:10000/?print-pdf#/ 17/31 難航 難航 顔文字の定義が曖昧 適切な抽出ルールづくりが難しい
6/8/2019 Slides localhost:10000/?print-pdf#/ 18/31 顔文字に関する論文 顔文字に関する論文 ググって見つけた論文を元にルール作成 Unicodeプロパティによる判別 完璧ではないのでノイズフィルタが必要
6/8/2019 Slides localhost:10000/?print-pdf#/ 19/31 抽出ロジックはgem化 colobox/kaomoji
6/8/2019 Slides localhost:10000/?print-pdf#/ 20/31 Usage Kaomoji.get_kaomoji_parts('(・3・)\(^o^)/ぷにう') =>["(・3・)\(^o^)/"]
6/8/2019 Slides localhost:10000/?print-pdf#/ 21/31 フィルタ成功例 str = "聴きながら歌うから(*˘ᗜ˘*).。.:*" Kaomoji.get_kaomoji_parts(str) =>["(*˘ᗜ˘*).。.:*"]
str = "失敗しました_(:3 」∠)_ ハルかわいい(」’ω’)」オォオォオ!!!ウウゥゥアアォオ!! Kaomoji.get_kaomoji_parts(str) =>["_(:3 」∠)_ ハル", "(」’ω’)」オォオォオ!!!ウウゥゥアアォオ!!!!!!"]
6/8/2019 Slides localhost:10000/?print-pdf#/ 22/31 フィルタ失敗例 str = "ザ・下町!!という感じが伝わってきました(≧∀≦)" Kaomoji.get_kaomoji_parts(str) =>["ザ・下町!!",
"(≧∀≦)"] str = "それは強いですが、また、悩ましいですね" Kaomoji.get_kaomoji_parts(str) =>["、また、"] str = "中高は行って良かったと思ってる(適当)" Kaomoji.get_kaomoji_parts(str) =>["(適当)"]
6/8/2019 Slides localhost:10000/?print-pdf#/ 23/31 ノイズデータのフィルタ ノイズデータのフィルタ カッコが含まれていない 改行コードが含まれる 明らかにURLの一部 文字列長が極端に短い
などの条件でフィルタ 顔文字の確度を上げる
6/8/2019 Slides localhost:10000/?print-pdf#/ 24/31 集めたデータ数 集めたデータ数
6/8/2019 Slides localhost:10000/?print-pdf#/ 25/31 ユーザー数 ユーザー数 19,000 19,000
6/8/2019 Slides localhost:10000/?print-pdf#/ 26/31 ツイート数 ツイート数 40,000,000 40,000,000
6/8/2019 Slides localhost:10000/?print-pdf#/ 27/31 抽出した顔文字 抽出した顔文字 11,000,000 11,000,000
6/8/2019 Slides localhost:10000/?print-pdf#/ 28/31 フィルタにより選別された数 フィルタにより選別された数 630,000 630,000
6/8/2019 Slides localhost:10000/?print-pdf#/ 29/31 顔文字数 顔文字数 重複、ノイズを除いておおよそ 30,000 30,000 ─=≡Σ(((
╹ω╹)
6/8/2019 Slides localhost:10000/?print-pdf#/ 30/31 今後 今後 フィルタリングの確度向上 顔文字カタログでも作って公開(するかも)
6/8/2019 Slides localhost:10000/?print-pdf#/ 31/31 まとめ まとめ 大量データ収集楽しい 大量データ収集楽しい L('ω')┘三└('ω')」 L('ω')┘三└('ω')」
古いものには研究と論文があ 古いものには研究と論文があ り、読むと捗る り、読むと捗る 気をつけよう 夏の暑さと 並列 気をつけよう 夏の暑さと 並列 処理 処理