SlideShare a Scribd company logo
1 of 33
Download to read offline
Анализ	
  отзывов	
  о	
  пляжном	
  отдыхе	
  c	
  
помощью	
  iKnow
Артём Визнюк
iKnow	
  несколько	
  тезисов	
  
§  iKnow	
  –	
  это	
  инструментарий	
  для	
  обработки	
  
неструктурированных	
  данных	
  (API).	
  	
  
§  iKnow	
  –	
  не	
  готовый	
  продукт.	
  
§  iKnow	
  позволяет	
  получать	
  информацию	
  из	
  данных.	
  
§  iKnow	
  –	
  “чёрный	
  ящик”	
  для	
  разработчика,	
  мы	
  не	
  знаем	
  
как	
  именно	
  это	
  работает.	
  
§  iKnow	
  –	
  технология	
  новая,	
  еще	
  нет	
  большого	
  числа	
  
референсов.	
  
§  iKnow	
  быстро	
  развивается.	
  
	
  
Описание	
  задачи	
  
Оценка	
  отзывов	
  по	
  отелям	
  
	
  	
  
	
  	
  
	
  
	
  
Цель	
  –	
  анализ	
  информации	
  из	
  базы	
  туристических	
  отзывов	
  
об	
  отелях,	
  демонстрация	
  возможностей	
  iKnow	
  по	
  работе	
  с	
  
неструктурированными	
  данными	
  на	
  русском	
  языке.	
  
	
  
В	
  качестве	
  исходных	
  данных	
  для	
  проекта	
  нам	
  была	
  
предоставлена	
  база	
  отзывов,	
  которые	
  оставляли	
  туристы	
  
после	
  отдыха	
  в	
  отелях.	
  Разработка	
  и	
  отладка	
  системы	
  
проводилась	
  на	
  информации	
  о	
  пляжном	
  отдыхе	
  в	
  Турции	
  и	
  
Египте.	
  
	
  
	
  
Что	
  такое	
  отзыв?	
  
Первые	
  впечатления	
  от	
  отеля	
  были	
  неплохие,	
  доброжелательный	
  русскоязычный	
  персонал	
  на	
  рецепшене,	
  сразу	
  заселили	
  в	
  номер	
  
(нестандарт,	
  так	
  как	
  других	
  не	
  было),	
  территория	
  хорошая.	
  Через	
  2	
  дня	
  переселили	
  в	
  стандартный	
  номер,	
  даже	
  почти	
  с	
  видом	
  на	
  море.	
  
Полотенца	
  от	
  предыдущих	
  отдыхающих	
  грязные	
  просто	
  сложили	
  на	
  полку	
  -­‐	
  пошли	
  на	
  рецепшен	
  сказали	
  к	
  21.	
  Номер	
  не	
  убирали,	
  только	
  
одеяло	
  на	
  кровати	
  складывали,	
  полотенца	
  и	
  дальше	
  не	
  менялись,	
  даже	
  бумагу	
  туалетную	
  не	
  ложили!	
  Номер	
  убрали,	
  бумагу	
  повесили,	
  
полотенца	
  и	
  ДАЖЕ	
  ПОСТЕЛЬ	
  поменяли!	
  Питание	
  плохое	
  -­‐	
  сплошная	
  соя	
  и	
  овощи,	
  за	
  10	
  дней	
  2	
  раза	
  давали	
  курицу	
  (порционно	
  и	
  порции	
  ОЧЕНЬ	
  
маленькие),	
  пришлось	
  выстоять	
  огромную	
  очередь,	
  соков	
  нет	
  -­‐	
  только	
  Юпи,	
  в	
  баре	
  дают	
  не	
  больше	
  2	
  стаканчиков	
  в	
  руки.	
  Из	
  фруктов	
  
яблоки	
  и	
  сливы,	
  2	
  раза	
  были	
  апельсины	
  и	
  виноград.	
  Были	
  в	
  Таиланде	
  в	
  4*,	
  так	
  эта	
  турецкая	
  5*	
  даже	
  на	
  3*	
  с	
  трудом	
  тянет.	
  А	
  денег	
  
