0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ユーザーが入力した住所と、基幹システムが保持している住所マスタをベクトル検索とLLMを使って突合する

Posted at

要件

ユーザーが入力した住所と、基幹システムが保持している16,000件の住所マスタから一致する住所を特定する。

住所の例

利用者入力 マスター住所1 マスター住所2
桜町123ー5サンライズAー101 桜町123−5 サンライズ A棟101
花山町45ー3スカイヒルズB202 花山町45−3 スカイヒルズ B202
虹ヶ丘2ー7-12パークサイドレジデンス3-204 虹ヶ丘二丁目7−12 パークサイドレジデンスⅢ−204
青空町456ー1シティビルメゾンII202 青空町456−1 シティビルメゾン Ⅱ−202
若葉町1234ー56グランドヒルズ101号室 若葉町1234−56 グランドヒルズ 101号室
湖山台3丁目890番地ファミールヴィラD202 湖山台三丁目890 ファミールヴィラ D202

難しい点

人間が読めばわかりますが、プログラミング単体で正規化しマッチングさせるのは困難でした。

  • 表記揺れの処理
    • 全角・半角や漢数字と算用数字の混在
    • 「1丁目」や「一丁目」など
  • 曖昧な建物名・号室表記
  • 地名のスペースの有無
  • 番地や丁目の位置の違い

ベクトル検索とリランカーで検証

  1. マスタ住所を intfloat/multilingual-e5-large を使ってエンベディングし、ユーザーが入力した住所を使って、ベクトル検索エンジンで類似検索を行い、候補リストを50件取得。
  2. リランカーとして、hotchpotch/japanese-reranker-cross-encoder-large-v1 を使って50件のデータから最も類似度の高い1件を抽出
  3. 一致したかを確認

結果

申請合計数 住所一致 住所不一致 住所一致率
509件 428件 81件 84.08%

惜しい点

かなり高い一致率だったが、部屋番号を間違えて引っ張ってくる例が散見された。

ユーザー入力 正しいマスター住所 検索結果(誤った部屋番号)
桜町123ー5サンライズAー101 桜町123−5 サンライズA棟101 桜町123−5 サンライズA棟102
花山町45ー3スカイヒルズB202 花山町45−3 スカイヒルズB202 花山町45−3 スカイヒルズB201
虹ヶ丘2ー7-12パークサイドレジデンス3-204 虹ヶ丘二丁目7−12 パークサイドレジデンスⅢ−204 虹ヶ丘二丁目7−12 パークサイドレジデンスⅢ−203
青空町456ー1シティビルメゾンII202 青空町456−1 シティビルメゾンⅡ−202 青空町456−1 シティビルメゾンⅡ−201
湖山台3丁目890番地ファミールヴィラD202 湖山台三丁目890 ファミールヴィラD202 湖山台三丁目890 ファミールヴィラD201

ベクトル検索とLLMの組み合わせで検証

次に、リランカーは使用せずにベクトル検索エンジンから取得した候補50件をLLMに渡して、LLMに最も一致している住所を選択させる形で検証した。

結果

gpt4o-mini

申請合計数 住所一致 住所不一致 住所一致率
509件 449件 60件 88.24%

gpt4o

申請合計数 住所一致 住所不一致 住所一致率
509件 480件 29件 94.30%

結論

住所マッチングにおいては、リランカーよりもgpt4oの方が精度が高かったが当然コストが高くなるため、運用においてはどの程度の一致率で是とするかは要検討。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?