Załóżmy, że masz możliwość otrzymania komentarzy lub recenzji od swoich klientów lub innego źródła i chcesz ocenić, na ile są one pozytywne. Istnieje sposób na analizę takich komentarzy, zwany analizą nastrojów. Ten post koncentruje się na narzędziu do analizy sentymentu opartym na modelu głębokiej sieci neuronowej przy użyciu języka C#. Model ten nadaje się do szerokiego zakresu zadań.

Interfejs API analizy nastrojów dla platformy .NET

Jeśli chcesz programowo przeprowadzić analizę nastrojów, GroupDocs.Classification służy do tego celu. Implementuje uniwersalny klasyfikator nastrojów, którego można użyć do oceny tonu recenzji produktów, recenzji sklepów, recenzji aplikacji, informacji zwrotnych itp.

GroupDocs.Classification dla platformy .NET

Ten artykuł przeprowadzi Cię przez klasyfikację komentarzy i przeanalizuje pozytywność przy użyciu języka C# z GroupDocs.Classification dla platformy .NET. Dlatego zanim zaczniesz, upewnij się, że zainstalowałeś interfejs API za pomocą jednej z następujących metod:

  • Zainstaluj za pomocą Menedżera pakietów NuGet.
  • Pobierać the DLL and reference it into the project.

Jak klasyfikować tekst za pomocą analizy nastrojów w języku C#

Aby rozwiązać takie zadanie, możemy użyć klasy ogólnej o nazwie Klasyfikator lub klasyfikatora nastrojów, który jest nieco prostszą i lżejszą klasą. Oto kroki:

  • Zainicjuj SentimentClassifier.
  • Wywołaj metodę PositiveProbability klasy SentimentClassifier i przekaż tekst jako parametr do analizy.
  • Metoda PositiveProbability zwróci wartość dodatnią w zakresie od 0 do 1.

Oto kod w języku C# umożliwiający znalezienie tonu dowolnej instrukcji przy użyciu klasyfikacji tonacji. Jako przykład wybraliśmy następujący sentyment:

„Doświadczenie to po prostu nazwa, którą nadajemy naszym błędom”

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

Każda wartość większa niż 0,5 oznacza, że opinia jest pozytywna, a zakres od 0 do 0,5 wskazuje, że opinia jest negatywna.

Teraz, zgodnie z wyodrębnioną pozytywnością, możesz otrzymać najlepszą klasę dla tego sentymentu i prawdopodobieństwa tej najlepszej klasy. Ustaliliśmy, że jego prawdopodobieństwo dodatnie wynosi 0,11, więc należy je sklasyfikować jako komentarz negatywny, a jego najlepsza klasa powinna być ujemna, a nie pozytywna.

Jakie byłoby więc prawdopodobieństwo najlepszej klasy? Tak, będzie 0,89. Teraz zobaczmy w kodzie:

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

Klasyfikuj wiele komentarzy za pomocą analizy nastrojów w języku C#

Zwykle mamy tysiące komentarzy i opinii, więc jak moglibyśmy przeanalizować opinie naszych klientów? To proste, wystarczy umieścić informacje zwrotne w tablicy. Niech tablica ciągów będzie źródłem recenzji. Może to być również plik lub przeanalizowana odpowiedź z bazy danych lub usługi. Możemy przekształcić tablicę ciągów w tablicę zmiennoprzecinkową pozytywnych prawdopodobieństw nastrojów.

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

Co możemy zrobić z nastrojami docelowymi? Możemy zmierzyć średnią lub medianę pozytywności dla docelowego produktu, sklepu itp. Wybierz najgorsze wartości i odpowiedz klientom. Możemy również przeprowadzać analizy, takie jak znajdowanie niespójności między dodatnią wartością prawdopodobieństwa produktu a jego oceną.

Mamy nadzieję, że ten post okaże się przydatny. Więcej informacji na temat klasyfikacji tekstu lub analizy tonacji w języku C# można znaleźć we wspomnianych zasobach.

Dowiedz się więcej o interfejsie API GroupDocs.Classification

Pobieranie i uruchamianie przykładów GitHub to najlepszy i najłatwiejszy sposób na rozpoczęcie pracy.

Zobacz też