заплатили	
  прилично	
  (общались	
  с	
  людьми	
  на	
  экскурсиях,	
  так	
  у	
  них	
  отели	
  и	
  лучше	
  и	
  дешевле	
  :-­‐(,	
  жаль	
  названий	
  не	
  запомнила)	
  Да,	
  еще	
  одно	
  
разочарование	
  Турции	
  -­‐	
  брали	
  экскурсии	
  через	
  дорогу	
  от	
  отеля	
  в	
  агентстве	
  у	
  Хасана,	
  цены	
  как	
  бы	
  дешевле,	
  но	
  приезжаешь	
  на	
  место	
  и	
  
оказывается,	
  что	
  везде	
  еще	
  нужно	
  доплачивать	
  за	
  вход,	
  что	
  в	
  сумме	
  выходит	
  на	
  5-­‐10$	
  дешевле,	
  чем	
  у	
  своих,	
  но	
  гиды	
  по-­‐русски	
  не	
  очень	
  
говорят	
  потому	
  что	
  группа	
  интернациональная	
  и	
  естественно	
  иностранцам	
  больше	
  внимания	
  и	
  информации	
  дается.	
  После	
  первой	
  
экскурсии	
  высказали	
  свое	
  разочарование	
  Хасану,	
  так	
  он	
  и	
  слушать	
  не	
  стал,	
  сначала	
  сказал,	
  что	
  устал,	
  потом	
  начал	
  кричать,	
  обзываться	
  и	
  
материться,	
  так	
  что	
  лучше	
  берите	
  в	
  другом	
  агентстве,	
  чтобы	
  окончательно	
  не	
  испортить	
  себе	
  отдых.	
  	
  
	
  
	
   Через день к нам присоединилась моя подруга с дочкой(6
лет). Моей старшей дочке (16 лет) всё понравилось, а
особенно анимация. Нас с мужем и сыном (3 года)почти всё
устроило, кроме кухни и обслуживания. Малой постоянно
заливал соком простыни, и поэтому нам их меняли каждый
день. Так что по поводу проживания нас всё устроило. За 12
дней в номере убрали всего пару раз, да и то так себе.
После чего все дети покрывались сыпью. Он хоть и с
маленькой, но тоже с горкой в виде слоника, и закрыт теном
от солнца, что не мало важно. Во первых отель заточен
исключительно под СОВЕТСКИЙ СОЮЗ. Все отдыхающие
были исключительно из республик бывшего Советского
Союза.
Отель сам по себе вполне даже нормальный, виды
красивые. Но вот заселение - это тихий ужас!
Селят в номера соседнего отеля, который раз в
сто хуже, без "дополнительной" договоренности
на большее не рассчитывайте! Для 5* отель не
тянет, но и цена об этом говорит. Пляж без урн
как таковых, поэтому мусора хватало((( Рядом
был немецкий отель тоже 5* - земля и небо!
Дорожки выложены, цветы в горшках, подсветка -
все так аккуратно! В 7 часов вечера с пляжа всех
выгоняли, видите ли, им лежаки на место надо
ставить((( Еда, хоть и не изобилует мясом, была
очень даже хорошая, как говориться, иногда надо
разгрузку проводить для организма. Развлечения
только для детей, анимация тоже для них в
основном; студентов набрали, вот и организации
толковой нет. самодеятельность короче
полная(( В заключении: больше двух недель там
делать нечего, неделя самое оно.
Что	
  мы	
  хотим	
  из	
  отзывов	
  получить?	
  
1.	
  Определение	
  отношения	
  к	
  отелю	
  в	
  целом.	
  
	
  
2.	
  Определение	
  отношения	
  к	
  категориям	
  пляжного	
  отдыха	
  в	
  отеле.	
  
	
  
3.	
  Формирование	
  краткого	
  отчета	
  об	
  отеле	
  в	
  виде	
  фразы,	
  например:	
  
Из	
  653	
  отдыхавших	
  в	
  	
  отеле	
  «яОТЕЛЬ»,	
  278	
  человек	
  (43%)	
  отмечают	
  вежливость	
  
и	
  приветливость	
  персонала,	
  220	
  отдыхающим	
  (34%)	
  понравилась	
  еда	
  в	
  
ресторанах,	
  а	
  76	
  гостей	
  (12%)	
  хотели	
  бы	
  еще	
  раз	
  отдохнуть	
  в	
  этом	
  отеле	
  ...."	
  	
  
	
  	
  
4.	
  Оценка	
  “правильности”	
  работы	
  iKnow.	
  Сравнение	
  рассчитанной	
  оценки	
  с	
  
той,	
  которую	
  поставили	
  отелю	
  авторы	
  отзывов.	
  
	
  
	
  5.	
  Группировка	
  авторов	
  отзывов	
  
Классификация	
  отдыхающих	
  по	
  категориям:	
  молодежь,	
  семьи,	
  тусовщики,	
  
пожилые	
  и	
  т.д.	
  
	
  
	
  
	
  	
  
	
  	
  
 
6.	
  Поиск	
  самого	
  полезного	
  отзыва	
  	
  
По	
  количеству	
  значимых	
  концептов,	
  эмоциональной	
  насыщенности	
  отзыва.	
  
	
  
7.	
  Поиск	
  заказных	
  отзывов	
  
	
  
8.	
  Поиск	
  повторяющихся	
  отзывов.	
  
	
  
9.	
  Определение	
  наиболее	
  часто	
  описываемых	
  объектов	
  отеля	
  или	
  частей	
  
отдыха.	
  	
  
Вывод	
  фразы	
  на	
  основе	
  проведенного	
  анализа.	
  	
  
Например:	
  	
  
	
  аниматоры	
  развлекают	
  детей	
  и	
  взрослых	
  целый	
  день	
  
	
  пляж	
  широкий	
  и	
  просторный	
  
	
  вход	
  в	
  воду	
  пологий	
  
	
  шезлонгов	
  вечно	
  не	
  хватает	
  
	
  не	
  бассейн,	
  а	
  лужа	
  
	
  аквапарк	
  -­‐	
  только	
  1	
  горка	
  
	
  напитки	
  в	
  баре	
  разбавленные	
  	
  
	
  завтрак	
  однообразный	
  
	
  временами	
  воняет	
  канализацией	
  
	
  
	
  
Что	
  мы	
  хотим	
  из	
  отзывов	
  получить?	
  
Структура	
  исходных	
  данных	
  
Для	
  работы	
  была	
  предоставлена	
  база	
  отзывов	
  по	
  100	
  отелям,	
  которые	
  имели	
  
наибольшее	
  число	
  отзывов.	
  	
  Каждый	
  отзыв	
  содержал	
  следующие	
  данные:	
  
	
  
	
  
	
  
site_id	
  
hotel_id	
  
Идентификатор	
  ресурса,	
  на	
  котором	
  был	
  
размещен	
  отзыв	
  
Идентификатор	
  отеля	
  
review_Utle	
   Заголовок	
  отзыва	
  
review_text	
   Текст	
  отзыва	
  
country	
   Страна,	
  в	
  которой	
  находится	
  отель	
  
resort	
   Курорт,	
  в	
  котором	
  расположен	
  отель	
  
hotel_name	
   Название	
  отеля	
  
author	
   Автор	
  отзыва	
  
Структура	
  исходных	
  данных,	
  категории	
  
	
  
	
  
	
  
	
  
	
  
	
  
raUng	
  
raUng_comfort	
  
Пользовательская	
  оценка	
  отеля	
  (Общая)	
  
Пользовательская	
  оценка	
  
комфортабельности	
  
raUng_locaUon	
  
Пользовательская	
  оценка	
  
местоположения	
  
raUng_service	
   Пользовательская	
  оценка	
  уровня	
  сервиса	
  
raUng_food	
   Пользовательская	
  оценка	
  питания	
  в	
  отеле	
  
raUng_territory	
   Пользовательская	
  оценка	
  территории	
  
raUng_hospitality	
  
пользовательская	
  оценка	
  
гостеприимности	
  
raUng_qpraUon	
   Пользовательское	
  оценка	
  цены/качества	
  
travel_date	
   Дата	
  путешествия	
  
Структура	
  исходных	
  данных	
  
Следует	
  отметить,	
  что	
  далеко	
  не	
  все	
  отзывы	
  содержат	
  
общие	
  оценки	
  отелей,	
  поставленные	
  авторами,	
  а	
  
оценивание	
  отелей	
  по	
  отдельным	
  категориям	
  практически	
  
не	
  проводилось.	
  
	
  
hotel_id rating rating_comfort rating_food rating_location rating_hospitality rat...
1639 - - - - - ...
366 5 - 5 - - ...
1639 - - - - - ...
366 5 - 4 5 - ...
366 5 - - - - ...
... ... ... ... ... ... ...
 
	
  
	
  
	
  	
  
Алгоритм	
  (1/3)	
  
Загрузка	
  данных	
  в	
  домен	
  
1.  Создать	
  домен	
  с	
  конфигурацией.	
  
2.  Создать	
  поля	
  метаданных	
  (для	
  хранения	
  таких	
  данных,	
  как	
  ID	
  
отеля,	
  название,	
  пользовательские	
  оценки	
  и	
  т.д.).	
  
3.  Загрузить	
  данные	
  в	
  домен.	
  
4.	
  	
  	
  Перенести	
  метаданные.	
  
 
	
  
	
  
	
  	
  
Алгоритм	
  (2/3)	
  
Словари	
  
1.  Создать	
  словарь	
  (онтологию)	
  функциональных	
  маркеров.	
  
2.  Создать	
  словарь	
  (онтологию)	
  эмоциональных	
  маркеров.	
  
3.  Обучить	
  словари	
  с	
  помощью	
  нахождения	
  похожих	
  концептов	
  в	
  
домене	
  (с	
  учетом	
  категорий	
  и	
  подкатегорий).	
  
 
	
  
	
  
	
  	
  
Алгоритм	
  (3/3)	
  
Постобработка	
  отзывов	
  
1.  Вычислить	
  оценки	
  отелей	
  по	
  отзывам.	
  
2.  Произвести	
  расчет	
  дополнительных	
  статистических	
  параметров	
  
для	
  отзывов.	
  
3.  Рассчитать	
  оценки	
  подозрительности	
  и	
  полезности	
  отзывов.	
  
4.  Получить	
  перечень	
  предложений	
  по	
  самым	
  распространенным	
  
концептам	
  среди	
  отзывов	
  по	
  конкретным	
  отелям	
  (“Еда	
  была	
  
прекрасная	
  ”,	
  “Море	
  было	
  восхитительным”,	
  	
  “Обслуживание	
  в	
  
этом	
  отеле	
  было	
  плохим”)	
  
 
	
  
	
  
	
  	
  
Создание	
  домена	
  
Domain	
  Definiwon	
  
Экземпляр	
  класса	
  
%iKnow.Domain	
  
 
	
  
	
  
	
  	
  
Создание	
  домена	
  с	
  помощью	
  
DomainDefiniUon	
  
Class com.intersystems.RussianDomain Extends %iKnow.DomainDefinition
{
XData Domain [ XMLNamespace = "http://www.intersystems.com/iknow" ]
{
<domain name="RusssianStemmingTest">
<configuration name="RussianOnly" languages="ru" stemming="DEFAULT" />
<parameter name="$$$IKPSTEMMING" value="1" />
<data>
<files path="C:ARTEMiKnowtemp
" extensions="txt" configuration="RussianOnly" encoding="windows-1251" batchM
ode="false" />
</data>
</domain>
}
}
 
	
  
	
  
	
  	
  
Создание	
  домена	
  с	
  помощью	
  
%iKnow.Domain	
  
 
	
  
	
  
	
  	
  	
  Домен	
  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	
  или	
  загрузка	
  отзывов	
  
 
	
  
	
  
	
  	
  
	
  	
  	
  Для	
  обработки	
  отзывов	
  в	
  решении	
  
формируются	
  два	
  словаря:	
  
	
  
1.  Словарь	
  функциональных	
  
маркеров	
  
2.  Словарь	
  эмоциональных	
  маркеров	
  
	
  
Словарь	
  функциональных	
  маркеров	
  
(fmarkers)	
  содержит	
  шесть	
  групп	
  терминов,	
  
которые	
  позволяют	
  сформировать	
  
представление	
  о	
  какой	
  категории	
  отеля	
  
идет	
  речь	
  (комфорт,	
  питание,	
  
гостеприимство,	
  территория,	
  сервис,	
  
местоположение	
  отеля).	
  
	
  	
  
Описание	
  решения	
  
Словари	
  маркеров	
  
fmarkers.txt
 
	
  
	
  
	
  	
  
Словарь	
  эмоциональных	
  маркеров	
  
(emarkers)	
  содержит	
  термины	
  и	
  определения,	
  
характеризующие	
  отношение	
  автора	
  к	
  
концептам.	
  	
  
Большинство	
  emarker’ов	
  –	
  прилагательные,	
  
но	
  также	
  это	
  могут	
  быть	
  существительные,	
  
которые	
  имеют	
  четкий	
  эмоциональный	
  окрас	
  
(грязь,	
  обман).	
  
Emarker’ы	
  могут	
  быть	
  позитивными	
  (хороший,	
  
добрый,	
  радость)	
  и	
  негативными	
  (плохой,	
  
грязный,	
  отравление).	
  	
  
Цифровая	
  оценка	
  положительности	
  или	
  
отрицательности	
  маркеров	
  указывается	
  в	
  
начале	
  каждой	
  строки	
  словаря	
  (в	
  данном	
  
проекте	
  использовались	
  только	
  веса	
  +1/-­‐1).	
  
	
  	
  
Описание	
  решения	
  
emarkers.txt
Словари	
  маркеров	
  
 
	
  
	
  
	
  	
  
Словари,	
  составленный	
  пользователем	
  как	
  правило	
  
содержат	
  лишь	
  малую	
  долю	
  терминов,	
  которые	
  мы	
  
считаем	
  маркерами	
  и	
  далее	
  используем	
  в	
  обработке.	
  
Поэтому	
  мы	
  дополнительно	
  “обучим”	
  наши	
  словари.	
  
Алгоритм	
  обучения	
  и	
  цели	
  обучения	
  могут	
  варьироваться,	
  
но	
  строить	
  его	
  целесообразно	
  на	
  основе	
  iKnow	
  API.	
  	
  
Возможность	
  обучения	
  является	
  принципиальным	
  
отличием	
  iKnow	
  от	
  поисковых	
  или	
  экспертных	
  систем.	
  
	
  	
  
Описание	
  решения	
  
Обучение	
  словарей	
  
 
	
  
	
  
	
  	
  
Обработка	
  отзывов	
  домена	
  производится	
  на	
  основе	
  
разделения	
  текста	
  отзыва	
  на	
  предложения.	
  	
  
Данная	
  методика	
  позволяет	
  построить	
  процесс	
  анализа	
  
текстов	
  с	
  использованием	
  методов	
  класса	
  SentenceAPI	
  в	
  
%iKnow.Queries.	
  
	
  	
  
Описание	
  решения	
  
Обработка	
  отзывов	
  
Кратко,	
  алгоритм	
  анализа	
  описывается	
  следующим	
  образом:	
  
●  На	
  основе	
  словаря	
  эмоциональных	
  маркеров	
  строим	
  для	
  отзыва	
  
множество	
  объектов	
  класса	
  Processing.Sentence,	
  в	
  которых	
  определяем	
  
эмоциональный	
  окрас	
  предложения	
  (числовым	
  значением)	
  и	
  
идентификатор	
  предложения.	
  
●  Обрабатываем	
  отрицания.	
  Для	
  каждого	
  предложения	
  с	
  отрицанием,	
  в	
  
соответствующем	
  ему	
  объекте	
  Processing.Sentence	
  выставляем	
  флаг	
  
NegaUon.	
  
●  Проверяем	
  все	
  эмоционально	
  окрашенные	
  предложения	
  отзыва	
  в	
  
поисках	
  функциональных	
  маркеров.	
  При	
  попадании	
  fmarker	
  в	
  
окрашенное	
  предложение	
  –	
  добавляем	
  значение	
  эмоционального	
  
окраса	
  в	
  категорию,	
  соответствующую	
  fmarker.	
  
В	
  итоге	
  получаем	
  объект	
  класса	
  Hotels.Stat.Hotel,	
  где	
  для	
  каждой	
  категории	
  
отеля	
  накоплено	
  некоторое	
  числовое	
  значение,	
  соответствующее	
  
отношению	
  автора	
  к	
  отелю.	
  
Описание	
  решения	
  
Анализ	
  отзывов	
  
-­‐ -­‐	
  функциональные	
  маркеры 	
   	
  -­‐	
  позитивные	
  маркеры	
  
-­‐ -­‐	
  негативные	
  маркеры	
  
Описание	
  решения	
  
Анализ	
  отзывов	
  -­‐	
  пример	
  
Получив	
  из	
  текста	
  отзыва	
  числовую	
  характеристику	
  соответствующую	
  
отношению	
  автора	
  к	
  категориям	
  отеля,	
  повторим	
  данную	
  процедуру	
  
для	
  всех	
  доступных	
  отзывов.	
  
	
  
А)	
  Средняя	
  оценка	
  
Рассчитаем	
  процент	
  положительных	
  эмоциональных	
  маркеров	
  для	
  
категорий	
  отеля	
  по	
  формуле:	
  
	
  
	
  	
  
	
  
	
  
Где	
  i	
  –	
  оцениваемая	
  категория.	
  
Описание	
  решения	
  
Рассчитанные	
  характеристики	
  
Результаты	
  
В	
  результате	
  получим	
  значение	
  от	
  0	
  до	
  1,	
  которое	
  можно	
  привести	
  к	
  
оценке,	
  выставленной	
  по	
  пяти	
  бальной	
  шкале	
  самими	
  авторами.	
  
Предварительно	
  рассчитав	
  общую	
  оценку	
  по	
  отелю	
  из	
  оценок	
  по	
  
категориям,	
  получи	
  следующую	
  корелляцию.	
  
	
  
Рассчитанные	
  характеристики	
  
 
	
  
	
  
	
  	
  
Как	
  видно	
  из	
  графика,	
  наблюдается	
  устойчивая	
  корелляция	
  
между	
  рассчитанными	
  оценками	
  и	
  оценками	
  авторов	
  отзывов.	
  
При	
  этом	
  для	
  точного	
  совпадения	
  оценок	
  необходимо	
  
подбирать	
  коэффициент	
  пересчета	
  Appraisal	
  к	
  итоговой	
  оценке	
  
(для	
  графика	
  он	
  равен	
  5).	
  
	
  
Данный	
  коэффициент	
  будет	
  зависеть	
  от	
  состава	
  словарей,	
  
общего	
  количества	
  отзывов,	
  а	
  также	
  количества	
  оцененных	
  
авторами	
  отелей.	
  
Важной	
  ценностью	
  такого	
  подхода	
  является	
  оценивание	
  всех	
  
категорий	
  отеля,	
  в	
  то	
  время	
  как	
  сами	
  авторы,	
  как	
  правило,	
  
ставили	
  только	
  одну	
  общую	
  оценку.	
  
	
  
	
  
Результаты	
  
Рассчитанные	
  характеристики	
  
 
	
  
	
  
	
  	
  Б)	
  Эмоциональная	
  насыщенность	
  (EmoUonal	
  SaturaUon	
  -­‐	
  ES)	
  
Для	
  дальнейшего	
  анализа	
  отзывов	
  введем	
  понятие	
  эмоциональной	
  
насыщенности	
  (ES).	
  
	
  
	
  
	
  
	
  
	
  
Таким	
  образом	
  ES	
  –	
  это	
  отношение	
  суммарного	
  количества	
  
эмоциональных	
  маркеров	
  в	
  статье	
  к	
  объему	
  статьи,	
  который	
  может	
  
быть	
  представлен	
  количеством	
  предложений,	
  концептов	
  или	
  
сущностей.	
  Как	
  видно	
  из	
  формулы,	
  ES	
  можно	
  разделить	
  на	
  
положительную	
  эмоциональную	
  насыщенность	
  (PES)	
  и	
  отрицательную	
  
эмоциональную	
  насыщенность	
  (NES)	
  так,	
  что	
  ES	
  =	
  PES	
  +	
  NES.	
  	
  
В	
  качестве	
  Volume	
  в	
  наших	
  расчетах	
  использовалось	
  количество	
  
сущностей,	
  выделенных	
  iKnow	
  в	
  отзыве.	
  
	
  
Описание	
  решения	
  
Рассчитанные	
  характеристики	
  
 
	
  
	
  
	
  	
  В)	
  Поиск	
  наиболее	
  полезных	
  отзывов.	
  
Полезными	
  для	
  системы	
  мы	
  считаем	
  наиболее	
  информативные	
  и	
  
сбалансированные	
  отзывы.	
  То	
  есть:	
  
	
  
1)	
  В	
  отзыве	
  должно	
  быть	
  оценено	
  максимальное	
  количество	
  категорий	
  
отеля	
  
2)	
  В	
  отзыве	
  должны	
  быть	
  как	
  положительные	
  оценки,	
  так	
  и	
  критика.	
  
Озывы	
  должны	
  быть	
  эмоционально	
  сбалансированы.	
  
3)	
  Отзыв	
  не	
  должен	
  выделяться	
  среди	
  прочих	
  по	
  значению	
  
эмоциональной	
  насыщенности	
  отзывов	
  по	
  отелю.	
  
	
  
Каждый	
  из	
  критериев	
  численно	
  приводится	
  к	
  величине	
  от	
  0	
  до	
  1,	
  а	
  
затем	
  получаем	
  среднюю	
  величину	
  –	
  оценку	
  полезности	
  отзыва.	
  
	
  
	
  
Описание	
  решения	
  
Рассчитанные	
  характеристики	
  
 
	
  
	
  
	
  	
  Г)	
  Поиск	
  подозрительных	
  отзывов.	
  
Под	
  подозрительными	
  отзывами	
  в	
  системе	
  понимаются	
  кандидаты	
  на	
  
заказные	
  отзывы,	
  то	
  есть	
  написанные	
  в	
  рекламных	
  или	
  антирекламных	
  
целях	
  и	
  не	
  отражающие	
  реальную	
  оценку	
  отеля.	
  
Критерии	
  подозрительных	
  отзывов	
  
	
  
1)	
  Значения	
  ES	
  для	
  отзыва	
  значительно	
  отличаются	
  от	
  средних	
  по	
  
отелю	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
2)	
  Отзыв	
  имеет	
  ярко	
  выраженную	
  позитивную	
  окраску	
  (реже	
  -­‐	
  
негативную)	
  
	
  
