Está en la página 1de 17

Abstraction & Application 31 (2021) 1 − 17 UADY

Procesamiento y análisis de Tweets en Español mediante la


biblioteca StanfordCoreNLP
Processing and analysis of Tweets in Spanish using the
StanfordCoreNLP library
a
Luis R. Basto-Díaz, b Francisco Moo-Mena, c Jorge Ríos-Martínez, d Francisco A. Madera

Universidad Autónoma de Yucatán, Facultad de Matemáticas

a
luis.basto@correo.uady.mx, b mmena@correo.uady.mx, c jorge.rios@correo.uady.mx,
d
mramirez@correo.uady.mx

Abstract

In recent years, research has been carried out using several methods, techniques or algorithms to
analyze the information that users post on their social networks, particularly on Twitter. Twitter is a
social network that allows users to send short messages (tweets) of 280 characters and it is becoming
increasingly popular to express ideas, thoughts, feelings, etc. In this work, the opinions or users’ tweets
around the national politics were extracted, they were stored in a NoSQL based documents database, and
the analysis of the sentences, phrases or words was carried out using the Natural Language Processing
components of the Stanford University CoreNLP library (Stanford CoreNLP). The analysis allows us to
know the advantages of this library using the Spanish model.

Resumen

En los últimos años, se han llevado a cabo investigaciones mediante diversos métodos, técnicas o algo-
ritmos para el análisis de la información que los usuarios publican en sus redes sociales, en particular en
Twitter. Twitter es una red social que permite a los usuarios enviar mensajes cortos (tweets) de 280 ca-
racteres y su uso se está volviendo cada vez más popular para externar ideas, pensamientos, sentimientos,
etc. En este trabajo, se extrajeron las opiniones o “tweets”de los usuarios sobre los comentarios que giran
alrededor de la política nacional, se almacenaron en una base de datos NoSQL basada en documentos
y se realizó el análisis de las oraciones, frases o palabras, utilizando los componentes del Procesamiento
de Lenguaje Natural de la biblioteca CoreNLP, de la Universidad de Stanford (Stanford CoreNLP). El
análisis permite conocer las ventajas de la biblioteca haciendo uso del modelo en español.

Procesamiento de Lenguaje Natural, BD NoSQL

2010 M athematics Subject Classif ication 68T50, 68U15, 68-02.

Fecha de recepción: mayo 10, 2021. Fecha de aceptación: junio 22, 2021.

1
2 Análisis de Tweets eb Español usando StanfordCoreNLP

1. Introducción

En la actualidad, existe gran cantidad de información que se genera día con día en las redes sociales.
Twitter es una red social que permite a los usuarios enviar mensajes cortos (tweets) de 280 caracteres y su
uso se está volviendo cada vez más prominente durante diversos eventos: deportivos, políticos, transmisiones
en vivo por televisión, radio, etc.
Con toda la información generada en las redes sociales y en Twitter en particular, existe la necesidad
de analizarla por diversos motivos: para medir la emoción o sentimiento de lo publicado, para identificar
las necesidades de los usuarios, para identificar si lo publicado es verdadero o falso (fake news), etc. Es
muy complicado analizar cada tweet manualmente, es por eso que se necesita de algoritmos, técnicas o
herramientas computacionales, para analizarlos masivamente.
Las herramientas de Procesamiento de Lenguaje Natural (NLP, por sus siglas en inglés) que proporcionan
anotaciones lingüísticas básicas de textos son bloques de construcción crucial para investigaciones y aplica-
ciones. La mayoría de estas herramientas, como NLTK [Bird2009] y Stanford CoreNLP [Manning2014], se
han desarrollado para el idioma inglés y están disponibles de forma gratuita. En el caso de NLTK se requiere
tener instalada al menos la versión 3.5 de Python, el caso de CoreNLP a partir de la versión 3.5 requiere al
menos Java 8. De igual manera, NLTK debe importarse y ejecutarse en un script de Python, en el caso de
CoreNLP podría ejecutarse desde la línea de comandos y como servidor.
StanfordCoreNLP es una herramienta que proporciona una base para el Procesamiento de Lenguaje
Natural. Originalmente fue desarrollada utilizando modelos pre-entrenados en diversos idiomas, tales como:
árabe, chino, inglés, francés y alemán [Manning2014]. En la actualidad, se ha incorporado a la biblioteca el
modelo en el idioma español, aunque no todos los componentes originales están incluídos.
Se extrajeron las opiniones (tweets) en español, de los usuarios sobre la política nacional mexicana, se
almacenaron en una base de datos NoSQL basada en documentos, y se realizó el análisis haciendo uso de la
biblioteca StanfordCoreNLP mediante su modelo en el idioma español.

2. Procesamiento del Lenguaje Natural

