{"id":34172,"date":"2025-10-13T11:35:05","date_gmt":"2025-10-13T09:35:05","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=34172"},"modified":"2025-10-13T11:35:58","modified_gmt":"2025-10-13T09:35:58","slug":"nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/","title":{"rendered":"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers"},"content":{"rendered":"\n<p>Si ya entendiste la<a href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/primeros-pasos-en-pln-y-el-analisis-de-sentimientos\/\" target=\"_blank\" rel=\"noreferrer noopener\"> base del An\u00e1lisis de Sentimientos (AS) <\/a>con t\u00e9cnicas de <strong>Bag-of-Words<\/strong> o <strong>TF-IDF<\/strong>, es hora de subir de nivel. El PLN moderno no se hace con m\u00e9todos estad\u00edsticos simples; se hace con la arquitectura que lo cambi\u00f3 todo: los <strong><a href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/vision-transformers-y-segment-anything-de-las-convoluciones-a-la-atencion\/\" target=\"_blank\" rel=\"noreferrer noopener\">Transformers<\/a><\/strong>.<\/p>\n\n\n\n<p>La <strong>Iron\u00eda<\/strong>, el <strong>contexto<\/strong> y las <strong>negaciones sutiles<\/strong> son el cemento en los m\u00e9todos tradicionales. La soluci\u00f3n es sumergirse en el ecosistema de <strong>Hugging Face<\/strong>, la plataforma que ha democratizado el <em>Deep Learning<\/em> en lenguaje.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"h-por-que-transformers-y-hugging-nbsp-face\"><strong>\u00bfPor Qu\u00e9 Transformers y Hugging&nbsp;Face?<\/strong><\/h2>\n\n\n\n<p>Antes del <em>Transformer<\/em> (introducido en 2017 por Google con el art\u00edculo \u201cAttention Is All You Need\u201d), los modelos de PLN se basaban en Redes Neuronales Recurrentes (<a href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/deep-learning-y-redes-neuronales-una-guia-completa\/\">RNNs<\/a>) o LSTMs. Estos modelos ten\u00edan problemas para manejar dependencias de largo alcance (recordar la primera parte de una frase muy larga) y eran lentos de entrenar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-la-revolucion-del-transformer\"><strong>1. La Revoluci\u00f3n del Transformer<\/strong><\/h3>\n\n\n\n<p>El <strong>Transformer<\/strong> introdujo el mecanismo de <strong>Auto-Atenci\u00f3n (<em>Self-Attention<\/em>)<\/strong>. En esencia, permite que el modelo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pese la importancia de otras palabras en la frase al procesar una palabra espec\u00edfica.<\/li>\n\n\n\n<li>Procese todas las palabras de forma paralela, haciendo el entrenamiento incre\u00edblemente m\u00e1s r\u00e1pido.<\/li>\n<\/ul>\n\n\n\n<p>Esto dio origen a modelos como <strong>BERT, RoBERTa, y DistilBERT<\/strong>, que entienden el contexto en <strong>ambas direcciones<\/strong> (izquierda y derecha), permitiendo una comprensi\u00f3n sem\u00e1ntica del lenguaje humano sin precedentes.<\/p>\n\n\n\n<p>Los modelos de <strong>transformers<\/strong> han revolucionado el NLP porque capturan el <strong>contexto completo<\/strong> de una frase, no solo palabras aisladas. Esto significa que entienden matices como iron\u00eda, negaciones o expresiones m\u00e1s complejas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-el-ecosistema-hugging-face-nbsp-hf\"><strong>2. El Ecosistema Hugging Face&nbsp;(HF)<\/strong><\/h3>\n\n\n\n<p>Hugging Face se ha convertido en el <strong>GitHub del Machine Learning<\/strong>. Es una biblioteca <em>open source<\/em> que proporciona miles de <strong>modelos pre-entrenados<\/strong> (<em>Transformers<\/em>) listos para usar, entrenar y compartir.<\/p>\n\n\n\n<p>Su principal ventaja es el <strong>aprendizaje por transferencia (<em>Transfer Learning<\/em>)<\/strong>: en lugar de entrenar un modelo desde cero (lo cual es car\u00edsimo y requiere terabytes de datos), tomas un modelo ya entrenado en un corpus masivo (como toda la Wikipedia) y lo <strong>ajustas (<em>fine-tuning<\/em>)<\/strong> a tu tarea espec\u00edfica de An\u00e1lisis de Sentimientos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"h-tu-ruta-avanzada-de-as-con-hugging-nbsp-face\"><strong>Tu Ruta Avanzada de AS con Hugging&nbsp;Face<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-paso-1-seleccionar-el-modelo-base-el-pre-entrenamiento\"><strong>Paso 1: Seleccionar el Modelo Base (El Pre-entrenamiento)<\/strong><\/h3>\n\n\n\n<p>La elecci\u00f3n del modelo base es crucial. Para tareas de clasificaci\u00f3n de texto como el An\u00e1lisis de Sentimientos, los siguientes modelos son excelentes puntos de partida:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BERT (Bidirectional Encoder Representations from Transformers):<\/strong> El pionero. Bueno, pero a veces lento.<\/li>\n\n\n\n<li><strong>RoBERTa:<\/strong> Una versi\u00f3n optimizada de BERT. Generalmente, ofrece un rendimiento superior con la misma arquitectura.<\/li>\n\n\n\n<li><strong>DistilBERT:<\/strong> Una versi\u00f3n \u201cdestilada\u201d (m\u00e1s peque\u00f1a) de BERT. Es m\u00e1s r\u00e1pido y liviano, ideal para despliegues en producci\u00f3n o entornos con recursos limitados, con una p\u00e9rdida m\u00ednima de precisi\u00f3n.<\/li>\n\n\n\n<li><strong>Modelos Multiling\u00fces:<\/strong> Si trabajas con espa\u00f1ol, modelos como <strong>XLM-RoBERTa<\/strong> o <strong>BETO<\/strong> (BERT en espa\u00f1ol) son esenciales, ya que entienden las particularidades de nuestro idioma. Ejemplo en c\u00f3digo:<strong><em> Instalaci\u00f3n de librer\u00edas necesarias<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">pip install transformers torch<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-paso-2-fine-tuning-ajuste-fino-para-sentimientos\"><strong>Paso 2: Fine-Tuning (Ajuste Fino) para Sentimientos<\/strong><\/h3>\n\n\n\n<p>Aqu\u00ed es donde ocurre la magia y pasamos del clasificador gen\u00e9rico de lenguaje a un experto en emociones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Carga del Modelo Pre-entrenado:<\/strong> Utiliza la clase <code>AutoModelForSequenceClassification<\/code> de la biblioteca <code><strong>transformers<\/strong><\/code> de Hugging Face. Esta clase ya tiene una capa de clasificaci\u00f3n lineal a\u00f1adida sobre el cuerpo del Transformer, lista para tu tarea.<\/li>\n\n\n\n<li><strong>Preparaci\u00f3n del Tokenizador:<\/strong> Cada modelo <em>Transformer<\/em> tiene su propio <code>Tokenizer<\/code> asociado (ej. <code>BertTokenizer<\/code>). Este convierte tus frases de texto a los IDs de <em>tokens<\/em> que el modelo entiende, adem\u00e1s de a\u00f1adir <em>tokens<\/em> especiales como <code>[CLS]<\/code> (clasificaci\u00f3n) y <code>[SEP]<\/code> (separador).<\/li>\n\n\n\n<li><strong>Entrenamiento:<\/strong> Alimenta al modelo con tu conjunto de datos etiquetado de sentimientos (positivo, negativo, neutral). El modelo no aprende el idioma desde cero; <strong>solo ajusta los pesos<\/strong> de sus \u00faltimas capas para optimizar la clasificaci\u00f3n de sentimientos.<\/li>\n\n\n\n<li><strong>Optimizaci\u00f3n:<\/strong> Utiliza el <code>Trainer<\/code> API de Hugging Face. Simplifica enormemente el proceso, permitiendo definir f\u00e1cilmente par\u00e1metros clave como la tasa de aprendizaje (<em>learning rate<\/em>) y la t\u00e9cnica de optimizaci\u00f3n (como <strong>AdamW<\/strong>).<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"alt=&quot;Fine-tuning de modelo BETO para clasificaci\u00f3n emocional&quot;\" href=\"https:\/\/cdn.you.com\/youagent-images\/gpt-image-1\/53d761f9-6ebb-4c4b-90a1-430026ad6441.png\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*baWw3NUjxy9fNREqLBdaGA.png\" alt=\"\"\/><\/a><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-paso-3-puesta-en-produccion-con-pipeline\"><strong>Paso 3: Puesta en Producci\u00f3n con <\/strong><code><strong>Pipeline<\/strong><\/code><\/h3>\n\n\n\n<p>Una de las caracter\u00edsticas m\u00e1s brillantes de Hugging Face es la clase <code><strong>pipeline<\/strong><\/code>. Permite realizar tareas de PLN con una sola l\u00ednea de c\u00f3digo, sin preocuparse por el preprocesamiento o la carga del modelo. <strong>Ejemplo: <\/strong>La forma m\u00e1s sencilla de empezar es con el <strong>pipeline<\/strong> de Hugging Face:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">from transformers import pipeline\n\n<span class=\"hljs-comment\"># Cargamos un pipeline de an\u00e1lisis de sentimientos<\/span>\nanalizador = pipeline(<span class=\"hljs-string\">\"sentiment-analysis\"<\/span>)\n\n<span class=\"hljs-comment\"># Ejemplos de prueba<\/span>\nfrases = &#91;\n    <span class=\"hljs-string\">\"Me encanta este curso, aprend\u00ed much\u00edsimo.\"<\/span>,\n    <span class=\"hljs-string\">\"El servicio fue p\u00e9simo, no vuelvo jam\u00e1s.\"<\/span>,\n    <span class=\"hljs-string\">\"Est\u00e1 bien, pero esperaba algo mejor.\"<\/span>\n]\n\n<span class=\"hljs-keyword\">for<\/span> frase in frases:\n    resultado = analizador(frase)&#91;<span class=\"hljs-number\">0<\/span>]\n    <span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Texto: {frase}\"<\/span>)\n    <span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Etiqueta: {resultado&#91;'label']} | Confianza: {resultado&#91;'score']:.2f}\\n\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong><em>Explicaci\u00f3n:<\/em><\/strong> <code>pipeline(\"sentiment-analysis\")<\/code> carga un modelo preentrenado (por defecto, DistilBERT fine-tuned en rese\u00f1as), luego, devuelve una <strong>etiqueta<\/strong> (<code>POSITIVE<\/code> o <code>NEGATIVE<\/code>) y un <strong>score de confianza<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-ejemplo-avanzado-usando-un-modelo-especifico\"><strong><em>Ejemplo avanzado: usando un modelo espec\u00edfico<\/em><\/strong><\/h4>\n\n\n\n<p>Podemos elegir un modelo m\u00e1s robusto, como <strong>BERTimbau<\/strong> (para portugu\u00e9s) o <strong>BETO<\/strong> (para espa\u00f1ol). Aqu\u00ed un ejemplo con un modelo en espa\u00f1ol:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">from transformers import AutoTokenizer, AutoModelForSequenceClassification\nfrom transformers import pipeline\n\n<span class=\"hljs-comment\"># Modelo entrenado en espa\u00f1ol<\/span>\nmodelo = <span class=\"hljs-string\">\"nlptown\/bert-base-multilingual-uncased-sentiment\"<\/span>\n\ntokenizer = AutoTokenizer.from_pretrained(modelo)\nmodelo_sentimientos = AutoModelForSequenceClassification.from_pretrained(modelo)\n\nanalizador = pipeline(<span class=\"hljs-string\">\"sentiment-analysis\"<\/span>, model=modelo_sentimientos, tokenizer=tokenizer)\n\n<span class=\"hljs-comment\"># Ejemplo en espa\u00f1ol<\/span>\ntexto = <span class=\"hljs-string\">\"La pel\u00edcula fue incre\u00edble, me emocion\u00e9 mucho.\"<\/span>\nresultado = analizador(texto)&#91;<span class=\"hljs-number\">0<\/span>]\n\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Texto: {texto}\"<\/span>)\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Etiqueta: {resultado&#91;'label']} | Confianza: {resultado&#91;'score']:.2f}\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong><em>Explicaci\u00f3n:<\/em><\/strong> Aqu\u00ed usamos un modelo multiling\u00fce entrenado en rese\u00f1as con 5 niveles de sentimiento (1 a 5 estrellas). Esto permite un an\u00e1lisis m\u00e1s fino que solo positivo\/negativo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-como-escalar-este-analisis\"><strong>\u00bfC\u00f3mo escalar este an\u00e1lisis?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Batch processing<\/strong>: analizar miles de comentarios en bloque.<\/li>\n\n\n\n<li><strong>Visualizaci\u00f3n<\/strong>: graficar la distribuci\u00f3n de sentimientos con <code>matplotlib<\/code> o <code>seaborn<\/code>.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-aplicaciones-reales\"><strong><em>Aplicaciones reales:<\/em><\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Monitoreo de redes sociales.<\/li>\n\n\n\n<li>Feedback de clientes.<\/li>\n\n\n\n<li>Evaluaci\u00f3n de encuestas internas en comunidades.<\/li>\n<\/ul>\n\n\n\n<p>Con Hugging Face, pasamos de un an\u00e1lisis <strong>r\u00e1pido y b\u00e1sico<\/strong> a un enfoque <strong>profundo y contextual<\/strong>, ideal para proyectos reales.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>TextBlob<\/code> y <code>NLTK<\/code> \u2192 perfectos para aprender fundamentos.<\/li>\n\n\n\n<li><code>Transformers<\/code> \u2192 ideales para aplicaciones modernas y multiling\u00fces.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"alt=&quot;Pipeline de Hugging Face para PLN avanzado&quot;\" href=\"https:\/\/cdn.you.com\/youagent-images\/gpt-image-1\/550495e1-9532-4a32-b525-62ff7cf26f74.png\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*zVRppIjrEMBTNA7fig7__g.png\" alt=\"\"\/><\/a><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"h-mini-proyecto-analisis-de-sentimientos-en-espanol-bot-de-nbsp-discord\"><strong>Mini-Proyecto: An\u00e1lisis de Sentimientos en Espa\u00f1ol + Bot de&nbsp;Discord<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Dependencias<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">!pip install -U transformers accelerate datasets\n\n<span class=\"hljs-comment\"># 2\ufe0f\u20e3 Importaciones<\/span>\nimport os\nimport warnings\nfrom datasets import load_dataset\nfrom transformers import (\n    AutoTokenizer,\n    AutoModelForSequenceClassification,\n    Trainer,\n    TrainingArguments,\n)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Cargar un dataset en espa\u00f1ol<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># 4\ufe0f\u20e3 Cargar dataset espa\u00f1ol<\/span>\ndataset = load_dataset(<span class=\"hljs-string\">\"mteb\/spanish_sentiment\"<\/span>, <span class=\"hljs-string\">\"default\"<\/span>)\n\n<span class=\"hljs-comment\"># Revisar estructura<\/span>\n<span class=\"hljs-keyword\">print<\/span>(dataset)\n<span class=\"hljs-keyword\">print<\/span>(dataset&#91;<span class=\"hljs-string\">\"train\"<\/span>]&#91;<span class=\"hljs-number\">0<\/span>])<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Preparar el modelo y el tokenizador<\/em><\/strong><\/li>\n<\/ul>\n\n\n\n<p>Usaremos un modelo multiling\u00fce como <strong>BETO<\/strong> (BERT entrenado en espa\u00f1ol).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># 5\ufe0f\u20e3 Preparar tokenizer y modelo base<\/span>\nmodel_name = <span class=\"hljs-string\">\"dccuchile\/bert-base-spanish-wwm-cased\"<\/span>\ntokenizer = AutoTokenizer.from_pretrained(model_name)\nmodel = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=<span class=\"hljs-number\">3<\/span>)\n\n<span class=\"hljs-comment\"># 6\ufe0f\u20e3 Tokenizar dataset<\/span>\ndef preprocess_function(examples):\n    <span class=\"hljs-keyword\">return<\/span> tokenizer(examples&#91;<span class=\"hljs-string\">\"text\"<\/span>], truncation=<span class=\"hljs-keyword\">True<\/span>, padding=<span class=\"hljs-string\">\"max_length\"<\/span>, max_length=<span class=\"hljs-number\">128<\/span>)\n\ndataset_tokenized = dataset.map(preprocess_function, batched=<span class=\"hljs-keyword\">True<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Entrenar el modelo<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># 7\ufe0f\u20e3 Configuraci\u00f3n del entrenamiento<\/span>\ntraining_args = TrainingArguments(\n    output_dir=<span class=\"hljs-string\">\".\/results\"<\/span>,\n    eval_strategy=<span class=\"hljs-string\">\"epoch\"<\/span>,  <span class=\"hljs-comment\"># \u2190 en lugar de evaluation_strategy<\/span>\n    learning_rate=<span class=\"hljs-number\">2e-5<\/span>,\n    per_device_train_batch_size=<span class=\"hljs-number\">16<\/span>,\n    num_train_epochs=<span class=\"hljs-number\">2<\/span>,\n    weight_decay=<span class=\"hljs-number\">0.01<\/span>,\n    logging_dir=<span class=\"hljs-string\">\".\/logs\"<\/span>,\n    logging_strategy=<span class=\"hljs-string\">\"epoch\"<\/span>,\n    save_strategy=<span class=\"hljs-string\">\"epoch\"<\/span>,\n    report_to=<span class=\"hljs-string\">\"none\"<\/span>,\n)\n\n<span class=\"hljs-comment\"># 8\ufe0f\u20e3 Inicializar Trainer<\/span>\ntrainer = Trainer(\n    model=model,\n    args=training_args,\n    train_dataset=dataset_tokenized&#91;<span class=\"hljs-string\">\"train\"<\/span>],\n    eval_dataset=dataset_tokenized&#91;<span class=\"hljs-string\">\"validation\"<\/span>],\n    processing_class=tokenizer,  <span class=\"hljs-comment\"># compatible con futuras versiones<\/span>\n)\n\n<span class=\"hljs-comment\"># 9\ufe0f\u20e3 Entrenar el modelo<\/span>\ntrainer.train()<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Guardar y cargar el modelo entrenado<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># \ud83d\udd1f Guardar el modelo final<\/span>\nsave_path = <span class=\"hljs-string\">\".\/sentiment-es\"<\/span>\ntrainer.save_model(save_path)\ntokenizer.save_pretrained(save_path)\n\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"\\n\u2705 Modelo guardado en: {save_path}\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Luego, para usarlo:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">from<\/span> transformers <span class=\"hljs-keyword\">import<\/span> pipeline\n\nanalizador = pipeline(<span class=\"hljs-string\">\"text-classification\"<\/span>, model=<span class=\"hljs-string\">\".\/sentiment-es\"<\/span>, tokenizer=tokenizer)\n\nprint(analizador(<span class=\"hljs-string\">\"Me encant\u00f3 la pel\u00edcula, fue maravillosa.\"<\/span>))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-integracion-con-un-bot-de-nbsp-discord\"><strong>Integraci\u00f3n con un bot de&nbsp;Discord<\/strong><\/h3>\n\n\n\n<p>Ahora lo divertido:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Instalar dependencias<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">pip<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">discord<\/span><span class=\"hljs-selector-class\">.py<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>C\u00f3digo del bot<\/em><\/strong><\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">import discord\nimport nest_asyncio\nimport asyncio\nfrom transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification\nfrom google.colab import userdata\n\nnest_asyncio.apply()\n\n<span class=\"hljs-comment\"># Cargar modelo entrenado<\/span>\ntokenizer = AutoTokenizer.from_pretrained(<span class=\"hljs-string\">\".\/sentiment-es\"<\/span>)\nmodel = AutoModelForSequenceClassification.from_pretrained(<span class=\"hljs-string\">\".\/sentiment-es\"<\/span>)\nanalizador = pipeline(<span class=\"hljs-string\">\"text-classification\"<\/span>, model=model, tokenizer=tokenizer)\n\n<span class=\"hljs-comment\"># Inicializar bot<\/span>\nintents = discord.Intents.<span class=\"hljs-keyword\">default<\/span>()\nintents.message_content = <span class=\"hljs-keyword\">True<\/span>\nclient = discord.Client(intents=intents)\n\n@client.event\nasync def on_ready():\n    <span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Bot conectado como {client.user}\"<\/span>)\n\n@client.event\nasync def on_message(message):\n    <span class=\"hljs-keyword\">if<\/span> message.author == client.user:\n        <span class=\"hljs-keyword\">return<\/span>\n\n    <span class=\"hljs-keyword\">if<\/span> message.content.startswith(<span class=\"hljs-string\">\"!sentimiento\"<\/span>):\n        texto = message.content&#91;len(<span class=\"hljs-string\">\"!sentimiento \"<\/span>):]\n        resultado = analizador(texto)&#91;<span class=\"hljs-number\">0<\/span>]\n        await message.channel.send(\n            f<span class=\"hljs-string\">\"\ud83d\udcca Texto: {texto}\\n\ud83d\udd0e Sentimiento: {resultado&#91;'label']} (confianza {resultado&#91;'score']:.2f})\"<\/span>\n        )\n\n<span class=\"hljs-comment\"># Get the Discord bot token from Colab Secrets Manager<\/span>\n<span class=\"hljs-comment\"># Make sure you have added a secret named 'DISCORD_BOT_TOKEN' to Secrets Manager<\/span>\nDISCORD_BOT_TOKEN = userdata.get(<span class=\"hljs-string\">\"DISCORD_BOT_TOKEN\"<\/span>)\n\n<span class=\"hljs-comment\"># Reemplaza con tu token de Discord<\/span>\nclient.run(DISCORD_BOT_TOKEN)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Ahora, en tu servidor de Discord, cualquier usuario puede escribir:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">!sentimiento Hoy estoy muy feliz con este proyecto<\/code><\/span><\/pre>\n\n\n<p>Y el bot responder\u00e1 con el an\u00e1lisis de sentimientos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-extensiones-posibles\"><strong>Extensiones posibles<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A\u00f1adir <strong>gr\u00e1ficas en tiempo real<\/strong> con <code>matplotlib<\/code> para mostrar la distribuci\u00f3n de sentimientos en el canal.<\/li>\n\n\n\n<li>Guardar los resultados en una <strong>base de datos<\/strong> para an\u00e1lisis posterior.<\/li>\n\n\n\n<li>Crear un <strong>ranking de palabras m\u00e1s positivas\/negativas<\/strong> en la comunidad.<\/li>\n<\/ul>\n\n\n\n<p>Con esto tienes un flujo completo: <strong>dataset \u2192 entrenamiento \u2192 despliegue en Discord<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"h-desafios-avanzados-y-como-resolverlos\"><strong>Desaf\u00edos Avanzados y C\u00f3mo Resolverlos<\/strong><\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"307\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1nuU1RXKMwRgv5u4y03yU5A.jpg\" alt=\"\" class=\"wp-image-34214\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1nuU1RXKMwRgv5u4y03yU5A.jpg 709w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1nuU1RXKMwRgv5u4y03yU5A-300x130.jpg 300w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure><\/div>\n\n\n<p>El <strong>An\u00e1lisis de Sentimientos Avanzado<\/strong> con <strong>Hugging Face y Transformers<\/strong> no es solo una mejora incremental; es un <strong>cambio de paradigma<\/strong>. Significa que puedes crear clasificadores de sentimientos con <strong>precisi\u00f3n cercana a la humana<\/strong> en cuesti\u00f3n de horas o d\u00edas, no meses, aprovechando la investigaci\u00f3n y el poder de c\u00e1lculo invertido por gigantes tecnol\u00f3gicos.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/cdn.you.com\/youagent-images\/gpt-image-1\/71f6003b-78c3-4d86-8b6b-396ab9fb1724.png\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*RMS2fKK9QI0_GgnfIS0uEA.png\" alt=\"\"\/><\/a><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Si ya entendiste la base del An\u00e1lisis de Sentimientos (AS) con t\u00e9cnicas de Bag-of-Words o TF-IDF, es hora de subir de nivel. El PLN moderno no se hace con m\u00e9todos estad\u00edsticos simples; se hace con la arquitectura que lo cambi\u00f3 todo: los Transformers. La Iron\u00eda, el contexto y las negaciones sutiles son el cemento en&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\">Read more<\/a><\/p>\n","protected":false},"author":313,"featured_media":34215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10642,10598],"tags":[13076,10664],"collections":[13078],"class_list":{"0":"post-34172","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-deep-learning-es","8":"category-inteligencia-artificial","9":"tag-deep-learning-es","10":"tag-ia","11":"collections-deep-learning-es","12":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Transformers para sentimientos \u2014 Gu\u00eda avanzada<\/title>\n<meta name=\"description\" content=\"Domina Transformers para sentimientos con Hugging Face: fine\u2011tuning, despliegue y ejemplos en espa\u00f1ol para PLN avanzado.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers\" \/>\n<meta property=\"og:description\" content=\"Domina Transformers para sentimientos con Hugging Face: fine\u2011tuning, despliegue y ejemplos en espa\u00f1ol para PLN avanzado.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-13T09:35:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-13T09:35:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"632\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Orli Dun\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Orli Dun\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\"},\"author\":{\"name\":\"Orli Dun\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42\"},\"headline\":\"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers\",\"datePublished\":\"2025-10-13T09:35:05+00:00\",\"dateModified\":\"2025-10-13T09:35:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\"},\"wordCount\":1113,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png\",\"keywords\":[\"Deep Learning\",\"IA\"],\"articleSection\":[\"Deep Learning\",\"Inteligencia Artificial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\",\"name\":\"Transformers para sentimientos \u2014 Gu\u00eda avanzada\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png\",\"datePublished\":\"2025-10-13T09:35:05+00:00\",\"dateModified\":\"2025-10-13T09:35:58+00:00\",\"description\":\"Domina Transformers para sentimientos con Hugging Face: fine\u2011tuning, despliegue y ejemplos en espa\u00f1ol para PLN avanzado.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png\",\"width\":800,\"height\":632},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inteligencia Artificial\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42\",\"name\":\"Orli Dun\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png\",\"caption\":\"Orli Dun\"},\"description\":\"From finance to the digital revolution! Systems Engineer | Cloud &amp; AI | Tech Creator | Community Manager at Alura Latam #foramillionfriends\",\"sameAs\":[\"https:\/\/orlidun.vercel.app\/\",\"https:\/\/www.linkedin.com\/in\/orlibetdungonzalez\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Transformers para sentimientos \u2014 Gu\u00eda avanzada","description":"Domina Transformers para sentimientos con Hugging Face: fine\u2011tuning, despliegue y ejemplos en espa\u00f1ol para PLN avanzado.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/","og_locale":"en_US","og_type":"article","og_title":"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers","og_description":"Domina Transformers para sentimientos con Hugging Face: fine\u2011tuning, despliegue y ejemplos en espa\u00f1ol para PLN avanzado.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-10-13T09:35:05+00:00","article_modified_time":"2025-10-13T09:35:58+00:00","og_image":[{"width":800,"height":632,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png","type":"image\/png"}],"author":"Orli Dun","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Orli Dun","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/"},"author":{"name":"Orli Dun","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42"},"headline":"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers","datePublished":"2025-10-13T09:35:05+00:00","dateModified":"2025-10-13T09:35:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/"},"wordCount":1113,"commentCount":0,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png","keywords":["Deep Learning","IA"],"articleSection":["Deep Learning","Inteligencia Artificial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/","name":"Transformers para sentimientos \u2014 Gu\u00eda avanzada","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png","datePublished":"2025-10-13T09:35:05+00:00","dateModified":"2025-10-13T09:35:58+00:00","description":"Domina Transformers para sentimientos con Hugging Face: fine\u2011tuning, despliegue y ejemplos en espa\u00f1ol para PLN avanzado.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png","width":800,"height":632},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/nivel-avanzado-en-pln-analisis-de-sentimientos-con-hugging-face-y-transformers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Inteligencia Artificial","item":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/"},{"@type":"ListItem","position":3,"name":"Nivel Avanzado en PLN: An\u00e1lisis de Sentimientos con Hugging Face y Transformers"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42","name":"Orli Dun","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png","caption":"Orli Dun"},"description":"From finance to the digital revolution! Systems Engineer | Cloud &amp; AI | Tech Creator | Community Manager at Alura Latam #foramillionfriends","sameAs":["https:\/\/orlidun.vercel.app\/","https:\/\/www.linkedin.com\/in\/orlibetdungonzalez"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-600x600.png","author_info":{"display_name":"Orli Dun","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png",800,632,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-300x237.png",300,237,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-768x607.png",768,607,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png",800,632,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png",800,632,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg.png",800,632,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-800x504.png",800,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/10\/1w5AiHQTC6REINSnYEYnPHg-600x600.png",600,600,true]},"uagb_author_info":{"display_name":"Orli Dun","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"},"uagb_comment_info":0,"uagb_excerpt":"Si ya entendiste la base del An\u00e1lisis de Sentimientos (AS) con t\u00e9cnicas de Bag-of-Words o TF-IDF, es hora de subir de nivel. El PLN moderno no se hace con m\u00e9todos estad\u00edsticos simples; se hace con la arquitectura que lo cambi\u00f3 todo: los Transformers. La Iron\u00eda, el contexto y las negaciones sutiles son el cemento en&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/313"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=34172"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34172\/revisions"}],"predecessor-version":[{"id":34220,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34172\/revisions\/34220"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/34215"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=34172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=34172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=34172"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=34172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}