Документація

Огляд

BUDOVA (Building Ukrainian Domain-Specific, Open Voice & Text Archives) створює відкритий датасет української мови будівельної галузі: текстовий корпус із розміткою іменованих сутностей (NER), мовленнєвий корпус і двомовний лексикон.

Стан: до релізу. На Hugging Face і Zenodo ще нічого не опубліковано. Перший публічний реліз v1.0 — вибірку текстового корпусу з паспортом датасету та настановами з анотації — заплановано на IV квартал 2026 на Hugging Face і Zenodo. Мовленнєві дані, лексикон і базова NER-модель вийдуть у наступних релізах.

Уже доступно на сайті (станом на жовтень 2026):

Паспорт датасету (чернетка для v1.0)

Живий паспорт текстового корпусу (datasheet), складений за питаннями методики Datasheets for Datasets. Він описує корпус станом на жовтень 2026; остаточну версію буде підготовлено до релізу v1.0.

Мета. Створити відкритий задокументований NER-корпус українських текстів будівельної галузі, починаючи з будівельних норм. Проєкт веде Лабораторія ШІ КНУБА (Київський національний університет будівництва і архітектури) за підтримки Microsoft AI for Good Lab у межах LINGUA Open Call.

Склад. 2 927 сегментів з девʼяти ДБН, близько 16 700 еталонних спанів сутностей девʼяти типів. Кожен сегмент — самодостатній фрагмент нормативного тексту, зазвичай повний пункт або абзац. Редакції джерел — 2008–2026 років.

  • ДБН В.2.6-98:2009 — бетонні та залізобетонні конструкції: 904 сегменти, 5 014 еталонних спанів;
  • ДБН Б.2.2-6:2013 — санітарне очищення населених пунктів: 199 сегментів, 974 спани;
  • ДБН В.1.2-8:2021 — гігієна, здоровʼя та захист довкілля: 89 сегментів, 231 спан;
  • ДБН В.1.1-45:2017 — будівлі і споруди в складних інженерно-геологічних умовах: 367 сегментів, 2 593 спани;
  • ДБН В.1.2-12:2026 — ущільнена забудова: 133 сегменти, 344 спани;
  • ДБН Б.2.2-1:2008 — кладовища, крематорії та колумбарії: 241 сегмент, 1 143 спани;
  • ДБН В.2.6-220:2017 — покриття будинків і споруд: 559 сегментів, 4 392 спани;
  • ДБН В.1.1-25:2009 — інженерний захист територій та споруд від підтоплення та затоплення: 328 сегментів, 1 446 спанів;
  • ДБН В.1.2-7:2021 — основні вимоги до будівель і споруд, пожежна безпека: 107 сегментів, 581 спан.

Кількість спанів наведено за еталонним записом кожного документа. Два фрагменти — по одному в нормах про кладовища та про покриття — дослівно повторювали текст, що вже був у корпусі, тож їх обʼєднано з наявним записом: на кожен однаковий текст у корпусі припадає одне завдання.

Збір і підготовка. Джерела — опубліковані редакції будівельних норм, текст яких витягнуто з PDF. Кожен документ поділено на самодостатні фрагменти — пункт або абзац, зазвичай до 1 200 символів. Довші абзаци ділять за межами речень, а записи позначень (як-от «k – коефіцієнт») зберігають, щоб символи мали пояснення. Автоматичний лінтер перевіряє кожен фрагмент на відповідність стандарту фрагментів до завантаження, а однакові фрагменти з різних документів зберігаються один раз.

Анотація. Девʼять міток сутностей — material, tool, process, measurement, structure, safety, regulation, property, load_effect — визначено в публічних настановах з анотації. Кожен сегмент отримує три незалежні проходи розмітки (жоден прохід не бачить інших), після чого — адʼюдикацію за настановами та аудит одностайних записів, де всі три проходи збіглися. Настанови доповнюються від документа до документа (зараз v0.22, 118 правил), а документ вважається готовим лише тоді, коли рішення ухвалено щодо кожного фрагмента і всі записи зведено. Метрики узгодженості для зведених записів — на сторінці IAA; експертна валідація на вибірці ще попереду.

