Size: a a a

Чат к каналу @begtin

2020 April 28

IB

Ivan Begtin in Чат к каналу @begtin
Albert Bertyakov
Не смотрел перечень, но знаю, как все произошло. ИНН вбивали в Эксель просто как числа.
А Эксель отбросил ведущие нули
Боюсь что там ситуация похуже. Я вот хотел уже спать ложиться, но видимо придётся пару часов потратить на анализ
источник

IB

Ivan Begtin in Чат к каналу @begtin
Olya Parkhimovich
Странно, что у Минэка могут быть такие ошибки 🙈
Как раз совсем не странно
источник

IB

Ivan Begtin in Чат к каналу @begtin
Victor Stepankov
Иван, коль вы не спите, а госсайты вы чем зеркалите? Всегда wget использовал, сейчас на httrack подсел, может у вас иной опыт?
Я использую сложный инструментаций. Тяжёлый WAIL, простой crawl на Go и относительно несложные wpull + grab-site и сохраняю всё в WARC файлы
источник

AB

Albert Bertyakov in Чат к каналу @begtin
Olya Parkhimovich
Странно, что у Минэка могут быть такие ошибки 🙈
"Девочка ошиблась" (тм)
источник

OP

Olya Parkhimovich in Чат к каналу @begtin
Ivan Begtin
Как раз совсем не странно
Ошибка уровня студента первых курсов
источник

VS

Victor Stepankov in Чат к каналу @begtin
Ivan Begtin
Я использую сложный инструментаций. Тяжёлый WAIL, простой crawl на Go и относительно несложные wpull + grab-site и сохраняю всё в WARC файлы
Спасибо, пожалуй, пока останусь на httrack
источник

OP

Olya Parkhimovich in Чат к каналу @begtin
Albert Bertyakov
"Девочка ошиблась" (тм)
🙊
источник

IB

Ivan Begtin in Чат к каналу @begtin
Olya Parkhimovich
Ошибка уровня студента первых курсов
Как могут, так и ошибаются (с)
источник
2020 April 29

VK

Vladislav Kazartsev in Чат к каналу @begtin
источник

R

Radjah in Чат к каналу @begtin
утюг, паяльник
источник

MA

Mikhail Aksenov in Чат к каналу @begtin
АтомПредметЗолото - это название объекта в 1С (ну, или товара на АлиЭкспресс)
источник

IB

Ivan Begtin in Чат к каналу @begtin
Я сейчас доделаю файл с результатом анализа списка и кину сюда. Если никто раньше не напишет подробный пост, то завтра соображу как лучше
источник

VK

Vladislav Kazartsev in Чат к каналу @begtin
Mikhail Aksenov
АтомПредметЗолото - это название объекта в 1С (ну, или товара на АлиЭкспресс)
Ага, и эта никчёмная холдинговая надстройка — системообразующая
источник

IB

Ivan Begtin in Чат к каналу @begtin
источник

IB

Ivan Begtin in Чат к каналу @begtin
файл на основе изначального Excel файла Минэка. Там добавлены поля:
- valid_inn - результат проверки валидности ИНН
- ogrn - ОГРН
- statreg_name - наименование в статрегистре Росстата
- egrul_name - наименование в ЕГРЮЛ
- okved_code - основной код ОКВЭД
- okved_name - основной код ОКВЭД - название

Там больше записей чем в оригинальном Excel файле, поскольку все строки где указано по 2 значения в поле ИНН разделены на 2 строки с разными ИННами

Это всё должно помочь выявить такие ошибки как:
- невалидный ИНН
- указан ИНН другой организации
- наименование организации не соответствует наименованию в ЕГРЮЛ или в статрегистре
- отрасль организации не соответствует её основному коду ОКВЭД
источник

G

Gip24 in Чат к каналу @begtin
Ivan Begtin
У меня честно говоря даже слов нет. Там настолько глупые ошибки, придётся об этом писать
Глупые ошибки или умышленные. Вот в чем подвох...
источник

NK

ID:0 in Чат к каналу @begtin
Пришла пора поговорить о качестве данных собираемых органами власти. Забегая вперёд скажу что она невысокая, в качестве примера рассмотрим свежеопубликованный [1]
Минэкономразвития список системообразующих предприятий. его можно скачать напрямую в Excel [2].