2.1. Descripción y tareas del Procesamiento de Lenguaje Natural

El procesamiento del lenguaje natural (PLN) es un área de investigación y aplicación que explora cómo
se pueden utilizar las computadoras para comprender y manipular el texto o el habla en lenguaje natural
para hacer cosas útiles. Un investigador en esta área tiene como objetivo recopilar conocimientos sobre cómo
los seres humanos entienden y utilizan el lenguaje de modo que se puedan desarrollar las herramientas y
técnicas adecuadas para que los sistemas informáticos comprendan y manipulen los idiomas para realizar las
tareas deseadas [Chowdhury2005].
Las actividades principales que forman parte del Procesamiento Natural del Lenguaje pueden clasificarse
en: análisis léxico y morfológico, segmentación de palabras, generación de frases sustantivas, análisis semánti-
co, significado y representación de conocimiento. Las aplicaciones incluyen diversos campos de estudio, tales
como: la traducción automática, recuperación de información en varios idiomas, extracción de la información,
resúmenes de texto, reconocimiento de voz, etc.
Un sistema de PLN inicia su análisis a nivel de palabra para determinar la estructura morfológica y
naturaleza (significado) de la palabra, luego pasa al nivel de la oración para determinar el orden de las
palabras, la gramática y significado de toda la oración; y al final pasa al contexto y al entorno general o
dominio.
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 3

2.2. Herramientas para el Procesamiento del Lenguaje Natural

En la actualidad existe una gran diversidad de herramientas y/o bibliotecas para el Procesamiento de
Lenguaje Natural, tales como: MonkeyLearn, IBM Watson, Google Cloud NLP API, Amazon Comprehend,
NLTK de Python, TextBlob, Stanford Core NLP entre otros. A continuación se describen brevemente cada
una de estas herramientas:

2.2.1. MonkeyLearn

MonkeyLearn [Monkeylearn2021] es una plataforma que permite obtener información a partir de diversos
documentos de texto, tales como: redes sociales, reseñas, correos electrónicos, entre otros.
Con esta herramienta se puede utilizar un modelo pre-entrenado para realizar tareas de análisis de texto:
análisis de opiniones, clasificación de temas o extracción de palabras clave o de igual manera se puede
construir un modelo de aprendizaje máquina propio, ajustado a las necesidades del problema mismo.
La herramienta provee un API REST para usarse con: Python, Ruby, PHP, Javascript, Java y R, así
como una plataforma para el desarrollo. Es una herramienta con costo.

2.2.2. IBM Watson

IBM Watson [IBMWatson2021] Es un conjunto de servicios de inteligencia artificial que se encuentran


disponibles en la nube de IBM (IBM Cloud). Se conforma de diversas herramientas que al combinarse
permiten identificar y extraer palabras clave, categorías, emociones, entidades y más.
Algunas de estas herramientas son:

IBM Watson Discovery: La cual extrae conocimientos de PDF, HTML, tablas e imágenes.

Comprensión del lenguaje natural de Watson: Herramienta que utiliza el aprendizaje profundo para
extraer metadatos de texto como entidades, palabras clave, categorías, sentimiento, emoción, relaciones
y sintaxis.

2.2.3. Google Cloud NLP API

El API de Google para NLP [GoogleCloudNLP2021] es una herramienta que contiene una biblioteca
de funciones que proporciona varios modelos previamente entrenados para el análisis de opiniones (opinio-
nes, sentimientos y actitudes), la clasificación de contenido (deportes, entretenimiento, lugares, etc.) y la
extracción de entidades (fechas, precios, empresas, números de teléfonos, etc.), entre otros. Además, ofrece
una herramienta que permite crear modelos personalizados de aprendizaje automático. Forma parte de la
infraestructura de Google en la nube, por lo que permite analizar textos e integrarlos en el almacenamiento
de documentos de Google.
El NLP API de Google utiliza el aprendizaje automático para mostrar la estructura y el significado de los
textos. Analiza texto en varios idiomas, como alemán, chino (simplificado y tradicional), coreano, español,
francés, inglés, italiano, japonés, portugués y ruso.
Es una herramienta que tiene un costo de acuerdo al número de documentos o texto que se envía a la
API para su análisis así como del número de caracteres Unicode (incluidos los espacios en blanco y etiquetas
de marcado, como las etiquetas HTML o XML). Por cada 1000 caracteres se contabiliza como una unidad.
Ejemplo: si se envían tres solicitudes que contienen 800, 1500 y 600 caracteres respectivamente, se cobrarán
cuatro unidades: una por la primera solicitud (800), dos por la segunda (1500) y una por la tercera (600).
4 Análisis de Tweets eb Español usando StanfordCoreNLP

2.2.4. Amazon Comprehend

