Şimdi çeşitli çevrimiçi duygu sınıflandırma hizmetleri mevcuttur. Google, Amazon veya Microsoft gibi devler, doğal dil işleme için bulut çözümlerini sunar. Ancak 1000 API çağrısı için 1-2 $ ödemeyi planlamıyorsanız (incelemenin 1000’den fazla karaktere sahip olduğunda fiyat artışları) ve/veya yerel sınıflandırma hizmetinizi veya programınızı hazırlamaya hazırsanız, çevrimdışı sınıflandırıcılar kullanabilirsiniz. Bu yazıda tartışılacak çevrimdışı dava için birkaç .NET sınıflandırıcısı vardır. Aşağıdaki konular burada ele alınacak:

-[Duygu analizi nedir?] (#Ne-intiment-analizi)

Duygu sınıflandırması nedir (analiz)?

Duygu sınıflandırması, müşterilerin ürün (ler) veya hizmet (ler) hakkında ne hissettiklerini daha iyi anlamak için güçlü bir yaklaşımdır. Ayrıca marka izleme görevinde size yardımcı olabilir. Duygu sınıflandırması, insanların sosyal medyada, bloglarda veya makalelerde yayınladıkları duygularını ve geri bildirimlerini sınıflandırmanıza olanak tanır. Duygu sınıflandırması için kullanılan birkaç ortak taksonomi vardır.

  • İkili:
    • olumsuz;
    • pozitif;
  • 3 sınıflar:
    • olumsuz;
    • doğal;
    • pozitif;
  • 5 sınıf
    • 1 ila 5 yıldız arasında Tüm durumlarda, olumsuz duygular analiz için en önemlisidir. Duygu sınıflandırıcısının çözülmesi gereken ana görev, “Bu metin negatif mi?” Gibi görünüyor. ve “Ne kadar olumsuz?”.

Metrics {.wp-blok başlık}

Doğruluk basit ve bariz bir metriktir. Sınıflar dengesiz olduğunda iyi bilinen dezavantajlara sahiptir. Ancak, dengeli sınıflarımızda kullanılabilir. Bilimsel literatürde de yaygın olarak kullanılmaktadır. Aşağıda listelenen sınıflandırıcılar yalnızca ikili sınıflandırma görevlerinde karşılaştırılabilir, çünkü bunlardan birinin “nötr” sınıfı yoktur.

Çevrimdışı Duygu Sınıflandırması (C#)

Google, Nuget E.T.C. Ancak manuel olarak kontrol edilmelidirler çünkü birçoğu aslında sadece bulut API’leri için SDK’lardır. Sonraki paketler, Duygu Sınıflandırması C# kütüphanelerinin manuel olarak doğrulanmasından sonra toplanmıştır:

  • Groupdocs.classication;
  • Vadersharp;
  • Stanfordnlp;
  • Sentimentanalyzer;
  • Wiked; Hepsi çevrimdışı duygu sınıflandırması C# kütüphanelerdir. Onları daha ayrıntılı olarak tarif edelim.

Groupdocs.classification {.wp-blok başlık}

Lisans: Lisans Dosyası

Kurulumun karmaşıklığı: Kolay ** Doğruluk:**93.3 (Değerlendirme) / 96.3 (lisanslı) {.wp-blok başlık} GroupDocs.classification metin ve belge sınıflandırması için kendi yerleşik motoruna sahip bir kütüphanedir. Modeller aynı zamanda A Nuget paketinin bir parçasıdır. Kurulum basittir: Nuget paketini yüklemeniz gerekir. Değerlendirme ve lisanslı sürümler arasında bir fark vardır. Değerlendirme sürümü için, metni 100 karakterlik parçalara ayırmalı ve ardından sonuçları ortalamanız gerekir. Groupdocs.classication, değerlendirme modunda% 93,3 ve lisans uygulandığında% 96,3’ü göstermektedir.

Vadersharp {.wp-blok başlıklı}

Lisans: MIT

Kurulumun karmaşıklığı: Kolay Doğruluk:% 77.6 {.wp-blok başlığı} Vadersharp C# Duygu Sınıflandırması (analiz) için popüler bir çözümdür. Çok hızlı çalışır ve sunucu makineleri hakkında değil, normal bir ev bilgisayarında saniyede mesajları işler. Kurulum da basittir (sadece nuget paketi yükleyin). Bununla birlikte, önemli bir dezavantaj da vardır: doğruluk işlem süresi kadar mükemmel değildir. Test veri kümesinde% 78 doğruluk elde eder.

StanfordNLP {.wp-blok başlıklı}

Lisans: GPL V2

Kurulumun karmaşıklığı: Zor. Doğruluk:% 70 {.wp-blok başlığı} Stanford NLP, doğal dil işleme için ilgili Java kütüphanesine dayanan bir C# kütüphanesidir. Kurulumla ilgili bazı zorluklar var. Stanford NLP ‘in Java sürümünü yüklemek ve gerekirse modelleri programın geçerli dizine kopyalamak gerekir. .NET Core 3.0 uyumluluğu ile ilgili sorunlar da vardır. Doğruluk ve işleme süresi bu kütüphane için kararsızdır ve metin uzunluğuna bağlı gibi görünmektedir. SST-2 veri kümesindeki kısa metinler için, örnek işlem süresi başına saniye ile% 80,2 doğruluk elde eder. Araçlar arası bir metin için doğruluk%70’e düşer. ve işlem süresi metin başına 1 dakikaya veya daha fazla artar.

Sentimentanalyzer {.wp-blok başlıklı}

Lisans: MIT

Kurulumun karmaşıklığı: Orta Doğruluk:% 79.1 {.wp-blok başlığı} Bu kütüphane ml.net tabanlıdır. Kurulum sırasında, Ml.net’in çalışmasıyla ilgili sorunlar olabilir. Bu güvenli olmayan bir kitaplıktır, yapılandırma (x86 / x64) açıkça gerektirir ve bazı bağımlılıklar da yüklemeniz gerekebilir. Sentimentanalyzer pozitif veya negatif sınıf ve karşılık gelen puanı döndürür. Bu karşılaştırma için ikili sınıflandırma görevinin kullanılmasının nedeni budur. En iyi sonuç, kesin olarak seçilen bir eşikle elde edilebilir. Eşik değerinin optimizasyonundan sonra doğruluk% 79’a ulaştı.

Wiked {.wp-blok başlık}

Lisans: Apache Lisans 2.0

Kurulumun karmaşıklığı: basit Doğruluk: Yok {.wp-blok başlığı} Başka bir C# Duygu Sınıflandırma Kütüphanesi Wikiled ‘dir. Bu kütüphane, yeterli sonuç üretmek için test yapmadan önce eğitilmelidir. Dolayısıyla doğruluk kütüphane için hesaplanamaz.

Veri kümeleri

Test amacıyla alanlar arası bir veri kümesi kullandık. GroupDocs.sclassification üzerinde eğitilmemiştir. Kütüphanelerin geri kalanı büyük olasılıkla bunu eğitimde de kullanmadı. Sonucu ilgili tarafa e-posta ile göndereceğiz. Lütfen ilgili GitHub repo’da bir sorun oluşturun. 14: Stanford Sentiment Treebank (Socher et al. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In proc. EMNLP).

Sonuçlar

Tablo 1, denenmiş sınıflandırıcılar için doğruluğu (%) göstermektedir. Tablo 1.

SST-2Çapraz alan
Groupdocs.sclassication93.3 (Lisanslı: 94.7)93.3 (Lisanslı: 96.3)
Candomentanalyzer58.579.1
Stanford NLP80.7~ 70
Vadersharp68.777.6
Çoğu bu 2 veri kümesi için farklı sonuçlar gösterir. Bu tür davranışların nedeni, SST-2 metinlerinin alan arası metinlerden daha kısa olduğu görülmektedir. Stanford NLP testi sırasında 500 karakterden daha uzun metin için CrossDomain’de bazı asmalar vardı. Bu nedenle “~” ile işaretlenmiş alan arası doğruluk.

Yaygın hataların analizi {.wp-blok başlığı}

Aşağıdaki yanlış sınıflandırmalar tipiktir: _ “Yıldızı, tutumu ve kayıtsızlığı gibi.” _ - Kişinin ne anlama geldiğini anlamak zor. _ “İyi hareketli ve iyi niyetli bir Snoozer.” _ Veya _ “Gee, ikinci bir suikastçı Kennedy’yi vurdu mu?” _ - alay veya ironi. _ “Tartışmalı nokta” _ - çok kısa metinler. Bu tür sorunlar tüm Duygu Sınıflandırma (analiz) ürünlerinde meydana gelir. Örneğin, alaycı, özneldir. Bu nedenle, bir alay modeli eğitmek zordur ve doğru bir şekilde sınıflandırmak zordur. Ama umarım bu zayıflıklar yakın gelecekte ortadan kaldırılacak.

Çözüm

Yukarıdaki tüm kütüphaneler C#‘daki duygu sınıflandırması için uygun olsa da, GroupDocs.classification en doğru olanıdır. Bu nedenle, büyük büyük sözler ve/veya incelemelerde arama negatif veya olumlu duygular için en iyisidir. Sonuç olarak, önemli bir negatif/nötr/pozitif sınıflandırma vakası olduğu belirtilmelidir. Gelecekte de dikkate alınacak.

Kodlamak

Bu blog yazısı için kullanılan bir kod sunuyoruz: {{LINE_90}}