logo

Прототип NLP-поиска фильмов

Создали внутренний NLP-прототип, который находит фильмы по свободному описанию. Это не отдельный продукт, а наша тестовая площадка для разработки и применения решений в области обработки естественного языка.
1 (12).png
2 (13).png
ИндустрияВнутренний проект
Тип бизнесаIT
РегионРоссия
ИндустрияВнутренний проект
Тип бизнесаIT
РегионРоссия

Клиент

В 2021 году мы разработали внутренний прототип для поиска фильмов и сериалов. Как и онлайн-сурдопереводчик SignLab, проект Movie Search вырос из нашей практики в Data Science – в частности, работы с NLP и нейронными сетями. Мы использовали его как тестовую среду, чтобы проверить, как модели справляются с поиском по свободному описанию.

Процесс разработки

Простор для экспериментов

Так как проект внутренний, мы сами решали, как будет выглядеть и с помощью каких инструментов будет реализован Movie Search. Это дало нам больше творческой свободы и простора для экспериментов.

1/4

Подготовка

Собрали фич-лист и создали на его основе user scenario.

2/4

UI/UX

Дизайнер сделал варфреймы и отрисовал макеты. Ориентировались на привычный для пользователей вид известных онлайн-кинотеатров.

3/4

Разработка

Фронтендер переносил макеты в верстку. Бэкендеры разбирались с векторизацией, подбирали модели с учетом конкретных задач и делали API.

4/4

Спецификация

Задокументировали требования и описали потоки данных. Если решим доработать проект, проще будет разобраться.

Как мы построили и внедрили NLP-модель
в наш сайт для поиска фильмов:

1. Сбор датасета

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

Основной объем данных был на английском языке, поэтому мы не стали усложнять архитектуру дополнительным этапом перевода и сфокусировались на работе с оригинальными текстами. Интерфейс прототипа также сделали на английском.

Это позволило ускорить подготовку датасета и сосредоточиться на разработке модели.

2. Векторизация

Любой поисковый запрос пользователя для ИИ выглядит как набор символов. Чтобы ИИ «понял» текст, его нужно перевести в числовой формат. Помогает в этом векторизация.

Вариантов поиска у нас два: по описанию и по ключевой фразе. Чтобы получать релевантные результаты, векторизацией запросов занимаются сразу два алгоритма:
– Для поиска по описанию используется языковая модель BERT от Google.
– Для поиска по ключевым словам данные из запросов извлекаются с помощью модели NER Stanza.

Поскольку поиск – главная функция сервиса, такой подход позволяет обрабатывать как свободные описания, так и короткие запросы, повышая релевантность результатов.

3. Формирование и сохранение векторов

Для хранения и поиска векторных представлений мы использовали Milvus – специализированную базу данных для работы с такими данными. Она позволяет эффективно находить похожие объекты по расстоянию между ними.

Для поиска ближайших совпадений мы применили метрику евклидова расстояния (L2), которую использовали для ранжирования результатов по степени сходства с пользовательским запросом.

4. Рекомендательная система

В классических рекомендательных системах часто используются пользовательские данные – история просмотров, оценки или поведенческие сигналы.

В Movie Search мы сознательно отказались от этого подхода: прототип не предусматривал регистрации и сбора пользовательских данных. Вместо этого рекомендации формировались на основе анализа самих фильмов – их описаний, ключевых сущностей и смысловой близости. Для этого мы использовали NLP-модели, включая BERT для работы с текстом и NER Stanza для извлечения сущностей.

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

Технологии

technology
Бэкенд алгоритма

Python

technology
Бэкенд сервиса

Django

technology
База данных

PostgreSQL

technology
База данных

Milvus

technology
NLP-модель

BERT

technology
NLP-модель

NER Stanza

technology
Библиотека

TensorFlow

technology
Брокер сообщений

NATS

Результат

На разработку прототипа Movie Search ушло шесть недель. Основной фокус был на реализации поиска по свободному описанию и базовой рекомендательной логики.

В результате мы получили рабочий прототип, который позволяет находить фильмы даже по неполному или неточному описанию – например, по идее сюжета, сцене или известному персонажу.

Проект стал для нас практической задачей, на которой мы отработали подходы к NLP-поиску и рекомендациям без использования пользовательских данных.

98% –

релевантных совпадений на тестовых сценариях.

grade
6 недель

мы потратили на разработку и запуск прототипа.

grade
logo

Проект не является готовым продуктом и не распространяется как отдельное решение. Movie Search – это внутренняя разработка, на базе которой мы тестируем NLP-подходы и применяем их в клиентских проектах.

— команда Zuzex.

Напишите нам

/ 5000

Что происходит дальше:

  • Мы получаем запрос, обрабатываем его в течение 24 часов и связываемся по указанным вами e‑mail или телефону для уточнения деталей.

  • Подключаем аналитиков и разработчиков. Совместно они составляют проектное предложение с указанием объемов работ, сроков, стоимости и размера команды.

  • Договариваемся с вами о следующей встрече, чтобы согласовать предложение.

  • Когда все детали улажены, мы подписываем договор и сразу же приступаем к работе.