Amazon Comprehend [AmazonComprehend2021] es un servicio de Procesamiento de Lenguaje Natural


integrado en los servicios Web de Amazon. Se puede usar esta API para:

Extracción de frases claves: La cual produce frases clave o temas específicos de conversación a través
de una puntuación que respalda la frase clave.

Análisis de opiniones: Produce la opinión general de un texto (positiva, negativa, neutra o una combi-
nación) de estas.

Análisis sintáctico: Permite analizar texto con tokenización y categorías gramaticales, e identificar
etiquetas y límites de palabras, como sustantivos y adjetivos, dentro del texto.

Reconocimiento de entidad: Identifica las entidades nombradas (“Personas”, “Lugares”, “Ubicaciones”,


etc.) que se categorizan de manera automática a partir del texto proporcionado.

Detección de idioma: Identifica automáticamente texto escrito en más de 100 idiomas y produce el
idioma dominante. Puede realizar análisis de textos en inglés, francés, alemán, italiano, portugués y
español.

2.2.5. NLTK de Python

NLTK de Python [Bird2009] es una de las herramientas líderes en la construcción de modelos de PNL.
Está centrada en la investigación y la educación en el Procesamiento de Lenguaje Natural (PLN).
NLTK proporciona varios componentes para tareas de PNL, como tokenización, etiquetado, derivación,
análisis y clasificación, entre otros. Es una herramienta de software libre y código abierto disponible para los
princpales sistemas operativos.
Se pueden incorporar una gran diversidad de corpus listos para su análisis.

2.2.6. TextBlob

TextBlob [TextBlob] es una biblioteca de Python que proporciona un API simple para realizar tareas
comunes de procesamiento del lenguaje natural (NLP), tales como: etiquetado gramatical, extracción de
frases nominales, análisis de sentimientos, clasificación (Bayes y árboles de decisión), traducción, frecuencia
de palabras y frases, división de sentencias, lematización y más.
Esta biblioteca no está disponible para el idioma español y aunque contiene un traductor para realizar la
traducción del idioma español al inglés y posteriormente realizar el análisis se depende de la buena conversión
del idioma de esta herramienta.

2.2.7. La biblioteca Stanford CoreNLP

Stanford CoreNLP [Manning2014] es una biblioteca de funciones basada en Java que implementa diversos
métodos estándar para el Procesamiento del Lenguaje Natural. Originalmente fue diseñada para procesar
textos en inglés, pero se ha ampliado para procesar diversos idiomas, entre ellos el español. En la Tabla
1 se identifican los procesos o componentes de la biblioteca disponibles en inglés y aquellas disponibles en
español.
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 5

Procesos Inglés Español


Tokenización 3 3
División de sentencias 3 3
Etiquetado Gramatical 3 3
Lematización 3 7
Nombrado de entidades 3 X
Árbol sintáctico constitutivo 3 3
Árbol sintáctico de dependencias 3 7
Análisis de sentimientos 3 7
Detección de menciones 3 7
Correferencia 3 7
Extracción de información abierta 3 7

Tabla 1: Procesos incluídos en la biblioteca Stanford CoreNLP.

Stanford CoreNLP se ejecuta en un servidor integrado que requiere algunos parámetros específicos depen-
diendo del modelo o lenguaje que se utilice. Para ejecutar el servidor, se deben definir algunos parámetros,
tales como: formato de salida, archivo de salida, propiedades del modelo en español, el puerto en el que se
ejecutará el servidor CoreNLP y el número de hilos para la ejecución concurrente de los procesos.
En este trabajo se utilizó la biblioteca CoreNLP para analizar tweets escritos en español, por lo que
solamente se tomaron en cuenta los procesos disponibles en este idioma, como:

Tokenización (tokenize): Proceso de dividir por palabras un texto.

División en sentencias (ssplit): Proceso de dividir el texto en sentencias.

Etiquetado Gramatical (Part-of-Spech, POS por sus siglas en inglés): Proceso de etiquetar las partes
de una oración a tokens como verbos (VB), sustantivos(NN), adjetivos (JJ), etc.

Reconocimiento de entidades nombradas (NER): Identifica las entidades (nombres de personas, objetos,
horas, fechas, etc.).

Árbol sintáctivo constitutivo: El análisis sintáctico extrae un árbol de análisis de una oración que
representa su estructura sintáctica de acuerdo con una gramática de estructura de frases.

3. Trabajos relacionados

La biblioteca Stanford CoreNLP ha sido ampliamente utilizada en trabajos académicos, a continuación


