Suponga que tiene la oportunidad de recibir comentarios o reseñas de sus clientes o de alguna otra fuente y desea evaluar qué tan positivos son. Hay una forma de analizar dichos comentarios llamada análisis de sentimiento. Esta publicación se enfoca en la herramienta de análisis de sentimientos basada en un modelo de red neuronal profunda usando C#. Este modelo es adecuado para una amplia gama de tareas.

API de análisis de sentimiento para .NET

Si desea realizar un análisis de opiniones mediante programación, GroupDocs.Classification le sirve para ese propósito. Implementa un clasificador de sentimientos de propósito general que se puede usar para evaluar el tono de las reseñas de productos, reseñas de tiendas, reseñas de aplicaciones, comentarios, etc.

GroupDocs. Clasificación para .NET

Este artículo lo guiará a la clasificación de comentarios y analizará la positividad usando C# con GroupDocs.Classification para .NET. Entonces, antes de comenzar, asegúrese de instalar la API desde cualquiera de los siguientes métodos:

  • Instale usando NuGet Package Manager.
  • Descargar la DLL y referenciarla en el proyecto.

Cómo clasificar texto usando análisis de sentimiento en C#

Para resolver tal tarea, podemos usar una clase general llamada Classifier, o podemos usar Sentiment Classifier, que es una clase un poco más simple y liviana. Aquí están los pasos:

  • Inicializar el SentimentClassifier.
  • Llame al método PositiveProbability de la clase SentimentClassifier y pase el texto como un parámetro que debe analizarse.
  • El método PositiveProbability devolverá la positividad que va de 0 a 1.

Aquí está el código C# para encontrar el tono de cualquier declaración utilizando la clasificación de sentimiento. Hemos elegido el siguiente sentimiento como ejemplo:

“Experiencia es simplemente el nombre que le damos a nuestros errores”

// Analyze the positivity of text using sentiment classifier in C#.
var sentiment = "Experience is simply the name we give our mistakes";
var sentimentClassifier = new SentimentClassifier();
/// PositiveProbability method returns the positive probability of the sentiment.
var positiveProbability = sentimentClassifier.PositiveProbability(sentiment);
Console.WriteLine($"Positive Probability of the sentiment { positiveProbability }");
Positive Probability of the sentiment: **0.1118**

Cualquier valor superior a 0,5 significa que el sentimiento es positivo y el rango entre 0 y 0,5 muestra que es negativo.

Ahora, de acuerdo con la positividad extraída, puede obtener la Mejor clase para ese sentimiento y la probabilidad de esa Mejor clase. Encontramos que su probabilidad positiva es 0.11, por lo que debe clasificarse como un comentario negativo y su Mejor Clase debe ser Negativo en lugar de Positivo.

So what would be its Best Class Probability? Yes, it will be 0.89. Ahora veamos en el código:

var sentiment = "Experience is simply the name we give our mistakes";
/// Classify method returns ClassificationResult object with the best class probability and name.
var response = sentimentClassifier.Classify(sentiment);
Console.WriteLine($"Best Class Name: {response.BestClassName}");
Console.WriteLine($"Best Class Probability: { response.BestClassProbability}");
Best Class Name: **Negative**
Best Class Probability: **0.8882**

Clasifique múltiples comentarios usando el análisis de sentimiento en C#

Normalmente tenemos miles de comentarios y opiniones, entonces, ¿cómo podríamos analizar los comentarios de nuestros clientes? Es simple, simplemente coloque los comentarios en una matriz. Deje que la matriz de cadenas sea la fuente de revisión. También podría ser un archivo o la respuesta analizada de una base de datos o servicio. Podemos transformar la matriz de cadenas en la matriz flotante de probabilidades de sentimiento positivo.

var sentiments = new string\[\] {
                "Now that is out of the way, this thing is a beast. It is fast and runs cool.",
                "Experience is simply the name we give our mistakes",
                "When I used compressed air a cloud of dust bellowed out from the card (small scuffs and scratches).",
                "This is Pathetic."
            };
            var classifier = new GroupDocs.Classification.SentimentClassifier();
            var sentimentPositivity = sentiments.Select(x => classifier.PositiveProbability(x)).ToArray();
            Console.WriteLine(string.Join("\\n", sentimentPositivity));
**0.8959** - "Now that is out of the way, this thing is a beast..."
**0.1118** - "Experience is simply the name we give our mistakes"
**0.1252** - "When I used compressed air a cloud ..."
**0.0970** - "This is Pathetic."

¿Qué podemos hacer con los sentimientos objetivo? Podemos medir la positividad media o mediana para el producto objetivo, la tienda, etc. Seleccionar los peores valores y responder a los clientes. También podemos hacer análisis como encontrar inconsistencias entre el valor de probabilidad positivo de un producto y su calificación.

Esperamos que encuentre útil esta publicación. Puede encontrar más información sobre clasificación de texto o análisis de opiniones en C# en los recursos mencionados.

Más información sobre GroupDocs. API de clasificación

Descargar y ejecutar ejemplos de GitHub es la mejor y más fácil manera de comenzar.

Ver también