Формат запису. JSON lines, один зведений запис на сегмент — див. розділ «Текстовий корпус» нижче.

Відомі обмеження.

  • Один регістр: увесь текст — формальна нормативна мова будівельних норм. Мовлення, польових нотаток та інших жанрів поки немає.
  • Вісім документів: тематика повторює ці норми, а мітки tool і safety трапляються рідко.
  • Сегменти без жодної сутності залишено: «жодна мітка не підходить» фіксується як порожня анотація, а не пропуск.
  • Офіційного поділу на train/validation/test ще немає. Сегменти одного документа мають спільні формулювання, тож оцінюйте моделі з поділом за документами.

Використання. Призначено для досліджень з розпізнавання іменованих сутностей і видобування термінів в українських технічних текстах. Сегменти — це уривки, вони не замінюють офіційного тексту будівельних норм.

Поширення. Заплановано з v1.0 на Hugging Face (організація BUDOVA) і Zenodo (з DOI). Анотації буде поширено за ліцензією CC BY 4.0; підстави для поширення кожного тексту-джерела буде задокументовано до релізу.

Супровід. Версії в журналі змін (v0.1–v0.10) — етапи розвитку платформи, а не релізи датасету; першим релізом датасету буде v1.0. Настанови з анотації мають власну нумерацію (зараз v0.22). Про помилки повідомляйте через форму на сторінці «Співпраця».

Текстовий корпус

Ціль: 100M+ токенів сирого будівельного тексту. Зараз: робоча колекція перевищила 49 млн сирих токенів — будівельні норми, будівельне законодавство, кошторисні норми, журнали відкритого доступу та інші відкриті джерела; ці тексти ще не розмічені й не опубліковані.

У планах: інші типи документів із плану на старті (технічні специфікації, протоколи безпеки, проєктна документація, будівельні контракти).

Розмічена NER-підмножина (наживо): 2 927 сегментів з девʼяти ДБН. Шукайте їх в огляді корпусу; перелік документів — у каталозі джерел, а склад — у паспорті датасету вище.

Формат запису. JSON lines, один зведений запис на сегмент:

  • final_text — розмічений сегмент;
  • final_labels — спани сутностей {start, end, label, text, agreement}: start і end — позиції символів у final_text (відлік від 0, end не включно), text дорівнює final_text.slice(start, end), label — одна з девʼяти міток, а agreement — частка проходів, що підтримують спан;
  • domain — один із 31 тегу будівельних доменів;
  • validation_score — зведена оцінка узгодженості від 0 до 1;
  • agreement_meta — деталі узгодженості (кількість проходів, κ, span F1, показники за мітками);
  • merged_at — час зведення запису (ISO 8601).

Реальний запис із корпусу (agreement_meta скорочено):

{
  "final_text": "Арматура повинна бути нерозривною у межах з'єднання і анкерування у прилеглих елементах.",
  "final_labels": [
    {"start": 0, "end": 8, "label": "material", "text": "Арматура", "agreement": 1},
    {"start": 42, "end": 51, "label": "structure", "text": "з'єднання", "agreement": 1},
    {"start": 54, "end": 65, "label": "process", "text": "анкерування", "agreement": 1}
  ],
  "domain": "concrete",
  "validation_score": 1,
  "agreement_meta": {"version": 2, "numRaters": 3, "entityKappa": 1, "cohenKappa": 1, "fleissKappa": 1, "avgSpanF1": 1},
  "merged_at": "2026-07-27T11:03:33.390Z"
}

Остаточну форму запису для v1.0 буде підтверджено в паспорті датасету релізу.

Мовленнєвий датасет (у планах)

Ціль: 100+ годин транскрибованого будівельного мовлення з усіх трьох діалектних груп. Мовленнєві дані заплановано в пізнішому релізі, після текстового корпусу.

