<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Examen de Programación para el Procesamiento del Lenguaje Natural
Grado en Lingüística y Lenguas Aplicadas, UCM
9 de febrero de 2017
tl;dr
Vamos a analizar una colección de tweets en inglés publicados durante un partido de fútbol.
Contexto
El pasado domingo se celebró la 51ª edición de la Superbowl, la gran final del campeonato de fútbol americano de la NFL. El partido enfrentó a los New England Patriots (los favoritos, los de la costa este, con Tom Brady a la cabeza) contra los Atlanta Falcons (los aspirantes, los del Sur, encabezados por Matt Ryan).
Como cualquier final, el resultado a priori era impredecible y a un partido podía ganar cualquiera. Pero el del otro día fue un encuentro inolvidable porque comenzó con el equipo débil barriendo al favorito y con un Brady que no daba una. Al descanso, el marcador reflejaba un inesperado 3 - 28 y todo indicaba que los Falcons ganarían su primer anillo.
Pero, en la segunda mitad, Brady resurgió... y su equipo comenzó a anotar una y otra vez... con los Falcons ko. Los Patriots consiguieron darle la vuelta al marcador y vencieron por 34 - 28 su quinta Superbowl. Brady fue elegido MVP del encuentro y aclamado como el mejor quaterback de la historia.
Como os imaginaréis, tanto vaivén nos va a dar mucho juego a la hora de analizar un corpus de mensajes de Twitter. Durante la primera mitad, es previsible que encuentres mensajes a favor de Atlanta y burlas a New England y a sus jugadores, que no estaban muy finos. Pero al final del partido, con la remontada, las opiniones y las burlas cambiarán de sentido.
Como tanto Tom Brady como su entrenador, Bill Belichick, habían declarado públicamente sus preferencias por Donald Trump durante las elecciones a la presidencia, es muy probable que encuentres mensajes al respecto y menciones a demócratas y republicanos.
Por último, durante el half time show actuó Lady Gaga, que también levanta pasiones a su manera, así que es probable que haya menciones a otras reinas de la música y comparaciones con actuaciones pasadas.
Los datos
El fichero 2017-superbowl-tweets.tsv ubicado en el directorio /opt/textos/ contiene una muestra, ordenada cronológicamente, de mensajes escritos en inglés publicados antes, durante y después del partido. Todos los mensajes contienen el hashtag #superbowl. Hazte una copia de este fichero en el directorio notebooks de tu espacio personal.
El fichero es en realidad una tabla con cuatro columnas separadas por tabuladores, que contiene líneas (una por tweet) con el siguiente formato
Step1:  Fíjate en la estructura de la lista
Step2:  Al lío
A partir de aquí puedes hacer distintos tipos de análisis. Añade tantas celdas como necesites para intentar, por ejemplo
<ASSISTANT_TASK:>
Python Code:
tweets = []
RUTA = ''
for line in open(RUTA).readlines():
    tweets.append(line.split('\t'))
