Различные услуги классификации настроений онлайн теперь доступны. Такие гиганты, как Google, Amazon или Microsoft, предлагают свои облачные решения для обработки естественного языка. Но если вы не планируете платить 1-2 $ за 1000 вызовов API (повышение цен, когда обзор имеет более 1000 символов) и/или готовы подготовить вашу локальную службу классификации или программу, то вы можете использовать автономные классификаторы. Есть несколько классификаторов .NET для офлайн -дела, которые будут обсуждаться в этом посте. Здесь будут рассмотрены следующие темы:

-[Что такое анализ настроений?] (#Что-то-анализ)

Что такое классификация настроений (анализ)?

Классификация настроений - это мощный подход, чтобы лучше понять, как клиенты относятся к вашему продукту (ов) или услугам. Это также может помочь вам в задаче мониторинга бренда. Классификация настроений позволяет классифицировать эмоции и отзывы людей, которые они публикуют в социальных сетях, блогах или статьях. Есть несколько общих таксономий, которые используются для классификации настроений.

  • Двоичный:
    • негатив;
    • положительный;
  • 3 класса:
    • негатив;
    • нейтральный;
    • положительный;
  • 5 классов
    • От 1 до 5 звезд Во всех случаях отрицательные чувства являются наиболее важными для анализа. Таким образом, основная задача, которую должен решить классификатор настроений, выглядит «Является ли этот текст отрицательный?» и «Насколько это негатив?».

Метрики {.wp-block heading}

Точность - это простая и очевидная метрика. Он имеет хорошо известные недостатки, когда занятия несбалансированы. Однако его можно использовать в нашем случае сбалансированных классов. Это также широко используется в научной литературе. Классификаторы, перечисленные ниже, можно сравнить только в бинарных задачах классификации, потому что один из них не имеет «нейтрального» класса.

Классификация автономных настроений (C#)

Есть несколько библиотек C#, которые можно найти через Google, Nuget E.T.C. Но их следует проверить вручную, потому что многие из них на самом деле просто SDK для облачных API. Следующие пакеты были собраны после ручной проверки классификации настроений C# библиотеки:

  • GroupDocs.classification;
  • Vadersharp;
  • Stanfordnlp;
  • Сентиментациянализер;
  • Wikiled; Все они являются в автономной классификации настроений C# библиотеки. Давайте опишем их более подробно.

groupdocs.classification {.wp-block heading}

Лицензия: Файл лицензии

Сложность установки: легко ** Точность:**93.3 (оценка) / 96.3 (лицензирован) {.wp-block-heding} GroupDocs.classification-это библиотека со своим собственным встроенным двигателем для классификации текста и документов. Модели также являются частью пакета A Nuget. Установка проста: вам просто нужно установить пакет Nuget. Существует разница между оценкой и лицензированными версиями. Для оценки версии вы должны разделить текст на куски 100-символов, а затем средний результаты. GroupDocs.classiation показывает точность 93,3% в режиме оценки и 96,3% при применении лицензии.

vadersharp

Лицензия: MIT

Сложность установки: легко Точность: 77,6% {.wp-block heading} Vadersharp является популярным решением для классификации настроений C# (анализ). Он работает очень быстро и обрабатывает сообщения в секунду на обычном домашнем ПК, а не о серверных машинах. Установка также проста (просто установите Nuget пакет). Тем не менее, существует также важный недостаток: точность не так идеальна, как время обработки. Он достигает 78% точности в тестовом наборе данных.

СтэнфордNLP {.wp-block heading}

Лицензия: GPL V2

Сложность установки: жестко. Точность: 70% {.wp-block-heading} Стэнфорд NLP - это библиотека C#, основанная на соответствующей библиотеке Java для обработки естественного языка. Есть некоторые трудности с установкой. Необходимо установить Java версию Stanford NLP и при необходимости скопировать модели в текущий каталог программы. Есть также проблемы с совместимостью .net Core 3.0. Точность и время обработки нестабильны для этой библиотеки и, кажется, зависят от длины текста. Для коротких текстов из набора данных SST-2 он достигает 80,2% точности с секундами на пример времени обработки. Для более длинных текстов из кросс-домены точность снижается до 70%. и время обработки увеличивается до 1 минуты или более на текст.

sentimentAnalyzer

Лицензия: MIT

Сложность установки: средняя Точность: 79,1% {.wp-block heading} Эта библиотека ml.net-основанная. Во время установки могут быть проблемы, связанные с работой ML.net. Это небезопасная библиотека, она требует явно конфигурации (x86 / x64), и вам, возможно, потребуется также установить некоторые зависимости. TentimentAnalyzer возвращает положительный или отрицательный класс и соответствующий балл. Это причина, почему для этого сравнения использовалась задача бинарной классификации. Лучший результат может быть достигнут с помощью точно выбранного порога. Точность достигла 79% после оптимизации порогового значения.

wikiled

Лицензия: Apache License 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.classiation93.3 (лицензирован: 94,7)93.3 (лицензирован: 96,3)
SentimentAnalyzer58,579,1
Стэнфорд NLP80,7~ 70
Vadersharp68,777,6
Большинство из них показывают разные результаты для этих двух наборов данных. Кажется, что причина такого поведения заключается в том, что тексты SST-2 короче, чем трансмийные тексты. Во время тестирования Стэнфордского НЛП также были некоторые повешения на Crossdomain для текста более 500 символов. Вот почему точность кросс-домена, отмеченная «~».

Анализ общих ошибок {.wp-block heading}

Типичные ошибочные классификации являются типичными: _ «Как и ее звезда, ее отношение и ее небрежность». _ - Трудно понять, что означает человек. _ «Хорошо действительный и хорошо намеренный снузер. _ «Средний пункт» _ - Слишком короткие тексты. Такие проблемы возникают во всех продуктах классификации настроений (анализ). Например, сарказм, он субъективен. Поэтому трудно тренировать модель сарказма и трудно ее правильно классифицировать. Но будем надеяться, что эти слабости будут устранены в ближайшем будущем.

Заключение

В то время как все вышеперечисленные библиотеки являются применимыми для классификации настроений в C#, GroupDocs.classiation является наиболее точным. Таким образом, это лучший для поиска негативных или положительных настроений в больших массовых упоминаниях и/или обзорах. В заключение следует отметить, что существует также важный случай отрицательной/нейтральной/положительной классификации. Это также будет рассмотрено в будущем.

Код

Мы предоставляем код, который использовался для этого блога: {{LINE_90}}