Vous êtes sur la page 1sur 11

Un algoritmo para la extraccin de caractersticas

lexicogrficas en la comparacin de palabras


An algorithm for the extraction of lexicographical
characteristics in the comparison of words
Autores:

Antonio Fernndez Orqun


Ingeniero Mecnico, Profesor Auxiliar, Mster en Informtica Educativa.
Facultad de Informtica. Universidad de Matanzas.
antonio.fernandez@umcc.cu

Joval Daz Blanco


Estudiante de Informtica, 6to ao.
Facultad de Informtica. Universidad de Matanzas.
Josval.diaz@infonet.umc.cu

Alfredo Fundora Rolo


Lic. Matemtica, Profesor Asistente, Master en Matemtica Numrica.
Facultad de Informtica. Universidad de Matanzas.
alfredo.fundora@umcc.cu

Rafael Muoz Guillena


Ingeniero Informtico, Catedrtico, Doctor en Ciencias.
DLSI. Universidad de Alicante. Espaa
Rafael@dlsi.ua.es

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.

Palabras claves: Distancia de Edicin, similitud basada en cadenas, macheo de


cadenas.

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.

Keywords: Edit Distances, string based similarity, string matching.

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.

A pesar de que ha sido ampliamente utilizado, el algoritmo de ED posee algunas


insuficiencias que podran conducir a errores en la interpretacin de la determinacin de
la similitud basada en cadenas de caracteres. Como el algoritmo de la ED mide
diferencias en la grafa de dos cadenas, pudiera ocurrir que para palabras con una
diferencia semntica grande, el algoritmo reporte un bajo nmero de transformaciones.
Por otra parte, existen casos en los que la ED es grande (debido a las diferencias que
pudieran existir entre los sufijos) y sin embargo las palabras pertenecer a la misma
familia de palabras1 [3]. Por ejemplo, las palabras tiene y viene son semnticamente
distintas; sin embargo la ED es slo uno. La nica transformacin a realizar sera la
sustitucin de la letra V por la T. No obstante estas palabras son etimolgicamente
diferentes. Por otra parte existen casos en los que la ED es grande y las palabras
pertenecen a la misma familia. En este caso se encuentran las palabras campestre y
campo, en las que la ED sera cinco. Como se puede apreciar, se obtiene un nmero
mayor que en el caso anterior.

Existen algunos elementos que podran afectar las tcnicas de clculo de similitud entre
palabras:

La etimologa de la palabra, especialmente las caractersticas de los elementos


constitutivos de las palabras.
La relevancia de las operaciones de edicin en diferentes dominios.
La alternancia prosdica y grfica de algunos lenguajes. Los errores tipogrficos
y ortogrficos.

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.

En 1970, Needleman y Wunsch [7] extendieron el algoritmo de la ED obteniendo una


mayor similitud sensitiva. Esta fue la primera aplicacin de la PD a la comparacin se
secuencias biolgicas. Ellos usaron penalizaciones lineales, permitiendo secuencias de
caracteres errneos en el alineamiento de dos cadenas.

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:

es la distancia de Jaro entre las cadenas s1 y s2


.- es la longitud del prefijo comn al inicio de la cadena hasta el mximo de 4
caracteres.
es un factor de escala constante para indicar cunto se ajusta el valor por tener
prefijos comunes. El valor estndar para esta constante es indicado en el trabajo de
Winkler como p = 0.1

2.2 Sub-secuencia Comn Mxima (LCS):


Sub-secuencia: Dadas dos secuencias X={X1, X2,,Xn} y Z={Z1, Z2,Zk}, decimos que
Z es una sub-secuencia de X si existe un orden estrictamente creciente de ndices
{i1,i2,ik} (1<= i1 <= i2 << ik <= n) tales que Z={Xi1, Xi2,,Xik}. Por ejemplo Z= (CMPE)
es una sub-secuencia de X=(CAMPANEARIA). Notemos que el hecho de que existan
elementos de X en el medio, que no estn en Z, no afecta el concepto de sub-
secuencia.

Por ejemplo si X= (COMPUTAR) y Y= (CAMPO) la sub-secuencia comn de mxima


longitud es Z= (CMP). A pesar de que las letras O y A estn en ambas palabras, no
perteneceran a la LCS pues sus ndices no estn en el orden creciente al hacer el
anlisis de la secuencia de caracteres.

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}).

Aplicando el principio de ptimo se puede plantear la solucin como una sucesin de


decisiones en la que en cada paso se determina si un carcter forma o no parte de la
LCS. Escogiendo una estrategia hacia atrs, es decir, comenzando por los ltimos
caracteres de las dos secuencias X y Z, la solucin viene dada por la siguiente relacin
en recurrencia. Como la solucin recursiva resulta ser de orden exponencial se utiliza la
Programacin Dinmica.

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.

3.2 La etimologa de la palabra


Los desarrolladores de esta investigacin coinciden con Nordquist cuando plantea en
[3] Spanish has an abundance of compound words, many of them colorful. De esta
forma, y para probar cmo funciona, para el espaol, el algoritmo de clculo de la
similitud basada en cadenas de caracteres, se debe hacer un anlisis ms profundo de
los elementos constituyentes de las palabras (la raz o tallo y los afijos). El tallo (en
ingls stem) aporta la significacin principal y los afijos lo modifican, aportando
informacin complementaria. La contribucin puede ser lxica, expresada a travs del
sufijo, sintctica o morfolgica, expresada mediante las desinencias2. Por consiguiente
una medida de similitud basada en palabras debe analizar las transformaciones en la
raz de las palabras, dndole mayor importancia que las transformaciones en los sufijos.
Adems, la contribucin lxica de algunos prefijos puede cambiar el sentido de las
palabras, causando indicativo de anterioridad, oposicin, superioridad, inferioridad,
exceso, decremento, etc. Vanse los siguientes ejemplos: oposicin (anti - antifascista),
inferioridad (infra - infrahumano).

