martes, 30 de septiembre de 2008

SVD en la semántica latente

En el anterior artículo se explicaba por encima el funcionamiento de la semántica latente pero uno de los puntos clave apenas se citó. La técnica conocida como "Singular value decomposition" analiza la matriz de pesos original (termino-documento) obteniendo a continuación tres matrices distintas que interpretadas correctamente proporcionan el modelo de semántica latente. Explicada de una manera más sencilla podría decirse que a partir de esta técnica podemos observar las relaciones entre distintos elementos del sistema excluyendo buena parte del "ruido" existente en dichas relaciones.

Este tipo de análisis no se va a analizar en detalle dado que no es el objeto de este proyecto pero si se van a analizar las matrices obtenidas y las posibilidades que nos ofrecen.

* Se van a escribir las matrices poniendo entre paréntesis sus dimensiones debido a las limitaciones del editor.

Partiendo de la matriz original X(txo) que relaciona términos con documentos se descompone en un conjunto de factores ortogonales , en los estudios se utiliza un valor entre 50 y 100. A partir de estos elementos se puede aproximar la matriz original X mediante combinaciones lineales. La descomposición de la matriz original es la siguiente:

X(txo) = T0(txr) S0(rxr) O0'(rxo)

T0 y O0 tienen columnas ortogonales mientras que S0 es la diagonal. En el caso de observar solamente los k valores independientes más significativos la ecuación cambia convirtiendose en el modelo reducido que es el que se utiliza en la técnica de la semántica latente.

X(txr) "parecido" X^(txo) T(txk) S(kxk) O'(kxo)

Comparación de dos términos
Se puede obtener de una manera sencilla la matriz de relaciones entre cada par de términos utilizando la ecuación siguiente:

TS²T'

Comparación de dos documentos
Para obtener la relación existente entre cada par de documentos ha de aplicarse la siguiente ecuación:

DS²D'

Comparación entre término y documento
La matriz que almacena la comparación entre cada par término-documento se puede obtener aplicando:

TSD'

viernes, 26 de septiembre de 2008

Semántica Latente

Acabo de hacer la primera lectura a los artículos sobre semántica latente y he de decir que me parece una técnica que parte de unas ideas muy interesantes.

Si he entendido bien los artículos, el modelo de semántica latente parte del hecho de que una query y un documento sin términos comunes podrían estar hablando de lo mismo (dado que puede tener términos sinónimos) mientras que si tuvieran términos comunes podrían hablar de cosas completamente distintas (polisemia).

Partiendo de estos problemas esta técnica se resume de forma muy esquematizada como sigue:

1. Partimos de una representación similar a la del modelo vectorial de tal manera que tenemos un vector de pesos (un peso por cada término del índice) para cada documento.

2. Se aplica un método estadístico conocido como "singular-value-decomposition" descomponiendo la matriz original en 3 matrices de una forma muy específica. Esta descomposición permite observar la relevancia de cada término de manera independiente del resto de los términos.

3. Algunos de los componenetes de las matrices anteriores tienen valores muy pequeños y pueden ignorarse. Una vez aplicada una reducción de los términos tendremos una versión reducida de las matrices anteriores.

4. Al considerar únicamente los componentes más importantes de forma independiente estamos teniendo en cuenta las asociaciones más fuertes dentro de la estructura estudiada. El utilizar sólo las relaciones más fuertes posibilita la eliminación, al menos en parte, del "ruido" producido por la polisemia y la sinonimia.

5. A partir del modelo reducido se puede aproximar mediante combinación lineal el resto de valores de la matriz termino-documento. Las filas de la matriz aproximada de término-documento son utilizadas para el cálculo de similitud entre documentos ya sea por el método del coseno o por cualquier método similar.

Nota: a partir de la descomposición SVD se pueden observar relaciones independientes entre términos y / o documentos mediante cálculos matriciales sencillos

jueves, 25 de septiembre de 2008

Organización del pfc

Estoy teniendo algunos dilemas últimamente en cómo organizar bien la parte de Antecedentes (estado del arte) para que resulte intuitivo y fácil de leer.

La idea que manejo ahora y que me parece la más correcta es la siguiente:

