Comparación de la utilidad del análisis automático de polaridad reputacional respecto al análisis de sentimientos para predecir valores de bolsa

Aunque el análisis de sentimiento es la herramienta de Procesamiento del Lenguaje Natural más utilizada para la gestión de reputación online, se ha demostrado en el contexto de la campaña de evaluación RepLab que los sentimientos de un texto que habla de una entidad y sus implicaciones reputacionales para esa entidad son cosas diferentes; de hecho, la mayoría de los textos con implicaciones reputacionales son polar facts, es decir, información factual sin sentimientos explícitos.

En esta Tesis de fin de Máster, nuestro objetivo es comparar la utilidad del análisis automático de polaridad reputacional respecto al análisis de sentimientos para predecir valores de bolsa, bajo la hipótesis de que el análisis reputacional debería tener una relación más directa con la cotización y, por tanto, ser un mejor predictor de su valor bursátil. Para nuestra experimentación hemos seleccionado el bitcoin (un valor altamente volátil y por tanto un reto desde el punto de vista de los modelos predictivos) y Twitter como fuente textual, por ser una de las redes sociales en las que se puede recolectar datos de forma más sencilla y, sobre todo, por su inmediatez, que es necesaria a la hora de establecer correlaciones temporales con un valor muy fluctuante como es la cotización del Bitcoin.

Como no existía ningún dataset adecuado para nuestro objetivo, nuestra primera contribución ha sido desarrollar BitTweet, un dataset de tweets que mencionan bitcoin anotado manualmente respecto a sentimiento y polaridad reputacional y enlazado con la cotización del bitcoin. Las anotaciones manuales de este dataset nos permiten cuantificar la diferencia entre análisis de sentimiento y polaridad reputacional (algo que no había sido hecho previamente), evaluar modelos de predicción de sentimiento y polaridad reputacional, y evaluar modelos de predicción de valor bursátil a partir de tweets.

Nuestra segunda contribución ha sido la aplicación del estado del arte en Procesamiento del Lenguaje Natural (en particular, los contextual word embeddings en su implementación en el sistema BERT) a la estimación de la polaridad reputacional de los tweets y a la predicción de valores bursátiles, comparándola con el análisis del sentimiento. Nuestros resultados confirman nuestra hipótesis, mostrando que la polaridad reputacional es mejor predictor que el análisis de sentimientos. Estos resultados sugieren que los sistemas de análisis reputacional deberían reducir su dependencia del software de análisis de sentimientos y sustituirlo por un análisis directo de las implicaciones reputacionales de los textos.

Palabras clave

Bert, Polaridad Reputacional, Análisis de sentimiento, Python, Bitcoin

1. Introducción

En el primer capítulo se documentan cual es el contexto, la motivación del alumno, los objetivos propuestos al inicio del proyecto, así como la estructura de toda la memoria.

1.1. Reputación Online

La reputación online es un reflejo del prestigio de una persona, organización, marca, etc. en Internet. Esta percepción no está bajo el control de un sujeto o una organización, sino que es el resultado de un conjunto de conversaciones, opiniones, sucesos y artículos compartidos en diferentes medios sobre una entidad determinada. Ahora bien, aunque la aparición de Internet representa una nueva oportunidad de comunicación entre las entidades y sus usuarios, la diversidad de medios (blogs, redes sociales, webs, etc.) junto con la gran cantidad de información complican la capacidad de los analistas para cuantificar esta percepción.

Para poder conocer la reputación online de una marca o entidad, el analista de debe filtrar este flujo de datos con el objetivo de encontrar la información más relevante y clasificarla acorde a sus implicaciones positivas, neutrales o negativas y a su impacto potencial.

Aunque el análisis de sentimientos es la herramienta de Procesamiento del Lenguaje Natural más utilizada para la monitorización de la reputación online, se ha demostrado que los sentimientos de un texto y sus implicaciones reputacionales para esa entidad son cosas diferentes; de hecho, la mayoría de los textos con implicaciones reputacionales son polar facts, es decir, información factual sin sentimientos explícitos. Por supuesto, medir la polaridad reputacional de un texto es más complicado cuando el documento no expresa implícitamente una reputación positiva o negativa sobre el tema analizado.

Invertir recursos en este tipo de análisis puede proporcionar a las entidades aplicaciones positivas, por ejemplo, para obtener datos a partir de opiniones no estructurados sobre un servicio o producto. Un uso real de la aplicación del análisis de la polaridad reputacional lo podemos encontrar en cualquier empresa que tenga Twitter u otras cuentas en redes sociales donde se reciban comentarios. Obviamente, para una entidad es un mal negocio dejar comentarios negativos sin respuesta durante demasiado tiempo, por lo tanto, una aplicación que permita identificar tweets con reputación negativa puede darles una forma rápida de encontrar y priorizar a estos clientes descontentos.

1.2. Análisis de sentimientos vs polaridad reputacional

Como hemos introducido en la sección 1.1. Reputación Online , los sentimientos de un texto y sus implicaciones reputacionales para esa entidad son cosas diferentes. Por ese motivo, en esta sección es necesario exponer que es el Análisis de sentimientos, en que se diferencia del análisis de la polaridad reputacional y cómo podemos utilizar sus avances en el proyecto.

El análisis de sentimientos, tal y como se conoce actualmente, es el proceso de determinar si un texto expresa sentimientos o emociones. Aunque puede consistir en la especificación de qué emociones se expresan y con qué intensidad (valencia), el análisis más sencillo - y más habitual - consiste simplemente en determinar sin un texto expresa sentimientos positivos, negativos o neutrales (polaridad del sentimiento).

Por ejemplo, las palabras "buen" y "excelente" se tratarían igual en un enfoque basado en polaridad, mientras que "excelente" se trataría como más positivo que "bueno" en un enfoque basado en valencia.

Para determinar si estas palabras son positivas o negativas (o en qué medida), los desarrolladores de estos enfoques necesitan a un grupo de personas que las califiquen manualmente para cada tipo de contexto, lo que obviamente es bastante costoso y requiere mucho tiempo. Además, el léxico debe tener una buena cobertura de las palabras típicas en el contexto de estudio, de lo contrario no será muy preciso. Por otro lado, cuando hay un buen ajuste entre el léxico y el objetivo a estudiar, el análisis del sentimiento es muy preciso y, además, devuelve resultados rápidamente incluso en grandes cantidades de texto.

Como hemos comentado, el trabajo para generar los léxicos es bastante costoso y requieren mucho tiempo de producción, por lo tanto, la frecuencia de actualización no es muy elevada. Esto significa que los léxicos carecen de la última jerga actualizada y esto puede suponer un problema. En la figura 1 se puede ver un ejemplo de esta situación, ya que el usuario muestra su opinión de descontento a través de una jerga muy actual (cuadros azules) utilizando signos de puntuación múltiples, acrónimos y un emoticono. Si el análisis no tiene en cuenta estas expresiones, este tweet negativo se clasificaría como neutral por el resto del contenido.

1. Ejemplo Tweet con jerga actual. Fuente web Using VADER to handle sentiment analysis with social media text [1]

Cuando un texto tiene una polaridad de sentimiento negativa y hace referencia a la entidad de interés, es posible que tenga implicaciones negativas para su reputación. Por ejemplo, "Estoy harto del servicio de venta online de Renfe" expresa un sentimiento negativo (hartazgo) respecto a la compañía Renfe, y por tanto puede afectar negativamente a su reputación. Esto hace que el análisis de sentimientos se aplique de forma habitual para medir el estado de opinión respecto a una compañía, producto, organización, etc.

Como hemos comentado en la sección 1.1 , la reputación de una entidad puede verse afectada por noticias o hechos donde no se exprese un sentimiento. La aprobación de una ley, la implementación de una mejora técnica o incluso desastres económicos como los vividos en Venezuela deben etiquetarse de forma diferente desde el punto de vista de la reputación al del sentimiento. Este punto se expondrá más adelante, en la sección 3.2 donde se tratarán estas diferencias con ejemplos. Aquí daremos sólo un ejemplo: "La compañía X paga un 1\% de sus beneficios en impuestos" es una expresión factual, sin ningún sentimiento asociado; sin embargo, este hecho sugiere algún tipo de fraude o ingeniería fiscal, y por tanto tendrá consecuencias negativas inmediatas sobre la percepción de la compañía por parte de la opinión pública. A este tipo de expresiones se las conoce como "polar facts", y son muy frecuentes en el contexto de la reputación online.

Otra diferencia entre polaridad de sentimiento y análisis reputacional es que, en ocasiones, un sentimiento negativo puede implicar una polaridad reputacional positiva, y viceversa. Por ejemplo, "Estoy muy triste por el fallecimiento de X" es un sentimiento negativo con implicaciones positivas para X.

Aunque la polaridad reputacional es sustancialmente diferente del análisis de sentimientos, en el artículo Sentiment propagation for predicting reputation polarity [2] se muestra como las dos tareas tienen puntos en común que se pueden aprovechar y, por lo tanto, se debe analizar. Como hemos comentado anteriormente, crear un nuevo modelo para el análisis automático de la polaridad reputacional supondría un gran esfuerzo en recursos y tiempo, por lo tanto, podemos aprovechar las investigaciones previas en el análisis automático del sentimiento con el objetivo de adaptarlo para la detección polaridad reputacional.

En cierta medida, la polaridad reputacional está relacionada con el análisis de sentimiento y, por lo tanto, los trabajos previos en este campo nos serán útiles para el estudio de polaridad reputacional. Siguiendo este punto de vista, nos encontraremos dos campos que pueden aportar información para la investigación:
  • Léxico. Cada palabra que expresa sentimiento en un documento es un indicador de información. Por lo tanto, sería posible encontrar listados con términos de opinión, consultas o listados adaptados al tema analizado que podríamos utilizar.
  • Por características. El sentimiento también se puede obtener de las características sintácticas del texto a través de algoritmos supervisados o semisupervisados.

Un poco más adaptado a la sociedad actual y fuera de estas dos grandes categorías hay estudios que utilizan los comentarios en las redes sociales o las reacciones de los usuarios para conocer el sentimiento de un texto.

Una vez realizada esta breve introducción, conviene entender y analizar una solución léxica de análisis del sentimiento para adaptarla a la polaridad reputacional. Un ejemplo válido sería adaptar el algoritmo expuesto en el artículo Algorithmic trading of cryptocurrency based on Twitter sentiment analysis [3] con el objetivo de detectar el sentimiento del documento a través de un diccionario de palabras donde se especifique la polaridad del sentimiento (positivo o negativo) a un determinado tema. El resultado de este mecanismo es una puntuación basada en el número de palabras con sentimiento contenidas en el documento.

Esta definición se expresaría matemáticamente de la siguiente forma:

  • Polaridad(d) es la polaridad del sentimiento para el documento d expresada en los valores .
  • d Es la puntuación del documento d basada en la suma de la puntuación de sus términos
  • opinion(t) es la puntuación del término según el diccionario.
