Předpokládejme, že máte příležitost získat komentáře nebo recenze od svých zákazníků nebo z jiného zdroje a chcete zhodnotit, jak jsou pozitivní. Existuje způsob, jak analyzovat takové komentáře, nazývaný analýza sentimentu. Tento příspěvek se zaměřuje na nástroj pro analýzu sentimentu založený na modelu hluboké neuronové sítě pomocí C#. Tento model je vhodný pro širokou škálu úkolů.

Sentiment Analysis API pro .NET

Pokud chcete provádět analýzu sentimentu programově, GroupDocs.Classification slouží k tomuto účelu za vás. Implementuje všeobecný klasifikátor sentimentu, který lze použít k vyhodnocení tónu recenzí produktů, recenzí obchodů, recenzí aplikací, zpětných vazeb atd.

GroupDocs.Classification for .NET

Tento článek vás provede klasifikací komentářů a analýzou pozitivity pomocí jazyka C# s GroupDocs.Classification for .NET. Než tedy začnete, ujistěte se, že jste nainstalovali rozhraní API některou z následujících metod:

  • Nainstalujte pomocí správce balíčků NuGet.
  • Stažení the DLL and reference it into the project.

Jak klasifikovat text pomocí analýzy sentimentu v C#

K vyřešení takového úkolu můžeme použít obecnou třídu s názvem Classifier, nebo můžeme použít Sentiment Classifier, což je o něco jednodušší a odlehčená třída. Zde jsou kroky:

  • Inicializujte SentimentClassifier.
  • Zavolejte metodu PositiveProbability třídy SentimentClassifier a předejte text jako parametr, který je třeba analyzovat.
  • Metoda PositiveProbability vrátí pozitivitu v rozsahu od 0 do 1.

Zde je kód C# pro nalezení tónu jakéhokoli prohlášení pomocí klasifikace sentimentu. Jako příklad jsme vybrali následující sentiment:

“Zkušenost je prostě jméno, které dáváme našim chybám”

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

Jakákoli hodnota větší než 0,5 znamená, že sentiment je pozitivní a rozsah mezi 0 a 0,5 ukazuje, že je negativní.

Nyní podle extrahované pozitivity můžete získat nejlepší třídu pro tento sentiment a pravděpodobnost této nejlepší třídy. Zjistili jsme, že jeho pozitivní pravděpodobnost je 0,11, takže by měl být klasifikován jako negativní komentář a jeho nejlepší třída by měla být záporná místo pozitivní.

Jaká by tedy byla jeho nejlepší třídní pravděpodobnost? Ano, bude to 0,89. Nyní se podívejme do kódu:

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

Klasifikujte více komentářů pomocí analýzy sentimentu v C#

Normálně máme tisíce komentářů a zpětné vazby, jak bychom tedy mohli analyzovat zpětnou vazbu našich zákazníků? Je to jednoduché, stačí vložit zpětné vazby do pole. Zdrojem kontroly nechť je pole řetězců. Může to být také soubor nebo analyzovaná odpověď z databáze nebo služby. Můžeme transformovat pole řetězců na plovoucí pole pravděpodobností pozitivního sentimentu.

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 můžeme dělat s cílovými náladami? Dokážeme měřit průměrnou nebo mediánovou pozitivitu pro cílový produkt, obchod atd. Vyberte nejhorší hodnoty a reagujte na zákazníky. Můžeme také provést analýzu, jako je hledání nesrovnalostí mezi kladnou hodnotou pravděpodobnosti produktu a jeho hodnocením.

Doufáme, že pro vás bude tento příspěvek užitečný. Více o klasifikaci textu nebo analýze sentimentu v C# najdete ze zmíněných zdrojů.

Další informace o GroupDocs.Classification API

Stažení a spuštění příkladů GitHubu je nejlepší a nejjednodušší způsob, jak začít.

Viz také