Настройка узла Анализ тональности
Данный узел или опция доступны, только если они включены в лицензии PolyAnalyst Server.

Окно настроек узла имеет четыре вкладки: Колонки, Тональности, Словари и Общие.

Настройка вкладки Колонки выполняется автоматически, поскольку узел Анализ тональности принимает только одну колонку, которая уже была выбрана и обработана предшествующим узлом Индекс.

Если узел Индекс не используется или вы работаете более чем с одной текстовой колонкой, необходимо указать текстовую колонку вручную.

Подробную информацию о выборе колонок см. здесь.

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

Настройка вкладки Тональности

Вкладка Тональности выглядит следующим образом:

sa sentiments.rus

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

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

sa sentiments check.rus

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

sa sentiments color.rus

По умолчанию зеленая подсветка используется для средств положительной оценки, красная – для отрицательной.

Для настройки некоторых дополнительных параметров извлечения элементов стандартных типов тональностей, выберите нужный тип тональности в списке и нажмите на кнопку Настройки на панели инструментов. Обратите внимание на то, что кнопка становится активной только после того, как вы выберете тип тональности в списке.

sa sentiments options.rus

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

Опция Показывать только явные объекты позволяет отфильтровать и скрыть из отчета узла те тональности, которые не имеют конкретного объекта (колонка Object в отчете узла является пустой).

sa sentiments explicit.rus

В поле Объект по умолчанию можно ввести значение, которое будет отображаться в колонке Object, если тональность не имеет конкретного объекта, т.е. объект тональности не упоминается в исходном тексте.

sa sentiments object.rus

По умолчанию в таких случаях используется значение <general evaluation> (общая оценка).

Например, такое значение будет отображено в колонке Object для исходного текста "приятно удивило", если опция Показывать только явные объекты отключена (поведение по умолчанию). В противном случае данная запись исключается из отчета узла.

Поле Описание в нижней части вкладки отображает описание типов тональностей текста, выбранных в списке выше.

sa sentiments description.rus

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

sa sentiments domain.rus

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

Например, если вас интересует качество еды в ресторане, то для получения точного результата следует выбрать домен Restaurants (Рестораны), а не Technology (Технологии) или Finance (Финансы), где еда не упоминается.

Опция Автоматически определять домен таблицы позволяет узлу определить домен исходной колонки самостоятельно.

Например, слово мало может быть как положительной, так и отрицательной или даже нейтральной характеристикой объекта.

В домене Restaurants (Рестораны) в сочетании со словами, обозначающими ингредиент блюда, слово мало обычно содержит в себе негативную оценку, например, мало бекона в сэндвичах.

В домене Technology (Технологии) в контексте со словом память слово мало также будет негативным: в смартфоне мало оперативной памяти. При этом в контексте, связанном с потреблением расходных материалов, слово мало несет в себе позитивное значение: потребляет мало электроэнергии.

Настройки узла позволяют выбрать следующие домены:

  • General (Общий) – применяется к текстам любой тематики, поскольку извлекает модель для любого домена. Если среди предложенных доменов нет нужного вам домена, то необходимо выбрать общий домен. Вы также можете создать собственную онтологию (семантический словарь) и использовать его в качестве домена.

  • Finance (Финансы) – применяется к текстам о финансовых организациях, а также к отзывам клиентов об этих организациях, например, банках.

  • Insurance (Страхование) – применяется к текстам о страховых организациях, а также к отзывам клиентов об этих организациях.

  • Restaurants (Рестораны) – применяется к текстам о предприятиях общественного питания, а также к отзывам клиентов об этих организациях.

  • Technology (Технологии) – применяется к текстам об устройствах (принтеры, мониторы и т.д.) и отзывам о них.

  • Hospitality (Гостиничный бизнес) – применяется к текстам о гостиничной индустрии и к отзывам клиентов об этих организациях.

  • Development (Недвижимость) – применяется к текстам об организациях, работающих в индустрии недвиижимости и строительного рынка, а также к отзывам клиентов об этих организациях.

  • Medicine (Медицинские услуги) – применяется к текстам о медицинских организациях, а также к отзывам клиентов об этих организациях.

  • Airlines (Авиаперевозки) – применяется к текстам об организациях, работающих в индустрии авиаперевозок, а также к отзывам клиентов об этих организациях.

Домены классифицируют объекты в соответствии с аспектами.

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

Пользовательский тип тональностей

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

sa sentiments new.rus

