Página anterior | ![]() Volver al principio del trabajo | Página siguiente ![]() |
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
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.
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.
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[{",",";", "."}; " "]
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:
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:
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.
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:

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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
[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]
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:
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ón\General, Empresa

Página anterior | ![]() Volver al principio del trabajo | Página siguiente ![]() |
Trabajos relacionados
Ver mas trabajos de Otros |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.
Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
|
|