Предположим, у вас есть возможность получать комментарии или отзывы от ваших клиентов или из какого-то другого источника и вы хотите оценить, насколько они положительны. Существует способ анализа таких комментариев, называемый анализом настроений. Этот пост посвящен инструменту анализа настроений, основанному на модели глубокой нейронной сети с использованием C#. Эта модель подходит для широкого круга задач.

API анализа тональности для .NET

Если вы хотите выполнять анализ тональности программно, GroupDocs.Classification подойдет для этой цели. Он реализует классификатор настроений общего назначения, который можно использовать для оценки тона обзоров продуктов, обзоров магазинов, обзоров приложений, отзывов и т. д.

GroupDocs.Классификация для .NET

В этой статье вы узнаете, как классифицировать комментарии и анализировать позитивность с помощью C# с помощью GroupDocs.Classification for .NET. Поэтому, прежде чем начать, обязательно установите API одним из следующих способов:

  • Установите с помощью диспетчера пакетов NuGet.
  • Скачать DLL и указать ссылку на нее в проекте.

Как классифицировать текст с помощью анализа тональности в C#

Для решения такой задачи мы можем использовать общий класс с именем Классификатор или классификатор настроений, который немного проще и легче. Вот шаги:

  • Инициализируйте SentimentClassifier.
  • Вызовите метод PositiveProbability класса SentimentClassifier и передайте текст в качестве параметра, который необходимо проанализировать.
  • Метод PositiveProbability возвращает положительность в диапазоне от 0 до 1.

Вот код C# для определения тона любого утверждения с использованием классификации настроений. В качестве примера мы выбрали следующие настроения:

“Опыт — это просто название, которое мы даем нашим ошибкам”

// 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**

Любое значение больше 0,5 означает, что настроение положительное, а диапазон от 0 до 0,5 показывает, что оно отрицательное.

Теперь, в соответствии с полученным положительным результатом, вы можете получить Лучший класс для этого настроения и вероятности этого Лучшего класса. Мы обнаружили, что его положительная вероятность равна 0,11, поэтому его следует классифицировать как отрицательный комментарий, а его лучший класс должен быть отрицательным, а не положительным.

So what would be its Best Class Probability? Yes, it will be 0.89. Теперь посмотрим в коде:

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**

Классифицируйте несколько комментариев, используя анализ настроений в C#

Обычно у нас есть тысячи комментариев и отзывов, так как же мы можем анализировать отзывы наших клиентов? Это просто, просто поместите отзывы в массив. Пусть массив строк будет источником обзора. Это также может быть файл или проанализированный ответ из базы данных или службы. Мы можем преобразовать массив строк в массив с плавающей запятой вероятностей положительных настроений.

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."

Что мы можем сделать с целевыми настроениями? Мы можем измерить среднюю или медианную положительность для целевого продукта, магазина и т. д. Выберите наихудшие значения и ответьте покупателям. Мы также можем проводить анализ, например находить несоответствия между положительным значением вероятности продукта и его рейтингом.

Мы надеемся, что вы найдете этот пост полезным. Дополнительные сведения о классификации текста или анализе настроений в C# можно найти в указанных ресурсах.

Узнайте больше об API GroupDocs.Classification

Загрузка и запуск примеров GitHub — лучший и самый простой способ начать работу.

Смотрите также