Како 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
Транспарентност на алгоритмот
За разлика од многу системи за детекција на измами, ние сме транспарентни за нашата методологија. Секој ризик-скор доаѓа со објаснување - кои индикатори се активирани и зошто. Корисниците можат сами да ги проверат податоците и да формираат свое мислење.
Испробајте го системот на пребарувајте тендери - секој тендер го покажува својот ризик-скор и детално објаснување.