顧客やその他の情報源からコメントやレビューを受け取る機会があり、それらがどれほど前向きであるかを評価したいとします。 感情分析と呼ばれるそのようなコメントを分析する方法があります。この投稿では、C#を使用したディープニューラルネットワークモデルに基づく感情分析ツールに焦点を当てています。このモデルは、幅広いタスクに適しています。

.NET用の感情分析API

プログラムで感情分析を行いたい場合は、GroupDocs.Classificationがその目的を果たします。これは、製品レビュー、ショップレビュー、アプリケーションレビュー、フィードバックなどのトーンを評価するために使用できる汎用感情分類子を実装します。

GroupDocs.Classification for .NET

この記事では、コメントの分類について説明し、** GroupDocs.Classification for .NET **でC#を使用して陽性を分析します。したがって、開始する前に、次のいずれかの方法からAPIをインストールしてください。

  • NuGetパッケージマネージャーを使用してインストールします。
  • ダウンロードDLLを作成し、プロジェクトに参照します。

C#で感情分析を使用してテキストを分類する方法

このようなタスクを解決するには、Classifierという名前の一般的なクラスを使用するか、少し単純で軽量なクラスであるSentimentClassifierを使用できます。手順は次のとおりです。

  • SentimentClassifierを初期化します。
  • SentimentClassifierクラスのPositiveProbabilityメソッドを呼び出し、分析が必要なパラメーターとしてテキストを渡します。
  • 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#で感情分析を使用して複数のコメントを分類する

通常、何千ものコメントとフィードバックがありますが、顧客のフィードバックをどのように分析できますか?フィードバックを配列に入れるだけで簡単です。文字列配列をレビューのソースとします。また、ファイルまたはデータベースまたはサービスからの解析済み応答である可能性もあります。文字列配列を正の感情確率のfloat配列に変換できます。

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.ClassificationAPIの詳細

GitHubの例をダウンロードして実行することは、開始するための最良かつ最も簡単な方法です。

関連項目