Нажмите на кнопку Настройки на панели инструментов для того, чтобы настроить извлечение из текста элементов тональности пользовательского типа. Откроется новое диалоговое окно с несколькими вкладками: Редактор правил, Фильтры, Постобработка, Разрешение конфликтов и Общие.

Вкладка Редактор правил используется для ввода XPDL-правил для извлечения пользовательских тональностей.

sa sentiments editor.rus

За дополнительной информацией см. руководство по XPDL.

Тестовая панель внизу страницы позволяет пользователям до выполнения узла просматривать результаты работы XPDL-правила. Более подробно использование тестовой панели описано в разделе, посвященном настройке узла Извлечение сущностей.

Использование фильтров

Вкладка Фильтры позволяет пользователям указывать, какие значения необходимо отобразить в отчете узла. Например, если вы исследуете отзывы клиентов о сети отелей (см. файл CommentCardData.csv из тренировочного набора данных), вы можете настроить фильтр для того, чтобы в отчете узла отображались только определенные объекты (например, персонал).

sa filters.rus

Редактирование фильтра для отдельного типа тональностей аналогично настройке узла Фильтрация строк.

Для того, чтобы настроить фильтр, перейдите на вкладку Фильтры выбранного типа тональностей, к которому вы хотите применить выбранный фильтр. Для этого нажмите на кнопку с изображением плюса на панели инструментов:

sa filters new.rus

Для создания фильтра мы используем следующее SRL-выражение в качестве примера: [parameter] = "Name".

Список параметров доступен в меню Колонки, список операций – в меню Функции. Колонки и операции из списков вставляются в поле редактора выражения с помощью двойного щелчка левой кнопкой мыши. Вы также можете изменить шрифт и цвет фона элементов выражения.

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

  • Откройте вкладку Фильтры для настройки положительной тональности.

  • Создайте новый фильтр (например, "нравиться").

  • Выберите колонку Evaluation (Оценка), используя меню Колонки.

  • Присвойте ей значение "нравиться".

sa evaluation.rus

По окончании нажмите OK для того, чтобы сохранить фильтр и закрыть окно. Вкладка Фильтры закроется, и вы вернетесь на вкладку Тональности. Существующие фильтры можно редактировать и отключать. После выполнения узла в отчете будут отображены только отфильтрованные результаты.

Рассмотрим еще один пример. Предположим, что мы хотим в отчете узла отобразить только сильно отрицательные (со степенью отрицательной тональности -3 …​ -5) отзывы клиентов о купленном автомобиле. Для этого необходимо настроить новый фильтр:

  • Откройте вкладку Фильтры, выбрав отрицательную тональность.

  • Создайте новый фильтр (например, "автомобиль").

  • Используя меню Колонки, выберите колонку HeadObject.

  • Присвойте ей значение "автомобиль".

  • Вставьте оператор "and", чтобы объединить в выражении два условия (операторы доступны для выбора в меню Операторы).

  • Используя меню Колонки, выберите колонку Degree.

  • Присвойте ей значение "< -2":

sa evaluation complex.rus

Нажмите OK.

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

sa filters view.rus
Постообработчики узла Анализ тональности

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

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

Постобработчик Sentiments (Тональности)

Постобработчик Sentiments позволяет пользователям настраивать нормализацию регистра атрибутов сущностей в отчете узла и создавать головной объект (HeadObject).

sa postprocessors.rus

Используя постобработчик Sentiments, вы можете настроить алгоритм нормализации регистра для всех атрибутов. По умолчанию, постобработчик для головных объектов, объектов и субъектов всегда заменяет заглавные буквы строчными, например, слово "Отличный" в выражении "Отличный автомобиль" будет написано как "отличный".

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

sa view from ee.rus

Другая функция постобработчика состоит в создании головного объекта. Он выбирает сущности, которые не были обнаружены узлом Извлечение сущностей, и запускает алгоритм извлечения ключевых слов. Если ключевое слово извлечь не удается, ячейка с головным объектом остается пустой.

Постобработчик StopList (список Стоп-слов)

Постобработчик StopList позволяет исключать из анализа ненужные слова и фразы, например, слова, которые не имеют собственного лексического значения (артикли, предлоги и др.) и любой "шум", не относящийся к атрибуту сущности. Списки стоп-слов позволяют отфильтровывать слова, которые пользователю не нужны, но их появление в отчете узла сложно предусмотреть при составлении правил.

sa mystop list.rus

Настройки постобработчика StopList содержат такие колонки, как Атрибут и Класс стоп-слов. Колонка Атрибут заполняется именем атрибута сущности из правила. Имена атрибутов можно выбрать из выпадающего списка.

sa stop list att menu.rus