se describen algunas de estas aplicaciones.
Los métodos computacionales de análisis de sentimientos se clasifican en: basados en léxico [Musto2014]
y basados en aprendizaje máquina [Vinodhini2012], [Socher2013]. Woldermariam [Woldemariam2016] probó
varios métodos para detectar sentimientos en foros de discusión. Para ejecutar sus experimentos utilizó el
algoritmo de predicción de sentimientos de apache-hadoop y el modelo RNTN (Recursive Neural Tensor Net-
work ) de la biblioteca CoreNLP. Esta investigación evalúa las tecnologías para análisis de sentimientos y las
adapta a MICO (Media in Context) [Woldemariam2016]. Se eligió el foro de discusión Zooninverse, en donde
los voluntarios contribuyen con sus comentarios en los descubrimientos científicos. Para los experimentos se
eligieron 600 muestras de tweets.
El algoritmo de predicción basado en léxico se implementó en plataforma hadoop, el diccionario contenía
palabras con puntaje de sentimientos. El RNTN se entrenó en Sentiment Treebank que contenía 215,154
frases, etiquetadas con Amazon Tuk. Se encontró una mejora de precisión en RNTN del 9.88 % con respecto
al método basado en léxico.
6 Análisis de Tweets eb Español usando StanfordCoreNLP

Una de las dificultades en la clasificación de análisis de sentimientos es la limitación en el modelo de


bag-of-words o cambio de polaridad debido a la función de las palabras o construcción de las sentencias. Aún
si hay palabras positivas, la sentencia completa puede ser negativa. Maipradit [Maipradit2019] propuso una
estrategia basada en aprendizaje máquina para clasificar sentimientos. Utilizaron n-gram IDF, una extensión
teórica de (Inverse Document Frequency) [Shirakawa2015].
En el trabajo [Rameshbhai2019], los autores comparan tres modelos de aprendizaje automático para el
análisis de sentimientos de 1472 encabezados de noticias en periódicos. Las etiquetas que debían asignarse
son positivo (1) o negativo (-1). Los dos primeros modelos empleaban máquinas de vectores de soporte
(SVM)[Go2009] sobre unigramas y bigramas. La diferencia entre esos modelos radica en que en el primero
calculó la frecuencia de las palabras mientras que el segundo transformaba la frecuencia a una medida llamada
Tf-idf. Tf-idf mide la relevancia de la palabra en un documento con respecto a la importancia de la palabra
en el conjunto de documentos. Finalmente, el tercer modelo empleaba un clasificador de tipo Descenso
de Gradiente Estocástico (SGD) [Rameshbhai2019]. La herramienta Stanford CoreNLP fue aplicada para
representar los encabezados como una palabra raíz y sus dependencias.
En [Song2014], los autores utilizaron la herramienta Stanford CoreNLP para analizar datos bibliográficos
en artículos publicados en la revista JASIST (Journal of the American Society for Information Science and
Technology) durante el año 2012. La idea fue resaltar los conceptos más frecuentes encontrados en esas
publicaciones y con esto determinar las tendencias generales durante ese año.
En [Phand2017], los autores definen una herramienta basada en Stanford CoreNLP para realizar tareas
de análisis de sentimientos relacionados con la opinión de usuarios, acerca de productos y servicios, en la
red social Twitter. Esta propuesta considera cinco niveles de aceptación, positivo, tendencia positiva, neutro,
tendencia negativa y negativo.
Stanford CoreNLP además de usarse para aplicaciones directas de análisis de texto, también ha servido
como base para trabajar con idiomas distintos al inglés, por ejemplo, en [Bondielli2018] se presentó CoreNLP-
it una extensión a la herramienta básica que permite realizar separación de sentencias, lematización, etiquetar
las partes de las sentencias y hacer parseo de dependencias para el lenguaje italiano. Esta extensión permite
generar salida en un formato que se conoce como dependencias universales (UD) que está emergiendo como
un estándar en el desarrollo de parsers multilenguajes. CoreNLP-it es de código abierto, gratuito y sigue la
misma estructura del CoreNLP original por lo que la curva de aprendizaje es relativamente baja. Los autores
mostraron que es posible adaptar esta herramienta a otros lenguajes como el español y el francés con relativa
facilidad.

4. Metodología

En la Figura 1 se muestra la metodología empleada y se listan a continuación los subprocesos que se


realizaron.

Extracción y almacenamiento: Extracción de los tweets y almacenaiento en MongoDB.

Preprocesamiento: Se limpiaron los tweets eliminado los elementos innecesarios.

Aplicación de los componentes del CoreNLP en los tweets.

Resultados: Se determinaron los resultados de cada componente para su análisis y conclusión.

Visualización: Se mostraron gráficamente los resultados.

https://universaldependencies.org
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 7

Figura 1: Metodología aplicada

En las siguientes secciones se explican a detalle cada una de las fase de la metodología empleada.

4.1. Extracción y almacenamiento de datos

