21 июл. 2012 г.

Проблемы автоопределения негатива в текстах

 Картинка 2 из 154602
Проблемы автоопределения негатива в текстах
автор Нежданов Игорь

Для чего нужно выявление негатива в текстах
Выявление в текстах негатива по отношению к объекту это один из элементов более глобальной задачи – автоматизировать работу со смыслом текстов. А работа с негативом это лишь часть этой большой проблемы.
По большому счету автоматическое определение негатива в текстах нужно для следующего:
- для своевременного выявления появления негативных высказываний или оценок по отношению к объекту (будь то бренд, физическое лицо, организация, тема…);
- для отслеживания изменений информационного фона вокруг объекта (увеличение или уменьшение негатива по отношению к объекту).
Отслеживание общих изменения информационного шума необходимо, например для понимания отношения клиентов к товару, для понимания изменения этого отношения – тенденций. Это своего рода барометр того каков общий тон обсуждений продукта (опубликованных материалов). Тут как в маркетинге – важно увидеть общую картину, общее направление движения. При этом, если сравнивать например объем негатива между несколькими конкурентами, погрешность не важна – ведь система координат единая, а значит и ошибка при измерениях одинаковая. Следовательно соотношение не пострадает. А «плюс-минус» уже не важно – общий тренд виден.
Своевременное выявление негативных высказываний нужно для «сигнальной системы», которая вовремя обнаружит появление этого самого негатива, дав возможность (время) на реагирование. Это уже больше похоже на противоугонную сигнализацию. И здесь становиться важно не пропустить ту самую публикацию (материал, высказывание и т.п.) которое окажется «спусковым крючком» или «последней каплей». И погрешность может стать роковой для заказчика.
Задачи достаточно близкие, но тем ни менее разные. Если использовать аллегорию коллег, то в первом случае, наблюдая за поведением толпы готовой начать «массовые беспорядки», мы обращаем внимание на направление движения основной массы участвующих. А перемещения отдельных субъектов (спонтанные, хаотичные или целенаправленные) нам не интересны. Ведь важно увидеть общую тенденцию – куда направиться эта толпа.  Но вот во втором случае, при наблюдении за той же толпой, нам становятся важны и действия отдельных личностей. Ведь это может быть провокатор, подогревающий агрессивные настроения участников беспорядков, или некто, готовящий теракт. И видя их перемещения можно спрогнозировать дальнейшее изменение ситуации, а значит появляется возможность их предотвратить.

Почему важна точность в таких оценках
Если без теоретических изысканий («так отвлекающих от практики»), то при НЕ точном определении негативно ли высказывание по отношению к объекту наблюдения, всегда есть вероятность пропустить то самое высказывание, с которого всё и начнется. Если по аналогии с наблюдением за толпой – пропустить перемещение «дирижера» радикальных настроений, изменение направления его усилий. Или вероятность принять за негативное высказывание совсем и не негативное, и посчитать это поводом для начала «войны на уничтожение». Причем слово «вероятность» в данном контексте имеет до не приличия низкий уровень для систем работающих без семантического, синтаксического и морфологического анализа текста – по общим оценкам от 60 до 90%. Т.е. в самом лучшем случае каждое десятое негативное высказывание будет пропущено (!) системой, а каждое десятое НЕ негативное будет признано системой как негатив. Причем с ложным отнесением к негативу еще можно бороться – оператор (человек) может банально просматривать всё, что отнесено к негативу и подтверждать это. Если текст негативным не является, то оператор его отклонит. А вот как быть с пропущенным не понятно – такие сообщения оператор просто не увидит, а значит они будут выведены из дальнейшей оценки событий.
В ситуации, когда нужно увидеть общую тенденцию (без особой конкретизации) вполне можно не обращать внимание на точность замеров. «Ведь погрешность получается одинаковой для всех объектов замера…» Когда нужно наблюдать за ситуацией со стороны и при этом ее развитие не сильно отразится на состоянии наблюдателя, то также можно пренебречь точностью.
И совсем по другому начинаешь относиться к точности системы, когда от результатов ее замеров на прямую зависит благосостояние исследователя. Когда от своевременности обнаружения негативной публикации зависит не столько колебания прибыли, сколько существование бизнеса.
Но к сожалению, в большинстве случаев Заказчик замеров и Исполнитель это разные люди, мало того Заказчик не понимает всех тонкостей и ограничений такой системы. А Исполнитель не особо распространяется на эту тему, зато предлагает посмотреть красочные графики, диаграммы так магически действующие на менеджмент компаний. В результате Заказчик и не подозревает, что вероятность обнаружения именно той негативной публикации (а не вообще какой то) лежит где то между «наверное» и «с большой долей вероятности». Но ни как не «гарантирую вам».