Колонка Класс стоп-слов содержит имя класса слов из словаря стоп-слов. Вы можете использовать несколько классов слов, перечисляя названия классов через запятую.

sa stop list several.rus

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

sa dicts stoplists.rus

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

sa stoplist menu.rus

В новом диалоговом окне выберите часть речи и нажмите OK.

sa stoplist dialog.rus

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

sa add stoplist.rus
Постобработчик Normalization (Нормализация)

Постобработчик Normalization позволяет пользователям изменять форматирование атрибутов сущностей в отчете узла.

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

sa normalization.rus

Узел Анализ тональности выполняет слияние синонимов для всех атрибутов. При выполнении этой операции происходит объединение атрибутов сущности на основе из семантического сходства, что позволяет обобщать результаты для целого класса объектов. Атрибуты могут быть объединены, если они принадлежат к одной группе в словаре синонимов (например, "аккуратный" и "опрятный", "молодой" и "юный").

Для того, чтобы настроить слияние синонимов, узел Анализ тональности должен использовать словарь синонимов. Убедитесь в том, что словарь синонимов подключен на вкладке Словари.

sa syn dicts.rus

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

Предположим, мы имеем дело с корпусом текстов отзывов покупателей, в которых слова "внедорожник" и "джип" используются как синонимы, например:

  • Хороший внедорожник за сравнительно небольшую цену.

  • Отличное авто, хороший джип.

До слияния синонимов для головного объекта "внедорожник" в отчете узла частота элементов положительной и отрицательной тональности будет отображена следующим образом:

sa syn before merging.rus

Чтобы добавить новые слова в словарь синонимов из окна просмотра результатов узла Анализ тональности:

  • Откройте вкладку Сводный отчет.

  • Выберите слова, которые хотите добавить в качестве синонимов ("внедорожник" и "джип").

  • Нажмите правой кнопкой мыши на выбранные слова.

  • Выберите опцию Добавить в словари.

  • Выберите словарь синонимов.

sa how to add syn.rus

При необходимости выберите часть речи в новом окне. Нажмите OK.

sa syn to add.rus

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

Выбранные слова также можно добавить в словарь синонимов, используя кнопку Добавить на вкладке Словари внизу страницы (по аналогии со словарем стоп-слов).

После того, как слова "внедорожник" и "джип" будут зарегистрированы в словаре как синонимы, вы можете использовать опцию объединения синонимов. Результат для головного объекта "внедорожник" изменится следующим образом:

sa after syn merging.rus

Как показано выше, слово "внедорожник" в списке головных объектов теперь выделено фиолетовым шрифтом, который означает, что это слово имеет синоним в используемом узлом словаре синонимов. Вы можете использовать кнопку Редактировать справа от имени словаря синонимов на вкладке внизу страницы, чтобы отредактировать пару синонимов.

Добавление аспектов к сущностям

При анализе пользователям иногда необходимо добавить аспекты к сущностям, это можно сделать несколькими способами:

1) Приписать аспект через Редактор правил:

sa new aspect.rus

В данном примере для наглядности в правило мы добавили атрибут Aspect, содержимое колонки назвали мой аспект. Если после выполнения узла открыть вкладку Тональности в окне просмотра результатов, то всем объектам, соответствующим правилу, будет приписан аспект мой аспект.

sa new aspect col.rus

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

sa sent own.rus

Новый словарь должен соответствовать следующим критериям:

  • Синсеты словаря должны содержать значения атрибутов тональностей – "Object" ("Объект"), "HeadObject" ("Головной объект"), "Evaluation" ("Оценка") или "Subject" ("Субъект") с указанием класса, например, "xsa_entity" или "xsa_company".

  • Синсеты словаря должны содержать аспекты с классом, например, "aspect".

  • Каждый синсет с классом "xsa_entity" должен быть связан с синсетом с классом "aspect" отношением "has_aspect".

  • Атрибут синсета "unique" может иметь значения "false" или "true".

  • Атрибут синсета "Assigned_to" может иметь следующие значения: "Object" ("Объект"), "HeadObject" ("Головной объект"), "Evaluation" ("Оценка"), "Subject" ("Субъект"); атрибут синсета "Assigned_to" также определяет, к какому атрибуту тональности должна применяться классификация.

  • Атрибут синсета "Domain" определяет, в каком домене данный синсет связан отношением "has_aspect" с конкретным аспектом.

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

3) Приписать аспект путем добавления отношений is_aspect или has_aspect в один из семантических словарей PolyAnalyst.