Посмотрев на этот список внимательно, можно обратить внимание что на какие-то самые очевидные проблемы, когда указан ИНН организации с размером меньше на один символ, но даже беглая автоматизированная проверка показала что там не только с этим плохо.

Поскольку я хочу, в дальнейшем, этот кейс использовать как обучающий, дальше буду объяснять максимально подробно, надеюсь тем кто умеет работать с данными будет не очень скучно;)

Краткие выводы (Executive Summary)
В 4,3% записей в списке системообразующих предприятий содержатся ошибки, включая
- у 31 организации, неверно указан код ИНН (опечатка или ошибка форматирования с потерей первого символа)
- у 12 организаций указано устаревшее название, как правило ОАО или ЗАО вместо АО
- у 6 организаций те или иные ошибки в их наименовании, опечатки смысловые и иные
- у 2 организаций указаны реквизиты других существующих организаций, ошибки которые невозможно совершить опечатками

Причины этого в низкой культуре работы с данными в Минэкономразвития России, отсутствии мер по проверки поступающих им данных.

Методика
Итак, какие правила валидации сведений об организациях обычно применяют:
- проверка кодов реквизитов (ИНН и ОГРН), в нашем случае у организаций есть только коды ИНН
- корректность названия организации, разделяется на (устаревшее название, ошибка в названии)
- указание неверной организации, когда реквизиты и название организаций ошибочны. Например, ИНН указывает на одну, а название на совершенно другую.

Входящие данные и их подготовка
Что у нас есть на входе, Excel файл [2] со списком организаций, однако в поле ИНН по некоторым из них вписано до двух кодов, а то есть юр. лиц у нас как минимум больше на эти дополнительные коды.
1. Проводим перестройку списка и получаем на выходе список из 1173 организаций (у 22 записей были по 2 кода ИНН, так что и получается 1151 + 22 = 1173), остальные значения в строках для добавленных записей оставляем прежними.
Всё это делается автоматически, коды ИНН в колонке "ИНН" разделены запятыми.
2. Преобразуем всё в CSV файл, нормируем названия полей в англоязычный формат (удобнее для обработки и большая стандартизация названий)
3. Делаем очистку поля ИНН от пробелов, "тримминг" так чтобы остались только значения цифр.

В итоге получаем CSV файл пригодный для последующего обогащения данными

Начальная проверка
Полученного нормализованного файла достаточно чтобы провести первую, быструю проверку.  В репозитории утилиты Undatum есть код проверки ИНН [3], достаточно выполнить функцию _check_inn и сохранить результаты в новом CSV файле c колонкой valid_inn.
После проверки у нас должно получиться 31 ИНН не проходящих валидацию. У 4-х кодов будут опечатки в цифрах и у 27 кодов ошибка при форматировании, "съеден" ноль в численном значении, поскольку Excel часто считает что в колонке ИНН указано число, а не численная строка, то удаляет нули. Но грамотные Excel пользователи это знают и за таким следят.

После начальной проверки переходим к углублённой и для этого обогатим данные.

Обогащение данных
Для анализа нам необходимо:
a) Проверить реквизиты, в нашем случае код ИНН, уже сделано, данные новые тут не нужны
б) Проверить названия организаций, для чего нам нужны другие названия этой организации которые можно взять в статрегистре Росстата (обновляется раз в год, может быть устаревшим) и в ЕГРЮЛе (всегда актуально).
в) Возможно нам в будущем понадобятся другие данные, поэтому почему бы нам не добавить из ЕГРЮЛа ещё и код ОГРН, он поможет сопоставить с другими реестрами и основной код ОКВЭД, вдруг мы захотим проверить как отрасль указанная в списке соответствует основной деятельности организации.
источник

NK

ID:0 in Чат к каналу @begtin
Для всего этого у нас есть доступ к API статрегистра и ЕГРЮЛа (из сервиса apicrafter.ru), но их много разных на рынке, можете воспользоваться любым. Через них проверяем каждую организацию и заполняем колонки:
- statreg_name - название организации в статрегистре,
- ogrn - код ОГРН
- egrul_name - название организации в ЕГРЮЛ (сокращённое),
- okved_code - код ОКВЭД
- okved_name - наименование основного кода ОКВЭД