3)	
  Оценка	
  отеля,	
  рассчитанная	
  по	
  отзыву,	
  существенно	
  отличается	
  от	
  
средней	
  по	
  отелю.	
  
	
  
	
  
	
  	
  
Описание	
  решения	
  
Рассчитанные	
  характеристики	
  
 
	
  
	
  
	
  	
  Для	
  отзывов	
  вводится	
  понятие	
  полезности	
  или	
  эффективности,	
  
которое	
  рассчитывается	
  для	
  каждой	
  статьи.	
  
	
  
	
  
	
  
Результаты	
  
Определение	
  полезности	
  отзыва	
  
Отдыхали	
  в	
  PGS	
  HOTELS	
  с	
  14	
  по	
  25	
  июня	
  2010	
  г.	
  Отель	
  выбрали	
  по	
  настоянию	
  туроператора.	
  Нам	
  было	
  
рекомендовано	
  «просто	
  закрыть	
  глаза	
  на	
  очень	
  неудобный	
  обратный	
  вылет,	
  но	
  отправиться	
  именно	
  в	
  PGS,	
  т.	
  
к.	
  там	
  огромная	
  территория,	
  замечательный	
  пляж,	
  отличные	
  условия	
  для	
  детей,	
  хорошее	
  питание	
  и	
  номера».	
  