Для начала мы рекомендуем ознакомиться с основными правилами работы со словарями PolyAnalyst.

Введите в поисковой строке выбранного или вновь созданного словаря синсет [Industry Entity], выберите гипоним Sentiment Analysis, затем Aspect. В окне появятся доступные аспекты:

sa sent dicts example.rus

Выберите аспект, в который необходимо добавить сущность, нажмите кнопку Добавить отношение в конце списка аспектов. В появившемся окне выберите тип отношений is_aspect и в поисковой строке введите нужный синсет.

sa sent add.rus

Во втором случае необходимо выбрать синсет из словаря, добавить тип отношений has_aspect и ввести аспект из словаря.

Словарь должен содержать синсет или аспект, который необходимо добавить. В случае их отсутствия, необходимо в первую очеред создать такой синсет (аспект).

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

Разрешение конфликтов

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

sa conflict tab.rus

При разрешении конфликтов доступны следующие сценарии:

  1. Сохранение обоих соответствий – фильтр не используется. Вхождение одной сущности в другую или их совпадение допускаются.

  2. Фильтрация по длине – узел сохраняет в отчете сущность с максимальной длиной, если длина сущностей одинаковая, рассматривается следующее правило в иерархии правил.

  3. Фильтрация по типу сущности – пользователь указывает приоритет одной сущности над другой.

  4. Фильтрация по достоверности – узел сохраняет в отчете узла сущность с большей достоверностью.

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

sa conflict add.rus

Покажем примеры разрешения конфликтов на основе анализа тональностей зарубежных ритейл-площадок.

1) Когда положительная оценка совпадает с отрицательной, сохраняется отрицательная оценка, например, Less pushy sales people in the cosmetics area (Менее напористые продавцы косметических товаров). Данная фраза, которая начинается именно с элемента оценки, означает, что "менеджерам по продажам следует быть менее навязчивыми":

Сущности до разрешения конфликтов:

sa equal before.rus

Сущности после разрешения конфликтов:

sa equal after.rus

2) Когда положительная оценка входит в отрицательную (и наоборот), либо пересекается с ней, оба элемента сохраняются в отчете узла (например, I always feel bad when I love a product that breaks or ends up not fitting like I wanted (Грустно, когда любимый товар выходит из строя или не соответствует ожиданиям)):

sa both kept.rus

3) Когда положительная оценка совпадает с отрицательным объектом, оба элемента сохраняются в отчете (например, Good roads are difficult to find (Хорошие дороги – редкость)):

sa both roads.rus

4) Когда положительный объект совпадает с отрицательной оценкой, оба элемента сохраняются в отчете (например, Horrible experience helped me to conquer fear (Ужасный опыт помог мне пережить страх)):

sa both exp.rus

5) Когда отрицательная оценка входит в другую отрицательную оценку, сохраняется более длинная сущность (например, I have a problem with my car (У меня проблемы с машиной)):

sa longer kept.rus

6) Когда положительная оценка входит в другую положительную оценку, сохраняются обе сущности (например, Wonderful salesperson helped me to find jewelry (Опытный продавец помог мне подобрать украшение)):

sa both pos.rus

Вы можете добавить новое разрешение конфликта между двумя пользовательскими типами тональностей, либо между стандартным и пользовательским типами тональностей. Например, предположим, что вы создали пользовательский тип тональностей для извлечения элементов оценки возраста. Если эта тональность пересекается со стандартной положительной тональностью, вам необходимо сохранить только одно соответствие с большей достоверностью из двух (например, Daniel was such a polite young man (Даниель был таким вежливым молодым человеком)):

sa conflict before.rus

Для этого необходимо сделать следующее:

  • Откройте вкладку Разрешение конфликтов. Обратите внимание на то, что данная вкладка не привязана ни к какому конкретному типу тональностей, она относится ко всем типам тональностей, с которыми работает узел.

  • Добавьте новую пару сущностей, используя кнопку с изображением плюса на панели инструментов.

  • Используя выпадающие списки, выберите Standard/Positive в колонке Участник A и Custom/Polite young man в колонке Участник B.

  • Добавьте условие A частично пересекается с B.

  • Добавьте разрешение Сохранить сущность с большей достоверностью.

При необходимости введите описание.

sa custom conflict.rus

Нажмите Выполнить. Результат будет следующим:

sa conflict after.rus
Общие настройки всех типов тональности

Вкладка Общие содержит несколько общих опций для настройки извлечения всех типов тональностей.

sa general.rus

Опции на данной вкладке аналогичны настройкам узлов Извлечение сущностей и Извлечение фактов.