Инструмент увеличения скорости обработки больших массивов данных
Каждый из нас когда-нибудь слышал эту знаменитую фразу ученого и политического деятеля Бенджамина Франклина — «Время-деньги».
Это статья как раз о том, как при наличии дополнительных вычислительных ресурсов, в несколько раз быстрее решить задачу по распознаванию именованных сущностей в текстовых данных, сэкономив драгоценное время.
Нашего заказчика интересовал вопрос соблюдения требований кибербезапосности на одной из части данных автоматизированной системы, с учетом существующих правил разграничения доступа. Основная задача состояла в поиске случаев неправомерного размещения персональных данных в тексте 240 тыс. обращений внутренних клиентов на получение различных услуг сервисных подразделений. С данной задачей мы справились в установленные сроки, но после ознакомления с отчетом о результатах работы, заказчик попросил провести в кратчайшие сроки аналогичную процедуру в отношении данных всей автоматизированной системы. В одночасье, объем нашей задачи вырос в 50 раз!
На обработку такого объема данных (12 миллионов текстовых обращений и 225 тысяч прикрепленных к ним документов) требовалось около 45 дней непрерывной работы одного стандартного персонального компьютера (AMD A10 PRO-7800B R7 – 4 ядра с частотой 3500 MHz, 8 ГБ ОЗУ). В нашем случае обработка данных производилась при помощи предобученной NER Natasha (для поиска: ФИО, даты рождения, адреса регистрации/проживания, суммы денег) и Regular Expression (для поиска: номера счета/карты, телефона, реквизитов паспорта, СНИЛС).
В настоящее время в сети Интернет имеется достаточное количество статей о преимуществах/недостатках NER Natasha в сравнении с другими инструментами распознавания именованных сущностей, мы же в своей статье, делимся инструментом, который позволяет распределить обработку большого массива данных и решить задачу в приемлемые сроки.
Для сокращения времени обработки текстовых данных до приемлемых 5 дней мы нашли достаточно простое, но эффективное решение — использовали сокеты для запуска одновременной обработки всего объема данных на 10 персональных компьютерах. Сокеты обеспечили обмен данными между процессами по сети.
С использованием встроенной в Python библиотеки socket, был создан потоковый тип сокета — установлено соединение на основе протокола TCP. Сокет работал по следующему принципу: открытие соединения — извлечение данных – закрытие соединения.
Далее по порядку все частности создания клиент-серверного приложения для запуска одновременной обработки NER Natasha.
Для создания клиент-серверного приложения необходимо создать сокет сервера и клиента.
Пример создания сервера.
1. Создаем сокет.
2. Далее определяемся с хостом и портом для нашего сервера. Для доступности сервера всех интерфейсов строку хоста необходимо оставить пустой. А порт возьмем любой от 0 до 65 535 (число портов ограничено с учетом 16-битной адресации).
3. С помощью метода listen переводим сокет в режим «прослушки» — информирование о готовности принимать соединение.
4. С помощью метода accept принимаем соединение. Данный метод ожидает входящего соединения и возвращает связанный сокет и адрес подключившегося.
Пример создания клиента
1. Создаем сокет
2. Подключаемся к серверу
3. Делаем запрос на получение данных
4. Считываем данные с сокета и закрываем соединение
5. Отправляем на обработку
Вот так с помощью достаточно простого инструмента нам удалось распределить обработку данных между 10 ПК и сократить сроки выполнения задачи в 10 раз.
Как молодая пара путешественников решили купить дом в 2024 году для сдачи его в посуточную аренду и что из этого вышло.
В 2020 году стал вопрос о приобретении квартиры под сдачу. Рассматривали варианты в центре Ростова-на-Дону, вторичку и новостройки. Новостройки сразу отмели. В основе данного решения было отвращение к человейникам без души стоимостью x2 (квартира в центре города на главной артерии города 30 квадратов за 3 миллиона, да вы в своём уме😉).
IKEA была основана в 1943 году в Швеции 17-летним предпринимателем Ингваром Кампрадом. Название компании — аббревиатура от его имени, названия семейной фермы (Elmtaryd) и деревни, где он вырос (Agunnaryd). Изначально IKEA продавала ручки, кошельки и рамки для фото, но уже в 1948 году начала специализироваться на мебели.
Делимся в комментах ссылками на свои проекты и комментируем чужие! Площадка для самопрезентации стартапов и пет-проектов 👉 Product Radar
1 марта, значит пора жарить блины, лопать их с икрой и подводить итоги февраля. Ежемесячно я пишу отчёт о том, что произошло с моими инвестициями. Напоминаю: я начал копить на квартиру в Сочи в июле 2021. 44 месяца позади. Погнали!
Выбор правильной категории для товара – важнейший шаг, влияющий на его успешные продажи. Если категория определена неверно, покупатели могут просто не найти ваш товар. Яндекс Маркет предлагает несколько способов изменения категории, а также автоматические алгоритмы корректировки. Давайте разберемся, как это работает и что делать, если система внесл…
Было бы странно рассказывать вам здесь о таком глобальном понятии без примера на собственном опыте. Поэтому сегодня я познакомлю вас с феноменом Новой Русской Школы Психологии. А еще расскажу на нашем примере, как внедрена метастратегия в наш бизнес.