Explanation: Examen de Programación para el Procesamiento del Lenguaje Natural
Grado en Lingüística y Lenguas Aplicadas, UCM
9 de febrero de 2017
tl;dr
Vamos a analizar una colección de tweets en inglés publicados durante un partido de fútbol.
Contexto
El pasado domingo se celebró la 51ª edición de la Superbowl, la gran final del campeonato de fútbol americano de la NFL. El partido enfrentó a los New England Patriots (los favoritos, los de la costa este, con Tom Brady a la cabeza) contra los Atlanta Falcons (los aspirantes, los del Sur, encabezados por Matt Ryan).
Como cualquier final, el resultado a priori era impredecible y a un partido podía ganar cualquiera. Pero el del otro día fue un encuentro inolvidable porque comenzó con el equipo débil barriendo al favorito y con un Brady que no daba una. Al descanso, el marcador reflejaba un inesperado 3 - 28 y todo indicaba que los Falcons ganarían su primer anillo.
Pero, en la segunda mitad, Brady resurgió... y su equipo comenzó a anotar una y otra vez... con los Falcons ko. Los Patriots consiguieron darle la vuelta al marcador y vencieron por 34 - 28 su quinta Superbowl. Brady fue elegido MVP del encuentro y aclamado como el mejor quaterback de la historia.
Como os imaginaréis, tanto vaivén nos va a dar mucho juego a la hora de analizar un corpus de mensajes de Twitter. Durante la primera mitad, es previsible que encuentres mensajes a favor de Atlanta y burlas a New England y a sus jugadores, que no estaban muy finos. Pero al final del partido, con la remontada, las opiniones y las burlas cambiarán de sentido.
Como tanto Tom Brady como su entrenador, Bill Belichick, habían declarado públicamente sus preferencias por Donald Trump durante las elecciones a la presidencia, es muy probable que encuentres mensajes al respecto y menciones a demócratas y republicanos.
Por último, durante el half time show actuó Lady Gaga, que también levanta pasiones a su manera, así que es probable que haya menciones a otras reinas de la música y comparaciones con actuaciones pasadas.
Los datos
El fichero 2017-superbowl-tweets.tsv ubicado en el directorio /opt/textos/ contiene una muestra, ordenada cronológicamente, de mensajes escritos en inglés publicados antes, durante y después del partido. Todos los mensajes contienen el hashtag #superbowl. Hazte una copia de este fichero en el directorio notebooks de tu espacio personal.
El fichero es en realidad una tabla con cuatro columnas separadas por tabuladores, que contiene líneas (una por tweet) con el siguiente formato:
id_del_tweet fecha_y_hora_de_publicación autor_del_tweet texto_del_mensaje
La siguiente celda te permite abrir el fichero para lectura y cargar los mensajes en la lista tweets. Modifica el código para que la ruta apunte a la copia local de tu fichero.
End of explanation
ultimo_tweet = tweets[-1]
print('id =>', ultimo_tweet[0])
print('fecha =>', ultimo_tweet[1])
print('autor =>', ultimo_tweet[2])
print('texto =>', ultimo_tweet[3])
Explanation: Fíjate en la estructura de la lista: se trata de una lista de tuplas con cuatro elementos. Puedes comprobar si el fichero se ha cargado como debe en la siguiente celda:
End of explanation
# escribe tu código a continuación
Explanation: Al lío
A partir de aquí puedes hacer distintos tipos de análisis. Añade tantas celdas como necesites para intentar, por ejemplo:
calcular distintas estadísticas de la colección: número de mensajes, longitud de los mensajes, presencia de hashtags y emojis, etc.
número de menciones a usuarios, frecuencia de aparición de menciones, frecuencia de autores
calcular estadísticas sobre usuarios: menciones, mensajes por usuario, etc.
calcular estadísticas sobre las hashtags
calcular estadísticas sobre las URLs presentes en los mensajes
calcular estadísticas sobre los emojis y emoticonos de los mensajes
extraer automáticamente las entidades nombradas que aparecen en los mensajes y su frecuencia
procesar los mensajes para extraer y analizar opiniones: calcular la subjetividad y la polaridad de los mensajes
extraer las entidades nombradas que levantan más pasiones, quiénes son los más queridos y los más odiados, atendiendo a la polaridad de los mensajes
comprobar si la polaridad de alguna entidad varía radicalmente a medida que avanza el partido
cualquier otra cosa que se te ocurra :-P
Recuerda que tienes a tu disposición las librerías de Procesamiento del Lenguaje Natural que hemos usado durante el curso y que puedes utilizar apuntes de clase y cualquier otro material que encuentres en internet. Si necesitas alguna librería extra, avísame y la instalamos en seguida. También puedes utilizar herramientas de la línea de comandos (accediendo desde este cuaderno o conectándote por SSH).
Es tu turno. ¡Mucha suerte! ;-)
End of explanation
<END_TASK>