Это мой диплом.
Идея диплома заключается в том, чтобы брать комментарии с яндекс маркета и анализировать их через нейронную сеть.
Для анализа используются две нейронки, одна возвращает эмбединги, другая нейронка анализирует эмоциональный окрас сообщения.
Каждая нейронка работает отдельным процессом, и под каждую нейронку создан grpc сервер на python, чтобы можно было использовать нейронку из c# с минимальной задержкой (на фоне работы нейронки она даже не чувствуется).
Каждая нейронка передает данные через GRPC Stream.
Главный сервер, на котором происходит анализ и кластеризация написан на c#. Чтобы обходить защиту от робота используется Playwright (на момент написания диплома это работало, сейчас перестало, надо искать другой способ) Чтобы систему сделать отказоустойчивой к различным исключениям, которые могут возникнуть: сеть сломалась, запрос не сработал и т.д используется Hangfire + mssql0 (изначальн использовался Redis, но после переноса разработки на windows оно сломалось с redis и работает с mssql) Чтобы сохранять промежуточные данные во время анализа, прочтенные комментарии, промежуточную кластеризацию и т.д используется redis Используется рекурсивные вызовы планировщика задач из Hangfire пока не закончатся комментарии и они не будут проанализированы Алгоритм анализа сложно описать словами, но если кратко:
- Происходит чтения и парсинг данных с яндекс маркета с помощью Hangfire и Playwright
- После окончания чтения происходит анализ комментариев с помощью алгоритма k-means. Каждая итерация данного алгоритма это одна задача в Hangfire
- Когда анализ закнчивается по SignalR отправляет событие что анализ завершен