infoculture / blindprocurement

Blind Procurement. Code to find corrupted procurement in Russia. Слепые закупки. Код алгоритмов выявления искажения анонсов госзакупок так чтобы их не могли находить "чужие" поставщики

Home Page:http://clearspending.ru

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

blindprocurement

Слепые закупки. Код алгоритмов выявления искажения анонсов госзакупок так чтобы их не могли находить "чужие" поставщики Этот код и данные датированы февралём-мартом 2013 года и являются результатом анализа миллионов извещений о закупках на портале zakupki.gov.ru. Все ссылки актуальны на начало 2013 года. Часть наработок использовалась в проекте Госзатраты http://clearspending.ru для анализа качества контрактных данных.

Презентация с результатами: https://github.com/infoculture/blindprocurement/blob/master/docs/opendata_blindprocurement.pdf Результаты исследования НАИЗ, НИУ ВШЭ и НП "Инфокультура" http://naiz.org/upload/iblock/faa/faac377dabf5757d79a599715b888f81.pdf

Искажения текстов определялись по 4-м основным направлениям:

  • латиница
  • опечатки
  • пробелы между буквами
  • "мусорные названия"

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

Опечатки - опечатки в значимых словах, например, написать, "моолко" вместо "молоко" или "машына" вместо "машина" приводит к том что поисковая система не понимает текст который она индексировала и поиск по ключевому слову без опечаток не выведет результаты

Пробелы между буквами - трюк с заменой слов на слова с пробелами между буквами. Вместо текста "молоко" появляется текст "м о л о к о" где каждая буква выглядит как отдельное слово.

Мусорные названия - трюк с записью название предмета контракта в форме без ключевых слов. Например, это может звучать как "поставка товара" или "Проведение аукциона в электронной форме для нужд больницы N17". При этом невозможно понять из текста что за товар, работа или услуга закупается.

Описание исходного кода

Большая часть кода слабодокументирована, весь основной код в файле https://github.com/infoculture/blindprocurement/blob/master/process_pur.py

с примерами определения каждого из правил искажений текстов.

Основные результаты анализа

В файле https://github.com/infoculture/blindprocurement/blob/master/export/final.xlsx приведены результаты анализа анонсов закупок:

  • weight - вес (значимость) искажений текстов
  • rules - признаки видов искажений текстове, перечислены через запятую. Могут быть: JU (junk) - мусорный текст, без ключевых слов, LT (latin) - текст содержащий латиницу внутри кириллических слов, MS (misspell) - ошибки и опечатки, SP (space) - наличие слов с пробелами между буквами
  • id - идентификатор закупки
  • url - ссылка
  • placement_type - тип процедуры размещения заказа
  • customer_regnum - регистрационный номер госзаказчика
  • customer_name - название организации госзаказчика
  • placer_regnum - регистрационный номер организации разместившей анонс закупки
  • placer_name - название организации разместившей анонс закупки
  • pubdate - дата публикации
  • okdp_codes - коды ОКДП
  • max_price - максимальная цена
  • text - текст предмета закупки
  • okogu_name - расшифровка кода ОКОГУ организации (принадлежность организации в системе госуправления)
  • subordinationType_description - уровень организации (федеральный, региональный, муниципальный)
  • factualAddress_region_fullName - точный адрес местонахождения организации
  • headAgency_fullName - полное название головной организации

Дополнительные результаты

About

Blind Procurement. Code to find corrupted procurement in Russia. Слепые закупки. Код алгоритмов выявления искажения анонсов госзакупок так чтобы их не могли находить "чужие" поставщики

http://clearspending.ru

License:MIT License


Languages

Language:Python 100.0%