現在提供各種在線情感分類服務。諸如Google,Amazon或Microsoft之類的巨頭為自然語言處理提供了雲解決方案。但是,如果您不打算為1000個API呼叫支付1-2美元(當審核具有超過1000個字符時的價格上漲)和/或準備準備您的本地分類服務或程序,則可以使用離線分類器。本文將在本文中討論一些脫機情況的.NET分類器。 以下主題將在此處介紹:

  • [什麼是情感分析?](#什麼 - 句子 - 分析)

-離線情感分析c

-數據集

-結果

-結論

-代碼

什麼是情感分類(分析)?

情感分類是一種強大的方法,可以更好地了解客戶對您的產品或服務的感覺。它還可以幫助您完成品牌監控任務。情感分類使您可以對他們在社交媒體,博客或文章中發布的人們的情緒和反饋進行分類。有幾種常見的分類法用於情感分類。

  • 二進制: * 消極的; * 積極的;
    • 3類:
      • 消極的;
      • 中性的;
      • 積極的;
    • 5堂課
  • 從1到5星 在所有情況下,負面情緒是分析最重要的。因此,情感分類器應該解決的主要任務看起來像“文字是負面的?”和“這有多少負面?”。

度量

準確性是一個簡單明顯的指標。當課程不平衡時,它具有眾所周知的缺點。但是,它可以用於我們的平衡課程。它也被廣泛用於科學文獻中。 下面列出的分類器只能在二進制分類任務中進行比較,因為其中一個沒有“中性”類。

離線情感分類(C#)

有多個C#庫可以通過Google,Nuget E.T.C.找到。但是應該手動檢查它們,因為其中許多實際上只是雲API的SDK。在手動驗證情感分類c#庫後,收集了下一個軟件包:

  • groupDocs.Classification;
  • vadersharp;
  • Stanfordnlp;
  • sentermentanalyzer;
  • wikiled; 他們都是離線情感分類C#庫。讓我們更詳細地描述它們。

groupdocs.classification

許可證:許可證文件

安裝的複雜性:簡單 **準確性:**93.3(評估) / 96.3(許可){.wp-block-neading} groupDocs.classification是一個具有自己內置引擎的庫,用於文本和文檔分類。模型也是A Nuget軟件包的一部分。安裝很簡單:您只需要安裝Nuget軟件包即可。評估版本和許可版本之間存在差異。對於評估版本,您應該將文本分為100個字符的塊,然後平均結果。 GroupDocS.分類顯示在評估模式中的精度為93.3%,使用許可證時為96.3%。

vadersharp

許可證:麻省理工學院

安裝的複雜性:簡單 精度:77.6%{.WP-Block-neading} Vadersharp是C#情感分類的流行解決方案(分析)。它可以很快工作,並在普通的家用PC上每秒處理消息,而不是服務器機器。安裝也很簡單(只需安裝Nuget軟件包)。但是,還有一個重要的缺點:準確性不如處理時間那麼完美。它在測試數據集上達到了78%的精度。

StanfordNLP

####許可證:GPL V2 安裝的複雜性:硬。 精度:70%{.WP-Block-neading} Stanford NLP是基於自然語言處理的相應Java庫的C#庫。安裝有一些困難。有必要安裝Stanford NLP的Java版本,並在必要時將模型複製到程序的當前目錄。 .NET Core 3.0兼容性也存在問題。該庫的準確性和處理時間不穩定,似乎取決於文本長度。對於SST-2數據集的簡短文本,它可以通過示例處理時間秒實現80.2%的精度。對於跨域一的較長文本,精度降至70%。每個文本的處理時間增加到1分鐘或更多。

MentimentAnalyzer

許可證:麻省理工學院

安裝的複雜性:媒介 精度:79.1%{.WP-Block-neading} 該庫為ml.net基於。在安裝過程中,可能存在與ML.NET的工作有關的問題。這是一個不安全的庫,它需要明確的配置(x86 / x64),並且您可能還需要安裝一些依賴項。 MentimentAnalyzer返回正類別或負類和相應的分數。這就是將二進制分類任務用於該比較的原因。最好的結果可以通過精確選擇的閾值來實現。優化閾值後,精度達到了79%。

wikiled

許可證:Apache許可證2.0

安裝的複雜性:簡單 精度:無{.wp-block-neading} 另一個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)
senterimentanalyzer58.579.1
斯坦福大學NLP80.7〜70
vadersharp68.777.6
其中大多數顯示了這兩個數據集的不同結果。這種行為的原因似乎是SST-2文本比跨域文本短。斯坦福NLP測試在Crossdomain上的文本超過500個字符的雜種測試中也有一些懸掛。這就是為什麼以“〜”標記的跨域精度的原因。

常見錯誤分析

以下錯誤分類是典型的: _“就像它的明星,它的態度和遺忘一樣。” _ - 很難理解該人的含義。 _“一個表現良好且有意出色的偵探。” “ gee,第二次刺客射擊肯尼迪?” _ - 諷刺或諷刺。 _“ moot點” _ - 太短文本。 此類問題發生在所有情感分類(分析)產品中。例如,諷刺,它是主觀的。因此,很難訓練諷刺模型,並且很難正確對其進行分類。但是,我們希望這些弱點將在不久的將來消除。

結論

雖然上述所有庫都是C#中的情感分類,但groupDocs.classification是最準確的。因此,在大量提及和/或評論中,這是搜索負面或積極情緒的最佳選擇。總之,應該指出的是,還有一個重要的情況,即負/中性/陽性分類。將來還將考慮它。

代碼

我們提供了用於此博客的代碼: {{LINE_90}}