Debido a la gran cantidad de mensajes generados en Twitter, se adopta comúnmente a un grupo objetivo que puede estar determinado por una región geográfica o una búsqueda sobre un grupo de palabras de modo que se pueda obtener una opinión de los usuarios más focalizada.
También se encuentra como totalmente deseable la posibilidad de detectar de manera temprana una posible crisis basada en el stream del grupo objetivo. Por ejemplo, las empresas podrían detectar nombres de competidores, personas o lugares que según su contexto puedan derivar en una crisis de relaciones públicas. Si la compañía logra una detección temprana, puede reaccionar de manera rápida evitando que la crisis crezca o se esparza.
Los proceso NER (Named Entity Recognition) tradicionales emplean las características lingüísticas locales de las frases, como capitalización y etiquetas POS (Part of Speech) de palabras previas, en documentos con una estructura bien formada. Los mensajes en Twitter debido a su naturaleza predominantemente informal y corta (limitada por los 140 caracteres permitidos), frecuentemente contienen errores gramaticales, faltas de ortografía o mala capitalización.
La estructura general de TwiNER se presenta en la siguiente figura:
A pesar de los problemas mencionados en los mensajes de Twitter, el orden de las palabras que denominan a una entidad suele respetarse por lo que se puede hacer una segmentación básica de palabras como se muestra en la siguiente figura:
La segmentación se lleva a cabo por la probabilidad de que las palabras formen una frase válida. La forma de calcular la probabilidad se basa en contar la aparición del segmente en un gran cuerpo de texto. Idealmente se utilizaría la totalidad de mensajes de Twitter pero debido a que no se pueden acceder, se emplea Microsoft Web N-Gram corpus que contiene todos los documentos del mercado EN-US indexados por Bing.
Otra forma de calcular la probabilidad consta en hacer la búsqueda de los segmentos en una base de conocimientos donde sean fácilmente reconocibles. Para esto se tomó un Snapshot del sitio en inglés de Wikipedia y se creó un diccionario con todos los títulos de artículos, paginas de desambiguación, páginas re-direccionadas (sinónimos) y wikilinks. Si un segmento encaja con algún término en el diccionario, entonces tiene una mayor probabilidad de ser una entidad.
Se combinan ambas fuentes con un algoritmo de programación dinámica para probar de manera eficiente varias combinaciones de segmentos. El algoritmo lleva a cabo segmentaciones binarias y se evalúa cada una de las posibilidades. La función con la que se evalúa esta basada en PMI (Point Mutual Information) y SCP (Symmetric Conditional Probability).
PMI calcula el grado en que dos palabras puedan encontrarse juntas que sea mayor a la casualidad. SCP calcula el grado de unión entre un bigrama dadas dos probabilidades condicionales para el bigrama dado cada término.
Se agregó una función que permite priorizar los nombres largos en los segmentos válidos ya que tienen una mayor probabilidad de ser el nombre de una entidad que los segmentos cortos.
Después de obtener los segmentos válidos de los mensajes, se debe hacer un filtrado de las entidades del resto de los segmentos. Como primer filtro se lleva a cabo lo siguiente:
- Se eliminan segmentos que contienen o consisten jerga conocida y comúnmente utilizada. Se basan en el sitio http://www.noslang.com/dictionary/full
- Eliminación de segmentos con caracteres repetidos consecutivamente como “hahahahahaha”, “gooooooood” y “nooooooooo” debido a que tienden a ser palabras que muestran una exageración de las emociones.
- Palabras que inicien con # debido a que normalmente se utilizan para resaltar un tema. Simplemente no se les considera como entidades en esta investigación.
Ya que un contexto general no es suficiente para la identificación de las entidades, se emplea un contexto local. Se crea un grafo de segmentos en el que cada nodo es un segmento y los arcos son pesos dados por el Jaccard Index. Se basa en que no es común que un conjunto de segmentos que no son entidades, aparezca continuamente junto.
Se aplica un modelo de caminata aleatoria (random walk) para calcular la probabilidad estacionaria de cada segmento de ser una entidad al considerar el grafo como bidireccional. En la definición de la caminata, se crea un vector de tele-transportación que favorece a los segmendos que aparecen en los enlaces de Wikipedia ya que son los que tienen mayor probabilidad de ser una entidad.
Se emplearon dos conjuntos de datos para llevar a cabo las pruebas. El primero consiste en los usuarios con más seguidores de Singapur, mientras que el segundo consiste de la búsqueda de palabras relacionadas con la elección de Singapur en el año 2011.
Para ambos conjuntos de datos, se tomaron 5000 mensajes que fueron clasificados por dos anotadores humanos con conocimientos sobre entidades ubicadas en Singapur.
Las métricas usadas para la evaluación son: Precision (Prec),Recall y F1. Prec cuantifica el porcentaje de frases extraídas que en realidad son una entidad. Recall cuantifica el número de entidades que son reconocidas correctamente. F1 es la media armónica entre Prec y Recall.
Se compararon los resultados con:
- LBJ-NER: NER basado en el perceptrón de promedio regularizado basado en índices tomados de Wikipedia.
- Stanford-NER: NER basado en el modelo CRF que incorpora información de distancia.
- T-NER: NER supervisado que utiliza el modelo CRF para aprendizaje e inferencia.
Se hicieron dos pruebas, la primera con los NER entrenados con datos de Twitter y una segunda con los NER entrenados con datos formales. El desempeño de los NER supervisados varía notablemente dependiendo de la fuente de entrenamiento. Los resultados se muestran a continuación:
Li, C., Weng, J., He, Q., Yao, Y., Datta, A., Sun, A., & Lee, B. (2012). TwiNER. Proceedings of the 35th international ACM SIGIR conference on Research and development in information retrieval - SIGIR ’12 (p. 721). New York, New York, USA: ACM Press. doi:10.1145/2348283.2348380
No comments:
Post a Comment