El proceso de recolección de datos consistió en extracción de tweets a través de bibliotecas del lenguaje
Python. Se tomaron datos en español sobre información política de México, específicamente los que aportaran
información del hashtag “#AMLO”, que en el tweet tenga la palabra “AMLO” y los tweets de usuario como
“@lopezobrador_”. La recolección de Tweets se hizo durante dos días, diciembre 01 y 02 del 2018, donde
se podía esperar que hubiera gran movimiento en Twitter. El conjunto final de tweets fue almacenado en
MongoDB, una base de datos basada en documentos, para el pre-análisis y su posterior procesamiento. La
base de datos ocupó un total de 415MB, conformada por 612,402 documentos (tweets).
En la Figura 2 se muestra el proceso de recolección de datos.

Figura 2: Proceso de extracción y almacenamiento de tweets

Los tweets que se almacenan en la base de datos son tal y como se extrajeron de la red social. Para el
desarrollo de este proyecto se necesitaron solamente algunos datos (atributos o propiedades) de los tweets,
por lo que se hizo necesario acotar el número de atributos de la base de datos. Los atributos que finalmente
se seleccionaron para el análisis fueron los que se indican en la Tabla 2.

Atributo Descripción del atributo


Id Identificador del documento
User_screen_name Alias del usuario
User_language Idioma del usuario
User_description Descripción del usuario
User_name Nombre del usuario
Text El texto del Tweet
User_id_str Identificador del usuario

Tabla 2: Atributos seleccionados para el análisis.


8 Análisis de Tweets eb Español usando StanfordCoreNLP

Con el objetivo de mostrar los resultados del preprocesamiento, se obtuvieron las 50 palabras más fre-
cuentes, como lo muestra la Figura 3. Obtener estos datos numéricos, nos permite realizar un análisis previo
de los datos con los que se trabajará.

Figura 3: Las 50 palabras más frecuentes

Un extracto de los tweets se muestra en la Figura 4. La columna Text, representa al atributo text del
tweet y la columna tweet_len representa la longitud del texto. Como se puede observar, existen diferen-
tes caracteres, signos de puntuación, emoticons, URL’s y saltos de línea; más adelante se explica todo el
preprocesamiento para la eliminación de estos elementos.

Figura 4: Extracto del atributo Text de los tweets y su longitud

4.2. Preprocesamiento

Para el procesamiento previo de los datos se codificó un script en el lenguaje Python para limpiar el
atributo Text de cada Documento o tweet. Esta limpieza de datos consistió en eliminar los saltos de línea,
los enlaces o links así como de los caracteres extraños tales como: %, &, ∗, +, −, :, ; , =, ?, [, ], _, \, {, }, k. <, >.
En la figura 5 se muestran los subprocesos que se realizaron en esta etapa.
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 9

Figura 5: Subprocesos en la etapa de preprocesamiento

Como primer paso, se eliminaron, del atributo Text de los tweets, todas las palabras formadas con http
y https, esto con el fin de que los enlaces o URL’s no sean procesados. En la Figura 6 se observa un extracto
del atributo Text una vez que se han eliminado las URL’s.

Figura 6: Extracto de tweets con las URL’s eliminadas

Posteriormente, se eliminaron elementos de salto de línea, tal y como se observa en la Figura 7.

Figura 7: Extracto de tweets con los saltos de línea eliminados

A continuación, se eliminaron los elementos gráficos o emoticons que podían tener los tweets. En la Figura
8 se han eliminado los emoticons.
10 Análisis de Tweets eb Español usando StanfordCoreNLP

Figura 8: Extracto de tweets con los emoticons eliminados

El siguiente paso consistió en la eliminación de palabras que no tienen sentido en el proceso, elementos
gramaticales como: artículos, pronombres, preposiciones, etc (Figura 9).

Figura 9: Extracto de tweets con las palabras sin sentido o vacías eliminadas

Por último se eliminaron los símbolos de puntación tales como la coma, el punto, el punto y coma, etc.,
(Figura 10).

Figura 10: Extracto de tweets con signos de puntuación eliminados

5. Resultados en la ejecución de los componentes NLP

5.1. Configuración y ejecución del servidor

Para la ejecución del servidor, se definieron los parámetros del archivo de salida y su formato como json;
se seleccionó el modelo pre-entrenado en español junto con sus propiedades; se definió el tiempo de ejecución
a 300 segundos y el número de hilos a 8. La ejecución arroja un archivo json con los siguientes elementos:
tokens o palabras divididas, el etiquetado gramatical (POS), entidades nombradas (NER) y las dependencias
entre las palabras.
En la Figura 11 se observa a estructura del archivo de salida.
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 11

Figura 11: Archivo json de salida