Истиной	
  это	
  оказалось	
  примерно	
  наполовину.	
  Что	
  касается	
  территории	
  и	
  пляжа-­‐	
  вопросов	
  нет,	
  действительно-­‐	
  
огромная	
  и	
  действительно-­‐	
  замечательный.	
  Но	
  вот	
  все	
  остальное…	
  Меня	
  предупреждали,	
  что	
  надо	
  при	
  
оформлении	
  класть	
  10-­‐20	
  долларов	
  в	
  паспорт,	
  но	
  я	
  посчитала	
  это	
  излишним,	
  т.	
  к.	
  номер	
  у	
  нас	
  был	
  оплачен	
  не	
  
стандарт,	
  а	
  семейный,	
  число	
  которых	
  в	
  сезон	
  и	
  так	
  ограниченно.	
  Теперь	
  вот	
  думаю,	
  то	
  ли	
  за	
  жадность	
  
поплатилась,	
  то	
  ли	
  и	
  вправду	
  все	
  номера	
  такие?	
  Начать	
  с	
  того,	
  что	
  по	
  приезду	
  вас	
  никто	
  не	
  провожает	
  в	
  номер,	
  
это	
  лишнее,	
  хорошо	
  хоть	
  багаж	
  доносят.	
  Местный	
  фен	
  оказался	
  просто	
  сломан	
  (правда	
  его	
  в	
  этот	
  же	
  день	
  по	
  
моей	
  просьбе	
  починили),	
  но	
  и	
  после	
  починки	
  работал	
  он	
  очень	
  слабо	
  и	
  явно	
  перегревался.	
  Привезенный	
  же	
  
