технологија|НабавкиДата Тим

Како AI ја детектира корупцијата во јавните набавки

Платформата НабавкиДата користи комбинација од веб-скрејпинг, обработка на документи, вештачка интелигенција и машинско учење за да ги анализира јавните набавки во Македонија. Во оваа статија го објаснуваме целиот процес - од прибирање на податоците до финалниот ризик-скор.

Чекор 1: Прибирање на податоци (Web Scraping)

Основата на сите е прибирањето на податоци од официјалниот систем е-набавки (e-nabavki.gov.mk). За тоа користиме:

  • Scrapy - Python фрејмворк за веб-скрејпинг
  • Playwright - за интеракција со динамички веб-страници и JavaScript-рендерирани елементи
  • Автоматски крон-задачи - скрејперот работи на секои 3 часа за да ги фати новите тендери

До денес имаме собрано 276,037 тендери од сите категории: активни, доделени, откажани и договори.

Чекор 2: Екстракција од PDF документи

Голем дел од критичните информации во тендерите се наоѓаат во PDF документи - тендерска документација, одлуки за избор, договори и финансиски понуди. Нашиот систем:

  • Ги преземува сите PDF прилози од секој тендер
  • Користи OCR (Optical Character Recognition) за скенирани документи
  • Го извлекува текстот и структурираните податоци
  • Идентификува клучни информации: цени, рокови, критериуми, понудувачи

Чекор 3: Gemini ембедингс и семантичко пребарување

По екстракцијата, текстот од документите се претвора во вектори (embeddings) користејќи Google Gemini. Овие вектори овозможуваат:

  • Семантичко пребарување - наоѓање тендери по значење, не само по клучни зборови
  • Споредба на слични тендери - идентификување на тендери со слични спецификации
  • Откривање на аномалии - тендери кои значително отстапуваат од слични набавки

Повеќе за семантичкото пребарување можете да прочитате во нашата посветена статија.

Чекор 4: ML Pipeline со 150+ фичери

Јадрото на системот за детекција е машинско учење (ML) pipeline кој анализира секој тендер преку повеќе од 150 фичери (карактеристики). Овие вклучуваат:

Структурални фичери

  • Број на понудувачи
  • Разлика меѓу проценета и понудена вредност
  • Времетраење на тендерот (рок за поднесување)
  • Тип на постапка (отворена, ограничена, преговарачка)

Историски фичери

  • Претходни победи на истата фирма кај истата институција
  • Процент на победи на понудувачот во својата категорија
  • Историјата на измени (анекси) на договорите

Мрежни фичери

  • Поврзаност меѓу понудувачите (заеднички директори, адреси)
  • Обрасци на кластерирање на понуди
  • Конкурентска мрежа - кој со кого конкурира

Текстуални фичери

  • Анализа на спецификациите за рестриктивен јазик
  • Детекција на препишани спецификации (копирани од понудувач)
  • Семантичка сличност со претходни тендери од истата институција

Чекор 5: Ризик-скор

Сите овие фичери се комбинираат во финален ризик-скор од 0 до 100. За детали за методологијата и тежините на секој индикатор, прочитајте го нашиот водич за ризик-скор.

Резултати

Досега системот има идентификувано:

  • 70,338 ризик-знаменца преку 8 категории
  • 67,802 тендери со барем еден ризик-индикатор
  • Институции со просечен ризик-скор над 75 - види ја листата на топ 10

Транспарентност на алгоритмот

За разлика од многу системи за детекција на измами, ние сме транспарентни за нашата методологија. Секој ризик-скор доаѓа со објаснување - кои индикатори се активирани и зошто. Корисниците можат сами да ги проверат податоците и да формираат свое мислење.

Испробајте го системот на пребарувајте тендери - секој тендер го покажува својот ризик-скор и детално објаснување.