Similar and recomended objects selection algorithm

Similar and recomended objects selection algorithm

Похожие объекты (одноименная вкладка на карточке объекта в мобильной версии)

Типы похожих предметов:

  • Объекты из других музеев
  • Объекты с похожими тегами
  • Объекты с похожей датой
  • Объекты с похожим местом
  • Похожие объекты из недвижимого наследия
  • Объекты с другим классом
  • Рекомендации*
  • Медиа**

* не отображаются на вкладке "Похожие объекты", но используются для построения списка рекомендованных предметов на вкладке "Характеристики".

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

Алгоритм

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

Отбор объектов проводиться в три этапа:

1.Первичный отбор объектов по главному полю.

Из списка всех объектов на языке главного объекта отбираются объекты в соответствии со следующей таблицей:

Тип похожих предметовГлавное полеКритерий

Объекты из других музеев

Музей

Не совпадает со значением главного

объекта

Объекты с похожими тегами

Теги

Множество тегов пересекаются

с множеством главного объекта

Объекты с похожей датой

ГодТакой же как у главного объекта

Объекты с похожим местом

МузейТакой же как у главного объекта

Похожие объекты из недвижимого наследия

КлассРавен "Недвижимое наследие"

Объекты с другим классом

Класс

Не совпадает со значением главного

объекта

РекомендацииКлассТакой же как у главного объекта
МедиаКлассРавен "Аудио/Видео"

 

2. Оценка расстояния от главного объекта до прочих объектов.

На данном этапе оценивается численное расстояние между главным объектом и объектами, отобранными в первом пункте. Если 

В соответствии с таблицей из файла для каждого ранее отобранного объекта производится оценка соответствия полей в заданном формате.

таблица для сравнения рекомендаций.xls

В зависимости от расположения в списке, каждое поле имеет свой весовой коэффициент:

Номер поля в таблице123456789101112
Весовой коэффициент10.90.80.70.60.50.40.30.20.150.10.05

Логика оценки для всех полей, кроме имени и тегов, следующая:

  1. Если поля не совпадают (или не определены у сравниваемого и/или главного объекта), то расстояние увеличивается на величину весового коэффициента.
  2. Если совпадают, то к расстоянию ничего не прибавляется. 

Для сравнения по полям Имя и Теги используется другая логика:

  1. Если поля не определены у сравниваемого и/или главного объекта, то расстояние увеличивается на величину весового коэффициента.
  2. Иначе:
    1. Для поля Имя: значение расстояния увеличивается на произведение расстояния Левенштейна между именами и величины весового коэффициента.
    2. Для поля Теги: значение расстояния увеличивается на (весовой коэффициент / количество общих тегов).

 

Результатом данного этапа является список пар (объект, расстояние до главного объекта).

3.Сортировка объектов в зависимости от расстояния.

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

Рекомендованные объекты (список внизу первой вкладки карточки объекта мобильной версии)

Входные данные - главный объект. Результат работы алгоритма - список объектов для рекомендаций.

  1. Если главный объект входит в истории, то в начало списка вставляются прочие объекты из этих историй.
  2. В конец списка помещается список похожий объектов "Рекомендованные".
  3. Если суммарное число объектов меньше девяти, то в конец списка добавляются объекты из прочих список похожих предметов.
  4. Если суммарное число объектов больше тридцати шести, то конец списка обрезается, так чтобы в нем осталось всего тридцать шесть объектов.