фен	
  просто	
  не	
  работал,	
  т.	
  к.	
  напряжение	
  в	
  сети	
  очень	
  низкое…	
  
 
	
  
	
  
	
  	
  Для	
  отзывов	
  вводятся	
  понятие	
  подозрительности.	
  Таким	
  
образом	
  можно	
  определять	
  кандидатов	
  на	
  заказные	
  отзывы.	
  
	
  
	
  
	
  
Результаты	
  
Поиск	
  подозрительных	
  отзывов	
  
Территория	
  отличная,	
  можно	
  отлично	
  погулять	
  и	
  отдохнуть.	
  В	
  отеле	
  очень	
  удобно	
  
расположены	
  развлечения,	
  бармены	
  всегда	
  наливают.	
  Бассейн	
  лучший!	
  Горки,	
  игры	
  
на	
  воде,	
  все	
  отлично!	
  Пляж	
  рядом.	
  Нас	
  вообще	
  не	
  напрягало	
  ходить	
  через	
  дорогу.	
  Там	
  
все	
  рядом.	
  Бар	
  на	
  пляже	
  отличный.	
  Сам	
  пляж	
  лучший.	
  В	
  пяти	
  звездах	
  бывают	
  хуже.	
  
Еда	
  отличная,	
  кормят	
  вкусно,	
  один	
  день	
  привыкали.	
  Около	
  отеля	
  много	
  турагенств	
  