5.2. Etiquetado POS y NER

Un ejemplo del etiquetado gramatical (POS) así como el nombrado de entidades (NER) para la oración:
“‘HISTORICO AMLO RECIBE LA BANDA PRESIDENCIAL ENTREGADA POR PEÑA NIETO.”, se
presenta en la Figura 12. Como se puede apreciar, se listan las palabras indicando la palabra original, el
número del caracter de inicio de la palabra, el número del caracter final de la palabra, la etiqueta gramatical
y el tipo de entidad que arrojó para cada palabra.

Figura 12: Extracto de salida de componentes POS y NER

De igual manera, se contabilizaron cada una de las etiquetas gramaticales y del nombrado de entidades,
este anotador utiliza uno o más modelos de secuencia de aprendizaje máquina para etiquetar entidades,
aunque también puede llamar a componentes especializados basados en reglas para etiquetar e interpretar
horas y fechas. Para el reconoce de clases de entidades realiza una combinación de tres marcadores de
secuencia entrenados en varios corpus, incluidos CoNLL, ACE, MUC y ERE [NER2020].
12 Análisis de Tweets eb Español usando StanfordCoreNLP

En la Figura 13 se puede observar que CoreNLP etiquetó: 461 palabras como nombres propios (PROPN),
342 palabras como sustantivos (NOUN), 294 adjetivos (ADJ), 84 adverbios (ADV), 71 signos de puntuación
(PUNCT), 57 auxiliares, 34 determinantes (DET), 31 adposiciones (ADP), 30 pronombres (PRON), 21 nu-
merales (NUM), 10 conjunciones subordinadas (SCONJ), 6 símbolos (SYM), 2 conjunciones de coordinación
(CCONJ) y 1 interjección (INTJ). En [UniversalPOSTags2020] se proporciona el etiquetado universal en el
que se basa CoreNLP.

Figura 13: Contabilización de los componentes POS

En la Figura 14 se contabiliza el nombrado de entidades (NER). CoreNLP etiquetó 162 palabras como
organizaciones, 60 palabras como misceláneas (MISC), 29 palabras como personas, 26 títulos, 15 números,
14 palabras como países, 12 ubicaciones geográficas, 7 fechas, 6 palabras de tipo moneda, 3 causas de muerte,
2 nacionalidades, 2 ciudades, 1 ideología, 1 como cargo criminal y 1263 palabras que no fueron etiquetadas
en alguna clase.

Figura 14: Contabilización de los componentes NER


Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 13

5.3. Dependencias gramaticales

La representación de dependencias gramaticales de CoreNLP proporciona una descripción de las relacio-


nes gramaticales en una oración para que puedan ser entendidas fácilmente y usarse de manera efectiva sin
necesidad de conocimientos lingüísticos avanzados.
CoreNLP proporciona un analizador sintáctico de dependencia y genera tres tipos de dependencias, las
cuales están nombradas en el archivo json de la figura 11: dependencias básicas sin colapsar, almacena-
das en el arreglo BasicDependencies; dependencias mejoradas, almacenadas en EnhancedDependencies; y
dependencias++ mejoradas en EnhancedPlusPlusDependencies.
Existen muchas dependencias entre las palabras en una oración, pero una dependencia involucra solo dos
palabras en las que una actúa como el padre (cabeza) y la otra actúa como el hijo (dependiente). Hay 37
relaciones de dependencia universales utilizadas [UniversalDepRel2020]. Enseguida se proporciona algunos
extractos de tweets de las cuales se analizan sus dependencias gramaticales.
En la Figura 15 se observa la salida de las dependencias básicas de la oración “HISTORICO AMLO
RECIBE LA BANDA PRESIDENCIAL ENTREGADA POR PEÑA NIETO.”.

Figura 15: Extracto de las dependencias entre palabras

En la Figura 16 se muestra gráficamente las relaciones existentes en las palabras de la oración, como se
puede observar se entregan también los elementos gramaticales (POS). La descripción de los elementos es la
siguiente.

Figura 16: Extracto de las dependencias entre palabras

Sujeto nominal (nsubj): Es el sujeto sintáctico de la cláusula. El regulador de esta relación puede no
ser siempre un verbo, puede ser un adjetivo o un sustantivo. En el caso específico de la sentencia “HISTO-
RICO AMLO RECIBE”se obtuvo que el regulador es el verbo RECIBE y el sujeto nominal es la palabra
“HISTORICO”.
14 Análisis de Tweets eb Español usando StanfordCoreNLP

