Similar and recomended objects selection algorithm
Похожие объекты (одноименная вкладка на карточке объекта в мобильной версии)
Типы похожих предметов:
- Объекты из других музеев
- Объекты с похожими тегами
- Объекты с похожей датой
- Объекты с похожим местом
- Похожие объекты из недвижимого наследия
- Объекты с другим классом
- Рекомендации*
- Медиа**
* не отображаются на вкладке "Похожие объекты", но используются для построения списка рекомендованных предметов на вкладке "Характеристики".
** не отображаются на вкладке "Похожие объекты", но используются для построения списка рекомендованных медиа файлов.
Алгоритм
На вход алгоритма подается объект, для которого формируются похожие рекомендации (назовем его главным объектом), и тип рекомендации.
Отбор объектов проводиться в три этапа:
1.Первичный отбор объектов по главному полю.
Из списка всех объектов на языке главного объекта отбираются объекты в соответствии со следующей таблицей:
Тип похожих предметов | Главное поле | Критерий |
---|---|---|
Объекты из других музеев | Музей | Не совпадает со значением главного объекта |
Объекты с похожими тегами | Теги | Множество тегов пересекаются с множеством главного объекта |
Объекты с похожей датой | Год | Такой же как у главного объекта |
Объекты с похожим местом | Музей | Такой же как у главного объекта |
Похожие объекты из недвижимого наследия | Класс | Равен "Недвижимое наследие" |
Объекты с другим классом | Класс | Не совпадает со значением главного объекта |
Рекомендации | Класс | Такой же как у главного объекта |
Медиа | Класс | Равен "Аудио/Видео" |
2. Оценка расстояния от главного объекта до прочих объектов.
На данном этапе оценивается численное расстояние между главным объектом и объектами, отобранными в первом пункте. Если
В соответствии с таблицей из файла для каждого ранее отобранного объекта производится оценка соответствия полей в заданном формате.
таблица для сравнения рекомендаций.xls
В зависимости от расположения в списке, каждое поле имеет свой весовой коэффициент:
Номер поля в таблице | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Весовой коэффициент | 1 | 0.9 | 0.8 | 0.7 | 0.6 | 0.5 | 0.4 | 0.3 | 0.2 | 0.15 | 0.1 | 0.05 |
Логика оценки для всех полей, кроме имени и тегов, следующая:
- Если поля не совпадают (или не определены у сравниваемого и/или главного объекта), то расстояние увеличивается на величину весового коэффициента.
- Если совпадают, то к расстоянию ничего не прибавляется.
Для сравнения по полям Имя и Теги используется другая логика:
- Если поля не определены у сравниваемого и/или главного объекта, то расстояние увеличивается на величину весового коэффициента.
- Иначе:
- Для поля Имя: значение расстояния увеличивается на произведение расстояния Левенштейна между именами и величины весового коэффициента.
- Для поля Теги: значение расстояния увеличивается на (весовой коэффициент / количество общих тегов).
Результатом данного этапа является список пар (объект, расстояние до главного объекта).
3.Сортировка объектов в зависимости от расстояния.
Список, полученный на предыдущем этапе, сортируется по величине расстояния, из него выбираются 36 объектов, наиболее близких к главному объекту.
Рекомендованные объекты (список внизу первой вкладки карточки объекта мобильной версии)
Входные данные - главный объект. Результат работы алгоритма - список объектов для рекомендаций.
- Если главный объект входит в истории, то в начало списка вставляются прочие объекты из этих историй.
- В конец списка помещается список похожий объектов "Рекомендованные".
- Если суммарное число объектов меньше девяти, то в конец списка добавляются объекты из прочих список похожих предметов.
- Если суммарное число объектов больше тридцати шести, то конец списка обрезается, так чтобы в нем осталось всего тридцать шесть объектов.