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
sbt 2.0: takeoff
eed3si9n
0
170
AWSに止められる覚悟してますか?
morizo_1984
2
540
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
740
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
450
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
200
ActionController meets Protocol Buffers
sorah
0
670
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
contenteditable と日本語入力に向き合う
colorful12
0
210
最近”作らせてる” ローカルAIアプリの話
akit37
0
490
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
860
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Scaling GitHub
holman
464
140k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Music & Morning Musume
bryan
48
7.4k
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