Modificador de adjetivo (amod): Es cualquier adjetivo que sirve para modificar el significado del sustan-
tivo. Para la sentencia “HISTORICO AMLO”se obtuvo que el sustantivo es “HISTORICO”, el adjetivo es
AMLO.
Objeto de un verbo (obj): Es el segundo argumento más importante de un verbo después del sujeto.
Normalmente, es el sintagma nominal que denota la entidad sobre la que se actúa o que sufre un cambio de
estado o movimiento. En la sentencia, el verbo “RECIBE”se relaciona con el objeto “BANDA”.
Nominal indirecto (obl): Se usa para un nominal (sustantivo, pronombre) que funciona como un argu-
mento no básico (oblicuo) o adjunto. Esto significa que funcionalmente corresponde a un adverbial adjunto
a un verbo, adjetivo u otro adverbio. En la sentencia, el verbo “RECIBE”se relaciona con el sustantivo
“PEÑA”mediante el nominal indirecto.
Determinante (det): Es la relación existente entre un sustantivo y su determinante. En el caso de la
sentencia “LA BANDA”, se obtuvo que hay una relación entre el sustantivo “BANDA” con el determinante
“LA”.
Relación de casos (case): Se utiliza para cualquier elemento de casos que se trate como una palabra
sintáctica separada (incluidas preposiciones y posposiciones). En la sentencia “POR PEÑA”se obtuvo una
relación case entre el sustantivo “PEÑA” y la adposición “POR”.
Puntuación (punct): Es cualquier signo de puntuación en una cláusula. En la sentencia, el verbo “RECI-
BE”se relaciona con el signo de puntuación final.
Relación compuesta (compound): es una de las tres relaciones para expresiones de varias palabras. Se
puede usar para componer dos sustantivos, verbos o adverbios. En las sentencias “PEÑA” y “NIETO”se
puede observar la relación de composición entre esos dos sustantivos.

5.4. Árbol sintáctico constitutivo

El análisis de constituyentes es el proceso de analizar las oraciones dividiéndolas en subfrases también


conocidas como constituyentes. Las subfrases pertenecen a una categoría gramatical específica como NP
(frase nominal) y VP (frase verbal).
Para la oración “HISTORICO AMLO RECIBE LA BANDA PRESIDENCIAL ENTREGADA POR
PEÑA NIETO.” el árbol constitutivo queda como se muestra en la Figura 17
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 15

Figura 17: Extracto de las dependencias entre palabras

En el árbol anterior, las palabras de la oración están encerradas en los rectángulos de color amarillo,
es decir, están en las hojas del árbol. Las frases constituyentes están encerradas en rectángulos de color
verde. Se puede observar claramente cómo la oración completa se divide en subfrases hasta que solo quedan
las palabras en las terminales. Además, hay diferentes etiquetas para denotar componentes como VERB
para verbo, NOUN para sustantivos, etc. En [ConstituentTags] se pueden identificar todas las etiquetas
constituyentes.

6. Conclusiones y trabajo futuro

La herramienta CoreNLP de Stanford, ofrece una gran variedad de tareas y funciones para el Procesa-
miento de Lenguaje Natural (NLP). En la actualidad soporta seis idiomas o modelos preentrenados: Árabe,
chino, inglés, francés, alemán y español.
En este trabajo se analizó la herramienta con el modelo en el idioma español, utilizando datos de la red
social Twitter. Se identificaron las salidas de los componentes ofrecidos en dicho idioma y también los que
hacen falta con respecto al modelo en inglés.
Como resumen podemos concluir que Stanford CoreNLP arroja algunos errores en los resultados cuando
16 Análisis de Tweets eb Español usando StanfordCoreNLP

en el texto fuente existen formas verbales sintácticamente iguales a las formas sustantivas o nominales, sin
embargo, los resultados del procesamiento manual pueden ser más complejos, debido a la capacidad del
experto para agregar conocimientos implícitos así como para encontrar sinónimos en el texto. También se
pueden extraer conocimientos incompletos, porque las oraciones carecen de información sobre quién/qué es
el sujeto cuando los verbos están en voz activa. Esto puede conducir a la identificación de características
funcionales más abstractas o más específicas.
Así, el procesamiento de texto, incluso en estilo formal, tiene problemas relacionados con el aspecto de
los modelos sintácticos y con las particularidades del lenguaje natural y el idioma ya que en cada idioma
hay elementos muy particulares que pueden variar de sintaxis aunque puedan significar mismo. Algunos de
estos puntos pueden resolverse parcialmente mediante el uso del aprendizaje automático o un procesamiento
manual previo.
Uno de los componentes faltantes en el idioma español y muy importante en las tareas del NLP es el
análisis de sentimientos, es decir, la capacidad de identificar en un texto si su contexto o significado es
positivo, neutro o negativo. Es posible que esta tarea se pueda incoporar a CoreNLP como trabajo futuro.

