Я здесь когда-то молчал. На этот раз я решил написать на эту тему, потому что не смог найти исчерпывающего руководства о том, как можно провести анализ настроений на основе аспектов. Итак, надеясь, что это может послужить цели.

Первая половина этой статьи состоит из общей интуиции, а оставшаяся половина - из технических деталей с кодом.

Хорошо! Давайте начнем.

Что ж, к настоящему времени тысячи фирм по всему миру используют анализ настроений, чтобы понимать голос клиента. По моему личному мнению, его повсеместность со временем будет только увеличиваться.

Для тех, кто не знаком с анализом настроений, в двух словах, это не что иное, как обзор / отзыв, который в текстовой форме анализируется и классифицируется с настроением как положительное / отрицательное. Сегодня мы рассмотрим следующий уровень анализа - анализ настроений на основе аспектов (A.B.S.A).

Чтобы помочь вам получить обзор A.B.S.A, ниже приведен такой же пример:

E.g :

Рассмотрим этот обзор известного шоу «ВЫ» на netflix:

«Мне очень понравился стиль повествования шоу. Игра была потрясающей. Это было уникально в нынешнюю эпоху телешоу. Однако кульминация могла быть лучше. "

Я запустил модель анализа настроений с помощью библиотеки textblob, и она классифицировала обзор в целом как ПОЛОЖИТЕЛЬНЫЙ.

Это хорошо. Прочитав этот обзор, любой может сказать, что это был скорее положительный отзыв. На этом традиционный анализ настроений заканчивается общим мнением о том, положительный или отрицательный отзыв.

Давайте посмотрим, как A.B.S.A поможет в достижении лучших результатов.

В том же обзоре были получены результаты, показанные ниже, с использованием анализа тональности на основе аспектов.

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

Преимущества A.B.S.A:

  • В эту цифровую эпоху каждый день приходят тысячи отзывов. Прочитать их все - огромная задача. A.B.S.A помогает достичь этой цели, выделяя только важные аспекты.
  • Большинство пользователей пишут отзывы в конструктивном стиле, что, в свою очередь, дает положительное мнение, хотя в нем есть отрицательный элемент (как показано выше в примере отзыва «ВЫ»). Следовательно, есть вероятность упустить важную информацию.

Надеюсь, вы теперь поняли «почему», стоящее за A.B.S.A.

Простыми словами,

Идея понять, о чем конкретно пользователи пытаются сообщить через отзывы / отзывы? Если они счастливы, то какой главный драйвер их радует? Если это не так, то какой главный фактор влияет на восприятие пользователем?

Соответствующие действия могут быть предприняты только тогда, когда они поняты на детальном уровне. Это помогает повысить качество бизнес-аналитики.

Вот реализованное мной решение:

В общем, я использовал лингвистические способности spacy, чтобы понять основную грамматику языка, используемого при написании обзоров, а затем я написал несколько текстовых правил для извлечения аспектов.

Не волнуйтесь, если это звучит сбивающе с толку. Прочтите, и вы поймете, что после изучения примера это будет действительно легко.

Хорошо, представьте, что двое ваших близких друзей купили один и тот же товар на Amazon.

Если вы попросите их написать отзыв о продукте, это может быть 2 разных стиля отзывов. Словарь, используемый каждым из них, может быть УНИКАЛЬНЫМ. Но вот загвоздка: основные части словарного запаса в обзорах будут ОБЩИЕ. Это, в свою очередь, помогает уловить общий языковой образец.

Надеюсь, теперь это имеет смысл. Если нет, то пример ниже прояснит это.

Давайте просто учтем, что ниже приведены отзывы, оставленные вашими друзьями:

Друг 1: дизайн продукта был действительно удобным, но его качество сильно раздражало.

Друг 2: Дизайн продукта был восхитительным, но в целом покупка оказалась неутешительной.

Ниже приведены аспекты, извлеченные из двух вышеупомянутых обзоров:

Из приведенных выше результатов я могу с уверенностью сказать, что пользователи довольны дизайном продукта, но не довольны его качеством. Следовательно, можно сделать упор на улучшение качества при сохранении единообразия дизайна. Лично я считаю, что этот уровень детализации полезен и улучшает способность принимать более обоснованные решения.

Давайте разберемся в лингвистической модели каждого из этих аспектов:

1.) разочаровывающая покупка: [разочаровывающая - прилагательное, покупка - существительное]

2.) потрясающий дизайн: [дизайн - прилагательное, потрясающий - существительное]