1. Conceptos previos
1.1. Objetivos de la recuperación de información
1.2. Análisis de información
1.3. Complejidad
2. Resumen historico
2.1. Inicios
2.2. Sistemas automáticos para bibliotecas
2.3. World Wide Web
2.4. Nuevas investigaciones
3. Modelos de recuperación de información
3.1. Modelo booleano
3.2. Modelo Booleano extendido
3.3. Modelo probabilístico
3.4. Modelo vectorial
3.5. Modelos basados en lógica borrosa
3.6. Modelos lógicos
3.7. Modelo basados en la interactividad
3.8. Modelos basados en la Inteligencia Artificial
3.9. Modelos basados en semántica latente
3.10. Modelos basados en semántica distribuida
4. Técnicas de procesamiento
4.1. Escaneado de sentencias clave
4.2. Proceso de eliminación sintáctica
4.3. Selección de frases preposicionales
4.4. Lematización
4.5. Detección de sinónimos
4.6. Diccionarios de frases
4.7. Metodos de expansión jerárquicos
4.8. Elaboración automática del proceso de selección


De esta forma describo por una parte los modelos y por otra las técnicas específicas (que pueden usar varios modelos) referenciandolos correctamente según corresponda...

jueves, 18 de septiembre de 2008

Resurgimiento

Después de un curso bastante intenso he retomado estos días el proyecto fuertemente. Por fin he comenzado a redactar parte de los antecedentes de la documentación (lo que se suele llamar estado del arte) y a recordar todo lo aprendido hace casi un año.

De momento no he tenido problemas graves y todo sigue su ritmo por lo cual este mensaje solo será un formalidad para indicar que sigo trabajando en ello. A lo largo de la semana que viene publicare la jerarquía del documento y cuando Dani vuelva de sus vacaciones le enviaré el borrador que tenga en ese momento.

lunes, 10 de diciembre de 2007

Propuesta PFC

A raíz de una reunión con Dani ha surgido la idea de un PFC para la EUITIO:

La idea del proyecto es el desarrollo y la comparación de diversas implementaciones de tag-clouds (tanto en la interfaz como en el algoritmo de creación). El trabajo a realizar sería un conjunto de páginas web (con el interfaz de páginas paradigmaticas de la web 2.0 tales como Flicker o Delicious) utilizando diversas formas de mostar y crear las tag-clouds y puede que la implementación de algún prototipo de creación de la tag-cloud.

De esta forma podrían observarse las diferentes técnicas de creación y de interfaces en un mismo contexto. Es un trabajo interesante dado que hasta el momento apenas hay documentación sobre el tema y casi no sabemos nada de como usamos o creamos tag-clouds (en muchos casos se usa porque es muy "2.0").

Este proyecto además abriría una vía para la realización de un estudio pormenorizado (a medio plazo) de la usabilidad y eficiencia de las tag-clouds para el acceso a la información.