для	
  организации	
  недорогого	
  досуга	
  (рыбалка,	
  яхта,	
  баня,	
  магазины	
  и	
  т.	
  д.	
  )	
  Брали	
  на	
  
прокат	
  мопеды.	
  Все	
  отлично.	
  Нас	
  в	
  конце	
  переселили	
  на	
  3-­‐4	
  дня	
  в	
  5	
  звезд	
  в	
  Кемер,	
  
там	
  отель	
  нам	
  не	
  понравился.	
  Шопинг	
  класный!	
  Жена	
  была	
  в	
  восторге.	
  Погода	
  супер!	
  	
  
 
	
  
	
  
	
  	
  
Из	
  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%*).	
  
	
  
	
  
Результаты	
  
Итоговые	
  фразы	
  об	
  отелях	
  
Текущие	
  сложности:	
  
	
  -­‐	
  в	
  отзывах	
  используется	
  неформализованный	
  язык	
  и	
  
нелитературные	
  выражения,	
  усложняющие	
  составление	
  словарей.	
  
	
  -­‐	
  в	
  отзывах	
  не	
  соблюдаются	
  правила	
  пунктуации,	
  приводящие	
  к	
  
ошибкам	
  интерпретации	
  отрицаний.	
  
	
  -­‐	
  стемминг	
  работает	
  “неидеально”	
  (“отель”	
  =	
  “отёл”	
  =	
  
“отелить”;	
  “море”	
  =	
  “морить”;	
  “зелёный	
  дикий	
  слив”)	
  
	
  