Что здесь за закономерность? Выделите аспект из текста, если после существительного следует прилагательное.

Ниже приведен простой код Python, который извлекает аспекты для двух вышеупомянутых:

Насколько это было легко? Точно так же аспекты для остальных обзоров были извлечены с использованием следующего правила:

1.) дизайн продукта - действительно удобный:

(Изделие - СУЩЕСТВИТЕЛЬНОЕ, дизайн - СУЩЕСТВИТЕЛЬНОЕ, действительно - ADV, удобное - ADJ)

2.) качество продукции - сильно раздражает.

(Продукт - СУЩЕСТВИТЕЛЬНОЕ, качество - СУЩЕСТВЕННОЕ, чрезвычайно - ADV, раздражает - ADJ)

Что здесь за закономерность?

Выделите аспект из текста, если за прилагательным следует наречие, за которым следует составное существительное (существительное, за которым следует существительное).

Ниже приведен фрагмент того же кода:

Я уверен, что вам должно быть интересно, насколько динамичен этот подход? Сколько правил вы бы написали, чтобы охватить все аспекты с тысячами обзоров.

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

Решение простое:

  • Если вы внимательно прочитали эту статью, вы, должно быть, поняли, что словарный запас может отличаться, но лежащий в основе грамматический шаблон почти не отличается.
  • Конечно, некоторые аспекты будут упущены. Рассматривайте это с точки зрения точности - даже обычные задачи регрессии / классификации с использованием глубоких нейронных сетей не дадут точности 100%. Даже здесь определенно будут исключения, которые правила не могут учесть. Однако большинство аспектов можно выделить.

В моем проекте я использовал около 14 правил, основанных на выборке из 100 обзоров, в качестве обучающего набора, и я смог извлечь 1500 аспектов из 800 обзоров. Я не могу поделиться кодом по причинам соответствия, но я уверен, что вы уже поняли, насколько легко извлечь аспекты.

В следующей части этой статьи рассказывается еще немного о технических деталях. Вы можете дойти до конца этой статьи , если хотите пропустить и расслабиться!

Запомните несколько шагов, которые помогут улучшить результаты:

  1. Стоп-слова: они играют очень важную роль в выявлении аспектов. Иногда теги частей речи могут создавать много двусмысленности. ›Пример: такие слова, как« фактически »,« в основном »,« изначально »и т. Д. Люди используют их часто! Поскольку это наречия, это может создать шум при извлечении аспекта. Следовательно, важно тщательно подбирать стоп-слова, которые, в свою очередь, могут дать нам аккуратные аспекты без шума.
  2. Обозначьте предложение: очевидно, что каждый отзыв / отзыв содержит более одного предложения. Когда специальные символы удалены, весь обзор теперь станет одним предложением, что создает двусмысленность. Следовательно, разделите текст на предложения, а затем извлеките аспекты из каждого предложения.
  3. Аспект должен иметь смысл: иногда аспекты возникают таким образом, что глагол-наречие или существительное-прилагательное (т. е. важные слова расположены очень близко друг к другу без поддерживающих стоп-слов. Таким образом, для читателей не так интуитивно понятно извлекать много информации из аспекта.

Пример:

Обратите внимание на этот отзыв: «Я был очень доволен общением на всем протяжении». Аспект извлеченного сообщения удаления стоп-слов - «очень удачного общения».

Достаточно ли интуитивно понятно? Может быть! Но представьте себе, что вы читаете сотни аспектов на ломаном английском. Следовательно, извлеките текст между первым и последним словом аспекта. Это приведет к появлению разумных аспектов, таких как «очень доволен общением» вместо «очень рад общению».

Разве так не лучше?

Ниже приведен код того же.

4.) Удалите избыточные аспекты:

Может быть несколько повторяющихся аспектов, таких как [«стиль повествования», «понравившийся стиль повествования», «действительно понравившийся стиль повествования»].

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

Вот и все!!

С учетом сказанного, теперь мы поняли силу анализа тональности на основе аспектов и как его можно использовать для получения ценной информации из текстовых данных.

Спасибо за чтение, и я надеюсь, что вы нашли эту статью полезной. Дайте мне знать, если возникнут сомнения, я с радостью отвечу!

Поскольку это моя первая статья на Medium, я буду признателен за ваши отзывы, которые, в свою очередь, помогут мне в моих будущих публикациях.

Хорошего дня! Удачного обучения! :)

Мы можем подключиться к Linkedin - https://www.linkedin.com/in/kaushik-jagini-b76ba2139