На выходе имеем CSV файл где к изначальным колонкам добавлены ещё и эти, собранные в процессе обогащения данных.

Финальные проверки
Есть 2 способа проводить проверки. Для малого объёма данных, делать это вручную, для большого автоматизировано. В нашем случае объём скорее малый, вручную проверяется за пару часов, поэтому можно сделать и то и то.
Коды ИНН уже проверены, поэтому проверять надо остальные 1142 организации (1142 = 1173 всего - 31 с невалидными ИНН).
Далее я пропущу автоматическую проверку названий,  она включает чуть более сложные проверки чем корректность кодов ИНН, фактически разбор и нормализация названия организации и я чуть позже опубликую её код. Пока это можно проделать и вручную.
Простейшие проверки:
а) У организации в списке указано что она в юр. форме ОАО или ЗАО, а в ЕГРЮЛе указано что это АО или ООО. Дело в том что юридические формы ОАО и ЗАО более не существуют и организации должны сменить юр. форму в ОАО или ООО по выбору при первом изменении в ЕГРЮЛ.  
б) У организации понятная юр. форма ООО или АО, но в ЕГРЮЛе указана другая. Это скорее всего ошибка, неверное название.
в) Название организаций не совпадает полностью. В этом случае пробиваем ЕГРЮЛ на название в из поля названия в списке и ищем ИНН. Если у организации находится ИНН, то это ошибка с указанием другой организации. Если нет, то это ошибка в названии организации.

Всё это проверяем вручную в 2 прохода. В промышленной работе, это обычно, делают специалисты по ручной обработке, которые проверяют после алгоритмов. В данном примере, я описываю то как, примерно, ставится им задача.

Инструментально всё это можно проделать в Excel, LibreOffice, Google Spreadsheets или в OpenRefine. Я считаю что последний удобнее для любых задач преобразования данных (data wrangling), но неудобен для совместной работы нескольких человек проверяющих вручную. Выбор тут есть, и коммерческие решения тоже существуют.

Итоги и выводы

Итого у нас на выходе 20 подобных записей, а вместе с 31 записью с некорректными ИНН это 51 запись с ошибками,  что около 4,3% реестра. Много это или мало? Об этом лучше судить тем кто может измерить экономические последствия неверно представленных данных. Например неполучение поддержки организациями имеющими на неё право или получение её теми что не имеют. Это вопрос уже к экономистам, аудиторам и следователям.

Если вдуматься в причины почему такой важный реестр ошибочен на 4,3% то причин тут несколько:
1) Отсутствие культуры работы с данными. Основная и главная причина, поскольку более 27 или 51 ошибки - это ошибки самого базового уровня работы с Excel.
2) Отсутствие проверки и валидации данных на стороне Минэкономразвития, что бы не поступало им на вход, они должны были перепроверить и затребовать исправление.
3) Низкое качество реестров ФОИВов где указаны устаревшие названия организаций и просто наименования с ошибками
4) Более системная проблема, отсутствие регламентов ведения подобных списков именно с точки зрения данных.

Итоговый файл с результатами и конкретными ошибками можно скачать на Data.world [4]

P.S. Этот материал - это заготовка для обучающих материалов по работе с данными. Он очень хорошо помогает в формировании наглядных примеров того как проверять корректность данных и для чего это необходимо. Вскоре на его основе будет Jupiter Notebook или какой-то его аналог где всё уже будет ещё более подробно разобрано.

Ссылки:
[1] https://data.economy.gov.ru/
[2] https://data.economy.gov.ru/system_org.xlsx
[3] https://github.com/datacoon/undatum/blob/master/undatum/validate/ruscodes.py
[4] https://data.world/infoculture/system-orgs-analysis
источник

IB

Ivan Begtin in Чат к каналу @begtin
Итоговый файл проверки на корректность списка системных организаций опубликованного Минэкономразвития России
источник

NK

ID:0 in Чат к каналу @begtin
Итоговый файл проверки на корректность списка системных организаций опубликованного Минэкономразвития России
источник