Académique Documents
Professionnel Documents
Culture Documents
Matanzas 2009
Resumen
En este trabajo, se propone un algoritmo que ofrece varios de los atributos de la
relacin morfolgica de las palabras. Para mejorar la bsqueda de similitud, se utiliz la
misma matriz generada por el algoritmo de la distancia de edicin de Levenshtein.
Adems, se obtiene la subsecuencia comn ms larga. La meta principal de este
proyecto es obtener no slo una nueva distancia de edicin, sino tambin una distancia
que otorgue penalidades a los costos en dependencia del tipo de operacin realizada,
as como la posicin en la que se realizan las modificaciones y de qu tipo son.
Abstract:
In this paper, we propose an algorithm that offers several attributes of the words
morphological relation. In order to improve the similarity search, we utilize the same
matrix generated by the Levenshtains distance algorithm. In addition, we obtain the
longest common subsequence. The principal goal of this project is to obtain not only a
new edit distance, but also a distance that gives penalty costs depending on which
characters are inserted, deleted or substituted, as well as the position where the
modifications have come true and the type they are.
1 Introduccin
Para la tarea de la determinacin de la similitud entre palabras (en ingls string-based
similarity) se han usado deferentes algoritmos. Entre los ms usados est la Distancia
de Edicin, tambin conocido con Distancia de levenshtein (ED) [1]. La ED es una
mtrica para medir la diferencia entre dos secuencias inventado en 1965 por el
cientfico ruso Vladimir Levenshtein. Esta mtrica da una idea de la disimilitud o
parecido entre dos cadenas de caracteres. Mientras ms grande es el valor, mayor ser
la diferencia entre las cadenas examinadas. Otro algoritmo ampliamente utilizado en el
macheo de cadenas es el de determinacin de la subsecuencia comn ms larga (en
ingls Longest Commun Subsequence LCS) [2]. Este algoritmo obtiene la cadena
concatenando los caracteres que coinciden de las dos cadenas, teniendo en cuenta del
orden de aparicin de las letras. Se ha realizado una fusin debido a la similitud entre
los mencionados algoritmos. EL LCS puede ser obtenido con relativa facilidad al realizar
un cambio en los pesos el algoritmo de la ED, slo es necesario utilizar el peso para la
sustitucin ya que esta puede ser vista como dos operaciones, un borrado y una
insercin. La bsqueda de esta subsecuencia puede retornar la cadena de caracteres o
la longitud de la cadena en cuestin.
Estos algoritmos han sido utilizados ampliamente por los procesadores de texto, han
hecho posible el desarrollo de muchas aplicaciones como: la deteccin de plagios,
revisin ortogrfica automtica, sistemas de reconocimiento del habla, anlisis de
cadenas de ADN, el establecimiento de relaciones entre entidades, prediccin y
expansin de palabras, etc.
Existen algunos elementos que podran afectar las tcnicas de clculo de similitud entre
palabras:
Partiendo de este anlisis es conveniente tener una medida capaz de considerar estos
elementos. Pensando en todos estos detalles antes mencionados, se realizado un
algoritmo que puede obtener varios atributos para estimar la similitud entre palabras.
Para perfeccionar el clculo se utiliza la matriz de costo generada para obtener la ED. Y
se ofrece, adems de esta distancia, la LCS, el nmero de operaciones mnimas para la
transformacin de una palabra en la otra, el estado de las coincidencias, as como la
posicin dnde ocurrieron las modificaciones y de qu tipo fueron. Adems, se ofrece
una nueva modificacin a la ED, en la que la posicin y la importancia de los caracteres
donde ocurrieron las diferencias, son tomadas en consideracin. Este trabajo est
organizado de la siguiente forma. En la Seccin 2, se presenta algunos elementos
preliminares. En la 3, se explican las principales ideas utilizadas en la creacin de la
distancia. En la seccin 4, se presentan los resultados experimentales de esta variante.
Finalmente, en la seccin 5 se dan las conclusiones.
1
Un conjunto de palabras que muestran las mismas propiedades formales, especialmente su inflexin y
distribucin.
2 Preliminares y trabajos relacionados
Existen muchas investigaciones alrededor del problema de la similitud basada en
cadenas de caracteres. Sin embargo, probablemente las ms estudiadas son la
distancia de edicin y la subsecuencia comn ms larga.
2.1 Una revisin de la Distancia de Edicin
La ED es un valor numrico que establece la diferencia entre dos palabras. Es obtenida
mediante el algoritmo de la Distancia de Edicin [4]. Wagner y Fisher [5] la utilizaron
para evaluar la distancia entre dos cadenas de caracteres y se basaron el mtodo de la
Programacin Dinmica (PD) [6]. Este algoritmo involucra el uso de una matriz de
enteros de (n+1) x (m+1), donde n y m son las longitudes de las cadenas.
La primera fila y la primera columna sern llenadas con valores consecutivos (1,2,3, )
hasta la longitud respectiva de las cadenas, y desde aqu la matriz ser llenada
adicionando los costos de la transformacin de los caracteres, siempre tomando el valor
mnimo. Cuando la matriz est completamente llena, la celda inferior derecha contendr
el costo mnimo de la transformacin para convertir una palabra en la otra.
Ms tarde, en 1989 surge la mtrica de Jaro [8], fue usada para la deteccin de
duplicados. Esta mtrica condiciona que dada dos cadenas s1 y s2 la distancia dj entre
ellas es:
2.1
Donde:
m es el nmero de caracteres que machean
t es el nmero de transposiciones
Una variante a esta mtrica es la distancia de Jaro-Winkler [9], esta medida demanda
que dos caracteres desde s1 a s2 respectivamente, son considerados como
coincidentes slo si no estn tan lejos como:
2.2
Para conceder valores ms adecuados a los caracteres que machean desde el inicio
para un determinado prefijo Jaro-Winkler usaron el prefijo Por consiguiente la
distancia de Jaro-Winkler es:
2.3
Donde:
Para calcular la LCS se aplica el mtodo de la programacin dinmica [6]. L(i,j) ser la
longitud de la LCS de las secuencias Xi e Zj, siendo Xi el i-simo prefijo de X (esto es,
Xi = {x1 x2 ... xi}) y Zj el j-simo prefijo de Z, (Zj = {z1 z2 ... zj}).
Se elabora una tabla con los valores L(i,j). Esta tabla se va construyendo por filas y
rellenando de izquierda a derecha. En cada L(i,j) hay dos datos: longitud de cada sub-
secuencia, y un texto que ayudar en la construccin de la sub-secuencia ptima. La
solucin a la LCS de las secuencias X e Z se encuentra en el extremo inferior derecho
de la tabla, en la que estar la longitud de la LCS. Si se quiere obtener la sub-secuencia
hay que recorrer la tabla a partir del extremo inferior derecho, auxilindose de la
informacin que indica cmo obtener las longitudes ptimas a partir de su procedencia
(izquierda, diagonal o superior). El algoritmo para construir la tabla tiene una
complejidad de orden O (n, m), siendo n y m las longitudes de las secuencias X e Z.
3 Descripcin de la propuesta
3.1 Algunos preliminares de la propuesta
Como ya fue mencionado, la propuesta se basa en la idea de incorporar algunos
presupuestos para obtener un mejor clculo de la similitud entre cadenas de caracteres.
Se explicarn los elementos que se han tenido en cuenta.
En ocasiones la sustitucin de una letra es ms comn que sea ocasionada por un error
tipogrfico o tal vez por algn tipo de abreviatura. Sin embargo, se coincide con Bilenko
en [10] cuando palntea: adapting string edit distance to a particular domain requires
assigning different weights to different edit operations, los autores de este trabajo
obtienen un efecto similar asignando diferentes pesos a los distintos caracteres, en
particular teniendo en cuenta tambin la operacin de edicin o transformacin que se
realiza con el carcter en cuestin.
2
Terminacin variable de las palabras (por oposicin a raz o radical), que tiene una funcin gramatical o
lxica.
3.4 Alternancia prosdica y grfica
Para algunos lenguajes, como el espaol, en los que existe la alternancia prosdica, la
comparacin entre palabras, de una misma familia, puede aportar algunas diferencias.
En los siguientes casos la Real Academia de la Lengua Espaola, ha aceptado ambas
alternativas de alternancia prosdica y grfica como vlidas, entre otras: afrodisiaco
afrodisaco, atmosfera atmsfera. En espaol, muchas palabras pueden tener
diferentes escrituras aceptadas (alternancia grfica), como en kiosco y quiosco o sicosis
y psicosis. En esta propuesta se resuelve la alternancia prosdica, pero es muy difcil
tratar, a nivel del algoritmo, con la alternancia grfica.
3.6 El mtodo
La implementacin de todos esto elementos preliminares analizadas en los apartados
anteriores, podra resultar en una distancia de edicin extendida. Los postulados ya
vistos sirvieron de gua para la creacin del algoritmo, tambin la utilizacin de la matriz
generada para la obtencin de la ED y la obtencin de la LCS, usando la misma forma
de clculo de las operaciones mnimas, como en el algoritmo de la ED. En el algoritmo
tradicional para la determinacin de la LCS, para cada L(i,j) se colocan dos datos: la
longitud de cada secuencia y un texto que ayuda en la creacin de la secuencia ptima.
En esta propuesta en lugar de colocar esos dos datos en L(i,j), se coloca slo el costo
de la operacin, igual que en el algoritmo de Levenshtain [4]. Una vez llenada la matriz
se accede a la celda inferior derecha a obtener el valor de la distancia. Luego, con una
estrategia hacia atrs, se recorre la matriz hasta alcanzar la celda en la esquina
superior izquierda. Cada movimiento representa una operacin de edicin:
3
Object Character Recognition.
Se obtiene el costo mnimo en las celdas cercanas (derecha, superior y diagonal). En
caso de coincidencia de valores, se le da la prioridad a la celda en la diagonal izquierda.
Como un resultado, se ofrece una cadena de caracteres con las operaciones de
edicin, donde cada carcter O ser parte de la subsecuencia comn y la
concatenacin de todos los caracteres O representan la LCS.
Como se coment en la introduccin, esta extensin del algoritmo parte del anlisis de
la matriz de costos usada por el algoritmo de la ED. Se estudi la posibilidad de obtener
la LCS, la nueva propuesta de ED extendida (EDx), y diferentes atributos que ayudaran
en la determinacin de la similitud entre cadenas de caracteres. En adicin a esto, se
ofrece la posicin en la que se han realizado las transformaciones, as con su tipo
(insercin, substitucin, o borrado).
3.1
vieja
3.2
Nueva
Donde:
V Transformaciones realizadas en la palabra (O, I, D, S).
0,0 : O
1,0 : I
V
0,1 : D
1,1 : S
a : 33 l : 23 : 32
e : 32 m : 22 z : 12
s : 31 u : 21 h : 11
r : 30 p : 20 j : 10
P= o : 29 b : 19 : 29
i : 28 g : 18 q : 8
n : 27 : 33 x : 7
t : 26 : 28 : 6
c : 25 v : 15 y : 5
d : 24 f : 14 : 21
: 21 k : 2 w : 1
Figura 4.1. Experimento realizado con 100 palabras pertenecientes a la misma familia.
6 Bibliografa
[1] Levenshtein VI. Binary codes capable of correcting, insertions and reversals. In
Soviet Physics Doklady Akademii. 1996;10.
[2] Hirschberg DS. Algorithms for the longest common subsequence problem. ACM.
1977;24(4).
[3] Nordquist R. Word class definition - About.com grammar & Composition. 2009.
[4] Levenshtein VI. Binary codes capable of correcting, insertions and reversals. In
Soviet Physics Doklady Akademii. 1966;10.
[5] Wagner RA, Fischer MJ. The string-to-string correction problem. ACM.20(1):168.
[6] Bellman R, Dreyfus S. Applied Dynamic Programming. In: Press PU, ed. 1962.
[7] Neeedleman S, Wunsch C. A general method applicable to the search for
similarities in the amino acid sequence of two proteins. Mol Biol. 1970;48(443):453.
[8] Jaro M. Advances in record linking methodology as applied to the 1985 census of
tampa Florida. Journal of the American Statistical Association. junio 1989;84.
[9] Winkler W. The state of record linkage and current research problems. 1999.
[10] Bilenko M, Mooney RJ. Adaptive duplicate detection using learnable string
similarity measures. KDD. 2003:39.