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
480
Kataの作り方 / how to make Kata
colorbox
3
480
『esmメンバーの関心事_開発手法と開発環境編』/esm_member_concern.pdf
colorbox
0
470
2018オブラブカレンダー配布会
colorbox
0
1.2k
関数型言語と私/function-and-me
colorbox
0
250
1人開発体制からチーム開発体制移行時にやることやったこと+α
colorbox
0
1k
Other Decks in Technology
See All in Technology
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
170
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
140
ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介
hisamouna
2
1.8k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
190
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
2
570
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
2k
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
5
2.2k
Claude Codeを使った情報整理術
knishioka
14
10k
20251222_サンフランシスコサバイバル術
ponponmikankan
2
150
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
100
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
280
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
15k
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
29
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
260
Large-scale JavaScript Application Architecture
addyosmani
515
110k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
Darren the Foodie - Storyboard
khoart
PRO
0
2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Designing for humans not robots
tammielis
254
26k
Building Applications with DynamoDB
mza
96
6.9k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
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('ω')┘三└('ω')」
古いものには研究と論文があ 古いものには研究と論文があ り、読むと捗る り、読むと捗る 気をつけよう 夏の暑さと 並列 気をつけよう 夏の暑さと 並列 処理 処理