logo

Integración de Inteligencia Artificial en .NET: Análisis de Sentimiento con Google Cloud Natural Language API


La capacidad de interpretar automáticamente las emociones detrás de los comentarios de los clientes es un activo estratégico para cualquier negocio digital. Gracias a la API de Natural Language de Google Cloud, podemos procesar grandes volúmenes de texto para extraer su carga emocional. En este artículo, detallamos cómo integrar este servicio en un backend desarrollado en .NET, transformando datos brutos en una escala de valor de tres niveles: Bueno, Medio o Malo.

1. El Concepto: Score y Magnitude

La API de Google no devuelve simplemente un «positivo» o «negativo». Utiliza dos métricas clave:

Para nuestra lógica de negocio, mapearemos el Score de la siguiente manera:


2. Preparación del Entorno

Antes de codificar, es necesario habilitar la API en la consola de Google Cloud y descargar el archivo de credenciales JSON.

Instalación del SDK de Google en .NET

Bash

dotnet add package Google.Cloud.Language.V1

3. Implementación del Servicio en .NET

Crearemos un servicio dedicado que encapsule la lógica de comunicación con Google Cloud y la posterior categorización del resultado.

C#

using Google.Cloud.Language.V1;
using System;

public enum SentimentRating { Malo, Medio, Bueno }

public class SentimentService
{
    private readonly LanguageServiceClient _client;

    public SentimentService()
    {
        // El SDK busca automáticamente la variable de entorno 
        // GOOGLE_APPLICATION_CREDENTIALS con la ruta al JSON de la cuenta de servicio
        _client = LanguageServiceClient.Create();
    }

    public SentimentRating AnalyzeText(string text)
    {
        var response = _client.AnalyzeSentiment(Document.FromPlainText(text));
        float score = response.DocumentSentiment.Score;

        return score switch
        {
            > 0.25f  => SentimentRating.Bueno,
            < -0.25f => SentimentRating.Malo,
            _        => SentimentRating.Medio
        };
    }
}

4. Exposición mediante una API (Controller)

Para que el frontend o servicios externos puedan consumir esta funcionalidad, implementamos un endpoint sencillo en nuestro controlador de ASP.NET Core.

C#

[ApiController]
[Route("api/analysis")]
public class AnalysisController : ControllerBase
{
    private readonly SentimentService _sentimentService;

    public AnalysisController()
    {
        _sentimentService = new SentimentService();
    }

    [HttpPost("sentiment")]
    public IActionResult GetSentiment([FromBody] string content)
    {
        if (string.IsNullOrWhiteSpace(content))
            return BadRequest("El texto no puede estar vacío.");

        var result = _sentimentService.AnalyzeText(content);
        
        return Ok(new 
        { 
            OriginalText = content, 
            Rating = result.ToString() 
        });
    }
}

5. Consideraciones de Seguridad y Coste

Al integrar este tipo de servicios en un proyecto de digitalización, debemos tener en cuenta:

Conclusión

La combinación de .NET y Google Cloud permite dotar a cualquier aplicación de capacidades cognitivas de vanguardia con un esfuerzo de desarrollo mínimo. Esta arquitectura no solo automatiza procesos de moderación o soporte, sino que proporciona una base sólida para la toma de decisiones basada en datos cualitativos.