miércoles, marzo 08, 2006

Algoritmo de Porter enespañol

Antes ya habíamos hablado del algoritmo de Porter, pero en [Panessi y
Bordignon, 2001] encontré una descripción mejor que la que habíamos dado
y por tanto paso a resumir.

El algoritmo de Porter permite hacer stemming, esto es extraer los
sufijos y prefijos comunes de palabras literalmente diferentes pero con
una raíz común que pueden ser consideradas como un sólo término.

Al realizar una búsqueda, el usuario puede perderse porque las palabras
están escritas de otra forma y con poca frecuencia en el documento.

Al aplicar stemming, se asegura que la forma de las palabras no penalice
la frecuencia de estas.

Los algoritmos de stemming, o lematización para quienes hablamos
español, más conocidos son: Lovins (1968), Porter (1980) y Paice (1990).
Todos eliminan "los finales" de las palabras en forma iterativa, y
requieren de una serie de pasos para llegar a la raíz, pero no requieren
"a priori" conocer todas las posibles terminaciones.

Originalmente todos fueron hechos para el inglés, y se diferencian en la
eficiencia del código y la elección de sufijos que identifican e
eliminan.

Estudios no definitivos, indican que los resultados conseguidos con
algoritmo de Lovins no concuerda con los resultados obtenidos con los
otros dos que se mencionaron.

La raíz de la lematización es un concepto distinto del de la lingüística
(orígen de las palabras) y no aporta al objetivo que persigue la
lematización.

No hay razón teórica para que los algoritmos de lematización no puedan
quitar también los prefijos (in, ante, anti, etc.), pero la mayor parte
de los métodos de stemmer sólo quitan sufijos.

La razón puede ser decidir cuándo es un prefijo y no parte de la raíz
(indispensable, introducción, etc.) o porque se puede quitar el
significado de la palabra.

El problema se extiende a cuando es un sufijo y no parte de la palabra.
Esto se resuelve fijando un mínimo de letras aceptables para la raíz y
con apoyo de una lista de palabras exentas de la aplicación de la regla.
Adicionalmente, hay reglas que indican cuándo un sufijo no debe
eliminarse.

Otro problema es el cambio de raíz en algunas palabras, por ejemplo, en
plural (repite, repetidos), donde en castellano el problema es mayor.

Los métodos de lematización son dependientes del idioma.

Tienen la ventaja que permiten la reducción de los índices, lo que
aumenta la velocidad de procesamiento.

El algoritmo de Porter tiene la ventaja de ir quitando sufijos por
etapas, en cambio Lovins requiere de la definición de todas las posibles
combinaciones de sufijos.

El algoritmo de Porter se publicó en 1980. Básicamente lee un archivo,
toma una serie de caracteres, y de esa serie, una palabra; luego valida
que todos los caracteres de la palabra sean letras y finalmente aplica
la lematización.

El lematizador hace pasar la palabra por varios conjuntos de reglas,
cada conjunto formado por "n" reglas y cada regla está constituida por:

1. un identificador de la regla
2. un sufijo a identificar
3. el texto por el que se reemplaza el sufijo
4. el tamaño del sufijo
5. el tamaño del texto de reemplazo
6. el tamaño minimo que debe tener la raíz resultante luego de aplicar
la regla (para no procesar palabras demasiado pequeñas).
7. Una función de validación (verifica si se debe aplicar la función una
vez encontrado el sufijo)

Cuando ya no queden más conjuntos de reglas por aplicar, se devuelve la
palabra resultante y se imprime.

Para traducir el algoritmo de Porter al español, se debe:

1. Ubicar los sufijos que ocurren frecuentemente en español.
2. Identificar los sufijos que ocurren juntos.
3. Establecer el orden en que ocurren

Para la selección de los grupos y orden de procesamiento, se deben tener
en cuenta:

1. Dos sufijos que ocurren juntos no pueden pertenecer al mismo
conjunto.
2. Las reglas que quiten sufijos más al final de cada palabra deben ser
procesados en un paso anterior a los que quitan otros.
3. Si un sufimo aparece siempre que ocurra otro, este sufijo es
condicional a la aparición del anterior.

Hay además reglas propias del castellano. Por ejemplo, el sufijo "nos",
que NO ES sufijo en palabras como campesinos, casinos, caminos, etc.;
pero sí en hacernos, ponernos, presentarnos, etc.

Para depurar el algoritmo hay que considerar 3 pasos:
1. Las palabras terminadas en "r", conceptualmente similares, suelen
quedar con distinta raíz, como en los verbos. Por ejemplo, caminar y
caminando. Primero se debe eliminar "ndo". Por lo que la eliminación de
las "r" es uno de los últimos pasos.

2. Similarmente, las palabras que terminan con vocales, por ejemplo, las
palabras terminación y terminal y/o terminó, se dejan para el final.

3. En último término, se aplica una tercer regla que elimina los tildes
de la raíz resultante. Por ejemplo, en diálogo y dialogó.

jueves, enero 05, 2006

Proyecto de Ejemplo

Antecedentes Generales

Con el fin de ilustrar el proceso de Categorización de Textos, es que se optó por una aplicación pura de categorización: la categorización de artículos de un periódico electrónico.

Durante ya bastante tiempo, se ha estado recolectando artículos, a una tasa de 30 artículos por día posible, consiguiendo un corpus que en este momento sobrepasa los 8500 artículos con alrededor de 25 categorías.

Estos artículos han sido extraídos desde www.latercera.cl, por un proceso automático y en forma absolutamente aleatoria.
Nos atrevemos a dar el nombre de la fuente porque se solicitó permiso para mencionarla, aunque no se cuenta con una autorización para publicar el corpus construido, pero sí para ser usado en nuestra investigación.

El formato en que se han ido almacenando es XML con la siguiente estructura:

<?xml version="1.0" encoding="UTF-8"?>
<articulos>
<articulo>
<fecha></fecha>
<titulo></titulo>
<link></link>
<texto>
</texto>
<canal></canal>
</articulo>
</articulos>

donde la fecha, es la fecha de publicación; el título, es el título del artículo; el link, es la dirección web desde donde se extrajo; el texto, es el desarrollo del artículo; y el canal, representa la categoría a la que pertenece.

Fases del Proyecto

Se dividirá el trabajo en 4 partes, la primera de ellas ya explicada, que es la recolección de los artículos desde el periódico de Internet.

La segunda etapa se trata del pre-procesamiento. En esta etapa, se eliminará por un lado todas aquellas cadenas de caracteres que son "basura", vale decir, caracteres que quedaron producto de la extracción misma desde la fuente. Por otro lado, se eliminará todas aquellas palabras que no aportan al contenido del artículo, sino a su redacción, tales como las preposiciones.

En una tercera etapa, se construirá los conjuntos de entrenamiento y prueba del clasificador. Esta etapa incluye la indexación de los documentos. La forma de indexar se detalla en un posteo posterior.

La cuarta etapa será entrenar los clasificadores. En esta etapa ya se debe tener determinado los métodos que se utilizarán para clasificar, aunque por su simplicidad y efectividad, el Ingenuo de Bayes y Support Vector Machine (SVM) estarán en la lista de los elegidos.

En una quinta etapa, se probarán los clasificadores construidos.

Durante la sexta y última etapa, se medirán los resultados obtenidos y se harán las comparaciones entre ellos.