geolonia/normalize-japanese-addresses

愛知県豊田市西丹波町三五十の解析に失敗する

Closed this issue · 6 comments

'The attribute of kanji2number() must be a Japanese numeral as integer.'エラーが発生します。
原因は小字である三五十を漢数字として解析しようとしているためで、三五〇でも三百五十でもないので不正な漢数字となります。

kan2num.tsを以下のようにして、解析できない漢数字は無視するようにすれば、とりあえず処理できます。
`
import { kanji2number, findKanjiNumbers } from '@geolonia/japanese-numeral'

export const kan2num = (string: string) => {
const kanjiNumbers = findKanjiNumbers(string)
for (let i = 0; i < kanjiNumbers.length; i++) {
try {
// @ts-ignore
string = string.replace(kanjiNumbers[i], kanji2number(kanjiNumbers[i]));
} catch (error) {
// ignore
}
}

return string
}
`

@mimidesunya こんにちは。 Issue の報告をいただきありがとうございます。そして返信まで長い時間がかかってしまい申し訳ありませんでした。
いただいているコードサンプルの通り、解析できなかった小字相当の部分はそのまま結果として返却されるのが挙動として好ましいように思えます。

もしお時間やご興味がありましたら、この try catch の追加をプルリクエストにしていただくことできますでしょうか?(私の方で取り込む形でも問題ありません!)

検証用のテストがすでに作られていて、 issue-215-fix-japanesee-numeral というブランチからプルリクエストを作ると、今回のケースに対するテストも実行されるようになっています。

なお、 #144 でも同様のケースが報告されていて、@mimidesunya さんのおかげでこちらの issue にも同時に対応できそうです。ありがとうございます!

issue-215-fix-japanesee-numeral にpushしようとしたら、権限がないと言われてしまいましたニャ
アクセスを許可して下さいニャ

@mimidesunya あ、分かりづらくて申し訳ありません、直接コミットではなく、いったんフォークしていただけると助かります 🙇

  1. normalize-japanese-addresses のリポジトリをフォークする
  2. try..catch.. の修正コミットを作成
  3. 2. から issue-215-fix-japanesee-numeral のブランチに対してプルリクエストを作成、または issue-215-fix-japanesee-numeral2. にマージした上でプルリクエストを master ブランチに対して作成

このような形でいけるかと思うのですが、いかがでしょうか・・?

ありがとうニャ
初めてプルリクエストしてみましたニャ

@mimidesunya ありがとうございます、うまくいきました!#225 -> #221 -> master という流れで取り込みました 🙇

@mimidesunya リリースを行い、新しいバージョン 2.9.2 では 愛知県豊田市西丹波町三五十 などの住所がクラッシュせずに分析できるようになりました。以下のデモサイトなどでもご確認いただけます!

https://codepen.io/geolonia/pen/oNBrqzL
スクリーンショット 2023-09-07 9 29 35

この度はプルリクエストを送っていただきありがとうございました!
また何かありましたらせひお気軽にお声がけください。