Зараз: з жовтня 2026 учасники читають уголос короткі будівельні тексти просто в браузері й можуть змінити слово так, як кажуть там, звідки вони родом. Записи потрапляють до корпусу лише після модерації та за згодою мовця. Добірка записів — на сторінці «Голоси», прогрес збору — на сторінці «Покриття».

У планах: запис спонтанного мовлення на обʼєктах (інструктажі, технічні консультації, наради з планування), як передбачав план на старті.

Діалектні групи (за стандартною класифікацією): північне наріччя — східнополіський, середньополіський, західнополіський говори; південно-західне — волинський, подільський, наддністрянський, надсянський, покутсько-буковинський, гуцульський, бойківський, закарпатський, лемківський; південно-східне — середньонаддніпрянський, слобожанський, степовий.

Формати, у яких записано. Браузерний рекордер пише 48 кГц, моно, WebM/Opus (у Safari — MP4/AAC) з вимкненими автоматичним регулюванням підсилення, шумозаглушенням і ехокомпенсацією. Завантажити можна WAV, MP3, OGG, FLAC, WebM або M4A (до 50 МБ на файл).

Специфікація запису для зовнішніх записів: WAV (PCM, 16 біт; 24 біти теж приймаються), моно, 48 кГц (також приймаються 16, 32 і 44,1 кГц); піки від −12 до −3 dBFS; рівень шуму не вище −50 dBFS; без автопідсилення, шумозаглушення, ехокомпенсації, компресії чи еквалайзера. Цільовий SNR — ≥ 20 дБ: для WAV його вимірює сервер, для інших форматів — браузер, а нижче значення дає попередження, а не відмову.

Анотації: транскрипція (для читання вголос — текст у тому вигляді, як його прочитано); псевдонім мовця (SPK-NNN); регіон — звідки мовець родом, за його власними словами, а не місце запису.

Щодо приватності: завантажені файли зберігаються як є, тож вбудовані в них метадані (наприклад, теги у файлах WAV, MP3 чи M4A) поки не видаляються. Їх вилучення заплановано до будь-якого релізу мовлення; до того видаляйте теги перед завантаженням.

Будівельний лексикон (у планах)

Заплановано в пізнішому релізі: двомовний (українсько-англійський) словник будівельної термінології. Ціль: 5–10 тис. доменних термінів.

Заплановане покриття:

  • Будівельні матеріали та композити
  • Технології та методи будівництва
  • Стандарти безпеки та обладнання
  • Нормативна та юридична термінологія
  • Інструменти, машини та обладнання

Запланований формат: структурований JSON з українським терміном, англійським відповідником, визначенням, прикладами вживання з корпусу та категорією домену. Терміни зʼявлятимуться в глосарії в міру додавання.

Завантаження (з v1.0)

Запланований API — з релізу v1.0 (IV кв. 2026). Репозиторії нижче ще не публічні, тож ці приклади запрацюють лише після релізу.

pip install datasets

Текстовий корпус (v1.0):

from datasets import load_dataset

corpus = load_dataset("BUDOVA/text-uk-construction")
print(corpus)
print(corpus["train"][0])

Офіційного поділу на train/validation/test ще немає (див. паспорт датасету); train у прикладі — стандартна назва спліту.

Наступні релізи: мовлення (BUDOVA/speech-uk-construction) і лексикон (BUDOVA/construction-lexicon).

А поки розмічені сегменти можна переглянути в огляді корпусу.

Приклади на Python (після релізу)

Заплановані сценарії після виходу v1.0. Базова NER-модель — у планах після v1.0; її назву оголосимо разом із тим релізом.

Підрахувати мітки сутностей у текстовому корпусі:

from collections import Counter
from datasets import load_dataset

corpus = load_dataset("BUDOVA/text-uk-construction", split="train")
labels = Counter(
    span["label"] for record in corpus for span in record["final_labels"]
)
print(labels.most_common())

Назви полів відповідають формату запису в розділі «Текстовий корпус»; паспорт датасету релізу їх підтвердить.

Ліцензія

Ресурси BUDOVA буде поширено за такими ліцензіями:

Щоб процитувати проєкт, скористайтеся записом BibTeX на сторінці датасетів.