2013-03-30 2 views
1

Я новый пользователь на Neo4J .. Всего одна неделя чтения.Neo4j Рекомендация Двигатель

Я использую NEO4J для создания рекомендаций.

У нас есть каталог продукции и на странице сведений о продукте мы хотели бы показать похожие продукты на основе особенностей различных продуктов, совокупного рейтинга, ценового диапазона.

Эти продукты как таковые не имеют взаимосвязи друг с другом, за исключением того, что они имеют общие функции.

Например продукта: iphone Характеристика: камера, 4g и т.д.

продукта: Samsung Note Характеристика: камера, 4g и т.д.

Любые мысли, если Neo4j является правильным выбором для этого типа данных? Нам нужен список аналогичных продуктов на основе набора функций, цены, рейтинг для каждого продукта

И как будет выглядеть модель данных wold?

ответ

4

Вы можете взглянуть на http://www.reco4j.org/, рамочный механизм разработки, работающий сверху Neo4j.

+3

[Их сайт] (http://www.reco4j.org/) пуст и говорит: «Мы скоро вернемся», они дернули свои [GitHub repos] (https://github.com/reco4j? tab = repositories), дернул [страницу загрузки] (http://www.reco4j.org/download.jsp) и ничего не писал [на Twitter] (https://twitter.com/reco4j) в течение нескольких месяцев , Очень странно. Слишком плохо, звучало интересно на основе видео, которое я смотрел. –

+0

Yeah Oct 2014 Я получаю то же самое, что @AbeVoelker – Vnge

2

Я бы предложил посмотреть сайт, похожий на Amazon.com (или аналогичный), и посмотреть, как они организуют свой SKU. Если открыть любой пункт на Амазонке вы будете «Грани» (или способы категоризации элементов), как:

  • отдела
  • Подкатегорий
  • Марка
  • Рейтинг
  • Диапазон цен
  • Характеристики (как ключевые слова)

Затем вам необходимо определить, будут ли каждый из этих аспектов s лучше моделируется как иерархия или как свойство. Департамент и подкатегория выглядят как лучшие кандидаты на иерархию, тогда как бренд и функции выглядят как лучшие кандидаты на свойства.

Отдел и подкатегория будут выглядеть как деревья, а листья дерева - все ваши SKU.

Тогда ваша функция «подобия» может быть такой же простой, как если бы «продукт попадает в один и тот же отдел/подкатегорию и соответствует не менее 50% функций».

Надеюсь, это поможет, это только мои первоначальные мысли.

+0

, это выглядит очень простой вариант использования, поскольку мы используем solr/lucene. Но мы изучаем Neo4J в процессе этого. – ajd

+0

На самом деле, да, я видел, как люди используют Solr или ElasticSearch для реализации такого рода функций. Но как только вы захотите войти в «анализ корзины» (связать продукты, купленные вместе), «анализ сеанса» (ссылки на продукты, просмотренные в том же сеансе) или «что мне нравится моим друзьям», тогда я бы начал изучать Neo4j. –

1

Есть несколько вариантов:

  • вы можете сделать рекомендации по поиску аналогичных пользователей (через их истории действия/покупки/рейтинги) и рекомендовать то, что эти подобные пользователи купили, см: http://docs.neo4j.org/chunked/milestone/cypher-cookbook-similar-favorites.html
  • вы может просто перечислить другие продукты, относящиеся к одной и той же категории, и иметь аналогичные атрибуты (хорошо, если вы можете вытаскивать атрибуты как узлы вместо свойств, чтобы их было легче сопоставить)
  • Вы можете перечислить продукты, которые были бы полезными аксессуарами для уже купленных товаров (не имеет смысла предлагать Текущая камера для тех, кто только что купил фотоаппарат, а аксессуары к тому, что он купил)
  • , если у вас нет исходных данных покупки вы можете просто список продукты с высоким рейтингом в подобных демографических (пол, возраст и т.д.)
+0

привет Майкл, вариант 2 «создание объектов как узел» - вот что я думал. Так что .. я должен создать узел, например Product: Name (iPhone) "имеет" Связь с узлом "Camera: True", "Texting: True" – ajd