Estás leyendo la publicación: Copa Mundial de la FIFA 2022: hacia la IA
Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.
Una guía práctica para el análisis de sentimientos con Snscrape y Hugging Face
El fútbol es uno de los deportes más queridos a nivel mundial. La Copa Mundial de la FIFA, un evento deportivo mundial de fútbol que se lleva a cabo cada cuatro años, se encuentra en Qatar este año. La decisión de realizar la Copa del Mundo en Qatar ha generado varias controversias, incluidas denuncias de corrupción y violaciones de los derechos humanos.
Entonces, ¿qué piensan los amantes del fútbol sobre la Copa Mundial de la FIFA 2022? Para averiguarlo, realizaré un análisis de sentimiento de Twitter usando el hashtag #WorldCup2022 en Twitter en esta publicación de blog. Esto es de lo que voy a hablar:
- ¿Qué es el análisis de sentimiento?
- ¿Qué es el raspado de redes sociales?
- ¿Cómo raspar con Snscrape?
- ¿Cómo realizar el análisis de sentimiento de Twitter?
¡Vamos a sumergirnos!
¿Qué es el análisis de sentimiento?
es un tipo de PNL que tiene como objetivo etiquetar los datos de acuerdo con sus sentimientos, como positivo, negativo y neutral. Este análisis ayuda a las empresas a comprender cómo se sienten sus clientes acerca de sus productos o servicios o identificar tendencias en la opinión pública sobre un tema en particular. Por ejemplo, una empresa como Audi puede saber si a la gente le gustan los colores de su nuevo automóvil al examinar las acciones de Twitter como la imagen a continuación.
¿Qué es el raspado de redes sociales?
Con la tecnología en desarrollo, ahora es mucho más fácil expresar todo tipo de emociones, sentimientos y pensamientos a través de los sitios de redes sociales. es el proceso de extracción de datos de las plataformas de redes sociales. Una de las plataformas de redes sociales más utilizadas es Twitter. Cuando miramos las estadísticasTwitter tiene alrededor de 450 millones de usuarios activos mensuales a partir de 2022 y se publican 6000 tweets cada segundo.
Twitter es una de las fuentes de datos más importantes para los científicos de datos. Los científicos de datos pueden extraer datos de Twitter con herramientas de web scraping. Hay varias bibliotecas para hacer esto, como Tweepy y Snscrape. Echemos un vistazo a los pros y los contras de estas bibliotecas.
llorona
llorona es una biblioteca de Python fácil de usar que le permite acceder a la API de Twitter. Puede conectar la API de Twitter con esta biblioteca y extraer los tweets que desee. Sin embargo, esta biblioteca tiene algunos inconvenientes. La versión estándar de la API de Twitter solo te permite extraer 3200 tweets en una línea de tiempo. Hay límites en la cantidad de tweets que puede recopilar de la cuenta de un usuario. Puede encontrar más información sobre estos límites aquí.
Snscrape
Otra biblioteca que puede utilizar para recopilar datos de Twitter es Snscrape. Snscrape es un extractor de datos para servicios de redes sociales que lo ayuda a extraer datos como perfiles de usuario, contenido de tweets, hashtags o búsquedas. Tampoco requiere el uso de una API de Twitter. Con Snscrape, también puede extraer datos de otros servicios como Facebook, Instagram, Reddit y Telegram.
Descargo de responsabilidad: Este artículo es solo para fines educativos. No alentamos a nadie a raspar sitios web, especialmente aquellas propiedades web que pueden tener términos y condiciones contra tales acciones.
¿Cómo raspar con Snscrape?
En esta sección, veremos una breve descripción general de Snscrape para orientarnos en su estructura/filosofía antes de sumergirnos en el análisis de sentimiento de Twitter. Primero, vamos a instalar esta biblioteca con el siguiente comando:
!pip instalar snscrape
A continuación, recuperemos 1000 tweets enviados el primer día del torneo desde #WorldCup2022 y luego convirtamos estos datos en Pandas DataFrame. Tenga en cuenta que puede utilizar seguir este análisis.
# Importación de bibliotecas necesarias
importar snscrape.modules.twitter como sntwitter
importar pandas como pd
# Crear una lista para agregar todos los atributos de tweet (datos)
tuits = []
# Creando consulta
consulta = ‘#WorldCup2022 lang:en desde:2022-11-20 hasta:2022-11-21’
q = sntwitter.TwitterSearchScraper(consulta)
# Uso de TwitterSearchScraper para raspar datos y agregar tweets a la lista
para i, twittea en enumerate(q.get_items()):
si i>1000:
romper
tweets.append([tweet.user.username, tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
# Conversión de datos a marco de datos
tweets_df = pd.DataFrame(tweets, columnas=[“User”, “Date Created”, “Number of Likes”, “Source of Tweet”, “Tweet”])
tweets_df.head()
¡Voila! Extrajimos fácilmente tweets de Twitter con Snscrape usando solo unos pocos parámetros. Los objetos de tweet de Snscrape tienen muchos parámetros. Puede ver estos parámetros en la siguiente imagen.
Es hora de realizar un análisis de sentimiento de Twitter para saber qué piensan los amantes del fútbol sobre la Copa Mundial de la FIFA 2022.
Análisis de sentimiento de Twitter con cara de abrazo
Hasta ahora, hemos cubierto qué son el análisis de sentimientos y el raspado de redes sociales y luego cómo recopilar tweets de Twitter. En esta sección, lo guiaremos a través de cómo realizar un análisis de sentimiento de Twitter. Antes de mostrarte este análisis, déjame explicarte algunos conceptos de PNL que necesitas saber.
Transferencia de aprendizaje
Para llevar a cabo el análisis de sentimiento, puede construir un modelo desde cero. Al analizar big data, este enfoque requiere mucho tiempo y dinero. Cuando se trabaja con big data, recomiendo usar la técnica de transferencia de aprendizaje. es un enfoque de aprendizaje automático en el que un modelo entrenado en una tarea se reutiliza en otra tarea relacionada.
Aunque el aprendizaje por transferencia se ha convertido en el enfoque estándar en la visión por computadora, este método no fue adecuado para la PNL durante muchos años, ya que requería grandes cantidades de datos etiquetados. Después de 2017, con el desarrollo de modelos como BERT y GPT3 basados en transformadores, la técnica de aprendizaje por transferencia también se ha utilizado para la PNL. Sin embargo, han surgido algunos problemas en el uso de estos modelos, por ejemplo:
- Usando diferentes marcos, tales como PyTorch o TensorFlow, al codificar la arquitectura del modelo.
- Cargando los modelos preentrenados desde un servidor.
- Puesta a punto de los modelos preentrenados.
Para abordar estos problemas sin dolor, se desarrolló el marco Hugging Face.
¿Qué es abrazar la cara?
es una plataforma de ciencia de datos y una gran comunidad de código abierto que proporciona herramientas que ayudan a los usuarios a crear, entrenar e implementar modelos de aprendizaje automático. Ofrece una interfaz estandarizada a una amplia gama de modelos de transformadores para adaptarlos a nuevas tareas de uso. También puede usar este marco para trabajar con tres bibliotecas principales de aprendizaje profundo (PyTorchTensorFlow y JAX).
¿Qué es Hugging Face Hub?
es una plataforma de código abierto donde las personas pueden colaborar fácilmente y crear modelos de aprendizaje automático. Por ejemplo, puede encontrar más de 762 disponibles públicamente modelos de análisis de sentimiento en este centro.
El modelo que usaremos para este análisis es el cardiffnl/twitter-roberta-base-sentiment-latest modelo, que es una base roBERTa. Este modelo se entrenó en ~124 millones de tweets desde enero de 2018 hasta diciembre de 2021. La forma más fácil de cargar este modelo es usar una canalización. Pipelines carga automáticamente el modelo que desea y su clase de preprocesamiento. Carguemos nuestro modelo con el método de canalización:
# Instalación de la biblioteca de transformadores
# !pip instalar transformadores
de oleoducto de importación de transformadores
sentiment_analysis = pipeline(model=”cardiffnlp/twitter-roberta-base-sentiment-latest”)
¡Impresionante! Nuestro modelo está listo para hacer predicciones. Si quieres, también puedes usar diferentes modelos para este análisis.
Ejecución de análisis de sentimiento de Twitter
Reunamos lo que hemos hablado hasta ahora y ejecutemos un análisis de sentimiento de Twitter. Para hacer esto, primero raspemos los tweets del primer día del torneo en el hashtag #WorldCup2022 y luego busquemos el sentimiento en cada tweet con el bucle for a.
# Crear una lista para agregar todos los atributos de tweet (datos)
tweet_sa = []
# Creando consulta
consulta = ‘#WorldCup2022 lang:en desde:2022-11-20 hasta:2022-11-21’
q = sntwitter.TwitterSearchScraper(consulta)
# Texto de preprocesamiento (marcadores de posición de nombre de usuario y enlace)
preproceso def (texto):
nuevo_texto = []
para t en texto.split(” “):
t = ‘@usuario’ si t.comienza con(‘@’) y len
Ahora tenemos los sentimientos de los tweets. Para saber qué piensan los amantes del fútbol sobre la Copa Mundial de la FIFA 2022, primero conviertamos los resultados en un DataFrame y luego echemos un vistazo a las primeras cinco filas de este DataFrame.
importar pandas como pd
pd.set_option(‘max_colwidth’, Ninguno)
# Conversión de datos a marco de datos
df = pd.DataFrame(tweet_sa)
df.cabeza()
Como puede ver, tenemos un conjunto de datos de Twitter con información como fecha, me gusta, fuente de tweets, tweets y sentimientos. Puede encontrar este conjunto de datos aquí. Avancemos y visualicemos todas estas etiquetas con un gráfico circular.
Visualización de datos
Después de predecir las etiquetas, es una buena idea ver la distribución de estas etiquetas. Primero, agrupemos los datos de acuerdo con la columna de sentimiento y echemos un vistazo a los sentimientos:
importar matplotlib.pyplot como plt
# Contemos el número de tweets por sentimientos
sentiment_counts = df.groupby([‘Sentiment’]).tamaño()
imprimir(cuentas_de_sentimientos)
# Producción:
Sentimiento
negativo 5784
neutro 8251
positivo 8489
tipo: int64
A continuación, dibujemos un gráfico circular de acuerdo con estos grupos.
# Dibujar un gráfico circular
fig = plt.figure(figsize=(6,6), dpi=100)
hacha = plt.subplot(111)
sentiment_counts.plot.pie(ax=ax, autopct=’%1.1f%%’, startangle=270, fontsize=12, label=””)
Como puede ver, el porcentaje de tweets positivos y neutrales está cerca. El porcentaje de tweets negativos es el más bajo. Resultó que los fanáticos del fútbol piensan más positivamente sobre la Copa Mundial de la FIFA 2022.
Generación de nube de palabras
Ahora vamos a crear una nube de palabras y ver qué palabras se destacan para cada sentimiento con el nubemundial biblioteca. Primero, veamos la nube de palabras de tweets positivos.
de wordcloud importar WordCloud
de wordcloud importar STOPWORDS
# Nube de palabras con tweets positivos
tweets_positivos = df[‘Tweet’][df[“Sentiment”] == ‘positivo’]
detener_palabras = [“https”, “co”, “RT”, “WorldCup2022”] + lista(Palabras vacías)
nube_de_palabras_positivas = Nube de Palabras(ancho=800, altura=400, color_de_fondo=”negro”, palabras vacías = palabras vacías).generate(str(tweets_positivos))
plt.figure(figsize=[20,10])
plt.title(“Tweets positivos – Nube de palabras”)
plt.imshow(positiva_palabranube, interpolación=”bilineal”)
plt.eje(“apagado”)
plt.mostrar()
Algunas de las palabras asociadas con los tweets positivos incluyen FIFA, Canadá, Black, Brasil, inicio, etc. A continuación, echemos un vistazo a la nube de palabras de los tweets negativos.
# Nube de palabras con tweets negativos
tweets_negativos = df[‘tweet’][df[“sentiment”] == ‘negativo’]
detener_palabras = [“https”, “co”, “RT”, “WorldCup2022”] + lista(Palabras vacías)
nube_de_palabras_negativas = Nube de Palabras(ancho=800, altura=400, color_de_fondo=”negro”, palabras vacías = palabras vacías).generate(str(tweets_negativos))
plt.figure(figsize=[20,10])
plt.title(“Tweets negativos – Nube de palabras”)
plt.imshow(negative_wordcloud, interpolación=”bilineal”)
plt.eje(“apagado”)
plt.mostrar()
Algunas de las palabras asociadas a los tuits negativos son derechos, Qatar, BBC, apertura, humano, ceremonia, etc.
Pensamientos finales
Las redes sociales son plataformas donde las personas comparten libremente sus pensamientos. Twitter es una de las plataformas de redes sociales más utilizadas. Los datos de esta plataforma son oro para las empresas. Las empresas pueden tomar decisiones más precisas utilizando estos datos.
En esta publicación de blog, primero le mostré cómo extraer datos de Twitter con Snscrape. A continuación, expliqué cómo realizar un análisis de sentimientos con un modelo previamente entrenado en Hugging Face. Exploramos los pensamientos de los fanáticos del fútbol sobre la Copa Mundial de la FIFA 2022. El modelo que construimos predijo etiquetas más positivas. Resultó que los fanáticos del fútbol piensan más positivamente sobre la Copa Mundial de la FIFA 2022.
Eso es todo. Gracias por leer. Espero que lo disfruten. Puedes encontrar el cuaderno que usé en este blog. aquí. No olvides seguirnos en YouTube | Gorjeo | Instagram | Tik Tok ?
Recursos
Análisis de sentimiento de Twitter: Copa Mundial de la FIFA 2022 se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.
Publicado a través de Hacia la IA