En está presentación cubrimos algunas de las ideas básicas de como hacen el análisis del sentimiento (sentir) de la gente en las redes sociales y sitios web las aplicaciones existentes
3. ¿Qué es?
Es el utilizar un software que automáticamente
extrae opiniones, emociones y el sentir de la gente
en un texto.
Nos permite rastrear actitudes y sentimiento en el
web. Ya sea en blogs, comentarios, foros, twitter
etc.
Se pueden rastrear productos, marcas o personas
para determinar si son bien o mal vistos en la red.
4. Podemos analizar…
• Hechos
– «Esa pintura costó más que un Monet»
• Opiniones
– «El Monet no me gustó, Pollock es un mejor
artista»
5. Varias áreas de la computación se mezclan
• Procesamiento de lenguaje natural
– Transforma el texto en un formato que la máquina
puede comprender
• Big Data
– Se recaban una gran cantidad de datos (minería de
datos, minería de opiniones) para mejorar el
desempeño de los algoritmos
• Inteligencia artificial
– Utiliza la información que le da el PLN y muchas
matemáticas para determinar si algo es positivo o
negativo
6. El problema tiene varias dimensiones
• ¿Cómo define el algoritmo la subjetividad y el sentir?
• ¿Cómo analizamos la polaridad (positivo/negativo)?
• ¿Cómo lidiamos con oraciones con palabras subjetivas?
• ¿Cómo asignamos un valor a una opinión?
• ¿Cómo podemos saber la intensidad de un sentimiento?
7.
8. HE y ML
• Human Engineering
– Sistemas expertos con listas de palabras buenas y
malas hechas a mano
• Machine Learning
– NLP: Procesamiento natural del lenguaje y
entendimiento del habla, se utilizan modelos
estadísticos y sets de entrenamiento
– Tipos:
• Supervisado y directo
• Sin supervisar y sin datos
• Semisupervisado
9. ¿Qué es una opinión para una máquina?
Es un «quintuple» o sea un objeto hecho de 5 cosas
distintas
O -> el objeto en cuestión
f-> alguna característica del objeto
so->el valor del sentir de la opinión de la persona h en cuanto a la
característica f del objeto o al tiempo t
Estos 5 elementos los tiene que identificar el software
(definido por Bing Liu en el NLP Handbook)
10. El lenguaje es demasiado ambiguo
para la máquina
«El reloj no es resistente al agua» - Es negativo en una
reseña pero neutral en la descripción del producto
«tan útil como una trampa en un bote salvavidas» –Es
negativo pero no lo entiende la máquina
«lol estuvo increeeeeibleeeeee» - lenguaje común en
redes muy difícil de procesar
12. El proceso inicial…
Etiquetar parte del discurso pero también la posición y más:
Las palabras en un texto son etiquetadas usando un POStagger
(Petra tagger en español) para asignarle una etiqueta a cada
palabra, permitiendo así que el algoritmo las pueda procesar, esto
se ve algo así:
13. Revisamos como están orientado el sentimiento (so) de
los patrones que extrajimos:
Increíble + Teléfono
Lo cual es:
[JJ] + [NN] (adjetivo seguido por un sustantivo)
Lo opuesto sería terrible, en este paso el algoritmo
trata de situar en una escala emotiva por así decirlo
14. Los efectos de la negación
«la comida no estuvo buena»
Hay que seguir el negativo hasta el término de la oración
o algún signo de puntuación para determinar el
sentimiento
El efecto de la negación depende del término
Por ejemplo:
Doble negativo mediano -> no está mal = bien
Doble negativo extremo -> no está horrible = regular
15. Parcialidad del aprendizaje
• Si revisamos IMDB encontramos que la palabra «bad» se repite
mucho más veces en las críticas con 10 estrellas que en las de 2
estrellas
• Por lo tanto tenemos que normalizar usando las frecuencias
relativas
16. Sentimiento en redes
• Emoticons
– ;( :/
– Con expresiones regulares podemos detectar el 95% de estos
– Ignoramos los complejos
• Longitud
– «La presentación estuvo geniaaaaaaaaaaaal! David es el mejoooooor!
Ahhhhhhhh!»
– No hay palabras con 3 vocales seguidas
– Fácil de normalizar por lo común que son
El ruidio lo podemos quitar con más datos, usamos la idea de Big Data
y limpiamos los datos
Incluimos muchos modelos de entrenamiento
17. Clasificando los «sentimientos»
• Naive Bayes (usamos el teoréma de Bayes)
• Entropía máxima (usa distribuciones de
probabilidad con base a conocimiento parcial)
• Support Vector Machine (los datos los
convertimos a vectores en un espacio 2D)
• Relevance Vector Machine ( similar a SVM pero
asigna probabilidades usando Sparse Bayesian
Learning para ARD)
SVM y RVM tienen un 80% de mejor desempeño
que los otros
18. Herremientas
• Part-of-speech (POS) taggers
– Petra a POS tagger en español
• Parsers
– Enju — A deep syntactic parser for English
– CFG Parser — A fast CFG parser for English
• Named entitities/terms
– Named-entity Recognizer — Part of the GENIA Tagger
– ACELA — Tool for efficient annotation of named entitites
– Smart dictionary lookup — machine learning-based gene/protein name lookup
– Term Normalization Tool — Normalizes terms with string rewriting rules automatically
generated based on a dictionary.
• Other tools
– EventMine — A machine learning-based event extraction system.
– brat — A free, open-source, web-based tool for text annotation visualisation and editing.
– Cafetiere — An easy-to-use text mining system for carrying text mining on your own document
collection
– Sentence and paragraph breaker — An accurate sentence and paragraph detector based on
heuristic rules
– Clinical Document Classification — automatic document classification demo
– Sentiment Analysis Tool — Analyses sentiment of input text.
– Rapid Miner - Professional open source data mining made easy: Analytical ETL, Data Mining,
and Predictive Reporting with a single solution