El documento presenta una introducción al Text Mining. Explica que el Text Mining extrae información no trivial de texto sin estructura para encontrar patrones y relaciones. También describe algunas de las técnicas utilizadas como el análisis gramatical, la representación de documentos y el clustering. Finalmente, menciona algunas aplicaciones como el análisis de opiniones y la detección de tendencias.
2. ¿Qué es Text Mining?
2
Text Mining es ir de:
“La calidad de atención es muy mala. Llamé 5 veces
reclamando por el servicio de SMS y no me atendió
nadie.”
… a:
Razón: Calidad de atención mala. Llamó 5 veces.
Tema: servicio SMS
Esto puede ser combinado con tiempo de
llamada, operador, etc. para ver conocer cuáles
son los productos más caros de atender.
3. ¿Para qué Text Mining?
3
A veces tenemos mucho texto y poca
información u oculta…
¿Quién es autoridad en qué tema? ¿Qué temas
están creciendo en importancia?
Otras veces tenemos mucho texto y mucha
información oculta...
emails, chats, libros online, comentarios de
productos ¿Qué leo? ¿Con qué se relaciona?
¿Tiene el texto un sesgo a favor o en contra de
algo o alguien?
4. ¿Por qué Text Mining?
4
En algunos campos (por ej. relacionados a
biología, medicina, etc.) el 80% del
conocimiento está en papers.
Humanos no escalan:
Una persona puede leer, en promedio, 20 papers
por semana. En ese lapso PubMed agregó 2500
abstracts.
De acuerdo a Gartner, hasta el 85% de
información empresarial es no estructurada.
5. Buscar no es suficiente
5
El objetivo de Information Retrieval (IR) es
ayudar a usuarios a que encuentren una
respuesta a una necesidad de información, o sea
maximizar precision y recall. No es tanto que la
información no esté clara, sino que es muy dificil
de encontrar.
El objetivo de Text Mining es el de identificar,
extraer y relacionar información con mayor
precisión.
Técnicas de IR se usan en text mining, por
ejemplo representación de documentos,
clustering de documentos, análisis de citas y
6. Definición
6
Text Mining es extraer información interesante
y no trivial de texto sin estructura, para poder
encontrar patrones y tendencias de datos,
asociaciones entre entidades, y reglas
predictivas entre esas entidades mencionadas
en el texto.
7. Aplicaciones
7
En organizaciones, text mining se usa para
identificar expertos y relaciones entre empleados
y proyectos, tecnologías y clientes (Knowledge
Management).
En empresas, text mining se usa para hacer
análisis de información de clientes (por ejemplo
call centers)
En química y medicina, text mining se usa para
identificar nuevas relaciones entre síntomas
causas y tratamientos (p.ej. Entre agentes
químicos y drogas).
En finanzas, se usa para descubrir patrones que
relacionan información financiera y no financiera
8. Dificultad
8
Text Mining es más complicado que Data
Mining porque:
Las computadoras no pueden leer o comprender
texto.
El texto no tiene estructura bien definida
(campos).
Un documento trata varios temas.
El significado de las palabras es ambiguo, y
depende del contexto y del idioma.
Posible explosión combinatoria de conexiones
potencialmente válidas.
9. Dificultad
9
Número de atributos > 15000
Ruido (errores de ortografia, abreviaturas)
Sinónimos
Diferentes significados dependiendo de la
función: ("claro, lo que Ud quiere es..." vs. "los de
colores claros son mas caros")
Diferentes significados dependiendo de la
comunidad:
"debian soluciona tu problema" (Debian Linux) vs
"debian solucionar tu problema" (Verbo “debían” sin
ancento).
Localismos
10. Tareas típicas
10
Detección de importancia de emails (spam)
Clustering de documentos (vivisimo.com)
Creación de mapas de topicos
(www.leximancer.com)
Minería de tendencias, y Opiniones
(www.opencalais.com)
Extracción de ontologías y de entidades
Resumen de documentos
Descubrimientos de relaciones por citas y
links
12. Presunciones (bolsa de
palabras)12
Cada documento se representa por una serie de
términos.
Un término es una palabra o grupo de palabras
útiles para describir el contenido del documento.
Todos los términos son independientes entre sí, lo
que implica que puedo calcular la importancia de
cada término en un documento
independientemente de los otros (la
independencia no es cierta, pero en la práctica
funciona).
El peso wij de un término ti en un documento dj es
proporcional a la importancia de ese término.
13. Modelo vectorial
13
Todos los términos de todos los documentos
en la colección tienen un índice i único. i es
siempre igual para t en todos los documentos.
Wij > 0 si ti es un término en dj, 0 si t E Dj
Si hay N términos en total en una colección,
un documento DJ es un vector de dimensiones
N.
Documento Dj = [w1j, w2j, w3j, wnj] (la mayoria
van a ser 0)
14. Modelo vectorial
14
Los D documentos son vectores en un
espacio N dimensional.
Como ti es independiente de tj entonces los
vectores unitarios t1...tN son linealmente
independientes (forman una base del
espacio).
Tanto los documentos como las consultas son
vectores dentro del espacio.
17. Necesidad de NLP
17
La mayoría del texto disponible no tiene
estructura. Cuanto más estructura tenga para
analizar, mejor puedo encontrar relaciones
entre partes del texto.
Puedo ir desde preguntas en lenguaje natural
a respuestas muy concretas:
Por ejemplo: “¿Quién fue el presidente de EE.
UU. antes de Obama?”
preguntas: ¿quién? ¿presidente? ¿de qué o dónde?
¿quién es Obama?”
Respuesta: George W. Bush (persona)
18. Niveles de análisis del lenguaje
18
Estructura Fonética: La manera en que los
sonidos son creados, en qué contexto y qué
sonidos son creados (Reconocimiento de voz).
Estructura Morfológica (de morphos = forma):
Analizar como las palabras se forman y derivan a
partir de unidades más pequeñas.
Por ejemplo triangulaciones = triangul (raíz) + acion
(sufijo de sustantivo abstracto) + es (sufijo de plural).
Estructura Sintáctica (de sintaxis = colocar
juntas): Describe la organización gramática de
las palabras en una frase, que formar una
estructura jerárquica.
ej: sustantivo frase nominal sujeto
19. Niveles de análisis del lenguaje
19
Estructura temática: reconocer quien le hizo
qué a quién (sujeto acción objeto).
Estructura semántica: Combinar la
estructura temática para reconocer quién le
hizo qué a quién de acuerdo a la ambigüedad
del lenguaje.
Por ejemplo: “luego, llama a la puerta, pero no
responden”.
Estructura Discursiva: Relación entre las
frases según se combinan las frases
(apoya_a, discute_un_punto_de,
contradice_a).
20. Análisis gramático
20
¿Por qué querría hacer análisis gramático?
Saber la función sintáctica de una palabra permite
identificar de qué se está hablando, y como se
relacionan los objetos nombrados.
El sustantivo en el sujeto determina quién o qué
lleva a cabo una acción.
El adjetivo determina como es el sujeto (p. ej.
modelo de auto)
El verbo determina la acción (que se hace)
El objeto directo determina a quién se lo hace.
http://es.wikipedia.org/wiki/Sustantivo (y siguiente
slide) para detalles de partes de la oración.
21. Análisis gramático
21
Partes de la Oración en Castellano:
Artículo: transforma al sustantivo en uno o
muchos (el, las, lo, unas...)
Sustantivo: el sujeto de la acción
Adjetivo: la característica del sustantivo.
Verbo: la acción que se lleva a cabo.
Pronombre: sustituye a un sustantivo ya
nombrado (él, conmigo...).
22. Análisis gramático
22
Partes de la Oración en Castellano:
Conjunción: agrupa y desagrupa palabras (y, o,
ni, pero...
Adverbio: califica al verbo, adjetivo u otro
adverbio dando información de tiempo, modo,
lugar, afirmación o negación (dónde, rápido,
públicamente, tampoco,...)
Preposición: relaciona palabras mediante una
función (hasta, bajo, contra, sin,...).
23. Frases nominales
23
Una frase nominal es una sección de una oración que incluye
a un sustantivo, y que es completa (tiene sentido por sí
misma). Son importantes porque casi por si solas son
suficientes para saber de qué o quién se está hablando.
Una frase nominal puede formarse a partir de (pero no solo
de):
un nominal (sustantivo con o sin adjetivo)
un artículo y un nominal
un nombre propio
Ejemplos:
El príncipe valiente atacó la fortaleza.
En la casa corre libremente el viejo perro.
Existen otros tipos de frase: adverbiales (p.ej. “de pronto”),
verbales (p.ej. “dio apoyo”).
24. Análisis gramático
24
POS (Part-Of-Speech) tagging es asignar a cada
palabra un tag que identifique la función sintáctica de
la palabra o token. Normalmente no incluye análisis
gramático completo (sujeto - tácito o no, predicado,
etc).
POS tagging sirve como atributo adicional para otras
tareas:
En minería de opiniones, los adjetivos calificativos
(bueno, malo, viejo, etc.) incluyen la opinión, y el adverbio
cerca del adjetivo dan una idea de la firmeza de la opinión
(muy, poco, más, demasiado).
En Named-Entity Recognition (NER), los sustantivos son
el centro de las entidades.
En Question Answering, algunos adverbios (quién,
dónde, cual) dan pistas de que tipo de respuesta se
espera.
25. POS tagging automático
25
POS tagging automático es difícil porque:
La palabra no determina la función, sino que también lo
hace el contexto:
Cura puede ser verbo o sustantivo.
El castellano no es perfectamente regular:
Nace nazco nació, pero hace hago hizo
Los sufijos de palabras son ambiguos para determinar
función gramátical:
compás (sust) vs. llenás (verbo) vs. llenas (verbo) vs.llenas
(adj)
En castellano, el sujeto puede ser tácito:
Los últimos serán los primeros. (¿dónde está el sujeto?)
La gente escribe con errores gramaticales cuando escribe
coloquialmente; los taggers asumen gramática correcta.
26. Establecer genero es ambiguo
26
Establecer el género en castellano es complicado. La regla
o/a para masculino/femenino del mismo objeto tiene
ambigüedades:
pasta – pasto
foco – foca
raya – rayo
velo – vela
punto – punta
fila – filo
caro – cara
tango - tanga
Los sufijos de aumentativo / diminutivo causa ambigüedades:
visa - visita
pavo - pavote
27. Utilidades de POS tagging
27
Frases nominales como key phrases en
BlogPulse de Nielsen
29. POS Tagging
29
El tagging más simple es asignar a todas las
palabras la misma clase (usualmente:
sustantivo).
No es útil de por sí, pero sí como ultimo
recurso (fallback).
30. POS Tagging en NLTK
30
text = "There are 11 players in a football team"
text_tokens = text.split()
# ["There", "are", "11", "players", "in", "a",
"football", "team"]
import nltk
mytagger = nltk.DefaultTagger("NN")
for t in mytagger.tag(text_tokens):
print t
# ("There", "NN")
# ("are", "NN")
# ...
31. POS Tagging con expresiones
regulares31
Usar enumeraciones, prefijos y sufijos para adivinar
categorias de palabras.
import nltk
default_pattern = (r".+", "NN")
cd_pattern = (r"[0-9]+|[0-9]+,[0-9]+", "CD")
patterns = [cd_pattern, default_pattern]
CD_NN_tagger = nltk.RegexpTagger(patterns)
text = "There are 11 players in a football team"
re_tagged = CD_NN_tagger.tag(text.split())
# [('There', 'NN'), ('are', 'NN'), ('11', 'CD'),
('players', 'NN'),('in', 'NN'), ('a', 'NN'),
('football', 'NN'), ('team', 'NN')
32. N-Gramas
32
Si tengo información de ejemplo sobre
palabras y tags, puedo mirarlas en secuencias
para aprender “patrones” de tagging.
Un n-grama es una secuencia de símbolos
(letras, palabras, etc) de largo n: Unigrama =
largo 1, bigrama=largo 2, etc.
¿Por qué no usar las palabras o letras
directamente? La secuencia da información,
no todas las secuencias son igualmente
probables
33. Collocation: Juntas por
casualidad33
Colocación: dos o más palabras que
corresponden al nombre de algo o a una
manera de llamar a las cosas.
“ciencia ficción”, “disco rígido”, “software libre”.
El significado no se deduce de las partes
(ejemplo “yerba mala”).
34. Collocation
34
Colocación significa que ciertas palabras no son
independientes entre sí.
¿Cómo decidir si están juntas por casualidad, o
en realidad están relacionadas?
Medidas de Colocación más usadas:
Intersección
Jackard
Dice
Información mutua
Tests de Colocación: c2
35. Medidas de colocación
35
Carácterísticas Deseables:
Que tenga un máximo y mínimo definido, para
poder interpretar el valor.
Que no sea muy sensible a eventos raros.
Que tenga una justificación (casi siempre
probabilística).