2. iKnow
несколько
тезисов
§ iKnow
–
это
инструментарий
для
обработки
неструктурированных
данных
(API).
§ iKnow
–
не
готовый
продукт.
§ iKnow
позволяет
получать
информацию
из
данных.
§ iKnow
–
“чёрный
ящик”
для
разработчика,
мы
не
знаем
как
именно
это
работает.
§ iKnow
–
технология
новая,
еще
нет
большого
числа
референсов.
§ iKnow
быстро
развивается.
3. Описание
задачи
Оценка
отзывов
по
отелям
Цель
–
анализ
информации
из
базы
туристических
отзывов
об
отелях,
демонстрация
возможностей
iKnow
по
работе
с
неструктурированными
данными
на
русском
языке.
В
качестве
исходных
данных
для
проекта
нам
была
предоставлена
база
отзывов,
которые
оставляли
туристы
после
отдыха
в
отелях.
Разработка
и
отладка
системы
проводилась
на
информации
о
пляжном
отдыхе
в
Турции
и
Египте.
4. Что
такое
отзыв?
Первые
впечатления
от
отеля
были
неплохие,
доброжелательный
русскоязычный
персонал
на
рецепшене,
сразу
заселили
в
номер
(нестандарт,
так
как
других
не
было),
территория
хорошая.
Через
2
дня
переселили
в
стандартный
номер,
даже
почти
с
видом
на
море.
Полотенца
от
предыдущих
отдыхающих
грязные
просто
сложили
на
полку
-‐
пошли
на
рецепшен
сказали
к
21.
Номер
не
убирали,
только
одеяло
на
кровати
складывали,
полотенца
и
дальше
не
менялись,
даже
бумагу
туалетную
не
ложили!
Номер
убрали,
бумагу
повесили,
полотенца
и
ДАЖЕ
ПОСТЕЛЬ
поменяли!
Питание
плохое
-‐
сплошная
соя
и
овощи,
за
10
дней
2
раза
давали
курицу
(порционно
и
порции
ОЧЕНЬ
маленькие),
пришлось
выстоять
огромную
очередь,
соков
нет
-‐
только
Юпи,
в
баре
дают
не
больше
2
стаканчиков
в
руки.
Из
фруктов
яблоки
и
сливы,
2
раза
были
апельсины
и
виноград.
Были
в
Таиланде
в
4*,
так
эта
турецкая
5*
даже
на
3*
с
трудом
тянет.
А
денег
заплатили
прилично
(общались
с
людьми
на
экскурсиях,
так
у
них
отели
и
лучше
и
дешевле
:-‐(,
жаль
названий
не
запомнила)
Да,
еще
одно
разочарование
Турции
-‐
брали
экскурсии
через
дорогу
от
отеля
в
агентстве
у
Хасана,
цены
как
бы
дешевле,
но
приезжаешь
на
место
и
оказывается,
что
везде
еще
нужно
доплачивать
за
вход,
что
в
сумме
выходит
на
5-‐10$
дешевле,
чем
у
своих,
но
гиды
по-‐русски
не
очень
говорят
потому
что
группа
интернациональная
и
естественно
иностранцам
больше
внимания
и
информации
дается.
После
первой
экскурсии
высказали
свое
разочарование
Хасану,
так
он
и
слушать
не
стал,
сначала
сказал,
что
устал,
потом
начал
кричать,
обзываться
и
материться,
так
что
лучше
берите
в
другом
агентстве,
чтобы
окончательно
не
испортить
себе
отдых.
Через день к нам присоединилась моя подруга с дочкой(6
лет). Моей старшей дочке (16 лет) всё понравилось, а
особенно анимация. Нас с мужем и сыном (3 года)почти всё
устроило, кроме кухни и обслуживания. Малой постоянно
заливал соком простыни, и поэтому нам их меняли каждый
день. Так что по поводу проживания нас всё устроило. За 12
дней в номере убрали всего пару раз, да и то так себе.
После чего все дети покрывались сыпью. Он хоть и с
маленькой, но тоже с горкой в виде слоника, и закрыт теном
от солнца, что не мало важно. Во первых отель заточен
исключительно под СОВЕТСКИЙ СОЮЗ. Все отдыхающие
были исключительно из республик бывшего Советского
Союза.
Отель сам по себе вполне даже нормальный, виды
красивые. Но вот заселение - это тихий ужас!
Селят в номера соседнего отеля, который раз в
сто хуже, без "дополнительной" договоренности
на большее не рассчитывайте! Для 5* отель не
тянет, но и цена об этом говорит. Пляж без урн
как таковых, поэтому мусора хватало((( Рядом
был немецкий отель тоже 5* - земля и небо!
Дорожки выложены, цветы в горшках, подсветка -
все так аккуратно! В 7 часов вечера с пляжа всех
выгоняли, видите ли, им лежаки на место надо
ставить((( Еда, хоть и не изобилует мясом, была
очень даже хорошая, как говориться, иногда надо
разгрузку проводить для организма. Развлечения
только для детей, анимация тоже для них в
основном; студентов набрали, вот и организации
толковой нет. самодеятельность короче
полная(( В заключении: больше двух недель там
делать нечего, неделя самое оно.
5. Что
мы
хотим
из
отзывов
получить?
1.
Определение
отношения
к
отелю
в
целом.
2.
Определение
отношения
к
категориям
пляжного
отдыха
в
отеле.
3.
Формирование
краткого
отчета
об
отеле
в
виде
фразы,
например:
Из
653
отдыхавших
в
отеле
«яОТЕЛЬ»,
278
человек
(43%)
отмечают
вежливость
и
приветливость
персонала,
220
отдыхающим
(34%)
понравилась
еда
в
ресторанах,
а
76
гостей
(12%)
хотели
бы
еще
раз
отдохнуть
в
этом
отеле
...."
4.
Оценка
“правильности”
работы
iKnow.
Сравнение
рассчитанной
оценки
с
той,
которую
поставили
отелю
авторы
отзывов.
5.
Группировка
авторов
отзывов
Классификация
отдыхающих
по
категориям:
молодежь,
семьи,
тусовщики,
пожилые
и
т.д.
6.
6.
Поиск
самого
полезного
отзыва
По
количеству
значимых
концептов,
эмоциональной
насыщенности
отзыва.
7.
Поиск
заказных
отзывов
8.
Поиск
повторяющихся
отзывов.
9.
Определение
наиболее
часто
описываемых
объектов
отеля
или
частей
отдыха.
Вывод
фразы
на
основе
проведенного
анализа.
Например:
аниматоры
развлекают
детей
и
взрослых
целый
день
пляж
широкий
и
просторный
вход
в
воду
пологий
шезлонгов
вечно
не
хватает
не
бассейн,
а
лужа
аквапарк
-‐
только
1
горка
напитки
в
баре
разбавленные
завтрак
однообразный
временами
воняет
канализацией
Что
мы
хотим
из
отзывов
получить?
7. Структура
исходных
данных
Для
работы
была
предоставлена
база
отзывов
по
100
отелям,
которые
имели
наибольшее
число
отзывов.
Каждый
отзыв
содержал
следующие
данные:
site_id
hotel_id
Идентификатор
ресурса,
на
котором
был
размещен
отзыв
Идентификатор
отеля
review_Utle
Заголовок
отзыва
review_text
Текст
отзыва
country
Страна,
в
которой
находится
отель
resort
Курорт,
в
котором
расположен
отель
hotel_name
Название
отеля
author
Автор
отзыва
8. Структура
исходных
данных,
категории
raUng
raUng_comfort
Пользовательская
оценка
отеля
(Общая)
Пользовательская
оценка
комфортабельности
raUng_locaUon
Пользовательская
оценка
местоположения
raUng_service
Пользовательская
оценка
уровня
сервиса
raUng_food
Пользовательская
оценка
питания
в
отеле
raUng_territory
Пользовательская
оценка
территории
raUng_hospitality
пользовательская
оценка
гостеприимности
raUng_qpraUon
Пользовательское
оценка
цены/качества
travel_date
Дата
путешествия
9. Структура
исходных
данных
Следует
отметить,
что
далеко
не
все
отзывы
содержат
общие
оценки
отелей,
поставленные
авторами,
а
оценивание
отелей
по
отдельным
категориям
практически
не
проводилось.
hotel_id rating rating_comfort rating_food rating_location rating_hospitality rat...
1639 - - - - - ...
366 5 - 5 - - ...
1639 - - - - - ...
366 5 - 4 5 - ...
366 5 - - - - ...
... ... ... ... ... ... ...
10.
Алгоритм
(1/3)
Загрузка
данных
в
домен
1. Создать
домен
с
конфигурацией.
2. Создать
поля
метаданных
(для
хранения
таких
данных,
как
ID
отеля,
название,
пользовательские
оценки
и
т.д.).
3. Загрузить
данные
в
домен.
4.
Перенести
метаданные.
11.
Алгоритм
(2/3)
Словари
1. Создать
словарь
(онтологию)
функциональных
маркеров.
2. Создать
словарь
(онтологию)
эмоциональных
маркеров.
3. Обучить
словари
с
помощью
нахождения
похожих
концептов
в
домене
(с
учетом
категорий
и
подкатегорий).
12.
Алгоритм
(3/3)
Постобработка
отзывов
1. Вычислить
оценки
отелей
по
отзывам.
2. Произвести
расчет
дополнительных
статистических
параметров
для
отзывов.
3. Рассчитать
оценки
подозрительности
и
полезности
отзывов.
4. Получить
перечень
предложений
по
самым
распространенным
концептам
среди
отзывов
по
конкретным
отелям
(“Еда
была
прекрасная
”,
“Море
было
восхитительным”,
“Обслуживание
в
этом
отеле
было
плохим”)
13.
Создание
домена
Domain
Definiwon
Экземпляр
класса
%iKnow.Domain
16.
Домен
iKnow
формируется
методами
класса
Hotels.Loader
из
таблицы
отзывов,
хранящейся
в
глобалах.
В
домене
создаются
следующие
поля
метаданных:
1. Title
2. HotelId
3. HotelName
4. Country
5. Resort
6. Author
7. TravelDate
8. AuthorRawng
9. AuthorRawngComfort
10. AuthorRawngFood
11. AuthorRawngHospitality
12. AuthorRawngLocawon
13. AuthorRawngService
14. AuthorRawngTerritory
Информация
об
отзыве
и
отеле
Оценка
отеля
автором
отзыва
Описание
решения
Формирование
домена
iKnow
или
загрузка
отзывов
17.
Для
обработки
отзывов
в
решении
формируются
два
словаря:
1. Словарь
функциональных
маркеров
2. Словарь
эмоциональных
маркеров
Словарь
функциональных
маркеров
(fmarkers)
содержит
шесть
групп
терминов,
которые
позволяют
сформировать
представление
о
какой
категории
отеля
идет
речь
(комфорт,
питание,
гостеприимство,
территория,
сервис,
местоположение
отеля).
Описание
решения
Словари
маркеров
fmarkers.txt
18.
Словарь
эмоциональных
маркеров
(emarkers)
содержит
термины
и
определения,
характеризующие
отношение
автора
к
концептам.
Большинство
emarker’ов
–
прилагательные,
но
также
это
могут
быть
существительные,
которые
имеют
четкий
эмоциональный
окрас
(грязь,
обман).
Emarker’ы
могут
быть
позитивными
(хороший,
добрый,
радость)
и
негативными
(плохой,
грязный,
отравление).
Цифровая
оценка
положительности
или
отрицательности
маркеров
указывается
в
начале
каждой
строки
словаря
(в
данном
проекте
использовались
только
веса
+1/-‐1).
Описание
решения
emarkers.txt
Словари
маркеров
19.
Словари,
составленный
пользователем
как
правило
содержат
лишь
малую
долю
терминов,
которые
мы
считаем
маркерами
и
далее
используем
в
обработке.
Поэтому
мы
дополнительно
“обучим”
наши
словари.
Алгоритм
обучения
и
цели
обучения
могут
варьироваться,
но
строить
его
целесообразно
на
основе
iKnow
API.
Возможность
обучения
является
принципиальным
отличием
iKnow
от
поисковых
или
экспертных
систем.
Описание
решения
Обучение
словарей
20.
Обработка
отзывов
домена
производится
на
основе
разделения
текста
отзыва
на
предложения.
Данная
методика
позволяет
построить
процесс
анализа
текстов
с
использованием
методов
класса
SentenceAPI
в
%iKnow.Queries.
Описание
решения
Обработка
отзывов
21. Кратко,
алгоритм
анализа
описывается
следующим
образом:
● На
основе
словаря
эмоциональных
маркеров
строим
для
отзыва
множество
объектов
класса
Processing.Sentence,
в
которых
определяем
эмоциональный
окрас
предложения
(числовым
значением)
и
идентификатор
предложения.
● Обрабатываем
отрицания.
Для
каждого
предложения
с
отрицанием,
в
соответствующем
ему
объекте
Processing.Sentence
выставляем
флаг
NegaUon.
● Проверяем
все
эмоционально
окрашенные
предложения
отзыва
в
поисках
функциональных
маркеров.
При
попадании
fmarker
в
окрашенное
предложение
–
добавляем
значение
эмоционального
окраса
в
категорию,
соответствующую
fmarker.
В
итоге
получаем
объект
класса
Hotels.Stat.Hotel,
где
для
каждой
категории
отеля
накоплено
некоторое
числовое
значение,
соответствующее
отношению
автора
к
отелю.
Описание
решения
Анализ
отзывов
22. -‐ -‐
функциональные
маркеры
-‐
позитивные
маркеры
-‐ -‐
негативные
маркеры
Описание
решения
Анализ
отзывов
-‐
пример
23. Получив
из
текста
отзыва
числовую
характеристику
соответствующую
отношению
автора
к
категориям
отеля,
повторим
данную
процедуру
для
всех
доступных
отзывов.
А)
Средняя
оценка
Рассчитаем
процент
положительных
эмоциональных
маркеров
для
категорий
отеля
по
формуле:
Где
i
–
оцениваемая
категория.
Описание
решения
Рассчитанные
характеристики
24. Результаты
В
результате
получим
значение
от
0
до
1,
которое
можно
привести
к
оценке,
выставленной
по
пяти
бальной
шкале
самими
авторами.
Предварительно
рассчитав
общую
оценку
по
отелю
из
оценок
по
категориям,
получи
следующую
корелляцию.
Рассчитанные
характеристики
25.
Как
видно
из
графика,
наблюдается
устойчивая
корелляция
между
рассчитанными
оценками
и
оценками
авторов
отзывов.
При
этом
для
точного
совпадения
оценок
необходимо
подбирать
коэффициент
пересчета
Appraisal
к
итоговой
оценке
(для
графика
он
равен
5).
Данный
коэффициент
будет
зависеть
от
состава
словарей,
общего
количества
отзывов,
а
также
количества
оцененных
авторами
отелей.
Важной
ценностью
такого
подхода
является
оценивание
всех
категорий
отеля,
в
то
время
как
сами
авторы,
как
правило,
ставили
только
одну
общую
оценку.
Результаты
Рассчитанные
характеристики
26.
Б)
Эмоциональная
насыщенность
(EmoUonal
SaturaUon
-‐
ES)
Для
дальнейшего
анализа
отзывов
введем
понятие
эмоциональной
насыщенности
(ES).
Таким
образом
ES
–
это
отношение
суммарного
количества
эмоциональных
маркеров
в
статье
к
объему
статьи,
который
может
быть
представлен
количеством
предложений,
концептов
или
сущностей.
Как
видно
из
формулы,
ES
можно
разделить
на
положительную
эмоциональную
насыщенность
(PES)
и
отрицательную
эмоциональную
насыщенность
(NES)
так,
что
ES
=
PES
+
NES.
В
качестве
Volume
в
наших
расчетах
использовалось
количество
сущностей,
выделенных
iKnow
в
отзыве.
Описание
решения
Рассчитанные
характеристики
27.
В)
Поиск
наиболее
полезных
отзывов.
Полезными
для
системы
мы
считаем
наиболее
информативные
и
сбалансированные
отзывы.
То
есть:
1)
В
отзыве
должно
быть
оценено
максимальное
количество
категорий
отеля
2)
В
отзыве
должны
быть
как
положительные
оценки,
так
и
критика.
Озывы
должны
быть
эмоционально
сбалансированы.
3)
Отзыв
не
должен
выделяться
среди
прочих
по
значению
эмоциональной
насыщенности
отзывов
по
отелю.
Каждый
из
критериев
численно
приводится
к
величине
от
0
до
1,
а
затем
получаем
среднюю
величину
–
оценку
полезности
отзыва.
Описание
решения
Рассчитанные
характеристики
28.
Г)
Поиск
подозрительных
отзывов.
Под
подозрительными
отзывами
в
системе
понимаются
кандидаты
на
заказные
отзывы,
то
есть
написанные
в
рекламных
или
антирекламных
целях
и
не
отражающие
реальную
оценку
отеля.
Критерии
подозрительных
отзывов
1)
Значения
ES
для
отзыва
значительно
отличаются
от
средних
по
отелю
2)
Отзыв
имеет
ярко
выраженную
позитивную
окраску
(реже
-‐
негативную)
3)
Оценка
отеля,
рассчитанная
по
отзыву,
существенно
отличается
от
средней
по
отелю.
Описание
решения
Рассчитанные
характеристики
29.
Для
отзывов
вводится
понятие
полезности
или
эффективности,
которое
рассчитывается
для
каждой
статьи.
Результаты
Определение
полезности
отзыва
Отдыхали
в
PGS
HOTELS
с
14
по
25
июня
2010
г.
Отель
выбрали
по
настоянию
туроператора.
Нам
было
рекомендовано
«просто
закрыть
глаза
на
очень
неудобный
обратный
вылет,
но
отправиться
именно
в
PGS,
т.
к.
там
огромная
территория,
замечательный
пляж,
отличные
условия
для
детей,
хорошее
питание
и
номера».
Истиной
это
оказалось
примерно
наполовину.
Что
касается
территории
и
пляжа-‐
вопросов
нет,
действительно-‐
огромная
и
действительно-‐
замечательный.
Но
вот
все
остальное…
Меня
предупреждали,
что
надо
при
оформлении
класть
10-‐20
долларов
в
паспорт,
но
я
посчитала
это
излишним,
т.
к.
номер
у
нас
был
оплачен
не
стандарт,
а
семейный,
число
которых
в
сезон
и
так
ограниченно.
Теперь
вот
думаю,
то
ли
за
жадность
поплатилась,
то
ли
и
вправду
все
номера
такие?
Начать
с
того,
что
по
приезду
вас
никто
не
провожает
в
номер,
это
лишнее,
хорошо
хоть
багаж
доносят.
Местный
фен
оказался
просто
сломан
(правда
его
в
этот
же
день
по
моей
просьбе
починили),
но
и
после
починки
работал
он
очень
слабо
и
явно
перегревался.
Привезенный
же
фен
просто
не
работал,
т.
к.
напряжение
в
сети
очень
низкое…
30.
Для
отзывов
вводятся
понятие
подозрительности.
Таким
образом
можно
определять
кандидатов
на
заказные
отзывы.
Результаты
Поиск
подозрительных
отзывов
Территория
отличная,
можно
отлично
погулять
и
отдохнуть.
В
отеле
очень
удобно
расположены
развлечения,
бармены
всегда
наливают.
Бассейн
лучший!
Горки,
игры
на
воде,
все
отлично!
Пляж
рядом.
Нас
вообще
не
напрягало
ходить
через
дорогу.
Там
все
рядом.
Бар
на
пляже
отличный.
Сам
пляж
лучший.
В
пяти
звездах
бывают
хуже.
Еда
отличная,
кормят
вкусно,
один
день
привыкали.
Около
отеля
много
турагенств
для
организации
недорогого
досуга
(рыбалка,
яхта,
баня,
магазины
и
т.
д.
)
Брали
на
прокат
мопеды.
Все
отлично.
Нас
в
конце
переселили
на
3-‐4
дня
в
5
звезд
в
Кемер,
там
отель
нам
не
понравился.
Шопинг
класный!
Жена
была
в
восторге.
Погода
супер!
31.
Из
42
человек,
отдыхавших
в
отеле
CLUB
MARCO
POLO
hv1,
посчитали
отель
хорошим
-‐
29
(69%),
остались
довольны
условиями
-‐
19
(90%*),
понравилось
разнообразие
и
качество
услуг
-‐
20
(100%*).
Из
130
человек,
отдыхавших
в
отеле
Palmariva
Club
Kaplan
(ex
Kaplan
Paradise)
5*,
посчитали
отель
хорошим
-‐
85
(65%),
в
отеле
чувствовали
себя
комфортно
-‐
57
(77%*),
39
(67%*)
остались
довольны
качеством
еды.
А
красивых
рыбок
никто
не
оценил,
потому
что
мы
о
них
не
спрашивали.
Из
36
человек,
отдыхавших
в
отеле
La
Mer
Art
(ex.O€um
Hotel
Art)
5*,
довольны
отелем
остались
-‐
22
(61%),
посчитали
условия
комфортными
-‐
15
(71%*),
13
(87%*)
положительно
оценили
качество
пищи,
понравилось
отношение
персонала
-‐
10
(100%*),
положительно
оценили
качество
сервиса
-‐
11
(92%*).
Результаты
Итоговые
фразы
об
отелях
32. Текущие
сложности:
-‐
в
отзывах
используется
неформализованный
язык
и
нелитературные
выражения,
усложняющие
составление
словарей.
-‐
в
отзывах
не
соблюдаются
правила
пунктуации,
приводящие
к
ошибкам
интерпретации
отрицаний.
-‐
стемминг
работает
“неидеально”
(“отель”
=
“отёл”
=
“отелить”;
“море”
=
“морить”;
“зелёный
дикий
слив”)
Пути
развития:
-‐
оптимизация
алгоритма
разбора
отрицаний,
позволит
повысить
точность
оценивания.
-‐
развитие
словарей
функциональных
и
эмоциональных
маркеров.
-‐
использование
средств
SpellChecker
перед
загрузкой
отзывов
в
домен
iKnow.
Сложности
и
пути
развития