さまざまなオンラインセンチメント分類サービスが現在入手可能です。 Google、Amazon、Microsoftなどの巨人は、自然言語処理のためのクラウドソリューションを提供しています。ただし、1000個のAPIコール(レビューに1000文字以上の文字がある場合に価格が上昇する場合)に1〜2ドルを支払う予定がない場合、および/またはローカル分類サービスまたはプログラムを準備する準備ができている場合は、オフライン分類器を使用できます。この投稿で説明するオフラインケースには、いくつかの.NET分類器があります。 ここでは、次のトピックについて説明します。

  • [センチメント分析とは?](#what-is-sentiment-analysis)

-オフラインセンチメント分析c

-データセット

-結果

-結論

-コード

感情分類(分析)とは何ですか?

センチメント分類は、顧客が製品やサービスについてどのように感じているかをよりよく理解するための強力なアプローチです。また、ブランド監視タスクでも役立ちます。感情分類を使用すると、ソーシャルメディア、ブログ、記事に投稿する人々の感情やフィードバックを分類できます。感情分類に使用されるいくつかの一般的な分類法があります。

  • バイナリ: * ネガティブ; * ポジティブ;
    • 3クラス:
      • ネガティブ;
  • ニュートラル; * ポジティブ;
    • 5つのクラス
      • 1〜5つ星 すべての場合において、否定的な感情は分析にとって最も重要です。したがって、センチメント分類器が解決すべき主なタスクは、「そのテキストは否定的ですか?」のように見えます。そして、「どれくらいネガティブですか?」。

Metrics

精度はシンプルで明白なメトリックです。クラスが不均衡な場合、それはよく知られている欠点を持っています。ただし、バランスの取れたクラスの場合に使用できます。科学文献でも広く使用されています。 以下にリストされている分類器は、「ニュートラル」クラスがないため、バイナリ分類タスクでのみ比較できます。

オフラインセンチメント分類(C#)

Google、Nuget E.T.C.を介して見つけることができる複数のC#ライブラリがあります。しかし、それらの多くは実際にはクラウドAPIのSDKにすぎないため、手動でチェックする必要があります。次のパッケージは、センチメント分類C#ライブラリの手動で検証した後に収集されました。

  • groupdocs.classification;
  • VaderSharp;
  • Stanfordnlp;
  • SentimentAnalyzer;
  • ウィキルド; それらはすべて、オフラインセンチメント分類C#ライブラリです。それらをより詳細に説明しましょう。

groupdocs.classification

ライセンス:ライセンスファイル

インストールの複雑さ:簡単 **正確性:**93.3(評価) / 96.3(ライセンス){.wp-block-heading} GroupDocs.classificationは、テキストとドキュメント分類用の独自の内蔵エンジンを備えたライブラリです。モデルは、A Nugetパッケージの一部でもあります。インストールは簡単です。nugetパッケージをインストールするだけです。評価バージョンとライセンスバージョンには違いがあります。評価バージョンの場合、テキストを100文字のチャンクに分割し、結果を平均する必要があります。 GroupDocs.Classificationは、評価モードの精度93.3%、ライセンスが適用されると96.3%を示しています。

VaderSharp

ライセンス:MIT

インストールの複雑さ:簡単 精度:77.6%{.wp-block-heading} VaderSharpは、C#センチメント分類(分析)に人気のあるソリューションです。それは非常に迅速に動作し、通常のホームPCで毎秒メッセージを処理しますが、サーバーマシンについてはそうではありません。インストールも簡単です(nugetパッケージをインストールするだけです)。ただし、重要な欠点もあります。精度は、処理時間ほど完全ではありません。テストデータセットで78%の精度を達成します。

スタンフォードnlp

ライセンス:GPL V2

インストールの複雑さ:ハード。 精度:70%{.wp-block-heading} Stanford NLPは、自然言語処理のための対応するJavaライブラリに基づくC#ライブラリです。インストールにはいくつかの困難があります。 Stanford NLPのJavaバージョンをインストールし、必要に応じてモデルをプログラムの現在のディレクトリにコピーする必要があります。 .NET Core 3.0の互換性にも問題があります。このライブラリの精度と処理時間は不安定であり、テキストの長さに依存しているようです。 SST-2データセットからの短いテキストの場合、処理時間ごとに秒数秒で80.2%の精度を達成します。クロスドメイン1からの長いテキストの場合、精度は70%に減少します。テキストごとに処理時間が1分以上増加します。

sentimentanalyzer

ライセンス:MIT

インストールの複雑さ:中程度 精度:79.1%{.wp-block-heading} このライブラリはml.netベースです。インストール中、ML.NETの作業に関連する問題がある場合があります。これは安全でないライブラリであり、明示的に構成(x86 / x64)が必要であり、依存関係もインストールする必要がある場合があります。 SentimentAnalyzerは、正または負のクラスと対応するスコアを返します。これが、その比較にバイナリ分類タスクが使用された理由です。最良の結果は、正確に選択されたしきい値で達成できます。しきい値の最適化後、精度は79%に達しました。

wikiled

ライセンス:Apacheライセンス2.0

インストールの複雑さ:シンプル 精度:なし{.wp-block-heading} 別のc#センチメント分類ライブラリはwikiledです。このライブラリは、適切な結果を生成するためにテストする前にトレーニングする必要があります。したがって、ライブラリの精度を計算することはできません。

データセット

テストのためにクロスドメインデータセットを使用しました。 groupdocs.classificationは訓練されていません。残りのライブラリは、トレーニングにも使用しなかった可能性が高いです。利害関係者に電子メールで結果を送信します。対応するgithub repoで問題を作成してください。 14: Stanford Sentiment Treebank (Socher et al. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In proc. EMNLP).

結果

表1は、実験分類器の精度(%)を示しています。 表1。

SST-2クロスドメイン
GroupDocs.classification93.3 (ライセンス:94.7)93.3 (ライセンス:96.3)
SentimentAnalyzer58.579.1
スタンフォードNLP80.7〜70
VaderSharp68.777.6
それらのほとんどは、これら2つのデータセットで異なる結果を示しています。そのような動作の原因は、SST-2テキストがクロスドメインテキストよりも短いことです。また、500文字以上のテキストについて、CrossdomainでのスタンフォードNLPテスト中にいくつかのハンギングがありました。そのため、「〜」でマークされたクロスドメインの精度があります。

一般的な間違いの分析

次の誤分類は典型的です。 「星、態度、そしてその忘却のように。」 - その人が何を意味するのかを理解するのは難しい。 _「よく動作し、意図されたスヌーザー」または「ジー、2番目の暗殺者がケネディを撃った?」 「Moot Point」 - 短すぎるテキスト。 このような問題は、すべてのセンチメント分類(分析)製品で発生します。たとえば、皮肉、それは主観的です。したがって、皮肉モデルを訓練することは困難であり、それを正しく分類するのは難しいです。しかし、これらの弱点が近い将来に排除されることを期待しましょう。

結論

上記のライブラリはすべてC#の感情分類に適していますが、GroupDocs.classificationが最も正確です。したがって、それは、大規模な大規模な言及やレビューの中で、否定的または肯定的な感情を検索するのに最適なものです。結論として、負/中性/肯定的な分類の重要なケースもあることに注意する必要があります。将来的には考慮されます。

コード

このブログポストに使用されたコードを提供します。 {{LINE_90}}