Пути	
  развития:	
  
	
  -­‐	
  оптимизация	
  алгоритма	
  разбора	
  отрицаний,	
  позволит	
  повысить	
  
точность	
  оценивания.	
  
	
  -­‐	
  развитие	
  словарей	
  функциональных	
  и	
  эмоциональных	
  маркеров.	
  
	
  -­‐	
  использование	
  средств	
  SpellChecker	
  перед	
  загрузкой	
  отзывов	
  в	
  
домен	
  iKnow.	
  
	
  
Сложности	
  и	
  пути	
  развития	
  
Спасибо за внимание

More Related Content

More from InterSystems

Source Control Addon for InterSystems Caché with UDL support
Source Control Addon for InterSystems Caché with UDL supportSource Control Addon for InterSystems Caché with UDL support
Source Control Addon for InterSystems Caché with UDL supportInterSystems
 
DeepSee SYSMON - InterSystems Caché System Monitoring Analytics
DeepSee SYSMON - InterSystems Caché System Monitoring AnalyticsDeepSee SYSMON - InterSystems Caché System Monitoring Analytics
DeepSee SYSMON - InterSystems Caché System Monitoring AnalyticsInterSystems
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergrationInterSystems
 
InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukInterSystems
 
InterSystems Healthshare +DeepSee. Hospitalization queue
InterSystems Healthshare +DeepSee. Hospitalization queueInterSystems Healthshare +DeepSee. Hospitalization queue
InterSystems Healthshare +DeepSee. Hospitalization queueInterSystems
 
