Thursday, December 13, 2012

Text Categorization Using Word Similarities Based on Higher Order Co-occurrences

Debido a la nula habilidad para lidiar con sinónimos y polisemias, k-vecinos más cercanos, Naive Bayes y las Máquinas de Soporte Vectorial, presentan problemas con el tamaño de las dimensiones en la clasificación de textos. Además, al presentarse formas de grandes dimensiones, los vectores empleados se esparcen y las medidas de distancia tradicionales como la euclidiana o el coseno pueden no proporcionar información relevante.

El concepto de coocurrencias de alto orden se presenta como una medida de la relación semántica entre palabras bajo la analogía que menciona que los humanos no necesariamente utilizan el mismo vocabulario al referirse a un tema.

El algoritmo que emplean se conoce con el nombre de X-Sim y está creado para aprendizaje no supervisado pero fue adaptado para problemas de clasificación en un entorno supervisado. El algoritmo consta de una matriz de datos con r filas (documentos) por c columnas (palabras). Dos matrices de similitud SR y SC (contienen la similitud de un documento con todos los demás y la similitud de una palabra respecto a todas las demás). La similitud de dos documentos es dada por la suma de las similitudes de las palabras que ambos contienen. Para las palabras, proponen no sólo tomar en cuenta las palabras que ocurren en ambos casos sino utilizar todos los posibles pares que puedan ser formados. Se hace lo mismo con los documentos para explotar la dualidad que dice que dos documentos son similares cuando se expresan por palabras similares mientras que dos palabras son similares cuando se expresan en documentos similares. La complejidad del algoritmo se mantiene en el orden de O(tn^3). La siguiente figura muestra cómo se van formando las coocurrencias:

image

Como el objetivo para que se vuelva útil a problemas de clasificación consiste en acercar a las palabras según los temas que expresan, se pueden tomar varios caminos. El primer método consiste en alterar las matrices iniciales de similitud dado un conocimiento previo de los temas a los que está relacionado. El segundo consiste en agregar una palabra extra (dummy word) a las matrices de similitud de palabras que de cierta forma incorpore la categoría a la que pertenece como se muestra en la siguiente figura:

image

Esto provoca que las matrices de similitud de documentos se agrupen según las palabras extra que se han agregado como se muestra en la siguiente figura:

image

Sin embargo, existen palabras que trascienden a los límites trazados por las categorías por lo que debieron hacer un mecanismo para disminuir el efecto de este fenómeno. El mecanismo consiste en multiplicaciones por un factor que determina el factor de las categorías en las coocurrencias de alto orden. El efecto de alterar el factor se muestra en la siguiente figura:

image

Se hicieron varias pruebas según 3 corpus que se emplean popularmente (20-Newsgroup, Reuters y LINGSPAM). En la siguiente tabla se muestra la comparación de resultados entre su algoritmo y otros que presentan pruebas similares:

image

El problema para clasificar los documentos determinados como jerárquicos radica en que los temas se encuentran compuestos de varios subárboles pero cuando se manejan sólo dos, obtuvieron el siguiente resultado:

image

Por otra parte se midieron los tiempos que tardó cada prueba en llevarse a cabo dando como resultado los siguientes datos:

image

Hussain, S., & Bisson, G. (2010). Text categorization using word similarities based on higher order co-occurrences. SIAM International Conference on Data Mining, 1–12. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.165.7002&rep=rep1&type=pdf

Friday, December 7, 2012

Sentence Recognition Using Hopfield Neural Network

El sistema propuesto utiliza los clasificadores de Hopfield para categorizar a las oraciones de acuerdo a su significado. Un clasificador de Hopfield es una red neuronal que trabaja de manera recursiva busca situar su salida en uno de los puntos dados. La arquitectura general se muestra en la siguiente figura:

image

El primer módulo es encargado de extraer las oraciones que serán utilizadas en el sistema. Las oraciones y por tanto la base de datos son específicas de un dominio y deben ser relevantes para la clasificación.

Las oraciones son enviadas al segundo módulo en el que son separadas en palabras y son codificadas en una matriz. Se emplea una codificación binaria (1 y -1). La matriz tiene en cuenta la letra que ocupa cada posición dentro de la palabra. Las columnas representan cada letra dentro del alfabeto mientras que las filas representan la posición en la que se encuentra. La siguiente figura es el ejemplo de la representación de la palabra “web”.

