Припустімо, що у вас є можливість отримати коментарі або відгуки від ваших клієнтів або з іншого джерела, і ви хочете оцінити, наскільки вони позитивні. Існує спосіб аналізу таких коментарів, який називається аналізом настроїв. Ця публікація присвячена інструменту аналізу настроїв на основі моделі глибокої нейронної мережі з використанням C#. Ця модель підходить для широкого спектру завдань.

Sentiment Analysis API для .NET

Якщо ви хочете зробити аналіз настроїв програмним шляхом, GroupDocs.Classification служить вам для цієї мети. Він реалізує класифікатор настроїв загального призначення, який можна використовувати для оцінки тону оглядів продуктів, оглядів магазинів, оглядів програм, відгуків тощо.

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

Ця стаття допоможе вам класифікувати коментарі та проаналізувати позитивність за допомогою C# із GroupDocs.Classification for .NET. Отже, перш ніж почати, будь ласка, переконайтеся, що ви встановили API будь-яким із наведених нижче методів:

  • Встановіть за допомогою диспетчера пакетів NuGet.
  • Завантажити the DLL and reference it into the project.

Як класифікувати текст за допомогою аналізу настроїв у C#

Для вирішення такого завдання ми можемо використовувати загальний клас під назвою Classifier або ми можемо використовувати Sentiment Classifier, який є трохи простішим і легшим класом. Ось кроки:

  • Ініціалізуйте 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, тому його слід класифікувати як негативний коментар, а його найкращий клас має бути негативним, а не позитивним.

Отже, яка ймовірність найкращого класу? Так, це буде 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# у згаданих ресурсах.

Дізнайтеся більше про GroupDocs.Classification API

Завантажити та запустити приклади GitHub — найкращий і найпростіший спосіб почати роботу.

Дивись також