Quantcast
Channel: BEEVA Labs » procesamiento lenguaje natural
Viewing all articles
Browse latest Browse all 4

Conceptos en la extracción automática de información de documentos

$
0
0

Ante el reto de extraer semántica de documentos ya hablamos de la herramienta word2vec en un post anterior, Semántica desde información desestructurada. En este artículo nos vamos a centrar en otras herramientas habituales podemos utilizar para extraer información de documentos. Esta información engloba palabras más relevantes, temas e incluso una clasificación en función de qué trata el documento.

Introducción a las técnicas clásicas

Primero vamos a hacer un breve resumen de algunas técnicas que se utilizan habitualmente para extraer información del texto. Estas técnicas crean modelos entrenados a partir de un conjunto de documentos. Cada modelo crea una representación vectorial (vector space model) que traslada un documento a un vector dentro del espacio vectorial. Este vector contiene una serie de valores, representando si un término aparece en el documento (distinto de cero) o no (cero). Cada modelo tiene un sentido distinto de lo que es un término: puede ser una palabra, una frase, un párrafo, etc. Por ejemplo, estos espacios vectoriales, se utilizan para ver la distancia que hay entre documentos (vectores) y saber si son similares o no (están cerca o lejos).

Modelo bow (bag-of-words): representa el texto como una bolsa de palabras y su frecuencia de aparición, sin tener en cuenta gramática ni orden de palabras.

Modelo tf-idf (term frequency – inverse document frequency): representa cómo de importante es una palabra en un documento dentro de un conjunto de documentos. El valor tf-idf aumenta proporcionalmente al número de veces que una palabra aparece en el documento, pero es compensada por la frecuencia de la palabra dentro del conjunto de documentos. De esta manera, se gestiona el hecho de que algunas palabras son más comunes que otras.

Modelo LSI (Latent Semantic Indexing): utiliza la técnica matemática de descomposición en valores singulares (SVD, Singular Value Decomposition) para identificar patrones en las relaciones entre los términos y conceptos contenidos en un documento. Utiliza una representación vectorial que representa las palabras en un espacio de semántica latente u oculta (latent semantic space). Resumiendo, LSI encuentra el significado oculto de las palabras basado en su ocurrencia en documentos, basándose en el principio de que palabras usadas en un mismo contexto tienen significado similar. Este modelo también es conocido como LSA (Latent Semantic Analysis) y una variante probabilística es pLSA o pLSI.

Modelo LDA (Latent Dirichlet Allocation): extensión de pLSA, y a diferencia de la familia de modelos LSI, es un modelo generativo que representa los documentos como una mezcla de topics formados por palabras con una probabilidad (que se parece más a lo que es un documento real). Esto hace que LDA sea el método más común para extraer topics (topic modeling). Esto es, cada documento tendrá asociado n topics con una probabilidad. LDA descubre automáticamente estos topics, los cuales siguen una distribución Dirichlet. La parte de latente viene en este caso porque en estadística, una variable que hay que inferir en vez de observar se llama variable latente. En nuestro caso, observamos las palabras y no los temas, con lo que nuestras variables latentes son los temas.

Proceso

La tarea más habitual antes de trabajar sobre cualquier documento es extraer el texto y realizar una limpieza del mismo. Normalmente se eliminan caracteres no útiles (signos de puntuación), se realiza un etiquetado gramatical (o más conocido como Part-of-speech tagging), por ejemplo para quedarnos con los sustantivos, e incluso se detecta el idioma del texto, por si sólo queremos quedarnos con documentos en un idioma concreto. A veces esta tarea es decisiva para aplicar los siguientes pasos, ya que si no, pueden llevarnos a resultados no esperados.

Tras la limpieza, tendremos un conjunto de documentos que será la entrada de nuestro modelo bow. Para cada documento, se crea un diccionario con las palabras presentes y su frecuencia. Por ejemplo, las palabras y frecuencias asociadas a opiniones sobre el libro de Robinson Crusoe son {robinson:45, boat:21, island: 37, crusoe: 51…}

Una vez creado el modelo, éste se puede adaptar para eliminar stopwords o incluso ignorar las palabras cuya frecuencia sea menor de un límite dado (en la imagen el límite es 2). Después, creamos un modelo tf-idf con el modelo bow. El modelo tf-idf contiende por cada documento, un diccionario de palabra y valor tf-idf. Si queremos obtener las palabras más relevantes de cada documento, a las que llamamos keywords o palabras clave, nos quedaremos con las que tengan mayor valor tf-idf. Por ejemplo, las keywords son (ordenadas por relevancia): crusoe, robinson, defoe, island, friday, ship, cannibals, slave, boat, shipwrecked, diary, adventure, sailor, footprint, pirates, bye, survive, dear, boring, sea, novel, hut, survival, providence, shore, daniel.

