ワイワレ速報

eye-catch.jpg

なぜ私たちは住所正規化エンジンをRustで"再発明"したのか? - FFIによる多言語高速化と開発者体験の裏側 - Sansan Tech Blog

2025/06/21 02:25

なぜ私たちは住所正規化エンジンをRustで"再発明"したのか? - FFIによる多言語高速化と開発者体験の裏側 - Sansan Tech Blogなぜ私たちは住所正規化エンジンをRustで"再発明"したのか? - FFIによる多言語高速化と開発者体験の裏側 - Sansan Tech Blog引用元:

https://buildersbox.corp-sansan.com/entry/2025/06/20/120000

ずん

「住所データを正規化するのに、なんでRustなんて使うのだ?Pythonでよくないのだ?」

でぇじょうぶ博士

「おっと、それが大間違いでやんす。従来のPythonと比べて約50倍も高速化されたでやんす。数百万件の住所データを処理する時間が数時間から10分に短縮されたでやんす!」

やきう

「ワイ、それ聞いてビビったわ。でもなんでそんなに早くなるんや?」

でぇじょうぶ博士

「GCがないことと、コンパイラの最適化が効くからでやんす。さらにFFIを使って直接関数を呼び出すことで、ネットワークの遅延も排除できるでやんす!」

ずん

「FFIって何なのだ?」

でぇじょうぶ博士

「Foreign Function Interfaceの略でやんす。他の言語からRustの関数を直接呼べる仕組みでやんす。まるで隣の部屋の人を呼ぶような感覚でやんす!」

やきう

「でもそんな住所データ処理って、そんな難しいんか?」

でぇじょうぶ博士

「甘く見てはいけないでやんす。『一丁目』と『1-』の表記揺れ、『ケ』と『ヶ』の使い分け、市町村合併による新旧地名の混在など、日本の住所は世界でも特殊でやんす!」

ずん

「じゃあボク、『とうきょうとちよだくひとつばしいっちょうめ』って入力すれば良いのだ!」

でぇじょうぶ博士

「そんな適当な入力でも、意味的な正規化によって『東京都千代田区一ツ橋1-』に変換できるでやんす。これぞ技術の力でやんす!」

やきう

「せやけど、誤マッチせんのか?『京都市1-1』と『京都市1-2』とか」

でぇじょうぶ博士

「ご安心を。品質ゲートという仕組みがあって、番地が違う場合は絶対にマッチしないでやんす!」

ずん

「なるほど!じゃあボク、住所を『月野うさぎ、セーラームーン城1階』って書いても大丈夫なのだ?」