Разработка микросервиса для сегментации страниц печатных изданий на основе глубоких нейронных сетей
Продвинутая система мониторинга извлекает информацию из сотен австралийских газет и журналов, чтобы клиенты знали, что говорят об их брендах и продуктах. Это достигается путём непрерывной добычи и обработки большого объёма информации. Одной из наиболее острых проблем, помимо извлечения информации, является сегментация информации по определенным тематическим блокам. Издатели предпочитают не публиковать свои статьи в текстовом формате, приходится извлекать текст непосредственно с изображений. А что бы все статьи не слились в сплошной тест, требуется провести границы которые бы разделили статьи друг от друга. От качества разбиения текста зависит целостность, упорядоченность и актуальность получаемой информации. Этот процесс можно называть сегментацией страниц печатных изданий (на отдельные статьи). В дальнейшем эта разметка используется для группировки распознанного текста, что улучшает поисковые алгоритмы и делает поисковую выдачу более релевантной. Распознавание сегментов статей на основе существующих программных решений (OCR-технологии) не всегда позволяет получить корректный результат.
Станица печатного издания | Сегментация блоков статей | |||
Дата внедрения (в случае, если предполагается запуск проекта в эксплуатацию):
26.07.2021
Используемые платформы, средства разработки:
За
основу была взята уже спроектированная и обученная пользователем платформы
github под псевдонимом DrSleep глубокая нейронная сеть Light-Weight
(облегченная) RefineNet, написанная на фреймворке PyTorch. Web-интерфейс к микросервису разработан на базе фреймворка – FastAPI.
Стоимость разработки системы:
-
Средний размер ежегодных затрат на эксплуатацию:
-
Перспективы развития:
Первое над чем стоит подумать – это как сбалансировать качество сегментации по изданиям. Так как в обучающем датасете издания распределены неравномерно по количеству сэмплов на издание. Проблему можно решить как минимум тремя способами:
1. Продублировать сэмплы. Найти издание для которого представлено больше всего сэмплов, и “подровнять” остальные дублируя изображения. 2. Разметить больше данных. Требует достаточно много ресурсов. 3. Найти способ предоставить нейронной сети априорную информацию об издании, как входные данные. Наиболее интересный способ, требующий разработки удобного для нейронной сети представления информации об издании. Такая информация позволит нейронной сети успешнее разделять графические признаки требуемые для сегментации изображения того или иного издания. Ведь в разных изданиях разные редакторы и дизайнеры используются разные стилистические элементы: разные отступы, разделители, выделения и рамки и т.п. Следующим шагом стоит провести больше экспериментов с гиперпараметрами, как самой сети, так и постобработки, например, применяя операции эрозии или наращивания на масках сегментации, можно регулировать количество получаемых главных компонент и непосредственно влиять на количество найденных статей. Также обучение нейронной сети можно перенести для решения схожих задач. Полученные статьи можно категоризировать, например, на рекламу, политику, здоровье и т.п. Или можно находить более конкретные текстовые блоки, например, имена авторов статей, заголовки, цитаты и т.п. Но для этого нужна соответствующая разметка.
Достижение поставленных целей:
Разработанный микросервис показывает достаточно хорошее качество сегментации. Для некоторых изданий почти идеальное, а для некоторых (которые были слабо представлены в датасете) оставляет желать лучшего. Но разработка микросервиса на этом не останавливается. Есть достаточно много идей как по улучшению качества сегментации микросервиса, так и по развитию системы извлечения информации из текстовых изданий в целом. Ниже продемонстрирован пример работы представляемого микросервиса
|