Proceso de limpieza de datos y extracción de keywords

Limpieza de datos y extracción de keywords

Una vez construido el modelo tf-idf y obtenidas las palabras más importantes, podemos usarlo para descubrir topics de los documentos sirviendo como entrada para crear un modelo LDA. De hecho, solemos crear tres modelos diferentes, según el número de topics que queremos obtener: 50, 100 y 500 topics. Cada topic ha sido configurado para que devuelva las cinco palabras que lo forman más probables. Por ejemplo, el topic (del modelo de 100 topics) asociado al libro de Robinson Crusoe es time*0.0298+slave*0.0137+ship*0.0125+bovary*0.0118+whale*0.0085. Excepto el término bovary, todas parecen encajar a la hora de decir de qué trata el libro. El tener asociado a un documento tres topics distintos una buena manera de validar que modelo nos gusta más de acuerdo con nuestros datos. El método LDA utilizado viene explicado en el artículo Reducing the Sampling Complexity of Topic Models.

Posteriormente, para cada palabra del topic podemos buscar qué palabras son similares (con word2vec) y obtener una serie de palabras que nos describan en un sentido más amplio nuestro documento. Por ejemplo, para el topic anterior obtendremos algo así: time, period, moment, before, slave, slaves, slavery, fugitive, ship, ships, sloop, vessel, bovary, madame, flaubert, rostand, whale, whales, humpback, orca. A este conjunto de palabras lo hemos llamado topic extended.

Proceso de extracción de tipos y palabras similares

Extracción de topics y palabras similares

Herramientas

Casi todas las herramientas funcionan sobre Python. Si queréis utilizar estas técnicas, os recomendamos utilizar GraphLab (Dato) ya que tiene una API muy sencilla: podéis empezar por la herramienta de text_analytics de GraphLab Create API. Gensim es otro framework que contiene modelos, incluyendo word2vec. Existen frameworks, más centrados en el procesamiento del lenguaje natural, como pattern que contienen mucha funcionalidad interesante para etiquetado PoS, minería de datos, machine learning y, además, tiene métodos para aplicar a texto en castellano. Otra herramienta es Weka, que contiene un conjunto de algoritmos de machine learning para minería de datos.

Retos

Ante cualquier reto que se nos plantea siempre nos encontramos problemas en el camino. En el caso de extraer información de documentos, dependerá mucho de lo que queramos conseguir. Es difícil hacer un proceso genérico para cualquier documento, siempre tendremos que adaptar las técnicas para encontrar una solución que se adapte mejor a nuestras necesidades. Esto implica, por ejemplo, aplicar o no ciertos métodos.

Generalmente, la tarea más costosa es siempre la de limpieza y preprocesado de los documentos. Si queremos buenos topics, que representen la temática de los documentos, necesitaremos buenos datos.

Además, no todos los topics representan a la perfección un documento. Normalmente encontramos alguna palabra que a priori parece que no tiene mucha relación pero, por lo general, entrenar varios modelos puede ser una buena opción para ver cuál, subjetivamente, representa mejor nuestro conjunto de documentos.

Por último, no menos importante, si tenemos pocos documentos o documentos con poco texto, estos métodos puede que no funcionen como esperamos. Necesitan entrenar con mucho texto para poder crear buenos modelos.

Conclusiones

En este artículo os hemos contado en qué consisten algunas de las herramientas tradicionales más utilizadas en la extracción de información de documentos de manera automática. Es importante tener conocimiento de ellas para poder aplicarlas según el reto que se nos plantee.

Imagen: adena.co

Nieves Ábalos
Investigadora en el Departamento de Innovación en BEEVA, trabajando en el área de Agentes Inteligentes e Inteligencia Artificial. Lineas de investigación: Procesamiento del Lenguaje Natural, Affective Computing y Natural User Interfaces. Ingeniera Informática con Máster en Desarrollo de Software por la Universidad de Granada. En proceso de obtener el doctorado en sistemas de diálogo y procesamiento del lenguaje.

Viewing all articles
Browse latest Browse all 4

Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Trending Articles


Ang Nobela sa “From Darna to ZsaZsa Zaturnnah: Desire and Fantasy, Essays on...


Lola Bunny para colorear


Dino Rey para colorear


Girasoles para colorear


Dibujos de animales para imprimir


Renos para colorear


Dromedario para colorear


Angry Quotes Tagalog – Best Patama Quotes


Love Quotes Tagalog


RE: Mutton Pies (mely)


Gwapo Quotes : Babaero Quotes


Kung Fu Panda para colorear


Libros para colorear


Mandalas de flores para colorear


Dibujos para colorear de perros


Toro para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Long Distance Relationship Love Quotes


Mga Tala sa “Unang Siglo ng Nobela sa Filipinas” (2009) ni Virgilio S. Almario





Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC