一部のレコードで「市区町村名ローマ字」フィールドが途切れている
kidmin opened this issue · 4 comments
バグの内容
- latest.csv (commit 28b071d) の一部のレコードで、市区町村名ローマ字フィールドが途切れている
- 福島県東白川郡矢祭町の「市区町村名ローマ字」フィールドで、「町」のローマ字読み「MACHI」が途切れて「MACH」になっている
- 山梨県西八代郡市川三郷町の「市区町村名ローマ字」フィールドに、「町」のローマ字読み「CHO」がない
- 山梨県南都留郡富士河口湖町の「市区町村名ローマ字」フィールドで、「町」のローマ字読み「MACHI」が途切れて「MAC」になっている
- 大阪府南河内郡千早赤阪村の「市区町村名ローマ字」フィールドで、「村」のローマ字読み「MURA」が途切れて「MU」になっている
再現手順
- latest.csv をダウンロードする
- latest.csv を開き、山梨県西八代郡市川三郷町のデータを確認すると、以下のように「市区町村名ローマ字」フィールド末尾に「町」のローマ字読み「CHO」が含まれていない
"19","山梨県","ヤマナシケン","YAMANASHI KEN","19346","西八代郡市川三郷町","ニシヤツシログンイチカワミサトチョウ","NISHIYATSUSHIRO GUN ICHIKAWAMISATO","岩下","イワシタ","IWASHITA",,35.492897,138.483474
本来どう動作すべきか
- 「市区町村名ローマ字」フィールドには読みが途切れずに入っている
- 上記の例では
"NISHIYATSUSHIRO GUN ICHIKAWAMISATO CHO"
- 上記の例では
スクリーンショット(オプション)
(なし)
参考情報(オプション)
データが欠けている原因
元データである 住所の郵便番号(ローマ字)(CSV 形式) を郵便局 Web サイトからダウンロードして確認したところ、同じように途切れていることが分かりました。これは、 郵便番号データ(ローマ字)の説明 ページの「留意点」に記載されている通り、半角フィールド長の上限 35 文字を超えてしまっているためです。
この上限を超えているのは現時点では上記の 4 パターンで、途切れている・完全に欠落しているのは全て市区町村区分の読み(MACHI / CHO / MURA)でした。latest.csv を利用する側で「市区町村名カナ」フィールドの読みから復元することも可能ですが、できれば latest.csv の段階で修正されていると便利だと思います。
修正案1: 「市区町村名カナ」フィールドの読みから復元する
欠けるのは「市区町村名ローマ字」フィールド末尾にある市区町村区分の読みに限るという前提を置くと、次の方法が考えられる。
- 下記の市区町村区分マップを定義する
CITY_SUFFIXES = {
'CHO': 'チョウ',
'KU': 'ク',
'MACHI': 'マチ',
'MURA': 'ムラ',
'SHI': 'シ',
'SON': 'ソン',
}
- 「市区町村名ローマ字」フィールドを
' '
で区切る - 区切った最後が上記マップの key にマッチした場合は補完の必要なし
- 区切った最後が上記マップの key にマッチしない場合は、「市区町村名カナ」フィールドが上記マップの value で終わる要素を探し、区切った要素数に応じて該当する key を使って補完・追加する
あるいは、「市区町村名ローマ字」フィールドのソースとして 住所の郵便番号(ローマ字)(CSV 形式) の情報を使わず、 ローマ字変換仕様 に基づいて「市区町村名カナ」フィールドから生成する。この方法であれば、現時点で存在するものよりも更に長い読みの市区町村名が現れて、市区町村区分よりも前が欠けてしまう状態になっても復元できる。
修正案2: 個別にパッチする
patches/
ディレクトリに上記 4 町村(計 63 レコード)をパッチの形で収録する。
修正案3: ドキュメントに制限事項として記載する
元データの段階で欠落しているため、制限事項としてドキュメントに「市区町村名ローマ字」フィールドは欠けている可能性があることを記載する。
@champierre ご対応ありがとうございます。 #123 拝見しました。
修正が反映されたlatest.csvは、コミット 0258621 で正しいでしょうか。
福島県東白川郡矢祭町と大阪府南河内郡千早赤阪村について、欠けているレコードと修正されたレコードの両方がCSVファイルに出力されてしまっているようです。
86813行目
"07","福島県","フクシマケン","FUKUSHIMA KEN","07482","東白川郡矢祭町","ヒガシシラカワグンヤマツリマチ","HIGASHISHIRAKAWA GUN YAMATSURI MACHI","大字上関河内",,,,36.828769,140.457963
86828行目
"07","福島県","フクシマケン","FUKUSHIMA KEN","07482","東白川郡矢祭町","ヒガシシラカワグンヤマツリマチ","HIGASHISHIRAKAWA GUN YAMATSURI MACH","大字上関河内",,,,36.828769,140.457963
222618行目
"27","大阪府","オオサカフ","OSAKA FU","27383","南河内郡千早赤阪村","ミナミカワチグンチハヤアカサカムラ","MINAMIKAWACHI GUN CHIHAYAAKASAKA MURA","大字吉年",,,,34.447272,135.615964
222628行目
"27","大阪府","オオサカフ","OSAKA FU","27383","南河内郡千早赤阪村","ミナミカワチグンチハヤアカサカムラ","MINAMIKAWACHI GUN CHIHAYAAKASAKA MU","大字吉年",,,,34.447272,135.615964
@champierre #129 確認しました。修正いただきありがとうございました!