polaridad(d)= \left\{ \begin{array}{lr} 1 & if\,\, S_{d} > 0\\ -1 & if\,\, S_{d}< 0 \\ 0 & otros\,\, casos \\ \end{array} \right.

Para mejorar este enfoque, se pueden proponer diferentes mejoras como por ejemplo reclasificar los términos que estén catalogados como neutrales y utilizar estas palabras para aumentar el diccionario o propagar el sentimiento entre documentos con un elevado grado de términos similares.

Es más, si modificamos el léxico utilizado para clasificar los términos y los catalogamos acorde a su polaridad reputacional, obtendríamos un nuevo algoritmo capaz de predecir de forma automática la polaridad de un texto. Además, se podría implementar un método supervisado para descubrir palabras que indiquen esta característica. Este enfoque está basado en Pointwise Mutual Information ( PMI ) expuesto en la obra Word association norms, mutual information, and lexicography [4] dónde se asigna a cada uno de los términos t un valor PMI para cada una de las tres categorías: positiva, neutral y negativas. Para obtener esta puntación tenemos que realizar el siguiente calculo:

Donde:
  • c(t,positivo) es la frecuencia del término t en los documentos positivos.
  • N es el número total de palabras en el corpus.
  • c(t) es la frecuencia del término t en el corpus cuando.
  • c(positivo) es el número de términos positivos en el documento.

El PMI de los términos negativos y neutrales se calculará de la misma forma. La valoración final será el valor más alto entre las clases de los diferentes términos.

Este ejemplo es útil para entender que es y cómo se puede medir la polaridad reputacional en un texto, pero para innovar en el proyecto se requiere utilizar técnicas más modernas y eficientes aplicadas a la lingüística.

1.3. Objetivos

El objetivo de la tesis es comparar la utilidad del análisis automático de polaridad reputacional respecto al análisis de sentimientos para predecir valores de bolsa, bajo la hipótesis de que el análisis reputacional debería tener una relación más directa con la cotización y por tanto ser un mejor predictor de su valor bursátil.

Como hemos comentado al principio del capítulo, para llevar a cabo este objetivo es necesario aprender a filtrar un flujo de datos para encontrar la información más relevante con el objetivo de poderla clasificar acorde a sus implicaciones positivas, neutrales o negativas y correlacionar ese sentimiento o polaridad con la evolución bursátil de un valor.

Como no existía ningún dataset adecuado para nuestro propósito, nuestro primer objetivo ha sido desarrollar un dataset de documentos anotados manualmente respecto a sentimiento y polaridad reputacional y enlazado con la cotización de un valor bursátil. Las anotaciones manuales de este dataset nos permitirán cuantificar la diferencia entre análisis de sentimiento y polaridad reputacional, evaluar modelos de predicción de sentimiento y polaridad reputacional, y evaluar modelos de predicción de valor bursátil.

El segundo objetivo es analizar el estado del arte en Procesamiento del Lenguaje Natural con el objetivo de encontrar un algoritmo que nos permita cuantificar la polaridad reputacional de un documento y a la predicción de valores bursátiles, comparándola con el análisis del sentimiento.

1.4. Metodología

Para cumplir los objetivos expuestos en la sección 1.3 , el primer paso es escoger el valor bursátil a predecir. En este punto, se escogió Bitcoin, un sistema de moneda digital peer-to-peer programado en código abierto [5] y considerado como una alternativa a las monedas estándar. En la sección 1.4.1 se explicarán las características de la criptomoneda, así como el principal motivo de su elección.

A continuación, a partir del estudio de varios artículos basadas en algoritmos bayesianos y machine learning aplicados a la predicción bursátil, se ha podido llegar la conclusión que, para predecir la volatilidad de un valor bursátil se debe analizar su correlación con un conjunto de características entre las que pueden estar su valor económico, datos macroeconómicos o sus repercusiones sociales entre otros. Un ejemplo, se puede ver una muestra esta correlación es el articulo Exploring the determinants of Bitcoin's price: an application of Bayesian Structural Time Series [6] donde se expone la relación que existe entre la aparición de nueva legislación para el Bitcoin y un aumento de precio.

Esta afirmación ha afectado al siguiente punto de la metodología, la fuente de datos a utilizar. Del estado del arte hemos podido deducir como la red social Twitter puede ser una fuente de información perfecta sobre una entidad, ya que su formato conciso y la facilidad para extraer documentos en tiempo real ha permitido predecir la evolución del mercado. Por ejemplo, Colianni, Stuart and Rosales, Stephanie and Signorotti, Michael lo exponen en su obra Algorithmic trading of cryptocurrency based on Twitter sentiment analysis [3] donde, a partir de dos distribuciones creadas utilizando los tweets recopilados en su experimento, han conseguido predecir la evolución del mercado con el suficiente éxito como para confirmar la correlación entre el valor y el sentimiento de los usuarios en esa red social. Otro ejemplo lo podemos encontrar en The Information of Spam [8] donde demuestra que los tweets considerados como spam contienen información que ayuda a predecir la tendencia de los mercados, es decir, Anderson, Sawyer C afirma que este tipo de información considerado inútil para la mayoría de la humanidad puede tener información relevante para realizar estimaciones.

El siguiente punto en la metodología más importante fue analizar los algoritmos que existen en este momento para el análisis del lenguaje, así como conocer qué tipo de usuarios está destinada la entidad, sus intenciones y la forma de obtener información sobre ellos, es decir, analizar como poder medir la polaridad reputacional de un tweet. Tener toda esa información nos permitirá poder clasificar sus opiniones de forma correcta.

Para poder relacionar esta información con la entidad y su evolución económica es necesario realizar una investigación sobre el campo del Machine Learning aplicado a la interpretación de textos. Aunque el análisis de la polaridad reputacional es sustancialmente diferente al de sentimiento, según Sentiment propagation for predicting reputation polarity [2] las dos tareas tienen puntos en común que se pueden aprovechar. Para ello en el siguiente apartado de la metodología analizaremos las técnicas de Procesamiento del Lenguaje Natural (PLN), la polaridad reputacional y el sentimiento para valorar la mejor solución. Más exactamente, se utilizará BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding [9], el nombre que se le ha otorgado a uno de los más avanzados modelos de procesamiento de textos que existen y explicado en la sección sobre Bert.

Escogido el algoritmo a implementar, el documento continuará exponiendo la importancia no del sentimiento sino de la reputación de la entidad. Por ejemplo, en la obra Exploring the determinants of Bitcoin's price: an application of Bayesian Structural Time Series [6] se comprueba cómo existe una relación positiva entre la nueva legislación de los países sobre el Bitcoin y su aumento de precio, es decir, afirma que la reputación de la moneda es un factor que afecta a la criptomoneda. Por supuesto, una nueva legislación no posee un sentimiento en sí mismo, por lo tanto, utilizar las técnicas y no demostraría esta afirmación, se deben encontrar nuevas técnicas que confirmen esta relación de forma empírica.

Como no existía ningún dataset adecuado para nuestro objetivo, se ha tomado la decisión de desarrollar BitTweet , un dataset de tweets que mencionan Bitcoin anotado manualmente respecto a sentimiento y polaridad reputacional y enlazado con la cotización del bitcoin. Las anotaciones manuales de este dataset nos permiten cuantificar la diferencia entre análisis de sentimiento y polaridad reputacional (algo que no había sido hecho previamente), evaluar modelos de predicción de sentimiento y polaridad reputacional, y evaluar modelos de predicción de valor bursátil a partir de tweets.

Para terminar, se ha utilizado la estimación de la polaridad reputacional de los tweets obtenida de BERT y la predicción de valores bursátiles para compararla con el análisis del sentimiento. Para validar las implementaciones y comparar su acierto, se utilizado como referencia un modelo ya entrenado llamado VADER (Valence Aware Dictionary and sEntiment Reasoner) ( https://github.com/cjhutto/vaderSentiment ). Esta librería es una herramienta de análisis de sentimientos basada en reglas y léxico que está específicamente en sintonía con los sentimientos expresados en las redes sociales que nos permitirá comparar y validar los resultados obtenidos por BERT.

1.4.1 Bitcoin

Como ya se ha comentado, Bitcoin es un sistema de moneda digital peer-to-peer programado en código abierto [Bitcoin: A peer-to-peer electronic cash system] y considerado como una alternativa a las monedas estándar. Utiliza un protocolo criptográfico para controlar la creación y transferencia de dinero, asegurando que conserva su valor e impidiendo ser doblemente gastado. Se crea y se transfiere sin la necesidad de una autoridad central de gobierno, utilizando recursos computacionales al alcance de cualquier usuario y transfiriéndose directamente de una cuenta a otra utilizando algoritmos criptográficos.

Las criptomonedas tienen una serie de beneficios sobre las divisas tradicionales, ya que no existe la necesidad de un tercero de confianza. Actualmente, el comercio en las monedas de "papel" se basa en la confianza emitida por instituciones financieras que actúan como reguladores en los procesos de pago. Las debilidades inherentes a un modelo basado en el fideicomiso hacen que los costos de transacción aumenten, ya que el tercero inevitablemente tiene que lidiar con las disputas y mantener la infraestructura para las transacciones. Esto hace que las microtransacciones electrónicas sean inviables, ya que los costos de realizar una transacción global representan un coste demasiado elevado para ciertas cantidades. Para evitar este problema han surgido las criptodivisas como Bitcoin, que nos ofrecen una solución basada en pruebas criptográficas para evitar la necesidad de confianza mutua y riesgo de doble gasto. Un propietario debe firmar digitalmente un hash de la transacción anterior y la clave pública del siguiente propietario, para permitir que el beneficiario reciba una firma que verifique la cadena de propiedad. [bitcoin_prediction#Bitcoin: planteamiento y protocolo]

Como divisa, Bitcoin consta de tres elementos fundamentales: las direcciones, el libro mayor de transacciones (o cadena de bloques) y la red. El balance de una cuenta, representada por una dirección, no es más que el sumatorio de sus transacciones entrantes (valor positivo) y salientes (valor negativo). La red es la encargada de verificar la legitimidad y viabilidad de las transacciones, es decir, que estas han sido emitidas por los legítimos propietarios de las cuentas y que ninguna cuenta envíe dinero del que no dispone. Aparte, el protocolo está pensado para no permitir la existencia de más de veintiún millones de bitcoins, estableciendo que la generación de esta se reduzca a la mitad cada aproximadamente cuatro años.

Al igual que con cualquier otra moneda, el valor de Bitcoin está sujeto a variación significativa en el tiempo, sin embargo, los aspectos que afectan el precio del Bitcoin difieren de aquellos que afectan a las monedas estándar. El valor de cualquier moneda está relacionado con cuánta gente quiere poseerla, pero como el Bitcoin no está vinculada a un producto en particular o emitida por una autoridad central, no tiene valor intrínseco. En todas las monedas criptográficas, los consumidores no están limitados por una autoridad central, sino sólo en la moneda que aceptará el interlocutor en una transacción. La utilidad de poseer bitcoins —nótese que Bitcoin hace referencia a la moneda y bitcoin a la unidad— para el consumidor está, por lo tanto, relacionada con la medida en que los mercados la adoptan como una forma válida de moneda.

Al igual que el resto de los mercados de divisas, en Bitcoin existe una zona de intercambio abierto que permite a los consumidores e inversores comprar y vender bitcoins. El precio al que se negocia el Bitcoin está relacionado con el valor percibido por el inversor ya que no le afectan los factores como la cantidad de productos importados y exportados o el respaldo de los organismos oficiales de un determinado estado. El precio del Bitcoin se sostiene por su uso global y descentralizado, es decir, por la oferta y la demanda que exista en un determinado momento a nivel mundial.

Aquí, nos acercamos a Bitcoin desde el punto de vista de un inversionista al intentar buscar que impulsa las variaciones en el precio de un Bitcoin y en que difieren de las monedas emitidas por el Estado. Avances legales o términos con connotaciones negativas con respecto al sentimiento pueden suponer positivas respecto a la reputación, ya que, al ser un término tan novedoso y disruptivo necesita ser interpretado y analizado desde un nuevo punto de vista distinto al sentimiento.

Por supuesto, crear un modelo predictivo del Bitcoin tiene sus dificultados, ya que es un concepto novedoso (creado el año 2008) que se encuentra con los siguientes problemas:

  • El sistema no está regulado. Las criptomonedas han nacido con la idea de sustituir las monedas tradicionales y, por lo tanto, legislar adecuadamente para adaptar las leyes para estas nuevas formas de pago es realmente complicado. Aparte actuaciones como las de China y Rusia que pretenden prohibir su uso [Bitcoin y ether se derrumban en los últimos días ante las amenazas de China y Rusia] no ayudan a la expansión de la moneda.
  • Sus principales usuarios son muy diferentes y poco característicos. Según Google Trends, los principales usuarios de Bitcoin son programadores, personas dedicadas a actividades delictivas e inversores.
  • Volatilidad Está moneda es mucho más volátil que una moneda de curso tradicional.

Como hemos comentado, esta nueva moneda no está respaldada por ninguna entidad o nación, únicamente por los usuarios que la utilizan y le otorgan un valor en cada transacción. Por ese motivo, en el caso del Bitcoin no podemos utilizar el típico análisis basado en indicadores económicos habituales, sino deberemos adaptarnos a este nuevo escenario y utilizar indicadores como la polaridad reputacional o el análisis de sentimiento para emitir estas predicciones.

Las técnicas de PLN proporcionarán un modelo que nos permitirá valorar el sentimiento o la opinión de los propios usuarios. Utilizando la información obtenida de una red social obtenida durante 5 meses se validará si existe una correlación del mercado con los resultados obtenidos de ambos modelos.

1.5. Breve descripción de los otros capítulos de la memoria

En el capítulo [3] expondremos las características de BitTweet, el dataset que hemos creado de tweets que mencionan Bitcoin anotado manualmente respecto a sentimiento y polaridad reputacional y enlazado con la cotización del Bitcoin. Para ello, se expondrá en la sección [3.2] como se han recopilado los tweets, su estructura y la información que se ha almacenado en la base de datos. En la sección [3.3] se explican los procesos para almacenar y gestionar la información económica sobre el Bitcoin. En la sección [3.3] se expondrá la plataforma utilizada para el etiquetado para acabar con la sección [3.4] donde se discutirán los resultados del etiquetado.

2.Estado del Arte

Para comprobar el grado de correlación entre el precio del Bitcoin con la polaridad reputacional y del sentimiento es necesario conocer ambos términos y que algoritmos pueden ayudarnos a obtener este fin.

La sección [2.1] analizarán las diferencias entre las técnicas del análisis de sentimientos y la polaridad reputacional a partir de los estudios previos publicados sobre el tema. En la sección [2.2] se analizan diferentes estudios realizados sobre la predicción del valor el valor Bitcoin a partir de redes sociales.

2.1. Análisis de sentimientos vs polaridad reputacional

Como hemos comentado en la sección [1.2] , la reputación online es un reflejo del prestigio de una persona o una marca en Internet. Para poder cuantificar la reputación de una entidad, un algoritmo predictivo debe ser capaz de analizar un documento con el objetivo de encontrar la información más relevante y clasificarla acorde a sus implicaciones positivas, neutrales o negativas, es decir, debe utilizar las técnicas para el Procesamiento del Lenguaje Natural con el objetivo de poder interpretar sus implicaciones reputacionales.

En este sentido, en el estudio del arte aplicado en esta sección se ha podido observar como el análisis de sentimiento es la herramienta de Procesamiento del Lenguaje Natural más utilizada para la monitorización de la reputación online. Obras como [Sentiment Analysis or Opinion Mining: A Review] [30] son un ejemplo de esta afirmación, a pesar de como se ha demostró en [European Conference on Information Retrieval] [21] que los sentimientos de un texto y sus implicaciones reputacionales para esa entidad son cosas diferentes. Realmente, la mayoría de los textos con implicaciones reputacionales son polar facts, es decir, información factual sin sentimientos explícitos.

Por supuesto, medir la polaridad reputacional de un texto es más complicado cuando el documento no expresa implícitamente una reputación positiva o negativa sobre el tema analizado; pero invertir recursos en este caso puede proporcionar a las entidades aplicaciones positivas, por ejemplo, para obtener datos de opinión no estructurados sobre un servicio o producto.

A pesar de que por definición la polaridad reputacional es substancialmente diferente al sentimiento de análisis, las dos tienen algunas similitudes. Es más, los trabajos sobre la polaridad reputacional han evolucionado a partir de estudios previos sobre el análisis de sentimientos, es decir, el proceso de resolver (estadísticamente) si un texto contiene sentimientos positivos, negativos o neutrales con respecto a la entidad de interés.

Como ya hemos comentado, los trabajos sobre la recuperación de opinión y análisis de sentimientos se puede dividir en dos categorías: enfoques basados en léxico y en clasificación supervisada. Los enfoques basados en léxico estiman el sentimiento de un documento utilizando una lista de palabras de opinión conocida como léxicos de opinión, como por ejemplo el articulo [Proceedings of the 40th annual meeting on association for computational linguistics] [17] donde se identifica el sentimiento de un documento a través de un diccionario de palabras catalogados acorde a su sentimiento. El enfoque basado en léxico no está supervisado ya que no requiere ningún dato de entrenamiento. Enfoques más sofisticados incorporan indicadores de sentimiento adicionales como la proximidad entre términos de consulta y opinión [13] o variaciones estilísticas basadas en temas [12] .

Los enfoques basados en la clasificación usan conjuntos de rasgos para construir un clasificador que pueda predecir el sentimiento de polaridad de un documento [10] . Los rasgos van desde simples n-gramas hasta características semánticas y desde características sintácticas hasta características específicas del medio [9] .

Además, los enfoques basados en la clasificación pueden también dividirse en enfoques semi-supervisados y supervisados. La mayor diferencia entre las dos categorías es que los enfoques semi-supervisados combinan datos etiquetados y no etiquetados. En el artículo [Opinion Mining and Sentiment Analysis. Foundations and Trends in Information Retrieval] [8] se puede encontrar una revisión exhaustiva sobre la recuperación de opinión y el análisis de sentimientos. Mientras que en la obra [Like it or not: A survey of twitter sentiment analysis methods] [7] , encontraron una búsqueda exhaustiva centrada en el análisis de sentimientos de Twitter.

A partir de los trabajos sobre los métodos de análisis de sentimientos se establecieron los primeros enfoques para el análisis de la polaridad reputacional llegando a conseguir los mejores resultados con modelos entrenados a partir de características textuales y de sentimiento. El mejor resultado fue logrado en el artículo [CEUR WORKSHOP PROCEEDINGS] [6] quienes entrenaron a un clasificador de máxima entropía utilizando el léxico de sentimientos, diagramas , número de palabras de negación y repeticiones de caracteres. [CLEF 2013 Conference and Labs of the Evaluation Forum] [5] , abordó el problema de la polaridad de reputación con un enfoque basado en la recuperación de información y encontró la clase más relevante utilizando el contenido del tweet como una consulta.

[Estimating reputation polarity on microblog posts] [4] , asumió que entender cómo se percibe un tweet es un indicador importante para la estimación de polaridad reputacional de un tweet. Con tal fin, propusieron un enfoque supervisado que también consideró características de recepción como las respuestas y retweets de tweets. Los resultados mostraron que estas características fueron efectivas y que su mejor resultado se obtuvo en datos dependientes de la entidad.

Nuestra contribución será investigar la técnica contextual de word embeddings en su implementación en el sistema BERT en la sección [2.1.1.] en la estimación de la polaridad reputacional de los tweets y a la predicción de valores bursátiles, comparándola con el análisis del sentimiento.

2.1.1 Procesamiento del Lenguaje Natural

Como hemos podido comprobar en la sección [2.1] , la polaridad reputacional puede utilizar los mismos algoritmos que utilizan los analistas de datos para medir la polaridad del sentimiento. Basándonos en esa premisa, esta sección del proyecto tendrá como objetivo investigar el campo del Procesamiento del Lenguaje Natural (PLN).

Como hemos analizado anteriormente, el procesamiento de textos por medio de la inteligencia artificial supone un reto al momento de presentar un texto determinado en un algoritmo y que este lo entienda en su totalidad, preservando las características del lenguaje.

El procesamiento del lenguaje natural moderno (a partir de 2013) utiliza con frecuencia la técnica de los embeddings, representaciones de palabras en un vector n-dimensional, partiendo de la premisa de que su cercanía espacial conlleva alguna clase de relación entre los mismos. En las figuras [1] [2] [3] se pueden analizar 3 ejemplos gráficos de este algoritmo.

1 Proximidad de género

2 Proximidad de conjugación

3

Proximidad de localización
Como se puede comprobar, el primer paso de este algoritmo es asignar a cada palabra un vector de números a partir de su contenido semántico (cabe recordar que las redes neuronales son más eficientes con números). Si se analiza la imagen [1] , se observa un ejemplo semántico de cómo se representarían cuatro palabras diferentes pero relacionas en un espacio vectorial. Si se realiza una operación matemática como: Rey menos hombre más mujer se obtendrá como resultado un vector muy cercano al que se ha representado Reina.

Esta evolución permite utilizar sistemas de redes neuronales para comprender la semántica de las palabras, aunque sin llegar a comprender las relaciones entre las mismas. Para resolver esta carencia, las técnicas del NLP han mejorado lo suficiente hasta llegar a generar lo que hoy conocemos como `modelos de lenguaje'.

Los modelos de lenguaje son patrones de Machine Learning destinados a predecir cuál ha de ser la siguiente palabra de un texto en función de todas las palabras anteriores.

El gran potencial de esta técnica es que, una vez que la IA comprende la estructura de un lenguaje, es relativamente fácil descargar estos modelos preentrenados y adaptarlos mediante `fine-tuning' a otras tareas diferentes a la creación de textos, como puede ser la clasificación de textos.

Dentro de todos los sistemas publicados hasta el momento y después de realizar una búsqueda entre diferentes soluciones, en esta investigación nos hemos decantado por BERT, uno de los modelos más avanzados para la representación de palabras y textos. BERT es un sistema que proporciona contextual word embeddings, es decir, cada palabra recibe una representación dependiente del contexto en el que aparece. Los contextual word embeddings son sistemas preentrenados que proporcionan una riqueza semántica sin precedentes, y que están cambiando el PLN desde el año 2018. Aunque hay varios sistemas que compiten con BERT en la actualidad, el hecho de que BERT sea de código abierto y bien documentado hace que sea la opción más popular y la que hemos adoptado en este trabajo.

Bert

Como se ha podido comprobar a través del contenido de esta sección, para poder clasificar la polaridad reputacional de un texto será necesario tanto el análisis del documento mediante espacio de vectores como el análisis del contexto en el que ocurren las palabras. Las consecuencias de esta nueva interpretación las podemos ver reflejadas en la palabra rey del ejemplo anterior, ya que poseerá un significado diferente dependiendo del contexto en el que se use la palabra. Esta sutileza es necesaria, ya que capturar el sentido gramático de las palabras puede aportar información relevante sobre su polaridad. Por ejemplo, no es lo mismo utilizar una palabra como objeto o como sujeto en una oración, con un sentido o con otr

En este sentido, las técnicas de procesamiento de lenguaje natural (PLN) basadas en algoritmos de inteligencia artificial (IA) nos ofrecerá una mejor solución que los algoritmos analizados hasta ahora.

Para ello se puede utilizar la experiencia previa de este campo en la traducción de idiomas, análisis de sentimientos o búsqueda semántica que ofrecerá una ayuda a la hora de escoger el mejor camino para nuestra tarea. Otro beneficio de obtener la experiencia previa en otras tareas es la capacidad de optimizar más eficientemente el modelo creado. Estos algoritmos necesitan alimentarse de diversos conjuntos de datos lo suficientemente grandes como para entrenar los modelos que utilizan. Los algoritmos de aprendizaje profundo imitan el comportamiento de las neuronas en el cerebro humano, es decir, a medida que aumenta el conjunto de entrenamiento mejoran sus resultados y, por lo tanto, cualquier conjunto ya etiquetado nos puede ayudar a obtener mejores resultados en el proyecto.

Ahora bien, debido a que el PLN es un campo con muchas tareas distintas, la mayoría de los conjuntos de datos específicos de tareas contienen solo unos pocos miles o unos cientos de miles de ejemplos de documentos etiquetados por el hombre. Para ayudar a cerrar esta brecha en los datos, los investigadores han desarrollado una variedad de técnicas para entrenar modelos de representación de lenguaje de propósito general utilizando la enorme cantidad de texto no anotado en la web (conocido como pre-entrenamiento). El modelo pre-entrenado puede luego ajustarse a tareas de PLN de datos pequeños como la respuesta a preguntas y el análisis de sentimientos, lo que resulta en mejoras sustanciales de precisión en comparación con la capacitación en estos conjuntos de datos desde cero.

Y en este contexto, el 2 de noviembre del 2018 Google presentaba Open Sourcing BERT (Bidirectional Encoder Representations from Transformers), el primer modelo contextual profundamente bidireccional, representación de lenguaje sin supervisión, pre-entrenado usando solo un corpus de texto plano.

BERT se basa en el trabajo reciente en representaciones contextuales previas al entrenamiento, que incluye el Aprendizaje de Secuencia Semi-supervisado, el Pre-Entrenamiento Generativo, ELMo y ULMFit. Sin embargo, a diferencia de estos modelos anteriores, BERT es la primera representación de lenguaje no supervisada, profundamente bidireccional, pre-entrenada usando solo un corpus de texto simple.

Según lo explicado por Jacob Devlin y Ming-Wei Chang, investigadores de Google AI, BERT es único porque es bidireccional y permite el acceso al contexto desde direcciones pasadas y futuras y desatendido, lo que significa que los datos se pueden capturar sin clasificar ni marcar. Esto contrasta con los modelos tradicionales de PLN que producen una incrustación de palabras sin contexto (una representación matemática de una palabra) para cada palabra en su vocabulario.

Las representaciones pre-entrenadas pueden ser libres de contexto o contextuales, y las representaciones contextuales pueden ser unidireccionales o bidireccionales. Los modelos sin contexto comentados anteriormente generan una representación de incrustación de una sola palabra para cada palabra en el vocabulario. Por ejemplo, la palabra "banco'' tendría la misma representación libre de contexto en "cuenta bancaria'' y "banco del río''. En su lugar, los modelos contextuales generan una representación de cada palabra que se basa en las otras palabras de la oración. Por ejemplo, en la oración "Accedí a la cuenta bancaria'', un modelo contextual unidireccional representaría "banco'' basado en "Accedí a la'' pero no a "cuenta''. Sin embargo, BERT representa "banco'' utilizando su contexto anterior y el siguiente. "Accedí a la [...] cuenta'', comenzando desde el fondo de una red neuronal profunda, haciéndola profundamente bidireccional.

A continuación, se muestra una visualización de la arquitectura de la red neuronal de BERT en comparación con los métodos de entrenamiento previo contextual más avanzados. Las flechas indican el flujo de información de una capa a la siguiente. Los cuadros verdes en la parte superior indican la representación contextualizada final de cada palabra de entrada:
4 Comparativa de Bert como algoritmo bidireccional, OpenAI GPT unidireccional y ELMo que es un poco bidireccional. Fuente Google AI blog [1]
Con esta versión, cualquier persona en el mundo puede entrenar su propio sistema de análisis de sentimientos (o una variedad de otros modelos) en unas pocas horas con una sola GPU. La versión incluye el código fuente creado sobre TensorFlow y una serie de modelos de representación de idiomas pre-entrenados (incluido el inglés).

Además, BERT aprende a modelar relaciones entre oraciones a través de imágenes previas a partir de cualquier corpus. Se basa en Transformer de Google, una arquitectura de red de código abierto neuronal basada en un mecanismo de self-attention optimizado para el PLN

El último punto a tener en cuenta en este algoritmo es la puntación obtenida en (SQuAD), una adaptación de BERT para la lectura logró una precisión de 93.2 por ciento, superando el estado de la técnica y el nivel humano de 91.6 por ciento y 91.2 por ciento, respectivamente. En el GLUE Benchmark (GLUE), una colección de datasets para la evaluación de sistemas de representación de PLN ha logrado una precisión del 80.4 por ciento.

2.2. Predicción del valor Bitcoin a partir de redes sociales

En los mercados de divisas tradicionales es común ver a los inversores utilizar alguno de los siguientes enfoques (en conjunto o por separado) para predecir las tendencias del mercado:
  • Análisis fundamental: la técnica que utiliza los factores subyacentes de un valor para estimar su valor. En relación con las monedas emitidas por el Estado, esta técnica se centra en indicadores como las previsiones de crecimiento de una nación, los niveles de importación y exportación, el turismo, las medidas políticas, los niveles de deuda, el PIB y las relaciones internacionales. Éstos se utilizan como parámetros para un modelo de valoración. Si se considera que la moneda está por debajo del precio, entonces tiene sentido comprar esa moneda, de lo contrario para vender.
  • El artículo Madan et al. [28] es un ejemplo de este enfoque. En él se observó que la investigación existente no consideraba la relación entre otros factores en el espacio de características y la estimación de precios de Bitcoin cuando se aplicaba a un agente comercial. Al analizar 16 características independientes, crearon un algoritmo de aprendizaje automático para predecir el precio de Bitcoin. Estas 16 características están relacionadas con el precio de Bitcoin y se registraron diariamente durante los últimos 5 años. Su estudio también consideró el uso de precios de Bitcoin sólo como un medio de predecir la dirección de los futuros cambios de precios.
  • Análisis técnico: es un método alternativo de asignación de valor a una acción que analiza la actividad del mercado analizando datos tales como precios históricos y volumen diario negociado. Este enfoque no intenta medir el valor intrínseco de una seguridad, sino que utiliza modelos matemáticos y análisis estadístico para identificar patrones con el fin de predecir la actividad futura.
  • Un ejemplo de este análisis ese el articulo [Bitcoin Trading Agents] [22] donde se propone predecir el precio del Bitcoin a través de una regresión bayesiana. En el documento se dan n puntos de datos etiquetados ( , ) para 1 . Estos datos de entrenamiento (precios históricos de Bitcoin) se utilizan para predecir la etiqueta desconocida (futuro precio de Bitcoin) dada una x determinada. Es decir, el modelo utilizado se centra en la comprensión de la información que se encuentra en los datos históricos relacionados co
Si intentamos aplicar el análisis fundamental sobre el Bitcoin nos encontraremos con muchos problemas. Como hemos comentado, esta nueva moneda no está respaldada por ninguna entidad o nación, únicamente por los usuarios que la utilizan y le otorgan un valor en cada transacción. Por ese motivo, en el caso del Bitcoin no podemos utilizar el típico análisis basado en indicadores económicos habituales, sino deberemos adaptarnos a este nuevo escenario que se deberá analizar en esta sección.

El primer punto de todo es entender las características de Bitcoin como moneda, sus usuarios y las fuerzas del mercado que impulsan sus variaciones de precios. Entender los factores que lo diferencian de las monedas tradicionales y explora las consideraciones importantes al diseñar una predicción exitosa.

En este momento hay un gran debate acerca de su uso entre aquellos autores que analizan los activos como valores especulativos o refugio mientras que otros autores sostienen que el atractivo podría aumentar hasta terminar cumpliendo las funciones del dinero que demanda la teoría económica. El artículo titulado Inferring causal impact using Bayesian structural time-series models [34] explora la asociación entre el precio de mercado de Bitcoin y un conjunto de factores internos y externos usando Bayesian Structural Time Series Approach. Los resultados muestran que Bitcoin tiene propiedades mixtas ya que parece actuar actualmente como un activo especulativo, refugio seguro y un potencial instrumento de fugas de capital.

El modelo de series temporales estructurales bayesianas (Bayesian Structural Time Series Approach - BSTS) es una técnica de aprendizaje automático utilizada para la selección de características, previsión de series de tiempo, predicción inmediata e inferencia de impacto causal, por ejemplo.

En este caso, para el análisis de las series temporales es recomendable usar métodos que ayuden a interpretar la información obtenida por las fuentes y permitan extraer información representativa sobre las relaciones subyacentes entre los datos de la serie o de diversas series. Todo ello permite (en diferente medida y con distinta confianza) extrapolar o interpolar los datos y así predecir el comportamiento de la serie en momentos no observados.

Otro ejemplo son las técnicas de negociación cuantitativa, ampliamente utilizadas en toda la industria financiera, donde se asumen que los movimientos de precios siguen un conjunto de patrones, de modo que los precios históricos pueden usarse para predecir los futuros. Basándose en esta información se puede utilizar el modelo de fuente latente, formalizado en la obra A latent source model for nonparametric time series classification [27] , que intenta tomar datos considerados de una alta dimensión (como una serie de tiempo), e identificar las formas en que los eventos subyacentes se caracterizan en ese espacio. Puede haber sólo un pequeño número de causas primarias para los eventos, pero a menudo se ocultará en los datos y son difíciles de encontrar

Respecto a las fuentes de información, existen diferentes fuentes de datos fácilmente accesible como, por ejemplo:
  • Blockcain.info donde se ha obtenido toda la información relacionada con estadísticas monetarias, actividad de la red, detalles sobre los bloques, tasas de creación de nuevas monedas y transacciones. Por supuesto, está incluida el valor de intercambio USD a bitcoin y viceversa junto con su volumen.
  • Gooogle Trends. Esta plataforma es una herramienta de Google Labs que muestra los términos de búsqueda más populares del pasado reciente. Utilizando la palabra Bitcoin como consulta, se han obtenidos los principales temas relacionados con la criptomoneda.
  • Datos macroeconómicos. Los datos macroeconómicos de S&P500, Chicago Board Options Exchange y Volatility Index.
Por último, la red social Twitter puede ser una fuente de información sobre la reputación del Bitcoin, ya que su formato conciso y la facilidad para extraer información en tiempo real puede predecir la evolución del mercado. El artículo [Algorithmic trading of cryptocurrency based on Twitter sentiment analysis] [23] confirma esta hipótesis y pone de ejemplo como dos distribuciones creada a partir de los datos recopilados ha permitido al autor predecir la evolución del mercado con suficiente éxito como para entender la correlación entre el mercado y el sentimiento de los usuarios en los redes sociales. Continuando este punto de vista, el artículo [The Information of Spam] [2] utiliza la misma fuente de información pero con diferente objetivo, ya que su intención es validar la conveniencia de utilizar el Spam para analizar el sentimiento en redes sociales.

Una vez terminada esta primera aproximación, se puede deducir como en todos los artículos existe una correlación entre un conjunto de factores internos y externos (incluido el sentimiento de los propios usuarios) del Bitcoin y su precio. Dicho esto, solamente hay un texto expuesto en el artículo [Inferring causal impact using Bayesian structural time-series models] [34] que expone la importancia no del sentimiento sino de la reputación de la moneda. En el documento se comprueba como existe una relación positiva entre la nueva legislación de los países sobre la criptomoneda y su aumento de precio, es decir, afirma que la reputación de la moneda es un factor que afecta a la criptomoneda. Por supuesto, una nueva legislación no posee un sentimiento en sí mismo, por lo tanto, utilizar las técnicas expuestas en el artículo [Algorithmic trading of cryptocurrency based on Twitter sentiment analysis] [23] no demostraría esta afirmación, se deben encontrar nuevas técnicas que confirmen esta relación de forma empírica.

Con un enfoque más actual, se puede consultar el proyecto ( [LSTM Model predicting Bitcoin with Tweet Volume \& Sentiment] [14] que tuvo como objetivo explorar las opciones disponibles para crear un modelo que pudiera predecir la acción del precio durante un período de tiempo seleccionado. Las variables que utilizo fueron datos recopilados con herramientas para el análisis de sentimiento en Twitter para predecir la evolución del mercado utilizando un LSTM(Long short-term memory) Long short-term memory es un modelo de red neuronal recurrente que ha sido predominante en el PLN hasta la irrupción de los Transformer, que son ahora la base de BERT y muchos otros sistemas.).

Actualmente no existe ningún artículo que relacione la polaridad reputacional del Bitcoin con la evolución económica del mercado. Aunque la polaridad reputacional es sustancialmente diferente del análisis de sentimientos, es cierto que las dos tareas tienen puntos en común que se pueden aprovechar y, por lo tanto, algoritmos como BERT pueden proporcionar mayor tasa de éxito para predecir la tendencia del mercado y, por lo tanto, tener más porcentaje de acierto.

Por ello, este proyecto se centrará en considerar al Bitcoin como una propiedad polifacética que va entre una moneda virtual, cobertura y activo de refugio seguro para la inestabilidad geopolítica y un método de pago y aplicaremos estado del arte en Procesamiento del Lenguaje Natural (en particular, los contextual word embeddings en su implementación en el sistema BERT) a la estimación de la polaridad reputacional de los tweets y a la predicción de valores bursátiles, comparándola con el análisis del sentimiento.

3.BitTweet dataset

En este capítulo se especificará el dataset escogido, cómo se ha obtenido, etiquetado y gestionado para posteriormente ser utilizado en la fase de experimentación.

Para ello dividiremos este capítulo en diferentes secciones. En la sección [3.1] se analizará cómo se ha obtenido la información, las fuentes utilizadas y cómo se han gestionado. En la sección [3.2] se expondrá cómo se ha realizado el proceso de clasificación, las normas de etiquetado aplicadas para cada una de las diferentes categorías y dónde se han almacenado. Por último, en la sección [3.3] se expondrá cómo se ha llevado a cabo el proceso de etiquetado, y en la sección [3.4] se resumirán los resultados.

3.1. Fuentes de información

En esta sección vamos a especificar las dos fuentes de información utilizadas en el proyecto: por una parte, la red social Twitter, de donde obtendremos los comentarios escritos por los usuarios, y por otra la web www.blockchain.com de donde se registra la información económica sobre el Bitcoin.

En la sección [3.1.1] se expondrá qué es Twitter, por qué hemos escogido esta red social, cómo hemos captado la información de la aplicación y dónde la hemos almacenado, para continuar en la sección [3.1.2] contextualizando el Bitcoin, qué tipo de información podemos obtener y como la gestionamos.

3.1.1 Twitter

Como ya hemos comentado anteriormente, el principal problema de las criptomonedas es su volatilidad. Si se quiere analizar la correlación de precios con la valoración reputacional o del sentimiento del Bitcoin es necesario solucionar este problema utilizando una fuente de datos que incluya un acceso rápido a las primeras actualizaciones de noticias en un formato conciso, así como ser capaz de extraer datos de esta plataforma con relativa facilidad.

Siguiendo la metodología expuesta en la sección [1.4] y a partir de la investigación de la sección [2.2] se llegó a la conclusión de que utilizar la red social Twitter puede resolver el problema. Esta plataforma permite él envió de mensajes en texto plano de corta longitud por parte de los usuarios, con un máximo de 280 caracteres. Estos mensajes, llamados tweets, se muestran en la página principal del usuario y pueden ser capturados a través de una API proporcionada por la propia red social. [31]

A partir del código expuesto en la siguiente dirección de GitHub ( https://github.com/al118345/Tweepy/blob/master/tweepy.py ) se ha conseguido captar todos aquellos tweets que contenían la palabra bitcoin en el mensaje, creando un dataset con 792792 registros. Estos registros han sido recopilados desde el 28 de marzo de 2019 hasta el 27 de agosto del 2019.

En la implementación se utilizó Tweepy (( https://www.tweepy.org/ )) una librería de Python que permite utilizar la API de Twitter para la obtención de tweets en el contexto deseado, es decir, que contengan la palabra Bitcoin y estén escritos en inglés.

La información recopilada se ha almacenado en una base de datos mysql con la siguiente estructura:
  • ID_rubenPrimaria: Número entero que identifica el registro.
  • created_at: Fri Nov 02 17:18:31 +0000 2018

    Fecha de creación del tweet
  • id: 1058408022936977409. Número entero que identifica el tweet.
  • text: RT @harmophone: "The innovative crowdsourcing that the Tagboard, Twitter and TEGNA collaboration enables is surfacing locally relevant conv…,

    Campo de texto donde se almacena el contenido del tweet:
  • sia_sentimiento: Positive

    Acrónimo de Sentiment Intensity Analyzer. Valoración del sentimiento por parte de VADER, librería para análisis del sentimiento comentada en la sección [1.2] .
  • textblo_sentimiento: Positive

    Valoración del sentimiento por parte de Vader, librería para análisis del sentimiento comentada en la sección [1.2] .
  • textotraducido: @harmophone:"El innovador crowdsourcing que permite la colaboración Tagboard, Twitter y TEGNA está surgiendo a nivel local. . . '',

    Campo de texto donde se almacena el tweet traducido por google translate. Por ejemplo:
  • Información extraída de Twitter no utilizada para el proyecto como:
    • source:Twitter Web Client.
    • truncated: false.
    • in_reply_to_status_id: null.
    • in_reply_to_user_id: null.
    • in_reply_to_screen_name: null.
    • geo:null.
    • coordinates: null.
    • place: null.
    • contributors: null.
    • retweeted: false.
    • lang: en.
Para el proyecto únicamente vamos a utilizar una cantidad reducida de campos, el resto se han recopilado para futuras investigaciones pudieran medir o valorar, por ejemplo, la repercusión del tweet, el lugar donde se escribió o quién lo ha escrito, entre otras opciones.

La información resultante se puede consultar en el fichero TweetsBaseDeDatos.csv, compartido a través de Zenodo mediante la siguiente URL ( https://zenodo.org/record/3830920)

3.1.2 Bitcoin y Blockchain

Como hemos comentado previamente, Bitcoin es un sistema de moneda digital peer-to-peer programado en código abierto [24] y considerado como una alternativa potencial a las monedas estándar. Utiliza un protocolo criptográfico para controlar la creación y transferencia de dinero, asegurando que conserva su valor e impidiendo ser doblemente gastado. Se crea y se transfiere sin la necesidad de una autoridad central de gobierno, utilizando recursos computacionales al alcance de cualquier usuario y transfiriéndose directamente de una cuenta a otra utilizando algoritmos criptográficos.

Al igual que el resto de los mercados de divisas, en Bitcoin existe una zona de intercambio abierto que permite a los consumidores e inversores comprar y vender bitcoins. El precio al que se negocia el Bitcoin está relacionado con el valor percibido por el inversor, ya que no le afectan los factores como la cantidad de productos importados y exportados o el respaldo de los organismos oficiales de un determinado estado. Debido a esta característica, el precio del bitcoin se sostiene por su uso global y descentralizado, es decir, por la oferta y la demanda que exista en un determinado momento a nivel mundial.

En este contexto, el año 2011 se lanzó Blockchain.info, un servicio capaz de proporcionar a sus usuarios datos sobre cantidad de transacciones, bloques minados de Bitcoin, gráficos, estadísticas y recursos para desarrolladores con el objetivo de ayudar a los usuarios de la criptomoneda a crear una estrategia comercial eficaz.

Tal y como se expone en la sección [2.2] este sitio web dispone de una API que nos proporcionará las principales estadísticas monetarias, actividad de la red, detalles sobre los bloques, tasas de creación de nuevas monedas y valor de la última transacción. Este último dato se utilizará en el proyecto para analizar la correlación del precio del Bitcoin con el sentimiento y la polaridad reputación.

En la dirección GitHub expuesta a continuación ( https://github.com/al118345/java_client_blockchain/blob/master/client_java_blockchain.java ), se puede consultar el código implementado donde se obtienen los siguientes datos:
  • transaccionessinconfirmar: Número de transacciones pendientes no confirmadas.
  • precio24horasUSD: Precio ponderado del Bitcoin durante las últimas 24 horas.
  • marketcap: Capitalización total del mercado.
  • 24hrtransctioncount: Cantidad de transacciones realizadas las últimas 24 horas.
  • 24numeroBitcoinsent: Cantidad de Bitcoin intercambiados las últimas 24 horas.
  • hashreat: Tasa estimada de hash de red en gigahash
  • dificultad: Dificultad actual de la red Bitcoin.
  • longitudbloque: Longitud del último bloque minado.
  • totalbitcoin: Número total de Bitcoin en circulación.
  • fecha: Fecha de creación del registro.

El fichero blockchainInfo.csv compartido en zenodo.org (( https://zenodo.org/record/4008108 )) se puede consultar la base de datos generada para el proyecto.

El fichero está compuesto por 20604 registros que corresponden a los datos tomados desde el 20 de marzo del año 2019 hasta el 27 de agosto del 2019.

3.2. Recolección

En esta sección se expondrán como se ha realizado el proceso de clasificación, las normas de etiquetado aplicadas para cada una de las diferentes categorías.

Primero de todo, es necesario recordar que en el proyecto se gestionarán dos tipos de etiquetados diferentes, que serán los etiquetados para:
  • La Polaridad Reputacional
  • El Análisis del Sentimiento.
En la subsección [3.2.1] se analizará como se debe etiquetar un tweet atendiendo a cómo afecta a la reputación del Bitcoin y en la subsección [3.2.2] se analizará respecto al sentimiento.

3.2.1 Polaridad Reputacional

Como descubrimos en la sección [2.1] , es más importante como afecta un tweet a la reputación de la moneda que el sentimiento que posee el mismo.

Teniendo en cuenta esta afirmación, las reglas de anotación utilizadas para la recolección de tweets respecto a la polaridad reputacional han sido las siguientes:
  • Positivo: Se considerará positivo todo aquel tweet que:
    • Valore el Bitcoin como un sistema estable y seguro de inversión.
    • Una moneda de uso real.
    • Una predicción positiva sobre la evolución de su precio
    • Explique un avance tecnológico
    • De ejemplos de uso.
  • Neutrales: Se considerará neutral todo aquel tweet que:
    • No aporte ningún información nueva o útil
    • Información sobre el precio actual del Bitcoin
    • Publicidad
    • Consejos
  • Negativos: Se considerará negativo todo aquel tweet que:
    • No valore al Bitcoin como un sistema estable y seguro de inversión.
    • Critique el uso del Bitcoin.
    • Hable sobre problemas relacionados con su uso.
    • Asocie al Bitcoin ha hechos delictivos.

A partir de este punto, expondremos ejemplos que han ayudado al etiquetador a llevar a cabo su trabajo. Empezaremos por los Positivos, donde incluiremos a todos los tweets con un contenido similar al siguiente:
  • Todos aquellos que contenga la palabra Drop Gold, aunque olvidarse del oro puede tener una connotación negativa respecto al sentimiento, desde el punto reputacional es positivo. Dentro de la criptomoneda existe un movimiento a favor de sustituir el oro por Bitcoin.
  • ETF son positivos, ya que es la forma ágil de invertir, sin tanto riesgo y a un coste mejor que un fondo de inversión. Un ETF, o fondo de inversión cotizado, del Bitcoin supone un avance muy importante para la criptomoneda ya que permitiría la entrada a más inversores. Un ejemplo podría ser:
  • Hey, check this out: [New Bitcoin ETF (BTC) and Ethereum (ETH) submitted to the SEC] (through the Quarry app) https://t.co/Ie5q6Y9QWO

  • Predicciones de precio positivas para el Bitcoin. Por ejemplo, todo aquel tweet que contenga un +5% de aumento en la última hora, o un aumento con respecto al actual precio se debe considerar positivo.
  • $11,500 #bitcoin Price Will Absolutely Become a Reality in 2019 ( https://t.co/uQB3ttUSid ) https://t.co/n5xFOm17m3

    Lot’s of green today for crypto!! #bitcoin #bitcoinrich ( https://t.co/SWEM4EjblH )

  • Utilizar Bitcoin como sinónimo de seguridad:
  • @brendan_dharma Well it happened on bitcoin and therefore would not be a scam

  • Los avances tecnológicos o legales también se consideran como un aspecto positivo ya que, a pesar de tener un sentimiento neutral supone una repercusión positiva en su reputación. Por ejemplo:
  • New #Blockchain Service Builds Worldwide Standardized Verification System For Certificates @newsbtc - https://t.co/3qBnN86cf6 #bitcoin #cryptocurrency #ethereum #crypto #tech #btc #blockchaintechnology #fintech #ecosystem #ICO #Ethereum #IoT #AI #BigData #altcoin #ETH https://t.co/eyorvyvJ7c

    OCF aims to transform philanthropy to detect the world's first decentralized charitable foundation to build a future in which blockchain technology can avoid ending all forms of poverty and inequality.#ooobtc #obx #crypto #bitcoin #ethereum #blockchain #btc #toqqn

  • Adopción por parte de grandes empresas.
  • Facebook rolls back ban on cryptocurrency ads as it ramps up its own blockchain efforts #cryptocurrency #btc #bitcoin ( https://t.co/MAIqyT1XbJ )

    RT @crypto__mak: NYSE Arca Wants to List Bitcoin and T-Bill-Backed Fund ( https://t.co/MQXHCXArKv ) #News #bitcoin #nysearca

  • Críticas a los que no utilizan el Bitcoin como moneda. Realmente son negativos de sentimiento, ya que posee un sentimiento de crítica, pero son positivo para la reputación. Por ejemplo:
  • Google: NoCoiner ... I would post it here, but Twatter only lets me write not enough words ;)

  • Concursos. Se consideran positivos porque aparte de intentar dar a conocer la moneda, reconoce su valor al ser objeto de deseo por parte de los participantes. También le otorga utilidad de la moneda e interés por ella. Ejemplo:
  • RT traía un CONCURSO MEGA a Freebitcoin Síguenos en Instagram para obtener actualizaciones bitcoin freebitcoin crypto crypto

  • Se consideran positivos aquellos tweets con aspectos positivos sobre su funcionamiento o afirmaciones positivas sobre la moneda:
  • RT @CryptoBac: #btc crypto #cryptocurrency Everything is going great here!

  • El Bitcoin asociado como solución a los colapsos financieros. En ese sentido, a pesar de tener un sentimiento negativo debido a la palabra colapso, decir "no seas uno...'' da entre ver el sentimiento positivo en la polaridad como solución a un problema.
  • RT @ArminVanBitcoin: Accumulate #Bitcoin today. Survive the big financial collapse tomorrow. None of my friends are listening. Don't be one

Dentro de los Neutrales, se incluirán todos los tweets con un contenido similar al mostrado a continuación:
  • Aquel tweet que contenga preguntas básicas o sin contenido referentes al Bitcoin como ¿conocéis bitcoin? ¿Habéis oído hablar del bitcoin? que no aporta ninguna información sobre la polaridad reputacional.
  • Tweets cortos con información poco o nada útil como:
  • RT @azbit_news:

    Dolar Bitcoin

  • Información económica sobre el Bitcoin. Un ejemplo pueden ser datos sobre precio actual del Bitcoin o la capitalización global respecto al dolar como se muestra a continuación:
  • @ #1, Bitcoin with unit price of $5,926.35, market cap of $104,823,794,536 (56.12%), and 24 hr vol. of $17,981,007,232.3 (31.74%)

  • Eventos sobre temas de blockchain o Bitcoin que no aporten ningún beneficio.
  • Don't forget the Tampa Bay #Bitcoin meetup tomorrow. RSVP while you still can: https://t.co/wSff9z2lPz

  • Publicidad sobre plataformas de intercambio de criptomonedas, como, por ejemplo:
  • https://t.co/J8amkmiqmE The most popular cryptocurrency exchange #cryptoexchange #blockchain

  • Grupos de telegram sobre el Bitcoin.
  • RT @authpaper: Don't forget to also join our #telegram group to earn more #bounty rewards! Telegram link: https://t.co/xi6hNWnFGy #AUPC #A

  • Guías para conocer más el Bitcoin, consejos sobre cómo utilizarlo o información sin ningún sentimiento reputacional.
  • RT @MervikHaums: Yes! You own your funds only if you own your keys. #binance #bnb #hacked #bitcoin #btc #toqqn #tqn #crypto #exchange http

    Blockchain: Bitcoin, Ethereum, Cryptocurrency: The Insiders Guide to Blockchain Technology, Bitcoin Mining, Investing and Trading Cryptocurrencies (Blockchain business, & Blockchain for Dummies) https://t.co/2Y7EDhqFIb #blockchain #ad

Dentro de los Negativos, se incluirán todos los tweets con un contenido parecido al mostrado a continuación:
  • Tweets acerca de Craig Wright como creador del bitcoin o positivos hacia esa persona se consideran negativos. Este nombre tiene una reputación negativa en el Bitcoin y, por lo tanto, todo lo relacionado con él tendrá una connotación negativa.
  • Satoshi Files: Calvin Ayre Teases 'More Evidence' Craig Wright Created Bitcoin https://t.co/wYkBf416o9

  • Comparaciones despectivas con el Bitcoin.
  • @JamesTodaroMD @TusharJain_ Bitcoin will never be free state money! But Ethereum will! Negativo corregir

  • Los referidos a la falta de legislación o problemas legales.
  • Todos aquellos tweets que informen o analicen Hackeos
  • Hackers Steal $40.7 Million in #Bitcoin From Crypto Exchange Binance https://t.co/rMAQVRsKLN

    https://t.co/Qc5JBeuw4B @LukeDashjr at 36:30 Cz from Binance said some community members and core bitcoin devs offered a roll back as a tech solution? what core member offered this? would interesting to know

  • Todos los tweets donde se asocie el bitcoin a pagos no legales.
  • Are you paying for this media coverage in bitcoin or rubles Nigel Farage? You' ve been investigated for funding irregularities before - you will be again. #youwontgetawaywithitforever #charlaton #TuesdayTruths #sideofabuslies

  • Aquellos que se habla de términos económicos negativos como por ejemplo bajadas de precio o posibles correcciones del Bitcoin.
  • Is #bitcoin Due for a Correction? for BITMEX:XBTUSD by oh92 #XBTUSD https://t.co/Rgkbt2wpAO https://t.co/pcjJ8j8E5p

    RT @CredibleCrypto: There are ALWAYS pullbacks, so stop fomo-ing if you miss a leg up and prep your plan to buy the next correction. https:…

3.2.2 Valoración del sentimiento

En esta sección aplicaremos el mismo etiquetado que analizamos en la sección anterior, pero desde la perspectiva del sentimiento. Para ello, es necesario analizar el contenido del propio tweet con el objetivo de etiquetarlo como positivo, negativo o neutro respecto al sentimiento expresado respecto el Bitcoin.

  • Positivo: Se considerará positivo todo aquel tweet que:
    • Valore el Bitcoin como algo positivo.
    • Contenga palabras positivas
    • Aumentos de precio
    • Publicidad
    • Comparaciones positivas.
  • Neutrales: Se considerará neutral todo aquel tweet que:
    • Tutoriales
    • Información económica sobre el Bitcoin
    • Ejemplo de uso
  • Negativos: Se considerará negativo todo aquel tweet que:
    • Se escriba sobre ataques cibernéticos.
    • Se escriba sobre problemas relacionados con su uso.
    • Asocie al Bitcoin a hechos delictivos.
    • Muestre desprecio hacia el Bitcoin.
A partir de este punto, expondremos ejemplos que han ayudado al etiquetador a llevar a cabo su trabajo. Empezaremos por los Positivos donde se incluirán todos aquellos tweets con las siguientes características:
  • El contenido del tweet tiene palabras positivas como:
  • ( https://t.co/J8amkmiqmE )The most popular cryptocurrency exchange#cryptoexchange #blockchain

    Bitcoin, Ethereum, Ripple and IOTA Are The Most Important Projects among 1500+ Cryptocurrencies, KPMG Report( https://t.co/ZDhJDnnoml )#Bitcoin#BitcoinLifestyle ( https://t.co/uQEFmPmwGb )

  • Se define el Bitcoin como algo real y no como una estafa
  • @brendan_dharma Well it happened on bitcoin and therefore would not be a scam

  • Tweets donde se presenta a la criptomoneda como solución a problemas:
  • ByzCoin has the potential to overcome the lag through scalable collective signing, committing #Bitcoin transactions irreversibly within seconds. Watch @brynosaurus present an outline and how it can be a solution to Bitcoin scalability ( https://t.co/GBfd7iN0bA ) #blockchain ( https://t.co/GBfd7iN0bA ( https://t.co/GBfd7iN0bA ) #blockchain )

  • Comparación positiva del Bitcoin sobre otra Criptomoneda.
  • @brucefenton The problem is that Litecoin is worse than Bitcoin on all point. And that what Litecoin do mostly is copying Bitcoin.Betting on a different coin than Bitcoin is fine. But so far no coin has been better.

  • Publicidad positiva sobre el Bitcoin.
  • RT @ProofOfSteve: Every time we open and close above one of these trend lines we go straight up. Guess what, this is the 4th time in BTC history this has happened. #BTC #bitcoin #crypto #hodl $btc $bitcoin ( https://t.co/8bdQ0I0Mtd )

  • Tweets sobre el aumento del precio del Bitcoin.
  • Bitcoin Soars Above $7,000 As Crypto Comeback Continues ( https://t.co/KQ7U0bRwjR ) #Money #Finance #Economics #Market

  • Todos aquellos tweets donde a pesar de poseer términos negativos, la forma de utilizarlo y el contexto de las palabras lo transforman en positivos.
  • Bitcoin whales are smart money. Do not be stupid money ( https://t.co/bDXT5tOaK2 )

Continuando con el proceso, se consideran Neutrales todos aquellos tweets con un contenido similar al siguiente:
  • Todos aquellos donde se presentan una guía de información, un tutorial o cualquier tipo de ayuda técnica a los usuarios como, por ejemplo:
  • Blockchain: Bitcoin, Ethereum, Cryptocurrency: The Insider’s Guide to Blockchain Technology, Bitcoin Mining, Investing and Trading Cryptocurrencies (Blockchain business, & Blockchain for Dummies) ( https://t.co/2Y7EDhqFIb ) #blockchain #ad

  • Técnicos de bolsa sin ningún tipo de sentimiento como:
  • Bitcoin 55k target came just short Good example of why OBV has been more important lately than RSI Bear div started on RSI but not OBV Once OBV showed div is when it dropped Top Goon X signaled the dead cat bounce and just gave same signal on 12H 4648k area to watch

    @ #1, Bitcoin with unit price of $5,926.35, market cap of $104,823,794,536 (56.12%), and 24 hr vol. of $17,981,007,232.3 (31.74%)

    #ETH Buy at #Paribu and sell at #Gate.io. Ratio: 0.92% Buy at #Koinim and sell at #Bitfinex. Ratio: 4.76% Buy at #BtcTurk and sell at #Bittrex. Ratio: 1.04% Buy at #BtcTurk and sell at #Bitfinex. Ratio: 6.06% #bitcoin #arbitrage #arbitraj #arbingtool https://t.co/xiFUPzcOcC

  • Tweets con información sobre el uso del Bitcoin donde no se exprese ningún sentimeinto.
  • University Students Choose One Dollar Over One Bitcoin @bitcoinist #Bitcoin #Bitcoin Acceptance #Bitcoin Education #Bitcoin Price #bitcoin #dollar #students ( https://t.co/Gs06qUFBEd )

  • Tweets sobre libros sobre el Bitcoin.
  • Descargar EPUB Mastering Bitcoin: Programming the Open Blockchain https://t.co/3nXIw3Eerh

Por último, se consideran negativos todos aquellos tweets con un contenido similar al siguiente:
  • Tweets donde aparecen palabras negativas como "colapso'', "no están'' escuchando:
  • RT @ArminVanBitcoin: Accumulate #Bitcoin today. Survive the big financial collapse tomorrow. None of my friends are listening. Don't be one

  • Todos aquellos que contenga la palabra Drop Gold, ya que desprenderse del oro tiene una connotación negativa respecto al sentimiento.
  • ¿Does Grayscale’s Latest ##DropGold for #Crypto Effort Entirely Miss the Point? ( https://t.co/TD7U54ENzi ) #bitcoin

  • Tweets redactados con palabras que poseen un significado negativo respecto al valor del Bitcoin, como por ejemplo la palabra "corrección'' o "disminución''.
  • Is #bitcoin Due for a Correction? for BITMEX:XBTUSD by oh92 #XBTUSD https://t.co/Rgkbt2wpAO ( https://t.co/pcjJ8j8E5p )

    Bitcoin (BTC) Price Weekly Forecast: Technical Bias Signaling Fresh Increase ( https://t.co/qwgbNrkgY1 ) #Bitcoin #Cryptocurrency #Analysis #BTC #Technical"@brucefenton The problem is that Litecoin is worse than Bitcoin on all point. And that what Litecoin do mostly is copying Bitcoin.

  • Tweets sobre ataques cibernéticos, bots o problemas técnicos
  • Hackers Steal $40.7 Million in #Bitcoin From Crypto Exchange Binance ( https://t.co/rMAQVRsKLN )

    Homeland Security Warns Bots Are Exploiting Decentralized Crypto Exchanges#bitcoin #ripple #altcoin #cryptocurrencymarket #SmartCash #cryptonews #coldwallet #er20( https://t.co/xcQh00U6zw )

    @binance quit holding our funds hostage. If we wanted our money to have delays wed use fiat. Your damage has been assessed already so there s no reason for this continuation. Binance BinanceHack btc bitcoin

  • Tweet sobre acciones de dudosa legalidad o connotación negativa.
  • Are you paying for this media coverage in bitcoin or rubles Nigel Farage? You’ve been investigated for funding irregularities before - you will be again. #youwontgetawaywithitforever #charlaton #TuesdayTruths #sideofabuslies

  • Comparaciones despectivas del Bitcoin
  • @JamesTodaroMD @TusharJain_ Bitcoin will never be free state money! But Ethereum will!

    @cryptochrisw #securypto product absolutely matter.. Without product it has no function at all! And become waste! #cryptocurrency #bitcoin #altcoinVicious Crypto Crash Could Supercharge Bitcoin Price Rally to $20,000 ( https://t.co/DzuD0HCYgv )

3.3. Proceso de etiquetado

El objetivo de esta sección ha sido analizar qué tipo de interfaz e infraestructura era la más adecuada para el etiquetador, es decir, el programa encargado de recopilar, mostrar y almacenar la valoración de un tweet desde el punto de vista de la polaridad reputacional y el sentimiento.

Al ser una tarea larga, repetitiva y con múltiples opciones es muy fácil cometer errores durante el proceso de etiquetado. Para intentar evitar fallos se ha optado por utilizar la web mostrada en la figura ( [3.1] . En ella se implementó una interfaz amigable para el etiquetador, intentando optimizar su esfuerzo utilizando múltiples colores, filas y un diseño responsive basado en Bootstrap otorgando al etiquetador total independencia para escoger el dispositivo que se adapte mejor a su forma de trabajar.

Respecto a la interfaz, en la primera parte de la interfaz tendremos el etiquetado de la Polaridad reputacional. La fila está dividida en botones y cada botón tiene un color diferente dependiendo de su finalidad, es decir, dependiendo de su polaridad reputacional: Positiva, Neutral, Negativa y Dudosa.

La segunda parte del formulario corresponde al etiquetado del sentimiento. En esta línea el usuario selecciona una etiqueta que simboliza su percepción con respecto al sentimiento del tweet entre los diferentes checkbox disponibles. Es complementario a la línea superior, y únicamente puede ser seleccionado un único checkbox.

Por último, polaridad dudosa, se utiliza para almacenar aquellos tweets que tengamos dudas sobre su temática del Bitcoin. De esta forma, se diferencian del resto, con el objetivo de analizarlo individualmente con posterioridad.

Siguiendo un principio de sencillez, la web ha sido implementada para poder ser visualizada desde cualquier dispositivo, tanto móviles como ordenadores, con el objetivo de permitir al usuario etiquetar de forma independiente del dispositivo usado. Aparte, el funcionamiento es muy sencillo, simplemente al hacer click en un botón se almacena la información asociada del botón y el checkbox seleccionado.

Para facilitar el proceso de creación del dataset se ha implementado un seleccionador dinámico de tweets, es decir, cada vez que se recarga la web selecciona aleatoriamente el tweet a analizar con el objetivo de crear un conjunto de entrenamiento lo más real y esparcido en el tiempo posible con el objetivo de etiquetar tweets con diferentes noticias, asunto u opiniones. También se le proporciona información como la fecha de creación, cantidad de transacciones, precio, etc. para ayudar al etiquetador a llevar a cabo su tarea.

La dirección para consultar la información es ( http://test.1938.com.es/web_pruebas_v2.php )

Interfaz gráfica web de etiquetado
3.1 Interfaz gráfica web de etiquetado

3.4. Discusión

Nuestras anotaciones manuales sobre la colección TweetCoin son, hasta donde sabemos, el primer dataset manual en el que se puede cuantificar la diferencia entre sentimiento y polaridad reputacional; en el dataset de referencia RepLab se anota la polaridad reputacional, pero no el sentimiento; y en la mayoría del resto de datasets se anota sólo el sentimiento. En la figura [3.2] se recoge la matriz de confusión entre ambos. Se puede apreciar que, en un 37% de los casos (600 tweets sobre un total de 1145), las anotaciones no son coincidentes. Las discrepancias más frecuentes son, por este orden: (1) sentimiento positivo con polaridad reputacional neutral; (2) sentimiento neutral con polaridad reputacional positiva; (3) sentimiento negativo con polaridad reputacional positiva.Esto confirma la intuición de que cuando estudiamos la Polaridad Reputacional y Análisis del Sentimiento estudiamos dos formas diferentes de medir la reputación online de una marca.

Matriz de confusión para comparar la polaridad reputacional vs el análisis del
    sentimiento.
3.2 Matriz de confusión para comparar la polaridad reputacional vs el análisis del sentimiento.

Por supuesto, medir la polaridad reputacional de un texto es más complicado cuando el documento no expresa implícitamente una reputación positiva o negativa sobre la entidad. En el proceso de etiquetado ha habido casos como por ejemplo los avances tecnológicos, con sentimiento totalmente neutral pero muy positivos para la reputación del Bitcoin.

Los avances tecnológicos o legales también se consideran como un aspecto positivo ya que, a pesar de tener un sentimiento neutral supone una repercusión positiva en su reputación. Un ejemplo puede ser el siguiente tweet:

New #Blockchain Service Builds Worldwide Standardized Verification System For Certificates @newsbtc - https://t.co/3qBnN86cf6 #bitcoin #cryptocurrency #ethereum #crypto #tech #btc #blockchaintechnology #fintech #ecosystem #ICO #Ethereum #IoT #AI #BigData #altcoin #ETH https://t.co/eyorvyvJ7c

Otro ejemplo, con polaridad reputacional positiva y con sentimiento negativo puede ser críticas a las personas que no utilizan Bitcoin como el siguiente tweet:

Google: NoCoiner ... I would post it here, but Twatter only lets me write not enough words ;)

Como podemos ver en la matriz, durante el periodo de recolección nos hemos encontrado con una gran cantidad de este tipo de tweets. Exactamente hemos localizado 168 tweets donde el sentimiento y la polaridad reputacional son opuestos.

También hemos detectado una gran cantidad de tweets positivos respecto al sentimiento y neutrales a la polaridad reputacional como por ejemplo publicidad:

Find the Largest Telegram group provide Free Crypto BOT; Crypto Signal Bitcoin forum - Discuss and Learn About Cryptocurrency

4.Diseño experimental

En este capítulo se describe el diseño experimental para comparar el papel del análisis de sentimientos y el de la polaridad reputacional a la hora de predecir valores bursátiles. Se implementará la técnica explicada en la sección [2.1.1] . Como ya se ha analizado, Bert será el algoritmo PLN que mejor se adapte al proyecto y, a partir del dataset creado en el capítulo [3] , se podrá crear un modelo para predecir la polaridad y el sentimiento de los tweets obtenidos de la red social Twitter para finalmente analizar la correlación con el precio del Bitcoin.

Para ello, empezaremos el capítulo con la sección [4.1] donde se expondrá qué es VADER, una librería Python para el análisis de sentimiento que se utilizará en el proyecto como modelo de referencia o baseline.

Continuará con la sección [4.2] donde se expondrán dos opciones de implementación del algoritmo de BERT para el análisis de sentimiento y la polaridad reputacional.Primero en la sección [4.3] se analizará que implementación obtiene los mejores resultados para detectar la polaridad reputacional en BitTweet y en la sección [4.4] será lo mismo pero respecto al sentimiento. Para acabar, se expondrán las conclusiones de los resultados en la sección [4.5] se expondrá la implementación escogida para realizar la predicción bursátil en la sección [4.6]

4.1. Sistema de Análisis del sentimiento con VADER

Esta sección tiene como finalidad encontrar un algoritmo o modelo que podamos utilizar como baseline. Lo que se busca es un sistema implementado como una librería en Python que evite el coste de realizar un proceso de etiquetado manual, se pueda integrar al proceso de recopilación de los tweets y este validado por diferentes estudios.

Entre las diferentes posibilidades que existen, para este proyecto se ha utilizado VADER (Valence Aware Dictionary and sEntiment Reasoner) ( ( [https://github.com/cjhutto/vaderSentiment] )) una herramienta de análisis de sentimientos basada en reglas y léxico que está específicamente en sintonía con los sentimientos expresados en las redes sociales.

Si recordamos la sección [1.2] , los algoritmos para el análisis de sentimiento están basados en la utilización de un diccionario de palabras, donde cada una de ellas es clasificada en cuanto qué tan positiva o negativa son. En el cuadro [4.1] se expone un ejemplo donde las palabras más positivas tienen calificaciones más altas y las palabras más negativas tienen calificaciones más bajas.
Word Sentiment rating
tragedy -3.4
rejoiced 2.0
insane -1.7
disaster -3.1
great 3.1
4.1 Ejemplo extraido del léxico de Vader

Cuando VADER analiza un fragmento de texto, verifica si alguna de las palabras del texto está presente en su léxico. Por ejemplo, la frase "La comida es buena y el ambiente es agradable'' tiene dos palabras en el léxico (bueno y agradable) con calificaciones de 1.9 y 1.8 respectivamente.

A partir de esa información VADER devolverá cuatro métricas de opinión. Los primeros tres, positivo, neutro y negativo, representan la proporción del texto que cae en cada categoría. Por ejemplo, el cuadro [4.2] es una representación del resultado obtenido con la oración "La comida es buena y el ambiente es agradable'' donde VADER la calificó como un 45% positiva, un 55% neutral y un 0% negativa. La métrica final, etiquetada como compuesta, es la suma de todas las clasificaciones de léxico (1.9 y 1.8 en este caso) que se han estandarizado para oscilar entre -1 y 1. En este caso, nuestra oración de ejemplo tiene una clasificación de 0.69, lo cual es bastante positivo.
Sentiment metric Value
Positive 0.45
Neutral 0.55
Negative 0.00
Compuesta 0.69
4.2. Resultado al aplicar VADER a la oración La comida es buena y el ambiente es agradable

Como también se comentó en la sección [1.2] , existen expresiones como emoticones o exclamaciones con significado útil para la interpretación del sentimiento. VADER aplica este principio y lo podemos comprobar en la oración Acabo de recibir una llamada de mi jefe, ¿se da cuenta de que es sábado? smh :'') obtienes como resultado la siguiente clasificación
  • Negativo: 0.321
  • Neutral: 0.679
  • Positivo: 0.0
  • Compuesto: -0.6369
Es decir, VADER interpreta el emoticono y califica la oración como aún más intensamente negativa.

Y no solo eso, también contextualiza el léxico como se muestra en la oración La comida es buena comparada en la segunda oración La comida es BUENA. Una de las características principales de VADER es su capacidad de reconocer la capitalización, aumentando la intensidad de las palabras positivas y negativas. Se puede ver a continuación el cuadro [4.3] como las mayúsculas "BUENA'' aumentan la intensidad positiva de toda la oración.

La comida es buena La comida es BUENA
Positive 0.492 0.548
Neutral 0.508 0.452
Negative 0.00 0.00
Compound 0.4404 0.5622
4.3 Tabla compartiva de dos tweets utilizando Vader

Otro factor que aumenta la intensidad del sentimiento de la oración son los signos de exclamación o las palabras modificadoras son otros dos elementos que afectan al sentimiento y VADER lo contempla.

Para consultar el código empleado, se puede consultar la ( [https://github.com/al118345/Vader/blob/master/Analisis_Sentimiento.py] ) donde se encuentra el código empleado.

4.2. Sistemas de Análisis Del Sentimiento y Polaridad Reputcional con BERT

Como se ha analizado anteriormente, BERT es un modelo bidireccional que se basa en la arquitectura de la transformación explicada en el artículo "Attention is all you need'' [20] además de reemplazar la naturaleza secuencial de redes neuronales (long short-term memory-LSTM [18] y gated recurrent units-GRU [21] ) por un enfoque mucho más rápido basado en la atención (Attention-based approach). Este modelo está pre-entrenado para dos tareas no supervisadas como son el modelado de lenguaje oculto (masked language modeling) y predicción de la siguiente frase (next sentence prediction). Esto permite a los programadores usar un modelo BERT previamente entrenado y ajustarlo a la tarea específica deseada, es decir, enfocarlo en la clasificación de sentimiento y la polaridad reputacional.

En este punto nos centraremos en la aplicación de BERT al problema de la clasificación de texto. Está tarea supondrá clasificar cada uno de los documentos proporcionados por el dataset según su sentimiento y su polaridad. Para ello, cada documento únicamente podrá tener una etiqueta que represente su sentimiento o polaridad respecto al Bitcoin ya que utilizaremos modelos diferentes para cada una de las tareas. Esta etiqueta podrá contener uno de los siguientes tres estados:
  • Positivo
  • Negativo
  • Neutro
Dependiendo de la finalidad el algoritmo, la implementación será capaz de escoger el dataset de entrenamiento, es decir, o bien escogerá el dataset para la polaridad reputacional o para el análisis de sentimiento. Realmente, entre ambas implementaciones no existirá ningún tipo diferencia, exceptuando la información proporcionada en la fase de entrenamiento.

A su vez, los resultados obtenidos por Bert se almacenarán en una base de datos MySQL para su futura consulta y estudio.

Para crear el modelo, Google Research compartio una implementación basada en tensorflow junto con los siguientes modelos pre-entrenados:
  • BERT-Base, Uncased: 12-layer, 768-hidden, 12-heads, 110M parameters
  • BERT-Large, Uncased: 24-layer, 1024-hidden, 16-heads, 340M parameters
  • BERT-Base, Cased: 12-layer, 768-hidden, 12-heads , 110M parameters
  • BERT-Large, Cased: 24-layer, 1024-hidden, 16-heads, 340M parameters
  • BERT-Base, Multilingual Cased (New, recommended): 104 languages, 12-layer, 768-hidden, 12-heads, 110M parameters
  • BERT-Base, Chinese: Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M parameters
A partir de este punto el proyecto se subdividirá en dos implementaciones diferentes. La primera implementación se basará en el código obtenido de la plataforma Github (GitHub es una forja (plataforma de desarrollo colaborativo) para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de computadora.) a través del siguiente enlace [15] y en la segunda implementación utilizaremos el ejemplo proporcionado por el equipo de Google Search en la web ( [https://github.com/google-research/bert] ).

4.2.1 Implementación 1

En esta implementación se escogió el modelo BERT-Base, Uncased con 12 layers y un tokenizador convertirá todo el texto a minúsculas.

Además, se usó PyTorch sobre TensorFlow, utilizando el puerto PyTorch de BERT explicado por HuggingFace en ( [https://github.com/huggingface/pytorch-pretrained-BERT] ). Según explica el autor convierte los puntos de control de TensorFlow previamente entrenados en pesos de PyTorch utilizando el script de HuggingFace.

Otro paso necesario es implementar la conversión del tweet en un tipo de dato que pueda ser utilizado por BERT. Un ejemplo es la figura [4.1] donde se puede ver un proceso de conversión de la frase my dog is cute. He likes playing.

Proceso de conversión de un tweet.
4.1 Proceso de conversión de un tweet. Fuente ( [Medium.com] )

El modelo pre-entrenado escogido utiliza un vocabulario de 30.522 palabras. El proceso de tokenización implicará dividir el tweet en una lista de tokens que están disponibles en el vocabulario. Para tratar con las palabras no disponibles en el vocabulario, BERT utiliza una técnica llamada tokenización de WordPiece basada en BPE (Byte Pair Encoding). En este enfoque, una palabra sin vocabulario se divide progresivamente en subpalabras y la palabra se representa mediante un grupo de subpalabras. Dado que las subpalabras son parte del vocabulario, hemos aprendido representaciones de un contexto para estas subpalabras y el contexto de la palabra es simplemente la combinación del contexto de las subpalabras.

Respecto a la configuración del programa, entrenamos el modelo para 4 iteraciones con un tamaño de lote de 32 y una longitud de secuencia de 512, es decir, el máximo posible para los modelos pre-entrenados. La tasa de aprendizaje se mantuvo en 3 , como se recomienda en el documento original.

Para consultar el código empleado, se puede acceder a la siguiente url ( [https://github.com/al118345/bert-toxic-comments-multilabel/blob/master/test_bert-toxic-comments-multilabel.py ] ) donde se encuentra el código empleado para su consulta.

4.2.2 Implementación 2

En esta segunda implementación, hemos adaptado el código publicado por google-research en Git Hub (( [https://github.com/google-research/bert] )) dónde se expone una adaptación del algoritmo BERT. Esta implementación es muy parecida a la que nos encontramos en la sección [4.2.1] ya que la implementación 1 se basa en el código utilizado en este ejemplo y, por lo tanto, comparte gran parte del código y la configuración como, por ejemplo, el modelo pre-entrenado escogido, que ha sido el modelo BERT-Base, Uncased con 12 layers como en la implementación anterior

La primera característica para destacar en la implementación de Google Research es como ha agregado TF Hub (( [enlace] )) como un módulo agregado a las tuberías de texto de Tensorflow.

El siguiente punto es como transforma los tweets en un formato que BERT entienda. Para ello primero se selecciona como y que datos se utilizarán como entrada en el constructor provisto en la biblioteca BERT. Este constructor tiene tres componentes de entrada que son:
  • Text_a es el texto que queremos clasificar, es decir, el tweet.
  • Text_b se usa si estamos entrenando un modelo para comprender la relación entre oraciones (es decir,¿text_b es una traducción de text_a? ¿text_b es una respuesta a la pregunta formulada por text_a?). Esto no se aplica en el proyecto, por lo tanto, estará en blanco para lo ser utilizado.
  • Label es la etiqueta que se le otorga al tweet. En la implementación utilizada es Verdadero o Falso
La segunda parte de la transformación es tokenizar la información, para ello se realizará las siguientes tareas:
  • Convertir a minúsculas el tweet
  • Dividir las palabras en WordPieces (es decir, "callin'' )
  • Asignar índice a las palabras
  • Agregar los tokens especiales "CLS'' y "SEP''
Una vez terminado el proceso, el siguiente punto a destacar es la configuración del modelo. Para ello se ha implementado el algoritmo con 3 iteraciones con un tamaño de 32 y una longitud de 300. La tasa de aprendizaje se mantuvo en 3 .

Para consultar el código empleado, se puede acceder a la siguiente url ( [enlace] ) donde se encuentra el código empleado para su consulta.

4.3. Sistema Análisis Polaridad Reputacional con BERT utilizando BitTweet etiquetado manualmente

En esta sección adaptaremos ambas implementaciones para predecir la polaridad reputacional de un conjunto de tweets. Como ya se especificó anteriormente, para analizar la polaridad reputacional vamos a etiquetar los tweets de 3 formas posibles: positivo, negativo y neutro. Esta nueva necesidad ha exigido adaptar ambas implementaciones de la siguiente forma:
  • En la implementación 1, hemos convertido las etiquetas en vectores de ceros y unos, de forma que un tweet puede tener una de las siguientes etiquetas:
    • positivo=
    • negativo=
    • neutro=

    El código implementado ha sido compartido en un repositorio GitHub almacenado en la siguiente URL ( [enlace] )

    La métrica escogida para analizar los resultados ha sido la tasa de acierto, en este caso, 75,50%, es decir, por debajo de las expectativas previas.
  • En la implementación 2, hemos convertido las etiquetas en números del 0 al 2, de forma que un tweet puede tener una de las siguientes etiquetas:
    • positivo=
    • negativo=
    • neutro=
    Con esta implementación se han obtenido como resultado un 87,03 por ciento de éxito en las predicciones.

    El código implementado ha sido compartido en un repositorio Github almacenado en la siguiente URL ( [enlace] ).
Al comparar los resultados se puede comprobar cómo la implementación 2 tiene más exactitud y, por lo tanto, es la opción que vamos a utilizar en el proyecto.

Los resultados obtenidos han sido:
  • Implementación 1: 75% Tasa de acierto
  • Implementación 2: 87,03% Tasa de acierto

4.4. Sistema Análisis del Sentimiento con BERT utlizando BitTweet etiquetado manualmente

En esta sección adaptaremos de forma idéntica ambas implementaciones, es decir, modificaremos la implementación para adaptarla el múltiple etiquetado, aunque con un objetivo diferente. En esta ocasión modificaremos el etiquetado de los tweets para predecir el sentimiento acorde al sistema establecido de 3 etiquetas: positivo, negativo y neutro.

Para llevar a cabo esta tarea adaptaremos el código de la siguiente forma
  • En la implementación 1, hemos convertido las etiquetas en vectores de ceros y unos, de forma que un tweet puede tener una de las siguientes etiquetas:
    • positivo=
    • negativo=
    • neutro=
    El código implementado ha sido compartido en un repositorio Github almacenado en la siguiente URL ( [enlace] )

    Al igual que en el caso anterior, la métrica escogida para comparar ha sido la tasa de acierto, en este caso, 83%.
  • En la implementación 2, hemos convertido las etiquetas en números del 0 al 2, de forma que un tweet puede tener una de las siguientes etiquetas:
    • positivo=
    • negativo=
    • neutro=
    Con esta implementación se han obtenido como resultado un 90 por ciento de éxito en las predicciones.

    El código implementado ha sido compartido en un repositorio Github almacenado en la siguiente URL ( [enlace] ).
Al comparar los resultados se puede comprobar cómo la implementación 2 tiene más exactitud y, por lo tanto, es la opción que vamos a utilizar en el proyecto.

Los resultados obtenidos han sido:
  • Implementación 1: 83% Tasa de acierto
  • Implementación 2: 90% Tasa de acierto

4.5. Discusión sobre las dos implementaciones

Como se pudo comprobar en este capítulo, ambos códigos fueron implementados por sus desarrolladores [15] para la clasificación binaria de textos acorde a su sentimiento, es decir, únicamente podían describir si el tweet poseía un sentimiento positivo o negativo. En un principio, en este proyecto se ha escogido implementar las primeras versiones siguiendo este tipo de etiquetado para valorar ambos códigos modificando mínimamente los proyectos de los autores y, siendo lo más ajustados a la implementación original posible, ver la cantidad de tweets necesarios para crear el modelo en una tasa de éxito del 80 por ciento.

Siguiendo esta filosofía, el proyecto necesitaba un dataset de pruebas y etiquetado que nos pudiera servir de base para crear los modelos y testearlos. El tweet utilizado en las pruebas únicamente podrá almacenar dos tipos de etiquetas: positivo o negativo.

Una vez creado el dataset y un método para distribuir el conjunto de datos entre entrenamiento y test, se ha creado diferentes modelos con diferente número de tweets para analizar que configuración más adecuada para el proyecto.

Para poder comparar los resultados se ha utilizado la Tasa de Acierto y se ha generado la tabla [4.5] donde ya se puede comprobar que la segunda implementación tiene un porcentaje de acierto que la primera.

El primer detalle al analizar los resultados ha sido la disminución de la tasa de acierto en la primera implementación al aumentar la cantidad de tweets de entrenamiento en 1500 casos. Esto puede ser debido a que el aumento en la diversidad de los tweets utilizados ha generado una pérdida de eficiencia en el modelo.

Además, revisando la cantidad de tweets positivos y negativos que hay en las pruebas, se puede comprobar como la tasa de tweets etiquetados como positivos supera con creces la de tweets etiquetados como negativos. Esto hecho es muy importante, ya que un modelo que etiquete todo el tweet como positivos (caso 1 en la implementación 1) obtiene un porcentaje de acierto del 85,2. Este detalle, unido con que los tweets de entrenamiento y de test eran muy próximos en el tiempo, hacen entrever que los tests aplicados han sido útiles para aprender y validar el funcionamiento del algoritmo, pero no definitorios sobre su validez.

Número
Tweet
Entrenamiento
Implementación
1 Porcentaje
Acierto
Implementación
2 Porcentaje
Acierto
250 85,2 87,2
750 87,8 87,4
1000 88 89,3
1500 85,9 89,2

4.5 Tabla comparativa entre ambas implementaciones con un test realizado en 1000 tweets recolectados en abril

Con la nueva información recopilada, se ha implementado los dos algoritmos para analizar la polaridad reputacional utilizando las características aprendidas. El dataset que hemos etiquetado ha seguido las siguientes tres reglas aprendidas en esta sección:
  • Se utilizarán 3 etiquetas, positivo, negativo y neutral, que definirán la polaridad reputacional del tweet respecto al Bitcoin.
  • La cantidad de tweets de cada grupo tendrá que ser como mínimo del 15 por ciento
  • Los tweets etiquetados serán seleccionados aleatoriamente, es decir, podrán corresponder a diferentes días o meses del año 2019.
También, analizando los resultados, se ha tomado la decisión de utilizar modelos con 1459 tweets de entrenamiento y 350 tweets de test.

A partir de este momento, se ha implementado ambas opciones y en la sección [4.4] se ha comprobado que la implementación 2 tiene una mayor tasa de acierto y, por lo tanto, es la opción escogida para el proyecto. Los resultados se pueden comprobar en el siguiente cuadro: (4.6)
Tasa de Acierto Análisis del sentimiento Polaridad Reputacionl
Implementación 2 90 87
Implementación 1 83 75
4.6 Comparación Implementación con 3 etiquetas

Esto puede ser debido a la utilización de PyTorch sobre TensorFlow de la implementación 1, mientras que en la predicción binaria funciono correctamente, cuando el proyecto ha utilizado 3 etiquetas a disminuido su tasa de acierto con el conjunto de entrenamiento seleccionado.

Otra opción puede ser que ambas implementaciones estén enfocadas de forma diferente. Mientras la primera implementación esta diseñada para detectar múltiples características binarias la segunda implementación esta enfocada para detectar una única etiqueta con múltiples opciones. Este detalle es el que ha propiciado que en la tabla [4.5] tenga un resultado más o menos parecido ambas implementaciones y, en cambio, en la tabla [ref] la implementación 2 sea mucho más eficaz.

4.6. Sistema de predicción bursátil

Con los algoritmos analizados y validados, el siguiente punto del proyecto ha consistido en predecir la polaridad reputacional y el sentimiento de la información recopilada en la sección [3] para investigar si existe una correlación con el precio del bitcoin.

Para cumplir este objetivo, el primer punto era determinar que parte del dataset era óptimo para el propósito de la sección. Tal y como se documentó en el proceso de etiquetado, los tweets utilizados fueron escritos durante los meses de abril, mayo y junio y, por lo tanto, se ha decidido utilizar toda la información obtenidos desde el 1 de abril hasta el 31 de julio, con el objetivo de que los datos obtenidos durante los tres primeros meses sirvan de entrenamiento y los datos de julio como test.

Una vez escogido el subconjunto del dataset a analizar, el siguiente paso fue medir la cantidad de tweets valorados como positivos, negativos y neutrales por ambos modelos con el objetivo de crear un nuevo modelo que pudiera predecir la acción del precio del BitCoin. Para ello, hemos dividido los tweets por hora y el resultado se ha almacenado en una base de datos Mysql para su futura interpretación. El siguiente punto del proceso fue convertir la información extraída en datos con el objetivo de ser interpretados por el modelo LSTM (Long short-term memor). Este proceso consistirá en normalizar la cantidad de tweets positivos, negativos y neutrales catalogados por cada hora junto con la cantidad de tweets total escritos. Como variable objetivo utilizaremos el precio del Bitcoin.

Posteriormente, los datos normalizados serán divididos en dos subconjuntos, el de entrenamiento con 1500 horas y el de test con 1255 horas (con un retraso de 3 horas).

Respecto al modelo, como hemos comentado previamente se ha generado un sistema LSTM con los siguientes parámetros de configuración:
  • Epochs: 50
  • Validation split: 0.2
  • Batch size: 12
Posteriormente se ha compilado función de perdida MAE(Mean Absolute Error) y raíz de la desviación cuadrática media (root-mean-square error, RMSE) para comprobar la bondad de los datos obtenidos.

Por último, el código utilizado es una modificación del publicado en las web [LSTM Model predicting Bitcoin with Tweet Volume \& Sentiment] [14]

El código utilizado se puede comprobar en el siguiente repositorio de Github ( [enlace] )

5.Resultados experimentales

Una vez se ha escogido que tipo de implementación, el siguiente paso es generar los modelos de predicción para la polaridad reputacional y el análisis del sentimiento y comprobar sus métricas.

En la sección [5.1] se expondrá las métricas obtenidas al analizar el modelo generado para la polaridad reputacional y en la sección [5.2] se podrá analizar la métrica del modelo del análisis del sentimiento.

El código utilizado para obtener la información expuesta en esta sección [5.2] y la sección [5.1] se puede encontrar en el siguiente repositorio GitHub ( [enlace] ).

Es muy importante recordar en este punto lo comentado anteriormente, tanto para analizar la polaridad reputacional como para realizar un análisis del sentimiento, la implementación será exactamente la misma, el único cambio será el conjunto utilizado para el entrenamiento del algoritmo.

Por último, en la sección [5.3] se puede consultar los resultados obtenidos al realizar la predicción del Bitcoin.

5.1. Polaridad Reputacional

Una vez se ha generado el modelo, se han utilizado 346 tweets etiquetados como conjunto de testeo. Los resultados obtenidos se pueden comprobar en el cuadro [5.1] expuesto a continuación:
Medidas Negativo 0 Positivo 1 Neutro 2
Precision 0.853 0.812 0.872
Recall 0.617 0.759 0.963
F1 0.716 0.785 0.915
5.1 Resultado test del modelo reputacional
El resultado obtenido se puede analizar en el fichero Polaridad_implementacion1_test.

El modelo ha acertado en la predicción para el 87 por ciento de los casos, pero ha sido necesario realizar un estudio más detallado. Por ejemplo, hemos encontrado errores como los siguientes etiquetados en positivo cuando poseen una polaridad negativa:
  • RT @Analyst_G: The whole semiconductor business looks like bitcoin and tulip mania... ( [https://t.co/824IIxW6Nh] )
  • No that’s what gold is. Bitcoin has yet to prove itself in a single down cycle.
  • "Bitcoin is going to get pumped to where the whales are happy. Then the altcoins are going to get pumped.
  • The biggest pump of all will happen to #XR''
Estos casos son difíciles de etiquetar por un modelo de polaridad reputacional debido a lo términos utilizados y como están distribuidos. Términos como happy o el significado de la comparación en el primer tweet se han considerado casos difíciles de predecir.

También se ha encontrado un problema relacionado con la cantidad de tweets etiquetados con polaridad reputacional negativa. Al realizar el proceso de forma natural, es decir, utilizando una muestra de 1806 tweets extraída de una base de datos con registros almacenados durante 3 meses se ha obtenido una colección que es representación de la realidad, es decir, no es equitativa o preparada. Por lo tanto, puede ser que la cantidad de tweets etiquetados como negativos no sea suficiente como para que el modelo puede obtener unos mejores resultados. La distribución de tweets etiquetados ha sido la siguiente:
  • Negativos: 302 que es un 17 por ciento del total.
  • Neutrales: 820 que es un 45 por ciento del total.
  • Positivos: 684 que es un 38 por ciento del total.
A pesar de este detalle, al ser un etiquetado con tres posibilidades y suponer más de un 15 por ciento lo hemos considerado como valido.

Como se puede comprobar, los resultados han sido lo suficientemente positivos como para poder continuar analizando los modelos. Un punto para destacar es que debido a la distribución de tweets del dataset y su relación con los resultados. Como ya se comentó anteriormente, la cantidad de tweets con polaridad negativa es menor que los ejemplos etiquetados como neutrales o positivos y, esta característica, ha provocado que el modelo tenga más dificultades para detectar los tweets negativos que los positivos y los neutrales y se refleja en las gráficas de esta forma.

Análisis de la relación entre la precisión y la sensibilidad para cada una de las etiquetas
5.51 Análisis de la relación entre la precisión y la sensibilidad para cada una de las etiquetas

El siguiente punto ha sido analizar las métricas obtenidas para calcular la curva ROC (acrónimo de Receiver Operating Characteristic)(Representación gráfica de la sensibilidad frente a la especificidad para un sistema clasificador binario según se varía el umbral de discriminación) para cada una de las etiquetas. Toda esa información se ha representado en los gráficos [5.2] donde se puede comprobar el ratio de verdaderos positivos (VPR = Razón de Verdaderos Positivos) frente a la razón o ratio de falsos positivos (FPR = Razón de Falsos Positivos) de forma gráfica.

Curva Roc de las diferentes etiquetas utilizadas para la Polaridad Reputacional.
5.2 Curva Roc de las diferentes etiquetas utilizadas para la Polaridad Reputacional.

Cómo se puede comprobar, al analizar ambas imágenes se afirma que las curvas de los resultados obtenidos para cada una de las posibilidades es lo bastante exacta como para continuar con él proyecto.

Por último, se mostrará los resultados obtenidos a través de una matriz de confusión.

3 Matriz de confusión para el polaridad reputacional
5.3 Matriz de confusión para el polaridad reputacional

Si se desea, también esta disponible los resultados de la predicción en el fichero Polaridad_Implementacion2_test.xlsx para su consulta.

5.2. Análisis de sentimientos

En el siguiente punto se analizarán las métricas obtenidas por el modelo utilizado para la predicción del sentimiento. Para este punto se han utilizado 349 tweets como conjunto de testeo y los resultados obtenidos se pueden comprobar en el cuadro [5.2] expuesto a continuación:
Medidas Negativo 0 Positivo 1 Neutro 2
Precision 0.843 0.875 0.940
Recall 0.908 0.875 0.912
F1 0.874 0.875 0.926
5.2 Resultado test del modelo para el análisis del sentimiento
Si se desea, también está disponible los resultados de la predicción en el fichero Sentimiento_implementacion3_test para su consulta.

A diferencia del caso anterior, en el sentimiento hemos conseguido catalogar 1852 tweets con la siguiente distribución:
  • Negativos: 414 que es un 22 por ciento del total.
  • Neutrales: 738 que es un 40 por ciento del total.
  • Positivos: 700 que es un 38 por ciento del total.
Al ser un modelo pre-entrenado para el análisis de sentimiento, la primera característica a comentar es el aumento de la tasa de éxito para catalogar tweets Negativos. Según se puede consultar en el apartado [BERT] , es más fácil para el algoritmo utilizado predecir el sentimiento que no la polaridad y, esta característica, se muestra en los resultados obtenidos.

Como se puede comprobar, los resultados han sido lo suficientemente positivos como para poder continuar analizando los modelos y proseguir en el proyecto. Al igual que en la sección anterior, la distribución de tweets del dataset y su relación con los resultados también se ha visto reflejada en los resultados. Como ya se comentó en la sección [3] , la cantidad de tweets con sentimientos negativos es menor que los ejemplos etiquetados como neutrales o positivos. Esta característica puede ser que haya provocado que el modelo tenga más dificultades para detectar los tweets negativos que los positivos y los neutrales y se refleja en las gráficas de la siguiente forma:

 Análisis de la relación entre la precisión y la sensibilidad para cada una de las etiquetas
5.4 Análisis de la relación entre la precisión y la sensibilidad para cada una de las etiquetas

El siguiente punto ha sido analizar las métricas obtenidas para calcular la curva ROC (acrónimo de Receiver Operating Characteristic) para cada una de las etiquetas. Toda esa información se ha representado en los gráficos [5.5] y [5.6] donde se puede comprobar el ratio de verdaderos positivos (VPR = Razónde Verdaderos Positivos) frente a la razón o ratio de falsos positivos (FPR =Razón de Falsos Positivos) de forma gráfica. La única diferencia entre ambas figuras es el rango de la gráfica, en la segunda más aproximado que en la primera.

Curva Roc de las diferentes etiquetas utilizadas para el Análisis del Sentimiento.
5.5 Curva Roc de las diferentes etiquetas utilizadas para el Análisis del Sentimiento.

Aproximación de la curva Roc para las diferentes etiquetas utilizadas en el Análisis del Sentimiento.
5.6 Aproximación de la curva Roc para las diferentes etiquetas utilizadas en el Análisis del Sentimiento.

Por último, se mostrará los resultados obtenidos a través de una matriz de confusión.

Matriz de confusión para el análisis del sentimiento
7 Matriz de confusión para el análisis del sentimiento

5.3. Predicción de valores bursátiles

En este apartado se valorarán los resultados obtenidos a través de la predicción realizada con los datos generados de la sección [4.6] .

El primer punto ha sido generar un gráfico de correlación de todas las características que se incluyeron en el modelo de predicción para la polaridad reputacional, es decir, la relación que existe entre la cantidad de tweets positivos, negativos, neutrales, la cantidad de tweets total y el precio del Bitcoin. Esto dará una indicación más clara de las características que pueden ser más importantes que otras.

Para ello empezaremos con la figura [5.8] donde se mostrara la correlación entre las diferentes variables.

Correlación entre las variables
5.8 Correlación entre las variables

Al analizar el gráfico, lo que queda claro en la trama es que el volumen de Tweet positivos y negativos tiene una correlación negativa con el valor del Bitcoin. La figura [5.9] ofrece información sobre la serie completa de datos ordenadas en el tiempo con el objetivo de intentar observar algún patrón a simple vista, pero no ha sido posible.

Serie completa de los datos ordenados en el tiempo
5.9 Serie completa de los datos ordenados en el tiempo

En la figura se observa como en la primera parte de la tabla aparece la evolución del precio del Bitcoin en el tiempo, posteriormente la evolución respecto a la cantidad de tweets emitidos con polaridad reputacional positiva, negativa y neutral. En el 5 y 6 fila se muestra la evolución de la cantidad de tweets negativos y positivos etiquetados por VADER para acabar en la última fila con una gráfica sobre la evolución total de tweets.

A partir de este punto, y una vez visto que, aunque existe una correlación esta parece un poco oculta a simple vista, se ha decidido intentar aplicar un algoritmo de predicción explicado a la sección [4.6] . En la figura [5.10] se puede comprobar la evolución del precio del Bitcoin en el tiempo seleccionado y en la gráfica [5.11] se puede ver superpuesta la predicción contra la realidad.

Evolución del precio del Bitcoin desde abril a julio
5.10 Evolución del precio del Bitcoin desde abril a julio

5.11 Predicción del precio del Bitcoin a partir de los resultados obtenidos del modelo de polaridad reputacional contra la evolución real del precio en el mes de Junio a Juli

En el gráfico [5.11] , la línea azul representa el precio real durante el período de testeo y la línea verde representa el precio previsto. Recordamos que los datos normalizados están divididos en dos subconjuntos, el de entrenamiento con 1500 horas y el de test con 1255 horas representado en la gráfica

Respecto a la medida de error se ha proporcionado la siguiente información:
  • Prueba MSE: 5498.255
  • Prueba RMSE: 74.150
Con toda esta información, y con el objetivo de validar el estudio, se ha modificado el código del estimador para utilizar la información obtenida a partir de la librería Vader de Python en sustitución de la predicción realizada por el modelo. En este punto, las variables que utilizaremos serán la cantidad de positivos y negativos obtenidos al aplicar la librería, de forma que utilizaremos 3 elementos de entrada y no 5 como en el algoritmo anterior. Los resultados se pueden observar en la figura [5.12] y como se puede comprobar a simple vista no son tan exactos cómo con el modelo anterior.

Predicción del precio del Bitcoin a partir de la librería de VADER contra la evolución real del precio
5.12 Predicción del precio del Bitcoin a partir de la librería de VADER contra la evolución real del precio

A partir de este punto, y para finalizar el proyecto, se modificará el algoritmo para que utilizar la información recopilada por el modelo de análisis de análisis de sentimiento con Bert. Este algoritmo será muy parecido al primero, únicamente se modificará la fuente de datos para que obtenga la información de una columna diferente.

En este punto, se empezará a analizar la correlación que existe entre las variables comentadas. En la figura [5.13] se mostrara la correlación entre las diferentes variables.

 Correlación entre las variables del modelo con sentimiento
13 Correlación entre las variables del modelo con sentimiento

Al analizar el gráfico, lo que queda claro en la trama es que el volumen de Tweet neutralses y el total de tweets tiene una correlación negativa con el valor del Bitcoin más fuerte que la cantidad de positivos y negativos. La figura [5.14] ofrece información sobre la serie completa de datos ordenadas en el tiempo con el objetivo de intentar observar algún patrón a simple vista, pero no ha sido posible.

Serie completa de los datos ordenados en el tiempo
5.14 Serie completa de los datos ordenados en el tiempo

En la figura se observa como en la primera parte de la tabla aparece la evolución del precio del Bitcoin en el tiempo, posteriormente la evolución respecto a la cantidad de tweets emitidos con sentimiento positivo, negativo y neutral. En el 5 y 6 fila se muestra la evolución de la cantidad de tweets negativos y positivos etiquetados por VADER para acabar en la última fila con una gráfica sobre la evolución total de tweets.

A partir de este punto, se ha aplicado el mismo algoritmo de predicción que en el caso anterior. En la figura [5.15] se puede ver la estimación obtenida superpuesta al precio real del Bitcoin.

Predicción del precio del Bitcoin a partir de los resultados obtenidos del modelo de análisis del sentimiento contra la evolución real del precio en el mes de Junio a Julio
5.15 Predicción del precio del Bitcoin a partir de los resultados obtenidos del modelo de análisis del sentimiento contra la evolución real del precio en el mes de Junio a Julio

En el gráfico [5.15] , la línea azul representa el precio real durante el período de testeo y si la comparamos con la obtenida en la gráfica [5.11] no es tan exacto.

Respecto a la medida de error se ha proporcionado la siguiente información:
  • Prueba MSE: 28742.381
  • Prueba RMSE: 169.536
Si comparamos los resultados obtenidos en la tabla [5.4] podemos comprobar numéricamente como las predicciones obtenidas por el modelo predictivo de la polaridad reputacional son mejores que los obtenidos por el modelo predictivo del sentimiento. Cuando mayor sea el MSE o el RMSE mayor será la dispersión de los datos alrededor de su momento central (media), y un MSE o un RMSE más pequeño significara lo contrario. Realmente lo que nosotros buscamos es un MSE más pequeño, ya que se traduciría en un error más pequeño, por lo tanto, la polaridad reputacional cumple mejor esa condición.

Además, si comparamos el éxito que se ha obtenido al predecir el precio del Bitcoin, se puede confirmar que la figura [5.11] es más precisa que la figura [5.15] . Es decir, en el proyecto hemos conseguido adaptar un algoritmo para el análisis de sentimiento y proporcionarle un nuevo objetivo, detectar la polaridad reputacional de los tweets. Para ello únicamente hemos modificado los criterios de etiquetado y generando el modelo adaptado para este fin.
Medidas Sentimiento Polaridad Reputacionl
MSE 28742.381 5498.255
RMSE 169.536 74.150
5.4 Tabla comparativa de los resultados obtenidos

6.Conclusiones

Este capítulo se divide en dos secciones, la primera destinada a las conclusiones del proyecto y la segunda a trabajos futuros.

6.1. Conclusiones

Aunque el análisis de sentimiento es la herramienta de Procesamiento del Lenguaje Natural más utilizada para la gestión de reputación online, se ha demostrado en la sección [3.4] que los sentimientos de un texto que habla del Bitcoin y sus implicaciones reputacionales para esa entidad son cosas diferentes; de hecho, la mayoría de los textos con implicaciones reputacionales son polar facts, es decir, información factual sin sentimientos explícitos.

A partir de esta afirmación, el objetivo de la tesis ha sido comparar la utilidad del análisis automático de polaridad reputacional respecto al análisis de sentimientos para predecir el valor del Bitcoin, bajo la hipótesis de que el análisis reputacional debería tener una relación más directa con la cotización y por tanto ser un mejor predictor de su valor bursátil. Para nuestra experimentación hemos seleccionado el bitcoin (un valor altamente volátil y por tanto un reto desde el punto de vista de los modelos predictivos) y Twitter como fuente textual, por ser una de las redes sociales en las que se puede recolectar datos de forma más sencilla y, sobre todo, por su inmediatez, que es necesaria a la hora de establecer correlaciones temporales con un valor muy fluctuante como es la cotización del Bitcoin.

Como no existía ningún dataset adecuado para nuestro objetivo, nuestra primera contribución ha sido desarrollar BitTweet, un dataset de tweets que mencionan bitcoin anotado manualmente respecto a sentimiento y polaridad reputacional y enlazado con la cotización del Bitcoin. Para ello se ha utilizado una base de datos con 792.792 registros, es decir, una colección de casi 800.000 tweets en ingles sobre el Bitcoin y 20604 registros económicos sobre la criptomoneda comprendidos desde marzo hasta agosto del año 2019. Toda esa información se puede consultar en la sección [3]

Las anotaciones manuales de este dataset nos permiten cuantificar la diferencia entre análisis de sentimiento y polaridad reputacional (algo que no había sido hecho previamente), evaluar modelos de predicción de sentimiento y polaridad reputacional, y evaluar modelos de predicción de valor bursátil a partir de tweets.

Nuestra segunda contribución ha sido la aplicación del estado del arte en Procesamiento del Lenguaje Natural (en particular, los contextual word embeddings en su implementación en el sistema BERT) a la estimación de la polaridad reputacional de los tweets y a la predicción de valores bursátiles, comparándola con el análisis del sentimiento. Nuestros resultados confirman nuestra hipótesis, mostrando que la polaridad reputacional es mejor predictor que el análisis de sentimientos como se puede comprobar en la sección [5.3] . Estos resultados sugieren que los sistemas de análisis reputacional deberían reducir su dependencia del software de análisis de sentimientos y sustituirlo por un análisis directo de las implicaciones reputacionales de los textos.

Todos los experimentos realizados en el proyecto han sido comparados y testeados con VADER, utilizado como baseline a lo largo del proyecto.

Como hemos comentado en la sección [1.4.1] , el Bitcoin no está respaldada por ninguna entidad o nación, únicamente por los usuarios que la utilizan y le otorgan un valor en cada transacción. Estos mismos usuarios son los que publican y comparten en sus redes sociales noticias tanto positivas como negativas sobre la criptomoneda.

Por ese motivo, en el caso del Bitcoin no podemos utilizar el típico análisis basado en indicadores económicos habituales, sino deberemos adaptarnos a este nuevo escenario y utilizar indicadores como la polaridad reputacional para emitir estas predicciones.

6.2. Trabajos futuros

En esta sección se comentarán los futuros trabajos a realizar a partir de las hipótesis confirmadas en el proyecto.

La primera opción sería trabajar en el proceso de etiquetado de la polaridad reputacional y el sentimiento, interviniendo más personas o comparando el resultado con otros modelos generados por otros etiquetadores. También se podría utilizar dataset originados en otros idiomas, para ver el porcentaje de acierto en la predicción de BERT utilizando el modelo pre-entrenado en chino o castellano.

Respecto al punto de vista de la implementación, se podría aumentar el conjunto de datos utilizados como entrenamiento o, incluso, se podría comparar con otras implementaciones o otros algoritmos como OPENAI GPT-2 para validar que BERT es el algoritmo proporciona mayores resultados para esta tarea.

Respecto al Bitcoin, otro trabajo futuro podría ser investigar la correlación de la polaridad reputacional de la moneda con el valor bursátil de otra criptomoneda como Ethereum. También se podría aplicar la misma investigación a otro valor bursátil un poco menos volátil, para ver la eficacia en esa situación.

Por último, la fuente de datos utilizada ha sido Twitter, en futuros trabajos se puede utilizar otro tipo de datos como puede ser Facebook, Blogs o Webs de noticias o , incluso utilizar BitTweet desde el punto de vista de la obra [Estimating reputation polarity on microblog posts] y valorar más aquellas opiniones con más retweets o interacciones para realizar las predicciones.

Bibliografía

  • 1.Titulo
    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
    Autor
    Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina
    Publicacion
    arXiv preprint arXiv:1810.04805
    Url
  • 2.Titulo
    The Information of Spam
    Autor
    Anderson, Sawyer C
    Publicacion
    Url
  • 3.Titulo
    Twitter sentiment analysis: The good the bad and the omg!
    Autor
    Kouloumpis, Efthymios and Wilson, Theresa and Moore, Johanna
    Publicacion
    Fifth International AAAI conference on weblogs and social media
    Url
  • 4.Titulo
    Estimating reputation polarity on microblog posts
    Autor
    Peetz, Maria-Hendrike and de Rijke, Maarten and Kaptein, Rianne
    Publicacion
    Information Processing \& Management
    Url
  • 5.Titulo
    Modelling techniques for twitter contents: A step beyond classification based approaches
    Autor
    Castellanos, Angel and Cigarran, Juan and Garcia-Serrano, Ana
    Publicacion
    CLEF 2013 Conference and Labs of the Evaluation Forum
    Url
  • 6.Titulo
    Filtering and polarity detection for reputation management on tweets
    Autor
    Hangya, Viktor and Farkas, Rich{\'a}rd
    Publicacion
    CEUR WORKSHOP PROCEEDINGS
    Url
  • 7.Titulo
    Like it or not: A survey of twitter sentiment analysis methods
    Autor
    Giachanou, Anastasia and Crestani, Fabio
    Publicacion
    ACM Computing Surveys (CSUR)
    Url
  • 9.Titulo
    Sentiment analysis of twitter data
    Autor
    Agarwal, Apoorv and Xie, Boyi and Vovsha, Ilia and Rambow, Owen and Passonneau, Rebecca
    Publicacion
    Proceedings of the Workshop on Language in Social Media (LSM 2011)
    Url
  • 10.Titulo
    Thumbs up?: sentiment classification using machine learning techniques
    Autor
    Pang, Bo and Lee, Lillian and Vaithyanathan, Shivakumar
    Publicacion
    Proceedings of the ACL-02 conference on Empirical methods in natural language processing-Volume 10
    Url
  • 11.Titulo
    Word association norms, mutual information, and lexicography
    Autor
    Church, Kenneth Ward and Hanks, Patrick
    Publicacion
    Computational linguistics
    Url
  • 12.Titulo
    Topic-specific stylistic variations for opinion retrieval on twitter
    Autor
    Giachanou, Anastasia and Harvey, Morgan and Crestani, Fabio
    Publicacion
    European Conference on Information Retrieval
    Url
  • 13.Titulo
    Aggregation methods for proximity-based opinion retrieval
    Autor
    Gerani, Shima and Carman, Mark and Crestani, Fabio
    Publicacion
    ACM Transactions on Information Systems (TOIS)
    Url
  • 14.Titulo
    LSTM Model predicting Bitcoin with Tweet Volume \& Sentiment
    Autor
    Simpson, Paul
    Publicacion
    Medium
  • 15.Titulo
    Multi-label Text Classification using BERT – The Mighty Transformer
    Autor
    Trivedi, Kaushal
    Publicacion
    Medium
  • 16.Titulo
    Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing
    Autor
    Publicacion
    Google AI Blog
  • 17.Titulo
    Thumbs up or thumbs down?: semantic orientation applied to unsupervised classification of reviews
    Autor
    Turney, Peter D
    Publicacion
    Proceedings of the 40th annual meeting on association for computational linguistics
    Url
  • 18.Titulo
    Long Short-term Memory
    Autor
    Hochreiter, Sepp and Schmidhuber, Jürgen
    Publicacion
    Neural computation
    Url
  • 19.Titulo
    On the properties of neural machine translation: Encoder-decoder approaches
    Autor
    Cho, Kyunghyun and Van Merri{\"e}nboer, Bart and Bahdanau, Dzmitry and Bengio, Yoshua
    Publicacion
    arXiv preprint arXiv:1409.1259
    Url
  • 20.Titulo
    Attention is all you need
    Autor
    Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N and Kaiser, {\L}ukasz and Polosukhin, Illia
    Publicacion
    Advances in neural information processing systems
    Url
  • 21.Titulo
    Sentiment propagation for predicting reputation polarity
    Autor
    Giachanou, Anastasia and Gonzalo, Julio and Mele, Ida and Crestani, Fabio
    Publicacion
    European Conference on Information Retrieval
    Url
  • 22.Titulo
    Bitcoin Trading Agents
    Autor
    Bell, Tom
    Publicacion
    University of Southampton
    Url
  • 23.Titulo
    Algorithmic trading of cryptocurrency based on Twitter sentiment analysis
    Autor
    Colianni, Stuart and Rosales, Stephanie and Signorotti, Michael
    Publicacion
    CS229 Project
    Url
  • 24.Titulo
    Bitcoin: A peer-to-peer electronic cash system
    Autor
    Nakamoto, Satoshi and others
    Publicacion
    Url
  • 25.Titulo
    Bitcoin: planteamiento y protocolo
    Autor
    Víctor Díaz Marco
    Publicacion
    Víctor Díaz Marco
  • 26.Titulo
    Bitcoin y ether se derrumban en los últimos días ante las amenazas de China y Rusia
    Autor
    elEconomista.es
    Publicacion
    elEconomista.es
  • 27.Titulo
    A latent source model for nonparametric time series classification
    Autor
    Chen, George H and Nikolov, Stanislav and Shah, Devavrat
    Publicacion
    Advances in Neural Information Processing Systems
    Url
  • 28.Titulo
    Automated bitcoin trading via machine learning algorithms
    Autor
    Madan, Isaac and Saluja, Shaurya and Zhao, Aojia
    Publicacion
    URL: http://cs229. stanford. edu/proj2014/Isaac\% 20Madan
    Url
  • 29.Titulo
    Using VADER to handle sentiment analysis with social media text
    Autor
    Burchell, Jodie}}
    Publicacion
    Standard error Full Atom
  • 30.Titulo
    Sentiment Analysis or Opinion Mining: A Review
    Autor
    Saad, Saidah and Saberi, Bilal
    Publicacion
    International Journal on Advanced Science, Engineering and Information Technology
    Url
  • 31.Titulo
    Docs - Twitter Developers
    Autor
    Publicacion
    Twitter
  • 32.Titulo
    Exploring the determinants of Bitcoin's price: an application of Bayesian Structural Time Series
    Autor
    Poyser, Obryan
    Publicacion
    arXiv preprint arXiv:1706.01437
    Url
  • 33.Titulo
    Visualizing Polarity-based Stances of News Websites
    Autor
    Masaharu Yoshioka and
    Publicacion
    Proceedings of the Second International Workshop on Recent Trends
  • 34.Titulo
    Inferring causal impact using Bayesian structural time-series models
    Autor
    Brodersen, Kay H and Gallusser, Fabian and Koehler, Jim and Remy, Nicolas and Scott, Steven L and others
    Publicacion
    The Annals of Applied Statistics
    Url