HeadlinesBriefing favicon HeadlinesBriefing.com

Analizando el CSV de Correos de Japón

Hacker News •
×

Hace tiempo lancé posuto, un paquete que presenta datos postales de Japón en un formato fácil de usar. Está basado en datos publicados por Japan Post, que es famoso por ser ampliamente utilizado pero difícil de analizar. Me enteré de los datos postales por primera vez cuando ingresé mi código postal en un formulario en línea y se completó automáticamente mi dirección como "XXX-borough (except the following buildings)".

No tenía idea de a qué se refería esa parte entre paréntesis, así que busqué una fuente común de datos postales, encontré el CSV y encontré el problema. Resulta que el archivo CSV contiene notas entre paréntesis para cualquier persona que lea el archivo CSV y hace referencia al orden de las filas. Esto causa problemas.

Los datos son principalmente útiles una fila a la vez, donde el contenido entre paréntesis es sin sentido. Dado que CSV es un formato delimitado por campos, no hay necesidad de usar paréntesis - podrías simplemente agregar un campo de notas. Esta es solo una de muchas problemáticas con ken_all.csv.

Puedes encontrar gente quejándose de esto regularmente en Twitter, y incluso hubo un momento en el que un blog solo recopilaba publicaciones de todo el mundo sobre este tema. Un tuit particularmente divertido describe a las personas que esperan que las computadoras se sometan a la voluntad de los humanos siendo castigadas en el Infierno por tener que analizar ken_all.csv para siempre. El README del archivo explica que las líneas con campos demasiado largos se dividirán en múltiples líneas.

Específicamente, si el nombre del vecindario supera los 38 caracteres, o si el campo de pronunciación en katakana de anchura media supera los 76 caracteres, la línea se dividirá en dos líneas. El campo de vecindario demasiado largo continuará y todos los demás campos se duplicarán. También debe notarse que aunque los límites de longitud son como se indica, la ubicación donde se insertan las interrupciones en las líneas largas parece aleatoria, ocurriendo ni en el límite de caracteres ni en los límites normales de palabras.

Vale la pena destacar que no todos los problemas con el CSV son inherentemente técnicos; los códigos postales siempre son complicados. El código postal con más filas en el CSV - un asombroso 66 - es 〒452-0961, que se refiere a la región Haruhi de la ciudad de Kiyosu en el prefecto de Aichi. Esto tiene tantas filas porque cada vecindario obtiene una línea separada.

En contraste, la línea continuada más larga, usando las reglas de división de línea anteriores, es la entrada para 〒602-8368 o 〒602-8374, ambas con ocho líneas. Ambas están en una de las pocas áreas en Kyoto que utiliza un sistema único, extraño y basado en intersecciones. Hay códigos postales comunes para muchas áreas, donde el vecindario se da como "except the following", y la única cosa que hacer es buscar esa cadena exacta y excluirla.

Hay una variedad de cadenas similares, y es difícil saber si he capturado todas. Un ejemplo de otro comentario es 一円. Normalmente esto significaría "un yen", pero también significa "el área circundante", y es una nota en el CSV que debe eliminarse de los nombres de vecindario, excepto...