Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
romajip: 日本の住所CSVデータを活用した英語住所変換ライブラリを作った話
Search
sangun kang
November 22, 2024
Programming
3.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
romajip: 日本の住所CSVデータを活用した英語住所変換ライブラリを作った話
https://jsconf.jp/2024/talk/kang-sangun/
sangun kang
November 22, 2024
More Decks by sangun kang
See All by sangun kang
AIは無限にレビューを書く。 俺の脳みそは1個しかない
sangunkang
0
47
ペパボ ホスティング事業部のブラウザレンダリング基本知識 2022 / Browser Rendering Basics of pepabo hosting division
sangunkang
0
10k
Other Decks in Programming
See All in Programming
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
410
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
Are APIs Still Relevant in the AI Era?
soyuka
0
380
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
170
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
310
setup-vp GitLab対応の裏側
naokihaba
0
140
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
510
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
190
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
280
App Intentsのビルドプロセスを支える技術
kntkymt
0
480
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
610
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
1k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Code Review Best Practice
trishagee
74
20k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
Typedesign – Prime Four
hannesfritz
42
3.2k
How GitHub (no longer) Works
holman
316
150k
What's in a price? How to price your products and services
michaelherold
247
13k
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
romajip 📮 日本の住所データを活用した英語住所変換ライブラリを作った話 2024-11-23 / JSConfJP / Sangun Kang
姜 相雲(カン サンウン) / 韓国 日本6年目 / GMOペパボ
もくじ • 「romajip」ってなに? • 巨大な住所の世界へ ◦ こだわり ◦ 苦労した部分 •
今後やること
「romajip」ってなに? 普段の英語住所を検索する方法
「romajip」ってなに? https://romajip-demo.vercel.app/ 郵便番号を使わず、 「日本語住所」を「英語住所」に変換するライブラリ
• WHOISで必要な英語住所情報入力 を簡単にしたい • リポジトリだけ作って1年放置 • お盆休みで作った ムームードメイン 「romajip」ってなに?
巨大な住所の世界へ
都道府県: 43 市区町村: 1,714 町名: めっちゃ多い romajiでは小字は除外 巨大な住所の世界へ
巨大な住所の世界へ 日本の住所マスタは郵便局とデジタル庁がCSVで提供 郵便番号ベースの郵便局 もっと具体的な住所を集めたデジタル庁
巨大な住所の世界へ 一般的には郵便局の住所を利用
巨大な住所の世界へ 「romajip」はデジタル庁のデータを利用 目的は「日本語」住所を「英語」に変換
こだわり
巨大な住所の世界へ - こだわり 男は数字に 頼らない 郵便番号を使わないと決心 → 郵便番号使った方が圧倒的に楽 → 「日本語」を使うパタンがない
→ データセットの設計、処理に苦労 設定Zero,すぐ使えるOSSを目指す → デカいCSVを必要な情報だけ最適化して ライブラリのバンドルに含める その結果。。
巨大な住所の世界へ - こだわり ユーティル系ライブラリとして許せないサイズ
苦労した部分
• 標準化されてそうで そうでもない各自の住所 • 日本橋と日本橋 • 志布志市志布志町志布志 • 兵庫県南あわじ市市市 巨大な住所の世界へ
- 苦労した部分
巨大な住所の世界へ - 苦労した部分 • 初期は行政区画の基準にデータ セットを生成 • 日本語住所もそれを基準にSplit • 探せないケース多い
• 地域によって少し違う
巨大な住所の世界へ - 苦労した部分 • 初期のデータセットを捨てる • 各地域の関係性を単純に 上位Treeと下位Treeに変更 • split
-> Longest Match
事前に用意されたデータセットを基準に 日本語住所を「longest match」し、下 位Nodeが無くなるまで繰り返す 住所のデータセットは 日本語 : 英語 形 式のオブジェクトになる
「Longest Match」とは? 入力文字列の先頭から、一番長く一致する部分を探す手法 例えば「福岡県福岡市中央区」の場合: 1. 最上位Nodeでは「福岡県」が一致する -> 「Fukuoka-ken」を返す 2. 下位Nodeでは「福岡市」が一致する -> 「Fukuoka-shi」を返す 3. 下位Nodeでは「中央区」が一致する -> 「chuo-ku」を返す これにより、市市(イチシ)のように行政区画名が入る地名も安全に検索ができる 巨大な住所の世界へ - 苦労した部分
巨大な住所の世界へ - 苦労した部分 デジタル庁の でマスタデータは150MB
• 必要情報だけ抽出 • 小字を消す ◦ 字は住所体系から廃止 • 「町、村」など接尾辞を略語にする ◦ 処理で担保
◦ 塵を集めて大山を作る(5MB程度) 巨大な住所の世界へ - 苦労した部分
今後やること • バンドルサイズを縮小 ◦ データセットが4MB ◦ ビルドのやり方を改善 • 郡、市から検索できるように ◦
都道府県は省略するケースが多い • いろんな読み方に対応
📮ありがとうございました 📮 github.com/Sangun-Kang/romajip x.com/ksu_302