Modelo y Procedimiento para Segmentar Direcciones Postales (página 2)
Enviado por Liudmila Padr�n Torres
Después de haber estudiado un conjunto de direcciones postales es posible definir algunas sustituciones simples que permitirían una normalización previa de algunas abreviaturas de prefijos o palabras características. Realizar estas sustituciones puede contribuir a que el reconocimiento posterior de los elementos de las direcciones postales en el HMM sea más efectivo.
La decisión de las sustituciones que pueden hacerse, así como el orden en que deben ocurrir está estrechamente relacionada al estudio previo realizado a las direcciones postales que se quieren segmentar. También puede decidirse no hacer sustituciones previas y dejar todo el trabajo de normalización para el final del proceso de segmentación.
Para el estudio realizado con este trabajo se proponen algunas sustituciones, en el orden expuesto:
Nota: se va a utilizar sust[l1; e2] como representación de la operación de sustituir los elementos que aparecen en la lista l1 por el elemento e2 .
1- Sustitución de los prefijos de elementos
- Abreviaturas de prefijos de Casa: sust[{"#", "No."}; "Número"]
Dentro de este elemento puede aparecer la variante "s/n" que significa sin número. Se propone hacer la sustitución de este por "SN" u otra variante que no contenga el carácter "/" ya que este se utiliza como abreviatura de Entrecalles.
- Abreviaturas de prefijos de Reparto: sust[{"R-", "Rpto","R/","Rto"}; "Reparto"]
Aquí también apareció la abreviatura "R." denotando Reparto, pero fue utilizada en algunas ocasiones como abreviatura de nombres de calles o de repartos que comenzaban con la letra R, por tanto se decide no sustituirla. Para el caso de "R/" donde aparece el carácter "/" se hace la sustitución por "Reparto" antes de hacer las sustituciones del elemento Entrecalles.
Otro prefijo que aparece dentro del elemento Reparto es el de Finca que se puede abreviar como "Fca", y con esta hay que tener mucho cuidado pues también se emplea para abreviar la palabra fábrica.
- Abreviaturas del prefijo de Entrecalles: sust[{"e/", "/", "%"}; "entre"].
- Abreviaturas de prefijos de Calles encontrados:
sust[{"Ave", "Av"}; "Avenida"];
sust[{"Carr", "C.", "carret"}; "Carretera"];
sust[{"Cjon", "callej"}; "Callejón"];
sust[{"Prol", "prolong"}; "Prolongación"]
sust[{"Bda", "B."}; "Banda"]
Las abreviaturas C (Carretera) y P (Paseo) pueden crear confusión porque pueden ser las iniciales de algún nombre de calle o reparto que se desea abreviar. Por ello se plantea no sustituirlos.
2- En algunas direcciones los elementos de su estructura se separan por comas, en otras esto ocurre aleatoriamente, y en otras no hay comas. Por tanto se decide no tomar en cuenta las comas, los puntos y comas y los puntos debido a que en la mayoría de las veces crea confusión. O sea: sust[{",",";", "."}; " "]
- Seleccionar un conjunto de entrenamiento y de prueba
El conjunto de entrenamiento está formado por direcciones ya segmentadas en sus elementos y se representan como un par (e, s), o sea, el símbolo s fue emitido en el estado e.
Para conformar ese conjunto de datos se partió de los siguientes criterios:
- Debe de estar formado por direcciones postales reales, tomadas de la base de datos de la organización empresarial estudiada.
- No pueden aparecer direcciones consideradas no válidas.
- Pueden aparecer direcciones con faltas de ortografía o pequeños errores de tecleado.
- Para que sea representativo, debe de haber una proporción adecuada de las distintas variantes de direcciones que se pueden presentar.
- Las direcciones que finalmente formen parte de los datos de entrenamiento, serán segmentadas adecuadamente de manera manual para comprobar la validez de los datos y para otros usos futuros.
Para considerar la representatividad de los datos se hizo un estudio del total de las direcciones postales almacenadas, para lo cual se emplearon las herramientas básicas que poseen el Microsoft Excel y el Microsoft Access.
La cantidad total de direcciones estudiadas fue de 23 363. Algunos datos interesantes son los siguientes:
- El 92% de las direcciones empieza por el elemento calle.
- Un 4% comienza con el elemento edificio.
- Un 4% se inicia con el elemento entrecalles.
- El 66% de las direcciones contiene entre sus elementos las entrecalles.
- El 9.5% contiene edificio.
- El 4.5% contiene esquina.
- El 4.5% contiene escalera.
- El elemento reparto aparece en el 5% de las direcciones.
- En el 10,5% existe el elemento km.
- En solo el 0.7% aparece el código postal.
- Solo en el 4% aparece provincia.
- En el 63% de las direcciones del fichero con la base de datos de Santa Clara, aparece el nombre del municipio.
La selección de las direcciones para formar el conjunto de datos de entrenamiento se realizó de manera aleatoria en el total de direcciones de la base de datos mencionada, pero al mismo tiempo teniendo en cuenta todos los criterios antes expuestos. La cantidad de direcciones que contiene la base de datos así creada es de 200 registros.
Posteriormente se segmentaron manualmente las direcciones de entrenamiento, y se precisó para cada campo o elemento el orden en que aparece en la dirección. Así, por ejemplo, la dirección:
Calle 4ta #4 E/ Ave Sandino Y C.Central R.Sandino Sta Clara 3
Se segmentó en los elementos:
Calle: 4ta
Casa: 4
Entrecalle 1: Ave Sandino
Entrecalle 2: C. Central
Reparto: Sandino
Municipio: Sta Clara
Zona: 3
(no posee otros elementos)
Y se le asignó a cada elemento un orden dentro de esta dirección:
Calle: 1ro
Casa: 2do
Entrecalles: 3ro
Reparto: 4to
Municipio: 5to
Zona: 6to
El orden en que aparecen los elementos es necesario para el cálculo de las probabilidades de transición en el HMM externo.
El ejemplo anterior es muy elemental y lógico, pero no siempre ocurre así.
Teniendo el conjunto de ejemplos que forman el conjunto de entrenamiento, se pueden realizar las sustituciones definidas anteriormente, para obtener ejemplos un poco más estandarizados y reducir el número de símbolos que luego van a formar parte de los diccionarios.
- Hacer sustituciones en el conjunto de entrenamiento.
Una primera aproximación para construir el diccionario, pudiera ser hacerlo a partir del conjunto de entrenamiento; pero esto puede hacer que el diccionario tenga un comportamiento ineficiente debido a la gran cantidad de símbolos que podría contener. Por esto, se propone utilizar el concepto de taxonomía para generalizar los símbolos del diccionario que convenga generalizar cuidando no afectar el desempeño del modelo estadístico.
Otra mejora es, en lugar de utilizar un único diccionario, utilizar por cada nodo del HMM externo un diccionario con solo los símbolos que tienen relación con el elemento que representa el nodo en cuestión.
Tomando esta variante, se pueden definir las taxonomías de todos los elementos de la dirección postal. En la figura 1 aparece la taxonomía del elemento "Calle", a modo de ejemplo.
Fig. 1 Taxonomía del elemento "Calle".
Además se proponen los diccionarios siguientes:
Diccionarios propuestos
Nombre diccionario
Elementos de la dirección que pueden usarlo
dRpto
Reparto
dMun
Municipio
dProv
Provincia
Dentro de cada diccionario o taxonomía deben incluirse los prefijos que describen cada elemento, pues estos permiten distinguir el nodo al que pueden pertenecer los símbolos que le siguen.
Además se puede construir un diccionario o una estructura general que incluya algunos casos especiales. En el caso que aquí se estudia, esta estructura pudiera utilizarse para identificar palabras como Norte, Sur, Este, Oeste, Banda Placetas y Banda Esperanza que forman parte de nombres de Calles pero en el estudio realizado se encontraron, en ocasiones, separados del elemento calle. Por ejemplo:
- Formar diccionarios para cada nodo del modelo.
El cálculo de las matrices A y B forma parte de fase de entrenamiento de los HHM. Esta fase se puede dividir en dos etapas. En la primera se entrena el HMM externo, y en la segunda los HMM internos.
Desde el conjunto de entrenamiento es posible construir la matriz A de probabilidades de transición de un estado a otro (incluyendo los estados inicial y final) usando el método de Máxima Probabilidad con la fórmula:
Donde,
Gij es el número de transiciones desde el estado i hasta el estado j.
Hi es el total de transiciones que salen del estado i
Para la primera etapa se creó un conjunto de entrenamiento para poder calcular, en conjunto con el modelo ya construido del HMM externo, las probabilidades de transición y de emisión.
Para hacer este cálculo de forma rápida y sencilla se implementó una pequeña aplicación que toma los ejemplos de direcciones segmentadas de un fichero Entrenamiento.xml y calcula las probabilidades de transición de un elemento a los quince restantes (incluyendo el nodo final). Al utilizar la estructura de este fichero la fórmula antes planteada pasa a ser la siguiente:
Donde:
Cij= cantidad de veces que el elemento i está seguido por el elemento j
Ni= cantidad de veces que aparece el elemento i en el fichero
Las probabilidades de emisión son calculadas de forma similar. La probabilidad de emitir el símbolo k en el estado j es el cociente del número de veces que el símbolo k es emitido en el estado j entre el total de símbolos emitidos en el estado. :
Donde,
Flk= cantidad de veces que el símbolo k está asociado al nodo j
Tj = total de símbolos asociados al nodo j
Para evitar que se le asigne probabilidad cero a los símbolos que no aparecen en el diccionario al utilizar esta fórmula, se va a utilizar el método de descuento absoluto. Por lo que la probabilidad de los símbolos conocidos es bjk – x, donde
. , m = cantidad de símbolos distintos que aparecen en el fichero.
Algunas de las probabilidades de transición aij y de emisión bjk obtenidas se pueden ver en el Anexo I.
Para la segunda etapa (entrenamiento de los HMM internos) el conjunto entrenamiento está formado por un par (c,s) , donde c representa un nodo componente del elemento que representa el HMM en cuestión, y s es un símbolo, que pertenece a ese elemento, emitido en dicho nodo.
- Calcular las matrices A y B del HMM externo y de los internos, a partir del conjunto de entrenamiento
Para procesar direcciones postales no es necesario capturar todos los campos que forman una tupla, solo hace falta capturar el campo que contiene las direcciones postales y la llave o clave asociada a cada registro para luego del procesamiento automático poder relacionar las direcciones segmentadas con el resto de los campos asociados a cada tupla.
- Obtener campo(s) llave(s) del fichero y campo(s) de direcciones postales del conjunto de prueba.
Es recomendable hacer sustituciones en el conjunto de prueba antes de utilizarlo, si se hicieron sustituciones en el conjunto de direcciones de ejemplo que se utilizaron para entrenar el modelo. Con esto se reduce la cantidad de símbolos no conocidos por los diccionarios.
- Hacer sustituciones en el conjunto de prueba
Una vez que se tiene el modelo entrenado (estructura del HMM anidado, matrices A y B, taxonomías y diccionarios), se puede comenzar la prueba de este utilizando un conjunto de direcciones postales de prueba. Esto consiste en segmentar dichas direcciones postales utilizando el algoritmo de Viterbi para encontrar por cada dirección postal la secuencia de estados que recorre (secuencia oculta) en el HMM construido.
En cada nodo que tenga asociado un diccionario, al hacer la búsqueda de la palabra o símbolo que se está analizando se puede utilizar la distancia de edición o de Levenshtein, para evitar fallos de selección por causa de errores ortográficos. La medida de aceptar una palabra o no, puede ser decisión del especialista que lleva a cabo la limpieza de direcciones.
- Probar el modelo entrenado con el conjunto de prueba
Del paso anterior debe quedar un subconjunto de direcciones postales segmentadas en sus componentes. Estas pueden ser guardadas en un fichero para luego comprobar la efectividad de la segmentación realizada.
- Generar fichero con conjunto de direcciones segmentadas asociadas a su llave o clave de registro
De la misma forma que debe quedar gran parte de direcciones segmentadas automáticamente, también debe quedar un subconjunto de direcciones no válidas que el modelo entrenado rechaza que puede ser almacenado en un fichero aparte.
- Generar fichero con partes de direcciones que no pudieron ser procesadas automáticamente asociadas a su llave o clave de registro
Al terminar la fase de prueba es necesario saber cuan satisfactoria fue esta para decidir si el modelo se encuentra listo o si es preciso hacerle alguna mejora.
Como los HMM son bastante nuevos en su aplicación para la segmentación de direcciones postales no hay mucha bibliografía que hable sobre el por ciento adecuado para que el modelo se encuentre listo para ser utilizado. Por esta razón se decide tomar como mínimo por ciento de efectividad el obtenido durante las pruebas hechas con direcciones de la India (89%), direcciones postales cuyas características son similares a las aquí tratadas.
De esta forma, si el por ciento de direcciones segmentadas satisfactoriamente es mayor o igual que el 89%, se determina que el modelo está listo para segmentar las direcciones postales, de lo contrario se propone mejorar el modelo.
- Revisar por ciento de efectividad de los resultados obtenidos de la prueba
Para obtener un modelo mejorado, se pueden mejorar las estructuras de los HMM (externos e internos) y el conjunto de entrenamiento, y entonces volver a formar los diccionarios y taxonomías.
- Mejorar el modelo
Con el modelo ya listo para segmentar direcciones postales hay que verificar primeramente si las direcciones a procesar se encuentran en un formato conveniente y de no ser así, hacer las transformaciones necesarias en los campos que la contienen.
En este punto ya se tiene un conjunto de direcciones en un único campo listo para ser segmentado correctamente en sus elementos.
- Preprocesar direcciones
Este paso es igual al paso 9, solo que esta vez se obtiene la llave y el campo de dirección del fichero que contiene las direcciones postales a segmentar.
- Obtener campo(s) llave(s) y campo de dirección postal
Con las direcciones en el formato propicio para ser procesadas se pueden llevar a cabo las sustituciones a cada registro de dirección para introducirlas en el modelo basado en HMM.
Este paso no toma mucho tiempo en realizarse, se hizo una prueba con 1000 direcciones y solo se demoró 2 segundos.
El resultado fue un fichero con direcciones postales más normalizadas. Esto ayuda a una mejor segmentación posterior.
- Hacer sustituciones en el conjunto de direcciones a segmentar
Después de procesar las direcciones postales se obtiene un subconjunto que fue segmentado correctamente. Estas pueden ser llevadas, en conjunto con sus llaves, a una nueva fuente de datos o fichero, para seguir su procesamiento o añadirlas finalmente a un Almacén de Datos (DW).
- Generar fichero con conjunto de direcciones segmentadas asociadas a su llave o clave de registro.
Aquellas direcciones postales que no pudieron ser segmentadas automáticamente por el modelo pueden ser posteriormente corregidas manualmente por algún especialista, en el caso de que estas sean direcciones válidas y puedan ser segmentadas.
- Generar fichero con partes de direcciones que no pudieron ser procesadas automáticamente asociadas a su llave o clave de registro
A través de los pasos del procedimiento propuesto se ha explicado el funcionamiento de un modelo que utiliza HMM, conocimiento o experiencias adquiridas durante el estudio de las direcciones postales y otras técnicas que ayudan a una mejor segmentación automática.
Dicho modelo puede ser representado para un mejor entendimiento como se ve en la figura 2.
Fig. 2. Funcionamiento General del Modelo.
El HMM externo se entrena, una vez definida su estructura, utilizando el Conjunto de Entrenamiento, los diccionarios y las taxonomías.
- Funcionamiento General del Modelo
- Conclusiones
- Para lograr direcciones postales de sus clientes con un mínimo de deficiencias, la organización empresarial estudiada requiere limpiar las direcciones que posee en sus bases de datos, y como parte de ese proceso se pueden emplear la segmentación y estandarización.
- Se desarrolló un procedimiento para transformar las direcciones postales actuales de dicha organización, con el fin de que se pueda utilizar de forma más provechosa y eficiente la información que traen consigo. Se da así un paso importante hacia la posibilidad futura de integrar esas direcciones en un Almacén de Datos.
- Se propone un modelo que puede servir de base para la implementación de una herramienta cuyo fin sea segmentar correctamente las direcciones postales de los clientes.
BIBLIOGRAFÍA
[1] Ó. A. Llombart, "BI: Inteligencia aplicada al negocio," vol. 2005. [http://www.icc.uji.es/asignatura/obtener.php?letra=I&codigo=G52&fichero=1116236864IG52]
[2] F. S. Almonacid, "Data Warehouse," vol. 2006. [http://www.monografias.com/trabajos6/dawa/dawa.shtml#impa]
[3] C. M. R.-F. J. Martín Aresti, M. L. García Aragonés, T. MÓVILES, A. J. V. C. L. I. Tello Calvo, and T. I. Y. DESARROLLO, "Sistemas de soporte a la gestión del negocio," vol. 2005. [http://www.tid.es/presencia/publicaciones/comsid/esp/articulos/vol812/soporte/soporte.html]
[4] R. Kimball, "Dealing with Dirty Data," vol. 2005, 1996. [http://www.dbmsmag.com/9609d14.html]
[5] P. W. pwidlund[arroba]schober.es and A. G. d. S. asoto[arroba]schober.es, " Bases de Datos y Calidad de la Información," vol. 2005, 2005. [http://www.icemd.com/area-blogs/mes_actual.asp?id_seccion=46]
[6] RealITech, "Data Warehousing (Data Warehousing, SQL Server.htm)," vol. 2006, 2001. [http://www.sqlmax.com/dataw1.asp]
[7] J. B. a. S. Hussain, "Data quality – A problem and an approach," vol. 2005. [http://www.wipro.com/webpages/insights/dataquality.htm]
[8] K. D. Vinayak Borkar, Sunita Sarawagiz, "Automatic segmentation of text into structured," vol. 2006, 2001. [http://www.it.iitb.ac.in/~creena/seminar/sigmod01.pdf]
[9] W. Publications, "Prism Warehouse Manager 2.0 builds, manages data warehouse," vol. 2006, 1993. [http://www.findarticles.com/p/articles/mi_m0SMG/is_n14_v13/ai_14425978]
[10] r. j. orli, "Data Extraction, Transformation, and Migration Tools," vol. 2006, 1996. [http://www.kismeta.com/ex2.html]
[11] H. Galhardas, "Data Cleaning and Integration," vol. 2006, 2000. [http://web.tagus.ist.utl.pt/~helena.galhardas/cleaning.html]
[12] UNISERV, "SOLUCIONES DE SW AL SERVICIO DE LA CALIDAD DE LOS DATOS," vol. 2005. [http://www.uniserv.de/en/download/pdf-download/Generelle-Fact-Sheets/calidad_de_los_datos.pdf]
[13] Acxiom, "Tratamiento de nombres y direcciones.
¿Porqué normalizar sus datos?," vol. 2006. [http://www.acxiom.es/Gestion_de_la_Informacion/Normalizacion_y_agrupacion/Normalizacion/index.html]
[14] H.-H. Enterprise, "The Trillium Software System," vol. 2006, 2006. [http://www.trilliumsoftware.com/site/content/products/tss/index.asp]
[15] E. Corporation, "Calidad de Datos: Fundamento de la Empresa Exitosa," vol. 2006, 2006. [http://www.eniac-corp.com/noticias2.htm]
[16] S. Allen, "Name and Address Data Quality," vol. 2006. [http://www.iqconference.org/Documents/IQ%20Conference%201996/Keynote%20and%20Lunch%20Speeches/Name%20and%20Address%20Data%20Quality.pdf#search=%22%22MasterSoft%20International%20%22%20%2B%20%22NADIS%22%22]
[17] N. Corporation, "Teradata and Evolutionary Technologies
International (ETI)," vol. 2006, 2003. [http://www.teradatalibrary.com/pdf/eb2054.pdf#search=%22%22ETI%20Solution%20%22%22]
[18] U. N. d. Colombia, " Aprendizaje del modelo," vol. 2006, 2005. [http://www.virtual.unal.edu.co/cursos/ingenieria/2001832/lecciones/hmm6.html]
[19] K. D. Vinayak R. Borkar, Sunita Sarawagi, "Automatically Extracting Structure from Free Text Addresses," vol. 2006, 2000. [http://www.acm.org/sigs/sigmod/disc/disc01/out/websites/deb_december/borkar.pdf]
[20] J. C. Kazem Taghva, Ray Pereda, Thomas Nartker, "Address Extraction Using Hidden Markov Models," vol. 2006. [http://www.isri.unlv.edu/publications/isripub/Taghva2005a.pdf]
[21] U. N. d. Colombia, "DEFINICION DE LOS ELEMENTOS DE UN HMM," vol. 2006, 2005. [http://www.virtual.unal.edu.co/cursos/ingenieria/2001832/lecciones/hmm4.html]
[22] T. Kanungo, "Hidden Markov Models." [http://www.cfar.umd.edu/~kanungo/software/hmmtut.pdf]
[23] P. Wiggers, "HIDDEN MARKOV MODELS FOR AUTOMATIC SPEECH RECOGNITION AND THEIR MULTIMODAL APPLICATIONS," vol. 2066, 2001. [http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Wiggers_Pascal/thesis.pdf]
[24] L. M. B. Pascual, "Introducción a los Modelos Ocultos de Markov," vol. 2005. [http://www.depeca.uah.es/docencia/doctorado/cursos04_05/82854/docus/HMM.pdf]
[25] B. MacCartney, "NLP Lunch Tutorial: Smoothing," vol. 2006, 2005. [http://www-nlp.stanford.edu/~wcmac/papers/20050421-smoothing-tutorial.pdf#search=%22%22smoothing%20methods%22%20%2B%20%22add-one%22%22]
[26] J. C. Kazem Taghva, Ray Pereda, Thomas Nartker, "Address Extraction Using Hidden Markov Models," vol. 2006. [http://www.isri.unlv.edu/publications/isripub/Taghva2005a.pdf]
[27] A. M. P. Herreros, "FUNDAMENTOS DE RECONOCIMIENTO DE VOZ," vol. 2006.
[28] J. B. M. Acebal, "Introducción al reconocimiento de voz," vol. 2006. [http://gps-tsc.upc.es/veu/personal/canton/IntrRecVoz.pdf]
[29] B. Resch, "Hidden Markov Models," vol. 2006. [http://www.igi.tugraz.at/lehre/CI/tutorials/HMM/HMM.pdf]
[30] A. Bogomolny, "Distance Between Strings," vol. 2006. [http://www.cut-the-knot.org/do_you_know/Strings.shtml]
[31] L. Allison, "Dynamic Programming Algorithm (DPA) for Edit-Distance," vol. 2006. [http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/]
[32] M. P. S. Michael Gilleland, "Levenshtein Distance, in Three Flavors," vol. 2005, 2005. [http://www.merriampark.com/ld.htm#WHATIS]
[33] S. Chapman, "Similarity Metrics," vol. 2006, 2006. [http://www.dcs.shef.ac.uk/~sam/stringmetrics.html]
ANEXO I
HMM-Simplificado
Observación: el significado del nombre de algunos nodos aparece más abajo.
Nombre del nodo | Descripción |
Esq. | Esquina |
Edif. | Edificio |
Apto | Apartamento |
Esc | Escalera |
Mun | Municipio |
Prov | Provincia |
CP | Código Postal |
ZP | Zona Postal |
Rpto | Reparto |
ANEXO II
Relaciones de "Casa"
ANEXO III
Estructura de las Direcciones.
Dirección::= [<Calle>] [<Km>] [<Casa>] [<Entre Calle 1><y/e><Entre Calle 2>] [<Esquina>] [<Edificio>] [<Piso>] [<Escalera>] [<Apartamento>] [<Reparto>] [<Municipio>] [<Zona Postal>] [<Código Postal>] [<Provincia>]
<Calle>::= [<Prefijo de calle>] <Secuencia de identificadores> [<Punto Cardinal>]
<Prefijo de calle>::= Calle | Avenida | Carretera | Camino | Callejón
<Punto Cardinal>::= Este | Oeste | Sur | Norte
<Km>::= <Prefijo de Km> <Número>
<Prefijo de Km>::= Km
<Casa>::= [<Prefijo de Casa>] <Nombre de Número> [<Ubicación de Casa>]
<Prefijo de Casa>::= # | Número
< Nombre de Número >::=<Número> | <Letras> | <Número><Letras> | <Número> – <Letras> | <Número> – <Número> | SN | S/N
<Ubicación de Casa>::= Altos | Bajos | Interior
<Entre Calle1>::= [<Prefijo de entre calles>] <Calle>
<Prefijo de entre calles>::= entre
<Entre Calle2>::= <Calle>
<Esquina>::= <Prefijo de Esquina> <Calle>
<Prefijo de Esquina>::= Esquina
<Edificio>::= <Prefijo de Edificio> <Secuencia de identificadores>
<Prefijo de Edificio>::= Edificio | Bloque | CMF
<Piso>::= <Prefijo de Piso><Número> | <Número ordinal> <Prefijo de Piso>
<Prefijo de Piso>::= Piso | Nivel
<Escalera>::= <Prefijo de Escalera> <Nombre de Número>
<Prefijo de Escalera>::= Escalera
<Apartamento>::= [<Prefijo de Apartamento>] <Nombre de Número>
<Prefijo de Apartamento>::= Apartamento
<Reparto>::= [<Prefijo de Reparto>] <Secuencia de identificadores>
<Prefijo de Reparto>::= Reparto | Barrio | Batey | Finca
<Municipio>::= <Secuencia de identificadores>
<Zona Postal>::= [<Prefijo de Zona Postal>] <1 dígito>
<Prefijo de Zona Postal>::= Z
<Código Postal>::= [<Prefijo de Código Postal>] <5 dígitos>
<Prefijo de Código Postal>::= CP | CPOS | CPostal
<Provincia>::= [<Prefijo de Provincia>] <Secuencia de identificadores>
<Prefijo de Provincia>::= Provincia
En la descripción anterior hay que aclarar que:
- Todos los elementos que forman la dirección son opcionales, puesto que en algunas instancias aparecen o no aparecen indistintamente todos los atributos. Algunas veces esta característica hace que haya direcciones almacenadas que no son válidas.
- El orden mostrado es el que se vio con mayor frecuencia, pero no es el único en el que aparecieron los elementos.
- Las palabras en negrita o terminales pueden aparecer abreviadas en varias formas o con otros sinónimos. Cualquiera de las abreviaturas tienen variantes en las que aparecen con o sin punto al final. De la misma manera, pueden aparecer escritas con letra inicial mayúscula o minúscula, o pueden estar escritas totalmente en mayúscula.
DATOS DE LA AUTORA
Liudmila Padrón Torres
Profesión: Especialista Informática. Graduada en Lic. en Ciencias de la Computación.
Entidad donde trabaja: Empresa de Telecomunicaciones de Cuba S.A (ETECSA V.C.)
Fecha de realización del trabajo: 29/09/2006
Categorías del Trabajo: ComputaciónGeneral, Empresa
Página anterior | Volver al principio del trabajo | Página siguiente |