3.3 Variacin del significado en diferentes dominios.


Existen contextos en los que la sustitucin de una palabra implica grandes diferencias.
Por ejemplo, un nmero telefnico o una fecha con error en un digito pueden variar el
sentido de toda la frase. Por el contrario, la sustitucin de la letra en la palabra
ensame no es de tanta importancia si se est tratando de obtener su significado, por
supuesto, que el clculo de similitud entre palabras es un problema dependiente del
dominio del discurso.

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.5 Errores ortogrficos y tipogrficos


En castellano existen muchas palabras de escritura dudosa, en las que observar errores
ortogrficos es algo muy comn. El simple hecho de sustituir una letra s por una c o una
z puede incrementar la distancia entre dos palabras y algunas veces esto no cambia su
significado, pero en otra s. Sin embargo, en muchos documentos, las diferencias son
ocasionadas por errores tipogrficos, humanos o provocados por los procesos de
OCR3. Por supuesto, la significacin del error est en dependencia del dominio. Por
esta razn es necesario dar la posibilidad de aplicar una penalizacin menos costosa en
estos casos. Consecuentemente, con las tcnicas de similitud basada en palabras se
debe penalizar con un costo que tenga en cuenta qu carcter est siendo insertado,
borrado o substituido.

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:

1. El movimiento vertical superior es representado como un borrado (D).


2. Horizontal a la derecha es representado como una insercin (I).
3. Diagonal superior a la izquierda es representado como una sustitucin (S).

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).

Conociendo la posicin en la que se han hecho las transformaciones, se aporta una


importante informacin; pues se podra saber si estas han ocurrido en la raz de la
palabra, penalizndose aquellas que ocurran ms a la izquierda por encima de las que
ocurren ms a la derecha en la palabra. Tambin se ofrece la posibilidad de colocar un
costo de penalizacin que depende de cul es el carcter involucrado en el tipo de
transformacin. Se normaliza la distancia en el intervalo (0,1). La nueva propuesta se
presenta en a continuacin.

3.1
vieja

3.2
Nueva

Donde:
V Transformaciones realizadas en la palabra (O, I, D, S).

O No operacin, I Insercin, D Borrado, S Sustitucin

Se formaliza V como un vector

0,0 : O
1,0 : I
V
0,1 : D
1,1 : S

c1 y c2 Las palabras examinadas


c1j el j-cimo carcter de la palabra c1
c2k el j-cimo carcter de la palabra c2
P El peso de cada carcter

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

P( c1 j ) - El peso del carcter en c1j

P( c 2k ) - El peso del carcter en c2k

Si Oi es diferente de (I) entonces j=j+1


j
j=j en otro caso

Si Oi es diferente de (D) entonces k=k+1


k
k=k en otro caso

L La palabra ms larga del lenguaje


O Operaciones de edicin

l Longitud de las operaciones de edicin

Oi Operacin en la posicin (i)

Rmax Mayor valor de P

Como se puede ver en la ecuacin 3.1, el trmino es el producto


cartesiano que analiza la importancia de hacer la operacin entre los caracteres
y . El trmino penaliza la posicin de la operacin. Mientras ms
a la izquierda es la operacin ms grande ser la penalizacin. Mientras que el trmino
normaliza la distancia en el intervalo (0,1).
4 Resultados y discusin
En esta seccin experimentalmente se compara el algoritmo diseado con tres
diferentes algoritmos (Levenshtein, Jaro-Winkler y Needleman-Wunsch), Se usa el
experimento para confirmar los resultados analticos acerca de la consideracin de
tomar en cuenta la etimologa de la palabra, la penalizacin de la modificacin de la raz
y el peso a los caracteres. La Figura 4.1 muestra el algoritmo probado con 100 palabras
pertenecientes a la misma familia.

Figura 4.1. Experimento realizado con 100 palabras pertenecientes a la misma familia.

La experimentacin fue hecha comparando el verbo ensear con el resto de las


palabras de la familia.

El experimento muestra la concentracin de los resultados de la EDx y la dispersin de


las otras medidas. Esto es debido al acento grfico de algunas de las palabras como:
ensale, ensame y otras. Debido a que en la bolsa de palabras seleccionadas todas
las palabras pertenecen a la misma familia, los resultados del clculo de similitud entre
ellas debieron dar una curva con una alta concentracin, pues todas las palabras
comparten una misma raz.

5 Conclusiones y trabajos futuros


Se ha obtenido un algoritmo que extiende y a su vez flexibiliza el clculo de la distancia
de edicin entre palabras. Permite especializacin para el tratamiento de palabras en
diferentes dominios. Esta propuesta puede ser adaptada modificndose el costo de
penalizacin de las operaciones con los caracteres especficos. Es posible cambiar en
peso de los caracteres S, C o Z, y tratarlos como un solo carcter, en caso de que se
quiera flexibilizar la distancia. Esto podra suavizar la penalizacin de los errores
tipogrficos u ortogrficos. El parmetro (2L+1) penaliza las operaciones de edicin
cuando ocurren en la raz de la palabra, esto podra ser importante para idiomas como
el espaol en el que las palabras son originadas partiendo de un tronco comn.

El equipo de investigadores que han realizado este trabajo se ha propuesto aumentar el


nmero de experimentos y realizarlos con otros idiomas. En futuros trabajos se
pretende aplicar estos resultados la determinacin del tallo o stem de las palabras.

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.

Vous aimerez peut-être aussi