Una guía de codificación para el análisis de sentimientos de las revisiones de los clientes utilizando el modelo AI de código abierto de IBM Granite-3b y los transformadores de la cara abrazando

En este tutorial, analizaremos cómo realizar fácilmente el análisis de sentimientos en los datos de texto utilizando el modelo de granito 3B de código abierto de IBM integrado con los transformadores faciales de abrazo. El análisis de sentimientos, una técnica de procesamiento del lenguaje natural ampliamente utilizado (PNL), ayuda a identificar rápidamente las emociones expresadas en el texto. Lo hace invaluable para las empresas con el objetivo de comprender los comentarios de los clientes y mejorar sus productos y servicios. Ahora, acudiémonos con la instalación de las bibliotecas necesarias, cargando el modelo de granito IBM, clasificando los sentimientos y visualizando sus resultados, todos ejecutables sin esfuerzo en Google Colab.

!pip install transformers torch accelerate

Primero, instalaremos las bibliotecas esenciales, transformadores, antorcha y aceleraremos, requeridos para cargar y ejecutar potentes modelos de PNL sin problemas. Transformers proporciona modelos PNL previos a la construcción, la antorcha sirve como backend para aprendizaje profundo Tareas y acelerar aseguran la utilización eficiente de los recursos en las GPU.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
import pandas as pd
import matplotlib.pyplot as plt

Luego, importaremos las bibliotecas de Python requeridas. Utilizaremos la antorcha para operaciones tensoras eficientes, transformadores para cargar modelos de PNL previamente capacitados de la cara abrazada, los pandas para administrar y procesar datos en formatos estructurados y matplotlib para interpretar visualmente los resultados de su análisis de manera clara e intuitiva.

model_id = "ibm-granite/granite-3.0-3b-a800m-instruct"


tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map='auto',
    torch_dtype=torch.bfloat16,
    trust_remote_code=True
)


generator = pipeline("text-generation", model=model, tokenizer=tokenizer)

Aquí, cargaremos el modelo de seguimiento de instrucciones 3B de origen abierto de IBM, específicamente IBM-Granite/Granite-3.0-3b-A800m-Instructo, utilizando AutoTokenizer de Hugging Face y AutomodelforcausAllm. Este modelo compacto y ajustado por instrucciones está optimizado para manejar tareas como la clasificación de sentimientos directamente dentro de Colab, incluso bajo recursos computacionales limitados.

def classify_sentiment(review):
    prompt = f"""Classify the sentiment of the following review as Positive, Negative, or Neutral.


Review: "{review}"


Sentiment:"""


    response = generator(
        prompt,
        max_new_tokens=5,
        do_sample=False,
        pad_token_id=tokenizer.eos_token_id
    )


    sentiment = response[0]['generated_text'].split("Sentiment:")[-1].split("n")[0].strip()
    return sentiment

Ahora definiremos la función central Classify_Sentiment. Esta función aprovecha el modelo IBM Granite 3B a través de un indicador basado en instrucciones para clasificar el sentimiento de cualquier revisión dada en positivo, negativo o neutral. La función formatea la revisión de entrada, invoca el modelo con instrucciones precisas y extrae el sentimiento resultante del texto generado.

import pandas as pd


reviews = [
    "I absolutely loved the service! Definitely coming back.",
    "The item arrived damaged, very disappointed.",
    "Average product. Nothing too exciting.",
    "Superb experience, exceeded all expectations!",
    "Not worth the money, poor quality."
]


reviews_df = pd.DataFrame(reviews, columns=['review'])

A continuación, crearemos una simple revisión de DataFrame_DF usando pandas, que contiene una colección de revisiones de ejemplo. Estas revisiones de muestra sirven como datos de entrada para la clasificación de sentimientos, lo que nos permite observar cuán efectivamente el modelo de granito IBM puede determinar los sentimientos del cliente en un escenario práctico.

reviews_df['sentiment'] = reviews_df['review'].apply(classify_sentiment)
print(reviews_df)

Después de definir las revisiones, aplicaremos la función Classify_Sentiment a cada revisión en DataFrame. Esto generará una nueva columna, el sentimiento, donde el modelo de granito IBM clasifica cada revisión como positiva, negativa o neutral. Al imprimir las revisiones actualizadas_DF, podemos ver el texto original y su clasificación de sentimientos correspondiente.

import matplotlib.pyplot as plt


sentiment_counts = reviews_df['sentiment'].value_counts()


plt.figure(figsize=(8, 6))
sentiment_counts.plot.pie(autopct="%1.1f%%", explode=[0.05]*len(sentiment_counts), colors=['#66bb6a', '#ff7043', '#42a5f5'])
plt.ylabel('')
plt.title('Sentiment Distribution of Reviews')
plt.show()

Por último, visualizaremos la distribución de sentimientos en un gráfico circular. Este paso proporciona una visión general clara e intuitiva de cómo se clasifican las revisiones, lo que facilita la interpretación del rendimiento general del modelo. Matplotlib nos permite ver rápidamente la proporción de sentimientos positivos, negativos y neutros, lo que lleva el círculo de tuberías de análisis de su sentimiento.

Trama

En conclusión, hemos implementado con éxito una poderosa tubería de análisis de sentimientos utilizando el modelo de código abierto Granite 3B de IBM alojado en la cara abrazada. Aprendió a aprovechar los modelos previamente capacitados para clasificar rápidamente el texto en sentimientos positivos, negativos o neutrales, visualizar las ideas de manera efectiva e interpretar sus hallazgos. Este enfoque fundamental le permite adaptar fácilmente estas habilidades para analizar conjuntos de datos o explorar otras tareas de PNL. Los modelos de granito de IBM combinados con los transformadores faciales para abrazos ofrecen una forma eficiente de realizar tareas de PNL avanzadas.


Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro Subreddit de 80k+ ml.

🚨 Lectura de lectura recomendada Liberaciones de investigación de IA: un sistema avanzado que integra el sistema de IA del agente y los estándares de cumplimiento de datos para abordar las preocupaciones legales en los conjuntos de datos de IA


Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.