Deep see mobile meetup красноярск
Deep see mobile meetup красноярскDeep see mobile meetup красноярск
Deep see mobile meetup красноярскInterSystems
 
InterSystems High Availability and Mirroring solutions
InterSystems High Availability and Mirroring solutionsInterSystems High Availability and Mirroring solutions
InterSystems High Availability and Mirroring solutionsInterSystems
 
Enterprise Serial Bus on InterSystems Ensemble
Enterprise Serial Bus on InterSystems EnsembleEnterprise Serial Bus on InterSystems Ensemble
Enterprise Serial Bus on InterSystems EnsembleInterSystems
 
Интеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems EnsembleИнтеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems EnsembleInterSystems
 
Перевод базы Caché из 8 бит в Unicode
Перевод базы Caché из 8 бит в UnicodeПеревод базы Caché из 8 бит в Unicode
Перевод базы Caché из 8 бит в UnicodeInterSystems
 
ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014
ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014
ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014InterSystems
 
Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...
Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...
Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...InterSystems
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014InterSystems
 
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...InterSystems
 
Статический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptСтатический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptInterSystems
 

More from InterSystems (17)

Source Control Addon for InterSystems Caché with UDL support
Source Control Addon for InterSystems Caché with UDL supportSource Control Addon for InterSystems Caché with UDL support
Source Control Addon for InterSystems Caché with UDL support
 
DeepSee SYSMON - InterSystems Caché System Monitoring Analytics
DeepSee SYSMON - InterSystems Caché System Monitoring AnalyticsDeepSee SYSMON - InterSystems Caché System Monitoring Analytics
DeepSee SYSMON - InterSystems Caché System Monitoring Analytics
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
 
InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015InterSystems news Meetup Sankt-Peterburg2015
InterSystems news Meetup Sankt-Peterburg2015
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
InterSystems Healthshare +DeepSee. Hospitalization queue
InterSystems Healthshare +DeepSee. Hospitalization queueInterSystems Healthshare +DeepSee. Hospitalization queue
InterSystems Healthshare +DeepSee. Hospitalization queue
 
Deep see mobile meetup красноярск
Deep see mobile meetup красноярскDeep see mobile meetup красноярск
Deep see mobile meetup красноярск
 
InterSystems High Availability and Mirroring solutions
InterSystems High Availability and Mirroring solutionsInterSystems High Availability and Mirroring solutions
InterSystems High Availability and Mirroring solutions
 
Enterprise Serial Bus on InterSystems Ensemble
Enterprise Serial Bus on InterSystems EnsembleEnterprise Serial Bus on InterSystems Ensemble
Enterprise Serial Bus on InterSystems Ensemble
 
Интеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems EnsembleИнтеграционная шина на базе InterSystems Ensemble
Интеграционная шина на базе InterSystems Ensemble
 
Перевод базы Caché из 8 бит в Unicode
Перевод базы Caché из 8 бит в UnicodeПеревод базы Caché из 8 бит в Unicode
Перевод базы Caché из 8 бит в Unicode
 
ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014
ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014
ECP и API управления процессами. InterSystems Meetup Sankt-Peterburg 2014
 
Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...
Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...
Примеры использования iknow в медицине - InterSystems Meetup Sankt-Peterburg ...
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014
 
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
Управление изменениями и коллективная разработка в Caché. InterSystems Meetup...
 
Статический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object ScriptСтатический анализатор кода для InterSystems Caché Object Script
Статический анализатор кода для InterSystems Caché Object Script
 

intersystems iknow approach for natural language processing on tourist requests

  • 1. Анализ  отзывов  о  пляжном  отдыхе  c   помощью  iKnow Артём Визнюк
  • 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  
  • 14.           Создание  домена  с  помощью   DomainDefiniUon   Class com.intersystems.RussianDomain Extends %iKnow.DomainDefinition { XData Domain [ XMLNamespace = "http://www.intersystems.com/iknow" ] { <domain name="RusssianStemmingTest"> <configuration name="RussianOnly" languages="ru" stemming="DEFAULT" /> <parameter name="$$$IKPSTEMMING" value="1" /> <data> <files path="C:ARTEMiKnowtemp " extensions="txt" configuration="RussianOnly" encoding="windows-1251" batchM ode="false" /> </data> </domain> } }
  • 15.           Создание  домена  с  помощью   %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.     Сложности  и  пути  развития