El desarrollo del proyecto (

lunes, 19 de noviembre de 2007

Automatic Content Analisis (Parte V)

En esta entrada (espero que sea la última de este tema) se van a resumir las partes del artículo relacionados con el asociamiento estadístico de términos y con la búsqueda de información controlada por usuario.

Asociación estadística de términos
En esta parte del artículo se observa cómo el análisis de contenido no ha tenido en cuanta ciertos tipos de asociación entre términos (solo tienen en cuenta relaciones existentes en los diccionarios).

El tipo de relación que se cita a continuación se basa en que dos términos están relacionados entre si cuando son "encontrados" de manera coocurrente frecuentemente en el mismo contexto. A partir de este hecho, dado un vector de conceptos asignado a un documento o a una consulta, puede expandirse añadiendo aquellos conceptos que tienen un nivel de similitud por encima de cierto umbrál.

El artículo explica (después de realizar experimentos) que un sistema de recuperación usando asociación da un grado de efectividad mayor que un sistema basado únicamente en matching de palabras. Sin embargo también defiende que un proceso normal de tesauro es mucho mejor como dispositivo de procesamiento de lenguaje que el método de asocición estadística.

Los sistemas de asociación estadística son por lo tanto más eficientes en los casos en los que no se dispone de un tesauro.
--------------------------------

Busqueda de información controlada por usuario
En el sistema SMART los vectores de concepto generados para cada documento individual en la fase de análisis se comparan con los vectores asignados con las consultas realizadas y aquellos documentos que son encontrados más similares son devueltos al usuario.

El sistema SMART tiene la particularidad de tener múltiples sistemas de análisis de contenidos que devuelven unos resultados u otros en función de los distintos usuarios (algunos centrados en la precisión, otros en el recall). De esta forma es obvio que no puede haber una solución correcta para todos los usuarios.

En este punto del artículo se propone un feddback de tal manera que se realice una búsqueda parcial. A partir de los resultados mostrados se podrá realizar un ajuste de parámetros antes de realizar una segunda búsqueda más refinada.

Hay muchos métodos que se basan en sistemas de feedback. El artículo cita varios de ellos:

1. Diccionario mecánico -> Presenta al usuario una lista de los posibles términos relacionados con la consulta realizada por el usuario. Se sugiere al usuario que puede reformular la pregunta con alguno de los términos nuevos.

El uso de terminos asociados de manera estadística tambien puede proporcionar nuevos potenciales términos de búsqueda, al igual que las clases de un tesauro en caso de usarse.

El problema de este método es que deja la carga de la reformulación de la consulta en manos del usuario.

2. Reformulación automatica de consulta -> A partir de los resultados de una búsqueda previa se realiza una reformulación de la consulta. El usuario (a partir de los resultados de una primera búsqueda) dice, para documento, si es relevante o no para su propósito.

Con esta información se reformula la consulta con los términos de los documentos relevantes y sin los conceptos de sean irrelevantes para todos los documentos escogidos. Este método produce considerables mejoras en la efectividad de la búsqueda.

3. Alterar el proceso de análisis -> Esta solución solo es posible en sistemas como SMART que tengan implementadas varias estrategias de análisis de contenidos. Este método tiene como ventaja añadida el poder elegir qué método de análisis puede ser mejor para cada caso.

miércoles, 14 de noviembre de 2007

Automatic Content Analisis (Parte IV)

Jerarquía de conceptos

El artículo continua explicando cómo se utilizaban desde hace muchos años las jerarquías de conceptos en las bibliotecas. Partiendo de esta base indica que pueden usarse en los sistemas de análisis de contenido para la identificación de información y para propósitos de recuperación.

Usando está técnica, es posible extender busquedas a través de los conceptos de la jerarquía.
(Nota mia) Por ejemplo, en el caso de no encontrar sufucientes documentos con una búsqueda podemos devolver los documentos asociados con su concepto padre.

El sistema SMART incluye la jerarquía de conceptos. Se asume que una consulta al tesauro precede cualquier operación de expansión jerárquica.
(Nota: Las jerarquías de conceptos también pueden representar relaciones de referencia cruzada además de relaciones padre-hijo. Este tipo de relaciones no especificadas reciben una interpretación distinta al resto de relaciones)

En cuanto a la estructura misma de la jerarquía, es lógico pensar que los términos más generales estarán cerca de la raíz mientras que los más especificos más cerca de las hojas. El artículo, además de este razonamiento también dice que parece haber una relación entre la frecuencia de ocurrencia de un término y su lugar en la jerarquía.

Los términos con mayor frecuencia (y por lo tanto "teoricamente" los más comunes) deberían colocarse en un nivel superior a aquellos con menor frecuencia.

Las jerarquías de conceptos dependen de los documentos o los usuarios en sí. Un concepto, en función del contexto, tendrá un concepto padre u otro. Partiendo de esta premisa está claro que no puede haber una jerarquía genérica que sirva a todos los usuarios y circunstancias.

Los sistemas de jerarquía pueden servir para sugerir ampliaciones o reducciones de una consulta o de cierta interpretación.

martes, 13 de noviembre de 2007

Automatic Content Analisis (Parte III)

Diccionarios de frases de manera sintáctica y estadística:

Los métodos considerados anteriormente se basaban en el análisis de palabras sueltas. En este caso se utiliza como unidad la frase en vez de la palabra. El usar un conjunto de palabras tiene ventajas respecto a cada una de sus palabras por separado, una de estas ventajas es que su significado suele ser más especifico y por lo tanto menos ambigüo.

Los diccionarios de frases incluyen normalmente pares, triplas o cuadruplas de palabras de tal forma que identifican combinaciones de conceptos. Estas frases son las que se presuponen más esperadas para indicar el contenido de un tema dado.

Para la construcción de este tipo de diccionarios hay varias técnicas. Una de ellas es basarse en las combinaciones de palabras con una alta frecuencia en los documentos o en las consultas. Por otra parte se puede partir de un tesauro previamente creado.

En el sistema SMART se optó por basar el diccionario de frases en coocurrencias de los conceptos del tesauro.

Principalmente hay dos técnicas de detección de frases. Los métodos estadísticos (que usan las estadísticas de co-ocurrencias entre componentes de frases) y los métodos sintácticos (que se basan en reglas sintácticas para detectar las frases).

(Nota: Según experimentos del artículo las frases suelen tener normalmente dos términos o como mucho tres)

En el caso del análisis sintáctico (dependiente de idioma), para cada frases sintáctica se obtiene no solo la lista de conceptos de los componentes sino también ciertos indicadores sintácticos de tal manera que se pueden observar las relaciones sintácticas entre componentes.

El artículo, apoyado en experimientos, defiende que el uso de técnicas de procesamiento de frases son más efectivas que el uso único del tesauro.

Por otra parte también concluye que el uso de técnicas estadísticas o sintácticas no tienen una gran diferencia de efectividad, sin embargo, el análisis sintáctico necesita mucha mayor potencia computacional.

(Nota: Otro problema es que el análisis sintáctico es diferente para cada idioma)

lunes, 12 de noviembre de 2007

Automatic Content Analisis (Parte II)

Los diccionarios de raices y la lista de sufijos:
Una de las primeras idéas para la recuperación de la información fue el uso de las palabras contenidas en los documentos y de las búsquedas para propositos de identificación de contenidos. El documento además defiende que los métodos de matching de vocabulario son satisfactorios para ciertos tipos de usuarios.

A continuación se citan algunas "entidades" usadas en los métodos de matching:

a. El diccionario de palabras inglesas

b. Vocabulario omitiendo la "s" final para equiparar singulares a plurales y la tercera persona de los verbos

c. Mediante una técnica más refinada pueden convertir cada palabra a su raíz eliminando prefijos y sufijos típicos antes de hacer el matching.

Cualquiera de las tres técnicas anteriores pueden ser aplicadas a todo el texto o a ciertas palabras comunes (el resto no se tendrá en cuenta).

(Nota: Hay que recordar que estos métodos, tal y como estan expuestos son dependientes completamente del idioma)

Los términos pueden tener cierto peso asociado en función de su importancia en un texto (normalmente proporcional a la frecuencia de aparición). En el caso del sistema SMART la decisión fue aplicar al menos una normalización mínima realizando stemming, usar una lista de exclusión para eliminar palabras comunes y dar a cada palabra un peso proporcional a su frecuencia en el texto. Del mismo modo el sistema tiene ciertas reglas morfológicas incorporadas para la correcta obtención de la raíz.

(Nota: En el caso del uso del stemming obviamente el peso es con relación a la frecuencia de la raíz)

El texto concluye en la parte del sistema de stemming que en un sistema sencillo de recuperación, dado un conjunto de raíces y consultas de búsqueda pueden ser usados directamente como indicadores de similitud de contenido aunque también pueden usarse otros métodos más sofisticados como se verán a continuación.

-----------------------------------
Diccionario de sinónimos (Tesauro)

Un tesauro es un conjunto de palabras (o raíces de palabras) agrupados en categorias, llamadas clases. Una de las posibles implementaciones es relacionar cada clases conceptual con algún número.

Al construir los tesauros se dan tres tipos de problemas:
1. Decidir qué palabras se incluyen
2. Decidir qué tipo de categorias de sinónimos deben usarse
3. Decidir dónde debe aparecer cada palabra en la estructura del tesauro

Por supuesto no existe una configuración "mágica" válida para todos los casos por lo que dicha configuración depende del contexto y del propio tesauro. Aún así el texto (basandose en experimentos con tesauros) defiende que ciertos tipos de tesauros son más efectivos que otros.

En particular defiende el uso de tesauros en los que los términos con alta frecuencia deban ser eliminados o deban aparecer por si mismos en clases de concepto. Los términos con baja frecuencia deben agruparse en clases con otros términos de baja frecuencia.

Por último los términos con poca significación técnica deben ser eliminados y los términos ambigüos solo deben aparecer en aquellas clases en las que pueden llegar a necesitarse en la práctica.

El peso de un concepto es determinado tanto por el número de palabras mapeadas en la clase como por el tipo de tesauro utilizado. El peso de palabras ambigüas mapeados en más de una clase es dividido entre el número posible de clases.

La filosofía del sistema SMART se podría resumir en que no es necesario eliminar asignaciones ocasionales incorrectas dado que está diseñado para asignar un número grande de conceptos de los cuales una gran parte se espera que estén bien asignados.

miércoles, 24 de octubre de 2007

Automatic Content Analisis (Parte I)

Acabo de terminar de leer por encima el artículo "Automatic Content Analysis in Information Retrieval" y voy a realizar una segunda lectura más detenida mientras resumo su contenido en el blog.

Como en los anteriores casos de una introducción sobre IR añadiendo en este caso una división conceptual de los "trabajos" en los sistemas de IR:

1. Analisis de información: Identificación para cada término almacenado y cada búsqueda de indicadores de contenidos.
2. Búsqueda y recuperación: Operación de matching entre los indicadores de contenidos de los términos almacenados y los de las consultas. También incluye la selección (recuperación) de aquellos elementos que tienen un nivel de similitud mayor de cierto grado con la consulta.

El análisis de contenido puede ser muy exhaustivo (muchos indicadores de contenido muy especídicos) o puede ser poco detallado dando un conjunto pequeño de indicadores muy generales.

En el primer caso se daría sistema de IR cuyas respuestas tendrían precisión y poca exhaustividad, al contrario que el el segundo caso. Llegados a este punto se definen ambos términos:

Precisión(precision): Porcentaje de documentos relevantes respecto de los recuperados.
Exhaustividad (recall): Porcentaje de documentos recuperados de los relevantes totales.

Lo normal es intentar tener un recall razonablemente alto manteniendo la precisión en uno intervalo razonable.

--------
El siguiente punto del artículo es la presentación de los problemas del analisis de contenido, definiendo dos categorias de sistemas automáticos de procesamiento de texto:

1. Text inference systems: Sistemas de procesamiento que permiten confirmar o negar hipótesis en función del texto procesado.

2. Text retrieval systems: Sistemas de procesamiento que indican si el texto procesado puede incluirse en la descripción del usuario de lo que quiere.

Funcionamiento de un sistema de analisis de contenido:
1. Introducción de consultas
2. Conversión de consultas en componentes aceptados por el sistema
3. (resultado del punto anterior) Obtención de conjuntos de indicadores de contenido (vectores de concepto).
4. Comparación de los vectores de las consultas con los indicadores de contenido del sistema de información dado
5. Se extraen los docuementos cuyos vectores coinciden (match) lo suficientemente bien con los de las consultas.

----------------------
Características del sistema SMART

SMART es (en 1968) un sistema autónomo (completamente) de recuperación de información. No necesita ningún tipo de interacción por parte de personas, al contrario de otros sistemas que necesitaban la asignación de terminos del índice, usando para ello principalmente la frecuencia de ocurrencia de ciertas palabras o frases en el texto de los documentos.

El sistema utiliza varias técnicas tales como procedimientos de matching de palabras simples, diccionarios de sinónimos, organización jerárquica de identificadores, generación de frases de manera estadística y sintactica, ...

Una de las características del sistema es que es controlado por el usuario. De esta manera puede configurarse para producir respuestas más cercanas a las esperadas. El sistema se creó como un sistema experimiental de IR e incorpora muchos módulos, algunos de los más interesantes son:

a). Sistema de stemming para el lenguaje inglés: Permite obtener raíz y sufijos de las palabas.

b). Diccionario de sinónimos (también conocido como tesauro): Cambia sinonimos por un "número de concepto" sirviendo además como identificadores de concepto para el sistema.

c). Organización jerárquica de identificadores: A partir de los identificadores del tesauro es posible realizar una organización jerárquica. Una vez realizado esto podemos obtener, para un término dado, sus padres, hijos o hermanos en la jerarquía. Esto permite especializar (hijos), generalizar (padres) y extender con referencias cruzadas (hermanos) las consultas.

d). Estadísticos para calcular coeficientes de similaridad a partir de coocurrencias de conceptos en las sentencias de la colección.

e). Métodos de analisis sintáctico para comparar las sentencias de documentos y consultas con un diccionario de estructuras sintácticas.

f). Métodos estadísticos de matching entre frases

g). Sistema de actualización de diccionarios.

El sistema SMART esta diseñado de tal manera (los detalles no importan) que permite comparar los resultados de los distintos métodos utilizados. En el resto del artículo se presentan tablas y resultados en distintos contextos.