Почему компьютеру сложно определить негатив об объекте
Негатив как таковой, чаще всего (но не всегда) определить не сложно. Для этого достаточно заложить возможность определения слов, несущих негатив, составить несколько словарей. Несколько по причине того, что есть слова прямо несущие негатив, а есть слова, которые становяться негативом при определенном «окружении», а есть слова с позитивным смыслом, которые при инверсии становяться негативными. Мало того, такие словари уже созданы и программы их использующие есть, в том числе и бесплатные. Тот же ВААЛ (http://www.vaal.ru/ ) или сервис анализа тональности Х-file (http://x-file.su/tm/Default.aspx)  или интересный сервис «Анализ тошноты текста» http://www.tekto.biz/sick/ns.php
А вот негатив по отношению к конкретному объекту выделить бывает довольно не просто. Ведь в тексте могут присутствовать упоминания других объектов, а ваш объект интереса будет обозначен своим названием только один раз в начале текста. А далее для его обозначения будут использоваться местоимения, которые программно сложно четко связать с конкретным объектом. Есть и другие сложности в плане автоматизации определения в тексте негатива по отношению к объекту.
Ложные признаки негатива
Сложности работы с эмоциями в тексте связаны с многовариантностью языка. Ниже приведены наиболее часто встречающиеся «препятствия» на пути автоматизации выявления негатива в текстах.
Сарказм, юмор, намеки — одно из самых сложных проявлений негатива. Пример: «Какая отличная у них служба поддержки, через четыре дня перезвонили». Или: «Прекрасное изделие – всё так удобно и практично, что начинаю сомневаться – нужно ли оно мне».
Неоднозначные негативные слова: их смысл зависит от того, в «окружении» какого находиться фраза. Например: «Какой прыжок, с ума сойти!» можно истолковать как негатив или позитив в зависимости от окружающего текста. «Какой прыжок, с ума сойти! Как всё красиво, как весело – обязательно повторю.» или «Какой прыжок, с ума сойти! Тот что в оранжевом костюме вряд ли захочет повторить, а того что в синем до сих пор ищут.»
Сравнение — не прямой негатив, но вполне  может иметь отрицательный окрас. Пример: «Я предпочитаю Андроид», что хорошо для Google, но не для MS или Apple.
Смешение негатива и позитива или многомерные настроения: присутствие позитива и негатива в одном предложении (фразе). Пример: «Мне нравится астрономия, но меня раздражают слабые преподаватели».
Будущий негатив: это связано с действиями, которые могут произойти в будущем, а могут и не произойти. Пример: клиент не раздражен в данный момент, но говорит, что будет недоволен, если приобретенный товар выйдет из строя через несколько месяцев.
Разница в проявлении эмоций у разных народов: у разных национальностей проявление эмоций могут сильно различаться, поэтому такие тексты надо интепретировать с «поправкой на ветер».
Вот и получается, что впервые столкнувшись с проблемой автоопределения негатива по отношению к объекту в тексте, исследователи полагают, что это не сложно. И делают примерно одинаковые ошибки – ниже несколько наиболее распространенных приемов, которые применяют на ранней стадии понимания проблемы.

Наличие негатива в тексте
Наличие в исследуемом тексте негативно окрашенного слова. Самый простой способ определения негативности текста. Но увы и самый не точный. Определить негативный текст или не негативный при такой схеме оценки еще можно с какой то вероятностью. Но вот определить относится этот негатив к какому то конкретному объекту в тексте или нет уже практически не возможно. Особенно если упоминание объекта и негатив разнесены между собой на несколько предложений.
Например «Есть такой Бар – «ККК», а убогое место под названием «ООО» по сравнению с ним полный отстой» используя в качестве признака словарь негатива, вряд ли удастся определить по отношению к какому из объектов автор настроен негативно.

Близкое расположение негатива
Основным критерием в такой схеме является то, что негативно окрашенное слово стоит рядом или не далеко от идентификатора объекта интереса. Или несколько видоизмененный признак – негативное слово и объект должны находиться в одном предложении. Безусловно, часто негативное слово располагается рядом с обозначением объекта, по отношению к которому применяется. Возьмем тот же пример «Есть такой Бар – «ККК», а убогое место под названием «ООО» по сравнению с ним полный отстой» здесь объект «ККК» расположен в тексте ну очень рядом  с негативным словом «убогое». Тем ни менее негатив проявлен по отношению к другому объекту.
Не редки также тексты, в который объект обозначается в начале текста, а негатив (например в виде вывода) находиться в конце. Особенно это характерно для обзорных статей, аналитических работ, обзоров рынка или его сегмента и т.п. И такие тексты выпадают из выборки, а ведь они формируют мнение людей в основном опираясь на логику, т.е. формируют более устойчивое мнение у читателя (потребителя), чем эмоциональные выкрики в Твиттере.
К стати о Твиттере – вот на таких текстах (на коротких текстах) принцип близкого расположения негатива работает не плохо. Тут даже подойдет принцип наличия в тексте идентификатора объекта и негативного слова. И есть вполне себе работоспособные системы такие как Sentiment140 http://www.sentiment140.com/

Неопределенность ситуации
Еще одна важная проблема с автовыявления негатива это эффект неопределенности. Связан он с тем, что заранее не известно как могут назвать Объект, какие клички, прозвища, характеристики ему дадут-припишут. И по тому способ «посмотрите как называли раньше и используйте эти слова» мягко говоря не поможет выявить новые приемы обливания грязью. Ведь новых вы еще не знаете и по тому в словарь не внесли. Значит они будут пропущены системой. А часто именно выявление новых способов является важным.

Виды примеры проявления негатива
Теперь систематизируем знания о проявлении негатива в текстах по отношению к определенному объекту. Вот признаки, на которые нужно ориентироваться в самом общем случае при работе с негативом.
Негативное слово или фраза
Присутствие в тексте слова, несущего негативный оттенок и характеризующего объект в любой форме. Это самый простой признак негативного текста. Главное не забывать о его ограничениях.
Сравнения
Фраза «Отель 1 лучше чем Отель 2» вроде бы не несет негатива для «Отеля 2», но  раз уж «Отель 1» лучше, значит «Отель 2» хуже. А это уже негатив для «Отеля 2».

Инверсия
Отрицание позитива, т.е. указание, что позитива нет по отношению к объекту. Например  «Отель 2 не хороший» или чуть более сложный случай «Отель 2 самый комфортабельный? – Ага, конечно…». Здесь слово «НЕ» и словообразование «АГА, КОНЕЧНО» являются инверсионными – меняющими смысл на противоположный.

Шкалы и рейтинги
Использование в характеристике объекта низкие показатели разнообразных рейтингов и шкал сравнения. Например «Уровень Отеля 2 максимум пол звезды» или «Отель 2 находиться за пределами ТОП-100».

Сарказм, юмор, намеки
«Отель 2 самый классный отель! Правда теперь я предпочитаю останавливаться в других отелях, на всякий случай» или «Менеджер Отеля 2  молодец – всё сделал правильно. Только вот где теперь мои деньги?» или «Вы видели задний двор Отеля 2? И как вам это зрелище?».

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

Словари
Составляется словарь негативных слов – слов, которые несут в себе негатив. И при наличии в тексте слова из такого словаря текст относится к негативному. Самый простой и самый малооэффективный способ. Его ограничения описаны выше, в связи с чем сфера применения весьма узкая.
Чуть более сложный вариант составить словари «негатива», словари слов производящих инверсию и словари слов, которые при инверсии приобретают негативный оттенок. Еще один «словарный» вариант это составление словаря выражений, а не только отдельных слов. Этот подход «покрывает» гораздо большую часть возможных вариантов, но увы тоже не всю.
Варианты со словарями можно без особых усилий реализовать в таких программах как СайтСпутник. Его Рубрики позволяют создавать очень сложные условия и работать с внешними словарями. А вместе с возможностью ведения статистики Рубрик, этот инструмент становиться приемлимой пользовательской альтернативой дорогим сетевым решениям.

Шаблоны
Эта технология похожа на составление словарей с тем отличием, что составляется не набор слов, а набор возможных словосочетаний, словообразований и устойчивых выражений. Делается это так — на большом количестве негативных текстов выявляются схемы (шаблоны) построения негативных высказываний. Именно схемы типа «Объект Словарь1 Словарь2» , где «Объект» это возможные варианты именования объекта, «Словарь1» это словарь прилагательных, а «Словарь2» словарь существительных. Затем используя словари синонимов и каждый новый текст проверяется на наличие таких конструкций (шаблонов). И при наличии таковых помечается как негативный.
Такой подход значительно сложнее, но и значительно эффективнее предыдущих. А при некоторых усилиях его вполне можно реализовать и в программах использующих рубрикацию материала. Например на том же СайтСпутнике.

Фильтр Байеса
Он же статистический метод. При таком подходе каждому слову присваивается его негативный вес. «Негативный вес» слова это вероятность того, что слово является негативным. По сумме слов вычисляется «средний вес текста» — средний вес всех его слов и если он выше какой то условной отметки, то это негативный текст. Например если выше 60%, то текст признается негативным. Правда не понятно негативным к какому объекту. По тому самостоятельно вряд ли применим.

Метод, основанный на словарях, правилах, и на морфологическом и синтаксическом анализе теста (rule-based)
В данном случае заранее составляются словари эмоциональной лексики – словари негатива и позитива (а так же потенциально эмоциональной, зависящей от окружения), словари инверсионных слов, составляются правила определения тональности словосочетаний на основании тональности слов, тональности простых предложений на основе тональности словосочетаний и тональности текстов по взаимосвязи предложений. И определяются способы отождествления негатива и объекта. Этот метод может использовать как списки шаблонов, так и правила соединения тональной лексики внутри предложения и внутри текстов, основанные на грамматическом и синтаксическом разборе.
Данный метод наиболее эффективный, но и наиболее сложный в реализации. Разбор предложений и текстов на основные и подчиненные структуры требует серьезных познаний в лингвистике. Кроме того система должна быть самообучаемая – ведь язык не статичен. Он постоянно меняется, приобретает новые слова, обороты, устойчивые выражения…