Целью работы является разработка подсистемы подбора сопутствующих товаров при покупке в интернет-магазине (www.miko.digitalfashion.ru). Основная задача подсистемы - предложить новые товары на базе купленных-просмотренных. Такая подсистема позволит увеличить ассортимент и продажу товаров и в конечном итоге прибыль в магазине. Для выполнения поставленной цели необходимо было выбрать подходящий метод и разработать приложения. В результате проведенного анализа и сравненения (рассмотрены методы байесовских сетей, гибридные модели, латентные модели и др.) был выбран метод кластерного анализа, на основе которого разрабатывалась подсистема. Для языка Python и в частности для Django используется приложение Django-recommends, которое основывается на коллаборативной фильтрации по рейтингу и использует алгоритм метода расчета сходства и рекомендаций. Метод в качестве входных данных использует список голосов для объекта и возвращает словарь сходств для каждого объекта. Система рекомендаций тесно взаимодействует со структурой построения приложения. Невозможно реализовать систему и правильно настроить ее без создания базовой функциональности магазина.
Для решения поставленных задач были выбраны: операционная система Mac OS X 10.10; СУБД MySQL; язык программирования Python со свободным фреймворком для веб-приложений Django; кроссплатформенный веб-сервер Apache с использованием модуля mod_wsgi. Дополнительным языком программирования выбран JavaScript, а для взаимодействия JavaScript и HTML использовалась библиотека jQuery.
На рис. 1 представлена ER-модель разрабатываемой подсистемы.
В ходе проектирования и реализации были соданы приложения, состоящие из нескольких файлов, отличающихся своей функциональностью: Например:
|
Рис 1. ER-Модель интерактивной подсистемы подбора сопутствующих товаров |
теги и фильтры, но в некоторых приложениях может собственный функционал.
views.py. Представление — это функция Python, которая принимает web-запрос и возвращает web-ответ (HTML содержимое, массив данных или XML файл).
widgets.py. Виджеты — это представление поля в виде HTML кода, который обеспечивает извлечение данных из POST/GET запросов для расширения базового функционала типа данных как в административной панели, так и на сайте.
пользовательский файл или класс – для нестандартных задач
На рис. 2 показана схема взаимодействия модулей:
Menu - отвечает за отображение, редактирование, добавление любого типа меню. Состав приложения: models.py с классами типа меню и элемента меню; templatetags с двумя шаблонными тегами для вывода типа меню и его элементов.
Core - основное приложение в проекте. На его моделях строится основная структура интернет-магазина. Приложение содержит представления для работы сайта. Состав приложения: models.py с классами для позиции товара, динамичных категорий товара и полей для динамичных категрий; widgets.py – для перезаписи стандартного класса MultiFileInput для загрузки нескольких изображений; templatetags с тремя шаблонными тегами; views.py с 25 представлениями (представление отвечающее за корзину, каталог, главную страницу, карточку товара и т д.); recommendations.py - пользовательский файл для выборки рекомендуемого товара (входными данными является объект корзины, выходными данными является список рекомендуемого товара). Именно в этом файле реализован алгоритм кластеризации.
Goods - приложение с динамическими моделями товаров. Состав приложения: models.py - не содержит классов, т.к. все модели для данного приложения создаются динамически.
Node - для обычных текстовых страниц разделяющихся на категории. Состав приложения: models.py с классами категрий и элементов текстового матерала и views.py с представлениями для текстовых материалов.
|
Рис. 2. Взаимодействие модулей |
compare.py - пользовательский файл, включающий в себя создание удаление и прочее манипулирование как с самим обьектом сравнения, так и с элементами сравнения.
Orders - содержит подробную информацию о заказе, ее элементах, сумме заказа, а так, же о пользователе, который осуществил заказ. Состав приложения заказа: models.py с классами заказов и содержимого заказа.
Meta - представляет собой семантическое ядро для продвижения сайта в интернете; создания контекстной рекламы и т.д. Содержимое приложения: models.py содержит один абстрактный класс, для которого не создается таблица в базе данных. Класс наследник содержит 3 дополнительных поля (meta_title, meta_keywords и meta_description). Все классы, которые нуждаются в 3 дополнительных полях для поисковых систем, наследуются от данного класса.
В результате выполнения данного проекта был проведен анализ существующих решений, на основе которого был выбран метод подбора сопутствующих товаров при покупке в интернет-магазине. Выполнена реализация приложений и разработана подсистема, которая была внедрена в опытную эксплуатацию.
Список использованной литературы:
Кольчугина Е.А., Макарь В.А. Метод коллаборативной фильтрации для масштабируемых рекомендательных систем //Современные научные исследования и инновации. 2012. № 6 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2012/06/14316
Морозов Н.В.,Шукенбаев А.Б., Шукенбаева Н.Ш. Подсистема отправки SMS сообщений. Общероссийский журнал Академии Естествознания "Современные наукоемкие технологии" № 5, часть 2, - М.: Издательский дом «Академия естествознания», 2014, с. 212-214.
Конькова Ю.В., Шукенбаев А.Б., Шукенбаева Н.Ш. Анализ эффективности сайта и разработка предложений по ее повышению. Сборник трудов международной научно практической конференции «Современные инфорамационные технологии в профессиональной деятельности (СИТ-2014)», – М.: МФЮА, 2014. C. 111-119.