image

Siendo la red de Hopfield una red recurrente por lo que la salida de cada nodo repercute en los pesos de las otras neuronas. Se crea la red dando como entrada una serie de vectores que corresponden a las diversas clases. El número de dimensiones debe corresponder al número de componentes binarios.

El módulo de reconocimiento de palabra, es una red neuronal entrenada con ciertas palabras de la base de datos y tiene como objetivo arrojar la palabra conocida (de las empleadas en el entrenamiento) más apegada a la palabra que se dio como entrada.

Las palabras obtenidas se juntan para obtener un patrón que describe a la oración y que requiere el módulo de codificación de oraciones. El módulo consta de otra red neuronal entrenada con las oraciones de la base de datos. Al final se obtiene una oración que debe tener el mismo significado. La siguiente figura muestra el patrón utilizado como entrada:

image

La base de datos empleada para las pruebas consta de 500 oraciones. Para el entrenamiento se hizo uso de 50 oraciones. Se emplearon las palabras dentro de las 50 oraciones y se agregaron otras 100. Los detalles de las redes empleadas se muestran a continuación:

image

Empleando los parámetros descritos, lograron clasificar correctamente el 92.2% de las oraciones de entrada según su significado. Los resultados se muestran a continuación:

image

Se trabaja con un diccionario finito y se propone como trabajo a futuro la extensión de este modelo a sistemas expertos (se propone uno médico como ejemplo).

Pandey, B., Ranjan, S., Shukla, A., & Tiwari, R. (2010). Sentence Recognition Using Hopfield Neural Network. IJCSI - International Journal of Computer Science Issues, 7(4). Retrieved from http://www.ijcsi.org/papers/IJCSI-Vol-7-Issue-4-No-6.pdf#page=26

Thursday, December 6, 2012

Learning Similarities for Text Documents using Neural Networks

En IR (Information Retrieval) y los motores de búsqueda Web, se tiende a representar a las palabras como bolsas de palabras (bags of words) por lo que se toma a cada palabra independiente una de la otra. De este modo, los documentos representados como vectores ocupan un espacio dimensional muy grande (con millones de componentes que corresponden a cada palabra en el diccionario). Para determinar la similitud entre dos documentos, se emplea la co-ocurrencia de las mismas palabras (correlación de coseno). Esta representación no logra capturar el sentido semántico de los documentos ya que no toma en cuenta la complejidad del lenguaje natural (sinónimos, homónimos, verbos, etc.). En el artículo se propone una MLP (Multi Layered Perceptron) para proyectar la bolsa de palabras a un espacio dimensional pequeño y posteriormente realizar las búsquedas mediante el k-vecino más cercano basado en su distancia euclidiana.

Mientras que el aprendizaje supervisado es empleado en ocasiones en las que se tiene clara una salida (una clasificación) y una serie de entradas, en el caso del artículo buscan un enfoque no supervisado en el que se intenta obtener patrones de relación entre los términos de entrada.

El proceso de la red intenta agrupar a los términos mediante su similitud, los patrones similares son atraídos entre sí mientras que se alejan de los que no se tiene nada en común. La siguiente figura muestra un ejemplo del proceso:

image

Para las pruebas se buscaron documentos que hablasen de Linux, Formula 1 y Ciencia Ficción. Se recolectaron aproximadamente 90,000 entradas por tema. Los resultados muestran que solamente para las búsquedas hechas sobre temas de ciencia ficción, se obtuvieron resultados no favorables como se muestra en la siguiente figura:

image

Cada red fue entrenada con una capa oculta de 8 neuronas y como máximo 250 iteraciones. Los resultados fueron evaluados respecto a opiniones de expertos en cada uno de los temas elegidos.

Diligenti, M., Maggini, M., & Rigutini, L. (2003). Learning similarities for text documents using neural networks. Artificial Neural Networks in Pattern Recognition (ANNPR). Retrieved from http://nautilus.dii.unisi.it/pubblicazioni/files/conference/ANN.pdf