Referencias
[Chowdhury2005] Chowdhury, G. G. (2005). Natural language processing. Annual Review of Information
Science and Technology, 37(1), 51–89. doi:10.1002/aris.1440370103

[Bird2009] Steven Bird, Ewan Klein, and Edward Loper. 2009. Natural Language Processing with Python,
O’Reilly Media Inc..

[GoogleCloudNLP2021] Google Cloud Natural Language, (2021). Recuperado el 8 abril 2021 de https://-
cloud.google.com/natural-language

[IBMWatson2021] IBM Watson. (2021). Recuperado el 8 abril 2021 de https://www.ibm.com/watson

[Monkeylearn2021] Monkeylearn. (2021). Recuperado el 8 abril 2021 de https://monkeylearn.com/

[AmazonComprehend2021] Amazon Comprehend – Procesamiento de lenguaje natural (NLP) y aprendizaje


automático (ML). (2021). Recuperado 8 April 2021, de https://aws.amazon.com/es/comprehend/

[TextBlob] TextBlob: Simplified Text Processing — TextBlob 0.16.0 documentation. (2021). Recuperado
mayo 2021, de https://textblob.readthedocs.io/en/dev/

[Manning2014] Manning, Christopher D., Mihai Surdeanu, John Bauer, Jenny Finkel, Steven J. Bethard,
and David McClosky The Stanford CoreNLP Natural Language Processing Toolkit In Proceedings of
the 52nd Annual Meeting of the Association for Computational Linguistics: System Demonstrations, pp.
55-60, 2014

[Woldemariam2016] Y. Woldemariam Sentiment analysis in a cross-media analysis framework. IEEE Inter-


national Conference on Big Data Analysis (ICBDA), pp. 1-5, 2016.

[Musto2014] C. Musto, G. Semeraro, and M. Polignano C. Musto, G. Semeraro, and M. Polignano. 8th
International Workshop on Information Filtering and Retrieval, 2014.

[Vinodhini2012] G.Vinodhini and R.Chandrasekaran Sentiment analysis and opinion mining: A survey.
International Journal of Advanced Research in Computer Science and Software Engineering, vol. 2, no.
2277 128X, 2012.

[Socher2013] R.Socher, A.Perelygin, J. Wu, J.Chuang, C.Manning, A. Ng, and C.Potts. Recursive deep
models for semantic compositionality over a sentiment treebank. Empirical Methods in Natural Language
Processing, 2013.

[Maipradit2019] Rungroj Maipradit, Hideaki Hata, Kenichi Matsumoto Sentiment Classification using N-
gram IDF and Automated Machine Learning. IEEE Software, PP. 1-1. 10.1109/MS.2019.2919573.
Luis Basto et al./ Abstraction & Application 31 (2021) 1 − 17 17

[Shirakawa2015] M. Shirakawa, T. Hara, and S. Nishio, N-gram IDF: A global term weighting scheme based
on information distance, in Proceedings of 24th International Conference on World Wide Web (WWW),
2015, pp. 960–970.
[Rameshbhai2019] Chaudhary Jashubhai Rameshbhai and Joy Paulose. Opinion mining on newspaper head-
lines using SVM and NLP. International Journal of Electrical and Computer Engineering, pp. 2152-2163,
vol. 9, 2019.
[Go2009] Go A, Bhayani R, Huang L, 2009. Twitter sentiment classification using distant supervision.
CS224N Project Report , Stanford 1, 12.
[Bondielli2018] Alessandro Bondielli, Lucia C. Passaro, and Alessandro Lenci. CoreNLP-it: A UD pipeline
for Italian based on Stanford CoreNLP. Fifth Italian Conference on Computational Linguistics, pp.
57-61, 2018.
[NER2020] Named Entity Recognition. recuperado en febrero 22, 2021, en https://stanfordnlp.github.io/-
CoreNLP/ner.html
[ConstituentTags] Penn Treebank II Constituent Tags. Recuperado en febrero 22, 2021, http://www.surdea-
nu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html

[UniversalDepRel2020] Universal Dependency Relations. Recuperado en febrero 22, 2021, https://universal-


dependencies.org/u/dep/
[UniversalPOSTags2020] Universal POS Tags. Recuperado en febrero 22, 2021, en http://universaldepen-
dencies.org/docsv1/u/pos/all.html

[Song2014] Min Song and Tamy Chambers. Text Mining with the Stanford CoreNLP. Y. Ding et al. (eds.),
Measuring Scholarly Impact, Springer International Publishing Switzerland 2014, Chapter 10, pp.
215-234.
[Phand2017] Shital Anil Phand and Jeevan Anil Phand. Twitter sentiment classification using stanford
NLP. 1st International Conference on Intelligent Systems and Information Management, (ICISIM),
Aurangabad, 2017, pp. 1-5.

También podría gustarte