Vari servizi di classificazione del sentimento online sono ora disponibili. Giganti come Google, Amazon o Microsoft offrono le loro soluzioni cloud per l’elaborazione del linguaggio naturale. Ma se non si prevede di pagare 1-2 $ per 1000 chiamate API (il prezzo aumenta quando la revisione ha più di 1000 caratteri) e/o sei pronto a preparare il servizio di classificazione o il programma di classificazione locale, è possibile utilizzare classificatori offline. Esistono diversi classificatori .NET per il caso offline che verranno discussi in questo post. I seguenti argomenti saranno coperti qui:
-[Cos’è l’analisi del sentimento?] (#What-is-sentiment-analysis)
Che cos’è la classificazione del sentimento (analisi)?
La classificazione del sentimento è un approccio potente per comprendere meglio come si sentono i clienti riguardo ai tuoi prodotti o ai tuoi servizi. Può anche aiutarti nell’attività di monitoraggio del marchio. La classificazione dei sentimenti ti consente di classificare le emozioni e i feedback delle persone che pubblicano su social media, blog o articoli. Esistono diverse tassonomie comuni che vengono utilizzate per la classificazione del sentimento.
- Binario:
- negativo;
- positivo;
- 3-Classi:
- negativo;
- Neutro;
- positivo;
- 5 classi
- da 1 a 5 stelle In tutti i casi i sentimenti negativi sono i più importanti per l’analisi. Quindi il compito principale che il classificatore del sentimento dovrebbe risolvere sembra “quel testo è negativo?” e “Quanto è negativo?”.
metrics
La precisione è una metrica semplice e ovvia. Ha svantaggi ben noti quando le lezioni sono squilibrate. Tuttavia, può essere utilizzato nel nostro caso di classi bilanciate. È anche ampiamente usato nella letteratura scientifica. I classificatori elencati di seguito possono essere confrontati solo nelle attività di classificazione binaria perché uno di essi non ha una classe “neutra”.
Classificazione del sentimento offline (C#)
Esistono più librerie C# che potrebbero essere trovate tramite Google, Nuget E.T.C. Ma dovrebbero essere controllati manualmente perché molti di loro sono in realtà solo SDK per le API di cloud. I pacchetti successivi sono stati raccolti dopo la verifica manuale della classificazione del sentimento C# Libraries:
- GroupDocs.Classification;
- Vadersharp;
- Stanfordnlp;
- Sentimentalizer;
- Wikiled; Sono tutti una classificazione del sentimento offline C# librerie. Descriviamoli in modo più dettagliato.
groupdocs.classification
Licenza ###: File di licenza Complessità dell’installazione: facile ** Accuratezza:**93.3 (valutazione) / 96.3 (autorizzato) {.wp-block-heading} GroupDocs.Classification è una libreria con il proprio motore integrato per la classificazione del testo e dei documenti. I modelli fanno anche parte del pacchetto A NuGet. L’installazione è semplice: devi solo installare il pacchetto NUGET. C’è una differenza tra valutazione e versioni autorizzate. Per la versione di valutazione, è necessario dividere il testo in blocchi di 100 caratteri e quindi in media i risultati. GroupDocs.Classification mostra una precisione del 93,3% in modalità di valutazione e il 96,3% quando viene applicata la licenza.
vadersharp
Licenza ###: MIT Complessità dell’installazione: facile Precisione: 77,6% {.wp-bloccante} Vadersharp è una soluzione popolare per la classificazione del sentimento C# (analisi). Funziona molto rapidamente ed elabora i messaggi al secondo su un normale PC domestico, non così sulle macchine del server. L’installazione è anche semplice (basta installare NUGET pacchetto). Tuttavia, c’è anche uno svantaggio importante: l’accuratezza non è perfetta come il tempo di elaborazione. Raggiunge una precisione del 78% sul set di dati di test.
StanfordNLP
Licenza ####: GPL V2 Complessità dell’installazione: duro. Precisione: 70% {.wp-bloccante} Stanford NLP è una libreria C# basata sulla corrispondente libreria Java per l’elaborazione del linguaggio naturale. Ci sono alcune difficoltà con l’installazione. È necessario installare la versione Java di Stanford NLP e copiare i modelli nella directory corrente del programma, se necessario. Ci sono anche problemi con la compatibilità .NET Core 3.0. Il tempo di precisione e di elaborazione è instabile per questa libreria e sembrano dipendere dalla lunghezza del testo. Per i brevi testi dal set di dati SST-2, raggiunge una precisione dell'80,2% con secondi per tempo di elaborazione. Per testi più lunghi da uno a dominio incrociato, la precisione diminuisce al 70%. e il tempo di elaborazione aumenta a 1 minuto o più per testo.
sentimpationAnyzer
Licenza ###: MIT Complessità dell’installazione: media Precisione: 79,1% {.wp-bloccante} Questa libreria è ML.NET basata. Durante l’installazione, potrebbero esserci problemi relativi al lavoro di ML.NET. Questa è una libreria non sicura, richiede esplicitamente la configurazione (x86 / x64) e potrebbe essere necessario installare anche alcune dipendenze. Sentimpetimentalyzer restituisce classe positiva o negativa e punteggio corrispondente. È il motivo per cui l’attività di classificazione binaria è stata utilizzata per quel confronto. Il risultato migliore può essere ottenuto con una soglia selezionata con precisione. La precisione ha raggiunto il 79% dopo l’ottimizzazione del valore di soglia.
wikiled
Licenza: Licenza Apache 2.0
Complessità dell’installazione: semplice Accuratezza: nessuno {.wp-block-heading} Un’altra libreria di classificazione del sentimento C# è wikiled. Questa biblioteca dovrebbe essere addestrata prima di testare per produrre risultati adeguati. Quindi l’accuratezza non può essere calcolata per la libreria.
Set di dati
Abbiamo usato un set di dati incrociati per scopi di test. GroupDocs.Classification non è stato addestrato su di esso. Molto probabilmente il resto delle biblioteche non lo ha usato in formazione. Invieremo il risultato a qualsiasi parte interessata via e-mail. Si prega di creare un problema nel repository github13. 14: Stanford Sentiment Treebank (Socher et al. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In proc. EMNLP).
Risultati
La tabella 1 mostra l’accuratezza (%) per i classificatori sperimentati. Tabella 1.
Sst-2 | Inter-dominio | |
---|---|---|
GroupDocs.Classification | 93.3 (autorizzato: 94.7) | 93.3 (autorizzato: 96.3) |
SentimentalAlyzer | 58.5 | 79.1 |
Stanford NLP | 80.7 | ~ 70 |
Vadersharp | 68.7 | 77.6 |
La maggior parte di loro mostra risultati diversi per quei 2 set di dati. Sembra che la causa di tale comportamento sia che i testi SST-2 sono più corti dei testi a dominio incrociato. Ci sono stati anche alcuni arazzi durante i test della PNL di Stanford su CrossDomain per un testo più lungo di 500 caratteri. Ecco perché l’accuratezza del dominio incrociato segnato con “~”. |
Analisi ### di errori comuni {.wp-blocc-heading} Le seguenti errate classificazioni sono tipiche: _ “Come lo sono la sua stella, il suo atteggiamento e la sua oblio.” _ - Difficile capire cosa significa la persona. _ “Uno snoozer ben recitato e ben intenzionato.” _ O _ “Accidenti, un secondo Assassin Shot Kennedy?” _ - sarcasmo o ironia. _ “MOOT POINT” _ - Testi troppo brevi. Tali problemi si verificano in tutti i prodotti di classificazione del sentimento (analisi). Ad esempio, il sarcasmo, è soggettivo. Pertanto, è difficile addestrare un modello di sarcasmo e difficile classificarlo correttamente. Ma speriamo che questi punti deboli vengano eliminati nel prossimo futuro.
Conclusione
Mentre tutte le biblioteche di cui sopra sono appropriate per la classificazione del sentimento in C#, GroupDocs.Classification è la più accurata. Quindi, è il migliore per la ricerca di sentimenti negativi o positivi nei grandi enormi menzioni e/o recensioni. In conclusione, va notato che esiste anche un caso importante di classificazione negativa/neutra/positiva. Sarà anche considerato in futuro.
Codice
Forniamo un codice utilizzato per questo blog: {{LINE_90}}