digital-go-jp / abr-geocoder

Address Base Registry Geocoder by digital.go.jp
https://lp.geocoder.address-br.digital.go.jp/
MIT License
64 stars 24 forks source link

二分ダッシュへの対応 #131

Closed koswatana closed 3 weeks ago

koswatana commented 3 months ago

ハイフンの揺らぎ

root@3ea8f2dbdcfd:/workspaces/abr-geocoder# cat test.txt
東京都千代田区紀尾井町1-3 半角ハイフン
東京都千代田区紀尾井町1-3 全角ハイフンマイナス
東京都千代田区紀尾井町1-3 半角ハイフンマイナス
東京都千代田区紀尾井町1−3 全角マイナス
東京都千代田区紀尾井町1‒3 フィギュアーダッシュ
東京都千代田区紀尾井町1– 3 二分ダッシュ
東京都千代田区紀尾井町1—3 全角ダッシュ
東京都千代田区紀尾井町1─3 罫線
東京都千代田区紀尾井町1━3 罫線(太)
東京都千代田区紀尾井町1一3 漢数字いち
東京都千代田区紀尾井町1―3 ホリゾンタルバー
東京都千代田区紀尾井町1ー3 全角長音
東京都千代田区紀尾井町1ー3 半角長音

過去のissue

https://github.com/digital-go-jp/abr-geocoder/issues/44

v1.1 で対応したはず? 漢数字のは対応が難しいため今回のissueでも対応する必要はない

実装箇所

https://github.com/digital-go-jp/abr-geocoder/blob/main/src/config/constant-values.ts#L24-L44

wf9a5m75 commented 3 months ago

"1一3 漢数字いち"

は 113として認識しているはずです。 それはバグではないです

koswatana commented 3 months ago

漢数字いち のケースは、OCRなどで機械可読した場合に1−3(いち+はいふん+さん)を1一3(いち+かんすうじいち+さん)と誤読した場合に対応したいという意図です。 しかし113を表すものとして一一三(かんすうじいち+かんすうじいち+かんすうじさん)という入力ケースが正しい場合も考えられるため、本issueでは二分ダッシュのみの対応とします。

ちなみに現在は113ではなく1一3(いち+かんすうじいち+さん)と出力されています。 これは特に変更する必要はないです。

root@3ea8f2dbdcfd:/workspaces/abr-geocoder# abrg ./test.txt -f csv | cut -d, -f1,2,3,4,5 
input,output,other,score,match_level
"東京都千代田区紀尾井町1-3 半角ハイフン","東京都千代田区紀尾井町1-3 半角ハイフン"," 半角ハイフン",1,residential_detail
"東京都千代田区紀尾井町1-3 全角ハイフンマイナス","東京都千代田区紀尾井町1-3 全角ハイフンマイナス"," 全角ハイフンマイナス",0.96,residential_detail
"東京都千代田区紀尾井町1-3 半角ハイフンマイナス","東京都千代田区紀尾井町1-3 半角ハイフンマイナス"," 半角ハイフンマイナス",1,residential_detail
"東京都千代田区紀尾井町1−3 全角マイナス","東京都千代田区紀尾井町1-3 全角マイナス"," 全角マイナス",0.96,residential_detail
"東京都千代田区紀尾井町1‒3 フィギュアーダッシュ","東京都千代田区紀尾井町1-3 フィギュアーダッシュ"," フィギュアーダッシュ",0.96,residential_detail
"東京都千代田区紀尾井町1– 3 二分ダッシュ","東京都千代田区紀尾井町1- 3 二分ダッシュ","- 3 二分ダッシュ",0.96,residential_block
"東京都千代田区紀尾井町1—3 全角ダッシュ","東京都千代田区紀尾井町1-3 全角ダッシュ"," 全角ダッシュ",0.96,residential_detail
"東京都千代田区紀尾井町1─3 罫線","東京都千代田区紀尾井町1-3 罫線"," 罫線",0.95,residential_detail
"東京都千代田区紀尾井町1━3 罫線(太)","東京都千代田区紀尾井町1-3 罫線(太)"," 罫線(太)",0.95,residential_detail
"東京都千代田区紀尾井町1一3 漢数字いち","東京都千代田区紀尾井町1一3 漢数字いち","1一3 漢数字いち",1,machiaza_detail
"東京都千代田区紀尾井町1―3 ホリゾンタルバー","東京都千代田区紀尾井町1-3 ホリゾンタルバー"," ホリゾンタルバー",0.96,residential_detail
"東京都千代田区紀尾井町1ー3 全角長音","東京都千代田区紀尾井町1-3 全角長音"," 全角長音",0.95,residential_detail
"東京都千代田区紀尾井町1ー3 半角長音","東京都千代田区紀尾井町1-3 半角長音"," 半角長音",0.95,residential_detail
wf9a5m75 commented 3 months ago

はい、 113 は内部的な認識です。

東京都千代田区紀尾井町1一3 漢数字いち は、内部的には 東京都千代田区紀尾井町113 漢数字いち として取扱っています

maskatsum commented 3 months ago

本issueでは二分ダッシュのみ

了解です

maskatsum commented 3 months ago

はっきりとは覚えてないですが、二分ダッシュは何か問題があって外した記憶があります。マッチングが期待通りにならなくて、調べたら二分ダッシュだったと思う。

koswatana commented 2 months ago

コード的には二分ダッシュ入ってませんか? https://github.com/digital-go-jp/abr-geocoder/blob/main/src/config/constant-values.ts#L30

wf9a5m75 commented 2 months ago

入っているけど対応が出来ていないことが問題ですね

wf9a5m75 commented 2 months ago

正規表現を使っているのが問題で、使わない形に書き換える

maskatsum commented 3 weeks ago

対応済み https://github.com/digital-go-jp/abr-geocoder/blob/ed342fa/e2e/test-data/issue131/expects.json