현재 다양한 온라인 감정 분류 서비스가 제공됩니다. Google, Amazon 또는 Microsoft와 같은 거인은 자연어 처리를위한 클라우드 솔루션을 제공합니다. 그러나 1000 개의 API 전화에 대해 1-2 $를 지불 할 계획이 없다면 (리뷰에 1000 자 이상의 문자가있을 때 가격 인상) 및/또는 지역 분류 서비스 또는 프로그램을 준비 할 준비가되면 오프라인 분류기를 사용할 수 있습니다. 이 게시물에서 논의 될 오프라인 케이스에 대한 몇 가지 .NET 분류기가 있습니다. 다음 주제는 다음과 같습니다.
-[감정 분석 란 무엇입니까?] (#what-is-sentiment-analysis)
-결과
-결론
-암호
감정 분류 (분석) 란 무엇입니까?
감정 분류는 고객이 제품 또는 서비스에 대해 어떻게 느끼는지 더 잘 이해하는 강력한 접근 방식입니다. 또한 브랜드 모니터링 작업에 도움이 될 수 있습니다. 감정 분류를 통해 소셜 미디어, 블로그 또는 기사에 게시 한 사람들의 감정과 피드백을 분류 할 수 있습니다. 감정 분류에 사용되는 몇 가지 일반적인 분류가 있습니다.
- 바이너리 :
- 부정적인;
- 긍정적인;
- 3 클래스 :
- 부정적인;
- 중립적;
- 긍정적인;
- 5 수업
- 별 1 ~ 5 개 모든 경우에 부정적인 감정은 분석에 가장 중요합니다. 따라서 감정 분류기가 해결 해야하는 주요 작업은 “텍스트가 부정적인가?“처럼 보입니다. 그리고“얼마나 부정적인가?”.
메트릭
정확도는 간단하고 명백한 메트릭입니다. 수업이 불균형 할 때 잘 알려진 단점이 있습니다. 그러나 균형 잡힌 클래스의 경우 사용할 수 있습니다. 또한 과학 문헌에서 널리 사용됩니다. 아래 나열된 분류기 중 하나에는 “중립"클래스가 없기 때문에 이진 분류 작업에서만 비교할 수 있습니다.
오프라인 감정 분류 (C#)
Google, Nuget E.T.C.를 통해 찾을 수있는 여러 C# 라이브러리가 있습니다. 그러나 많은 사람들이 실제로 클라우드 API 용 SDK이기 때문에 수동으로 점검해야합니다. 다음 패키지는 감정 분류 C# 라이브러리의 수동 검증 후 수집되었습니다.
- GroupDocs. 클래식;
- Vadersharp;
- Stanfordnlp;
- 감지 용산소;
- 와이커 링; 그들은 모두 오프라인 감정 분류 C# 라이브러리입니다. 더 자세히 설명해 봅시다.
GroupDocs.Classification
라이센스 : 라이센스 파일
설치의 복잡성 : 쉬운 ** 정확도 :**93.3 (평가) / 96.3 (라이센스) {.wp-block-heading} GroupDocs.Classification은 텍스트 및 문서 분류를위한 자체 내장 엔진이있는 라이브러리입니다. 모델은 A Nuget 패키지의 일부입니다. 설치는 간단합니다. Nuget 패키지 만 설치하면됩니다. 평가 버전과 라이센스 버전에는 차이가 있습니다. 평가 버전의 경우 텍스트를 100 자 덩어리로 분할 한 다음 결과를 평균해야합니다. GroupDocs. CANDIFICIATION은 평가 모드에서 93.3% 정확도와 라이센스가 적용될 때 96.3%를 보여줍니다.
Vadersharp {.WP- 블록 헤드}
라이센스 : MIT
설치의 복잡성 : 쉬운 정확도 : 77.6% {.wp-block-heading} Vadersharp는 C# 감정 분류 (분석)를위한 인기있는 솔루션입니다. 매우 빠르게 작동하며 서버 시스템에 대해서는 그렇지 않은 일반 홈 PC에서 초당 메시지를 처리합니다. 설치도 간단합니다 (Nuget 패키지 만 설치). 그러나 중요한 단점도 있습니다. 정확도는 처리 시간만큼 완벽하지 않습니다. 테스트 데이터 세트에서 78% 정확도를 달성합니다.
스탠포드NLP {.WP- 블록 헤드}
라이센스 : GPL V2
설치의 복잡성 : 단단합니다. 정확도 : 70% {.WP- 블록 헤드} Stanford NLP는 자연어 처리를위한 해당 Java 라이브러리를 기반으로 한 C# 라이브러리입니다. 설치에는 어려움이 있습니다. Java 버전의 Stanford NLP를 설치하고 필요한 경우 모델을 프로그램의 현재 디렉토리에 복사해야합니다. .NET Core 3.0 호환성에는 문제가 있습니다. 이 라이브러리의 정확도와 처리 시간은 불안정하며 텍스트 길이에 따라 다릅니다. SST-2 데이터 세트의 짧은 텍스트의 경우 예제 처리 시간당 초당 80.2% 정확도를 달성합니다. Cross-Domain One의 더 긴 텍스트의 경우 정확도가 70%로 감소합니다. 처리 시간은 텍스트 당 1 분 이상 증가합니다.
Sententimanalyzer {.WP- 블록 헤드}
라이센스 : MIT
설치의 복잡성 : 매체 정확도 : 79.1% {.WP- 블록 헤드} 이 라이브러리는 ml.net 기반입니다. 설치 중에 ML.NET의 작업과 관련된 문제가있을 수 있습니다. 이것은 안전하지 않은 라이브러리이며, 구성 (x86 / x64)이 명시 적으로 필요하며 일부 종속성을 설치해야 할 수도 있습니다. Sententimanalyzer 긍정적 또는 음성 클래스 및 해당 점수를 반환합니다. 이진 분류 작업이 해당 비교에 사용 된 이유입니다. 최상의 결과는 정확하게 선택된 임계 값으로 달성 할 수 있습니다. 임계 값 최적화 후 정확도는 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.Classification | 93.3 (라이센스 : 94.7) | 93.3 (라이센스 : 96.3) |
감정가 니저 | 58.5 | 79.1 |
스탠포드 NLP | 80.7 | ~ 70 |
Vadersharp | 68.7 | 77.6 |
그들 대부분은이 두 데이터 세트에 대해 다른 결과를 보여줍니다. 그러한 행동의 원인은 SST-2 텍스트가 크로스 도메인 텍스트보다 짧은 것 같습니다. Stanford NLP 테스트 중에도 Crossdomain에서 500 자 이상의 텍스트에 대한 교수형이있었습니다. 그렇기 때문에 “~“로 표시된 크로스 도메인 정확도가 표시됩니다. |
일반적인 실수 분석
다음과 같은 분류는 일반적입니다. “별과 마찬가지로, 태도와 망각.” - 그 사람이 의미하는 바를 이해하기 어렵습니다. “잘 행동하고 잘 의도 한 스누저.” 또는 “두 번째 암살자 샷 케네디?” - 풍자 또는 아이러니. “moot point” - 너무 짧은 텍스트. 이러한 문제는 모든 감정 분류 (분석) 제품에서 발생합니다. 예를 들어, 풍자, 그것은 주관적입니다. 따라서 풍자 모델을 훈련하기가 어렵고 올바르게 분류하기가 어렵습니다. 그러나 가까운 시일 내에 이러한 약점이 제거되기를 바랍니다.
결론
위의 모든 라이브러리는 C#의 감정 분류에 적합하지만 GroupDocs.classification이 가장 정확합니다. 따라서 큰 규모의 언급 및/또는 리뷰에서 검색 부정 또는 긍정적 인 감정에 가장 적합한 것이 가장 좋습니다. 결론적으로, 부정적인/중립적/양성 분류의 중요한 사례도있다. 미래에도 고려 될 것입니다.
암호
우리는이 블로그 포스트에 사용 된 코드를 제공합니다. {{LINE_90}}