EnglishУкраїнською
Ukrainian Frequency / Field Data

The words that pay off first

A lemma-based, coverage-graded frequency list for modern Ukrainian, built as open data. It answers a practical question with a real number: how much of what you read does a given amount of vocabulary actually unlock?

Test your vocabulary Profile a text
Open datasetRefreshed 2026-10-07 · v0.2.0 · CC-BY-4.0

Start here

I teach Ukrainian

Level a reading, and see what the published minimums agree on.

I build language tools

Hashed open-data files, an HTTP lemmatizer and a Python package.

I study the language

Every figure re-derives in your browser. Start from the method.

Tools: Vocabulary test · Text profiler · Crosswalk · Word lookup · Lemmatizer API

Part 1The list and its reach

Why a frequency list, and why lemmas

The report that started this series was blunt about the gap: for Ukrainian, the frequency lists a serious learner needs are thin, often wordform-based, and sometimes quietly calqued from Russian. A wordform list scatters a single word's frequency across a dozen or more inflected forms, so it understates how much a given amount of vocabulary buys you.

This list counts lemmas instead, the dictionary form a learner actually studies, with its part of speech. It is derived from a large, modern, native-authored corpus, so it reflects the Ukrainian people actually write today, not a mid-century textbook.

12,000
lemmas ranked
1.5B
word tokens in the source corpus
60.81%
covered by the top 1,000 lemmas
82.07%
covered by the top 5,000 lemmas
Coverage

The coverage curve

0%25%50%75%100%1005001,0005,00012,000Lemmas learned (most frequent first)
What share of running word tokens the top N lemmas account for. The curve is the honest answer to how far a vocabulary goes.

For comparison, in English the ~2800 words of the General Service List average about 82% coverage. Ukrainian needs far more lemmas to reach the same place. That is the inflection tax, measured.

The list

The list itself

The most frequent lemmas, with part of speech and per-mille frequency. The full 12,000 are in the download.

#LemmaPOSper mille
1вADP20.7489
2наADP20.6735
3уADP18.6486
4іCCONJ16.5815
5зADP15.259
6бутиVERB10.6332
7неPART10.4292
8щоSCONJ10.3296
9доADP9.1939
10заADP8.5376
11таCCONJ8.4347
12якийDET7.9025
13рікNOUN6.6948
14проADP6.2134
15вінPRON6.1849
16УкраїнаPROPN5.8085
17цеPRON5.7827
18аCCONJ4.994
19цейDET4.3466
20якSCONJ4.203
21дляADP4.1004
22відADP3.9154
23яPRON3.642
24вониPRON3.403
Where the milestones land
60.81%
Top 1,000 lemmas: 60.81% of text
#1,000: підозра NOUN
70.58%
Top 2,000 lemmas: 70.58% of text
#2,000: власне PART
82.07%
Top 5,000 lemmas: 82.07% of text
#5,000: афроамериканець NOUN
88.42%
Top 10,000 lemmas: 88.42% of text
#10,000: Сулейман PROPN

What kind of words they are

Part-of-speech make-up of the released list. Proper nouns are included and labeled, so you can filter them out.

NOUN5,157 (43%)
ADJ2,422 (20.2%)
VERB2,115 (17.6%)
PROPN1,348 (11.2%)
ADV625 (5.2%)
PART84 (0.7%)
ADP77 (0.6%)
DET44 (0.4%)
SCONJ32 (0.3%)
NUM31 (0.3%)
PRON30 (0.3%)
CCONJ25 (0.2%)
INTJ10 (0.1%)
Part 2Levels
Ukrainian Frequency / CEFR alignment

What a validated CEFR map can and cannot tell you

Thread two set out to label every high-frequency lemma with a CEFR level, and now it can. There is exactly one corpus-based, expert-validated CEFR vocabulary profile for Ukrainian (Synchak and colleagues, 2025, on the PULS platform), and a co-author granted permission to redistribute its per-lemma A1 to C1 levels. Joined onto this frequency list, POS-aware, that validated map now labels 6,403 of the top 12,000 lemmas. It is the headline of this thread, below.

Two honest companions stand beside it. The paper's published distribution is still cited (a frozen view the live map already exceeds), cross-referenced against this list's coverage curve to show why a frequency rank is not a proficiency level. And the open, unvalidated course overlay stays on as a direct cross-check: now that a validated map exists, the free signal can be measured against it. The validated map is a dated snapshot, not a final one, because the profile is still being extended.

The validated profile, by level
A1969 / 700
A21,394 / 1,000
B12,141 / 1,500
B21,140 / 1,900
C1220 / 2,300
C227 / 2,600
placed (A1–B1) placed (B2–C2) target

Lemmas placed by the expert-validated process (Synchak et al. 2025) against the project's per-level target. Complete through B1, preliminary above it.

A frequency rank is not a proficiency level

The validated A1 to A2 core (2,363 lemmas) versus a same-size core taken straight off this frequency list, by running-text coverage. The two are measured on different corpora, so read the spread as indicative: pedagogical selection deliberately trades raw coverage for teachability.

Why they diverge: the validated profile front-loads communicatively useful words that are not the most frequent (борщ borscht, зошит workbook) and pushes high-frequency abstract nouns (наука science, освіта education) up to B1 for conceptual load. A frequency list optimizes coverage; a CEFR level encodes teachability. That is why you cannot mechanically relabel one as the other, and why a real CEFR overlay here waits on open data above B1.

The validated CEFR map, joined onto the listShow the data Hide the data
Validated / Snapshot

The validated CEFR map, joined onto the list

Snapshot 2026-07-23

This is the headline of thread two: the one corpus-based, expert-validated CEFR profile for Ukrainian (Synchak et al. 2025, the PULS platform), joined onto this frequency list per lemma. A co-author granted permission to redistribute the per-lemma A1 to C1 levels; the join is POS-aware, so a homograph is dropped rather than mislabeled. Each lemma's level is its onset level, the earliest at which the profile introduces it.

It is a dated snapshot, not the final map. The profile is still being extended (the live list already carries more B2 and C1 lemmas than the published paper), so treat these levels as validated but provisional.

6,403 of the top 12,000 lemmas now carry a validated CEFR level, A1 to C1

Validated labels by level
A1860
A2996
B11,604
B22,179
C1764
How much of the top N is validated
Top 1,000: 871 validated (87.1%)
Top 2,000: 1,674 validated (83.7%)
Top 5,000: 3,621 validated (72.4%)
Top 12,000: 6,403 validated (53.4%)
How the join decides a part of speech

The join is POS-aware, so a spelling the profile knows only at an unrelated part of speech is dropped rather than mislabeled: 42 rows. But the corpus tagger and the profile draw some lines in different places, and until 2026-09-13 that alone dropped 107 rows that are the same word under two conventions, 34 of them in the top thousand: determiners the profile calls pronouns (який, цей, той), ordinals it calls numerals (перший, другий), its indeclinable-word class (можна, треба), preposition-adverb and particle-adverb words, and substantivized adjectives (військовий, дорослий). Ten explicit rules now recover them, and every row of the download says how it joined, so the strict join is one filter away. One consequence is a number rather than a footnote: 130 spellings appear at two ranks, because the tagger split one word into two readings, and each row keeps its own rank and part of speech.

Does a validated level track frequency?

Only weakly, which is the finding. The rank correlation between validated level and corpus frequency is 0.38: the median frequency rank rises cleanly from A1 to C1, so the ordering is sane, but the fit is loose. A CEFR level and a frequency rank are simply not the same axis, which is why you cannot relabel one as the other.

A11,572
A23,188
B13,766
B25,089
C17,490
median rank

Where validated B1 actually falls on the ranks

The next thread builds on the 1,604 lemmas the profile already labels B1, so the first question is where they sit on this list. Everywhere: a tenth of validated B1 ranks before 740, half before 3,767, and a tenth after 9,370. Every level spans every thousand-rank band. The grid below shows each level's share per band, on that level's own scale.

1k2k3k4k5k6k7k8k9k10k11k12kA13131659867564630202415179A22001531191108667633847443435B123023420417714814510410972635959B2117212248249240234177165161145122109C1113942475665868781917980
Hover or focus a band for its counts. Each cell: how many of that level's lemmas rank in that band, shaded on the level's own scale.
Validated B1 by rank quantile
p10740p251,738p503,767p756,539p909,370112,000
The middle half of the 1,604 validated B1 lemmas ranks between 1,738 and 6,539; the outer bar is the tenth to ninetieth percentile.
The two ends of validated B1 (content words)
Shallowest ranks
  • повідомити VERB#69
  • повідомляти VERB#83
  • рішення NOUN#91
  • суд NOUN#93
  • влада NOUN#100
  • нагадати VERB#106
  • міністр NOUN#108
  • партія NOUN#111
  • депутат NOUN#113
  • населення NOUN#122
  • склад NOUN#133
  • участь NOUN#138
Deepest ranks
  • паралімпійський ADJ#11,801
  • похвалити VERB#11,807
  • рвати VERB#11,838
  • кажан NOUN#11,842
  • ідеально ADV#11,854
  • пальма NOUN#11,862
  • постояти VERB#11,863
  • симпатичний ADJ#11,864
  • спальний ADJ#11,872
  • орнамент NOUN#11,884
  • знайомити VERB#11,977
  • тризуб NOUN#11,982

Read the two columns as a register, not as an error. The source corpus is news-heavy, so civic and journalistic B1 words rank early and everyday, personal B1 words rank late. A rank band would have cut the second column and kept a good deal of B2 from the first, which is why the extension keeps UberText as the single frequency base and treats register as a separate feature.

How well does the free overlay agree with it?

Measured on the 1,976 lemmas that both the validated map and the open course overlay cover, comparing the course's raw first-occurrence guess against the validated level. A far stronger test than the small hand-curated gold sample: it is the whole overlap.

45.5%
exact match (900/1,976)
86.6%
within one level (1,711/1,976)
A sample of the validated overlay
#LemmaCEFR
1вA1
2наA1
3уA1
4іA1
5зA1
6бутиA1
8щоA2
11таA2
20якA2
25свійB1
38підA2
41весьA2
45поA2
61заявитиC1
69повідомитиB1
72радаB2
73іB1
75жB1
78йB1
80приB1
121зазначитиB2
155представникB2
213верховнийB2
225управлінняB2
252приміткаB2
292главаC1
414чинC1
432розслідуванняC1
627виборчийC1
756законодавствоC1
The validated overlay reconciles
The free overlay, now a cross-check on the validated mapShow the data Hide the data
Open / Unvalidated cross-check

The free overlay, now a cross-check on the validated map

The validated map above needs the authors' permission to redistribute. This overlay is the fully open alternative: it labels our lemmas from the learn-ukrainian open course (Krisztian Koos, CC-BY-SA), an expert selection based on Ukraine's 2024 State Standard, no permission needed. A lemma's level here is the first course lesson that introduces it, so treat it as a rough teaching-order signal, not a proficiency label.

Its role now is a cross-check, not a fallback. The validated overlay above measures the two against each other on the full overlap; this card keeps the open overlay's own calibration against the published gold points. Neither the open map alone nor the paper's frozen tables is the finished thing a learner deserves, and closing that gap is why this series exists.

2,325 of the top 12,000 lemmas carry an open CEFR label, A1 to B2

How right is it? Checked against the validated gold standard

Synchak et al. publish concrete CEFR levels for specific lemmas. Where those overlap this overlay, the disagreement is measured directly, so the overlay is calibrated, not just asserted. The sample is small (a few dozen gold points), so read the interval, not the point estimate.

63.2% ± 8.9
exact match (72/114)
86.8%
within one level (99/114)
LemmaValidatedOverlay
бутиA1A1✓
рікA1A1✓
вінA1A1✓
дляA1B1≠
яA1A1✓
вониA1A1✓
такожA1A1✓
вонаA1A1✓
часA1A1✓
матиA1A1✓
могтиA1A1✓
людинаA1A1✓
післяA2A1≠
новийA1A1✓
першийA1A2≠
країнаA1A1✓
сказатиA1A1✓
статиA1A2≠
особаA2A1≠
черезA1B1≠
областьA1B1≠
заявитиC1B1≠
абоA1A1✓
щобA2A1≠
головаA1A1✓
дваA1A1✓
містоA1A1✓
повідомитиB1A2≠
словоA1A1✓
деньA1A1✓
місцеA1A1✓
роботаA1A1✓
повідомлятиB1B1✓
себеA2A2✓
якщоA1A1✓
питанняA1A1✓
великийA1A1✓
щодоB1B1✓
рішенняB1B1✓
компаніяA1A2≠
районA1A1✓
ранішеA2A1≠
отриматиA1A2≠
частинаA1A1✓
партіяB1B2≠
хтоA1A1✓
працюватиA1A1✓
результатA1A2≠
можнаA1A1✓
дитинаA1A1✓
головнийA1A2≠
селоA1A1✓
складB1A1≠
державаA2B2≠
чоловікA1A1✓
хотітиA1A1✓
життяA1A2≠
правоB1B2≠
сьогодніA1A1✓
урядB1B2≠
міжA2A2✓
вибориB1B1✓
тисячаA1A1✓
знатиA1A1✓
діяB1A1≠
ситуаціяA1B2≠
тутA1A1✓
заразA1A1✓
центрA1A1✓
становитиB1B2≠
допомогаA1A1✓
триA1A1✓
березеньA1A1✓
зробитиA1B1≠
місцевийA2A2✓
кількістьB1A2≠
початокA1A1✓
другийA1B1≠
початиA1B1≠
гривняA1A1✓
станB1B1✓
тамA1A1✓
писатиA1A1✓
житиA1A1✓
метаB1A2≠
освітаB1A2≠
написатиA1A2≠
чорнийA1A1✓
наукаB1A2≠
білийA1A1✓
підписатиA2B1≠
займатисяA2A2✓
червонийA1A1✓
стілA1A1✓
зеленийA1A1✓
традиціяA1A2≠
підписA1B1≠
ліжкоA1A1✓
синійA1A1✓
кріслоA1A1✓
годинникA1B1≠
помаранчевийA2A1≠
цікавитисяA2A2✓
типовийA2A1≠
стілецьA1A1✓
мебліA1A2≠
захоплюватисяA2A2✓
посудA1B1≠
дописB1B1✓
лампаA1A1✓
шафаA1B1≠
холодильникA1A2≠
рушникA1A1✓
диванA1A1✓

Only 114 of 200 gold points fall inside the top 12,000 and share the overlay's part of speech; the rest are rarer words, or homographs of a different sense. The misses run both ways: more often the course places a concrete but corpus-rare noun (шафа wardrobe, посуд dishes) higher than the validated profile, which front-loads it to A1 for a beginner; less often it puts an abstract noun (наука science, освіта education) a level lower. Much of that gap is not error but two philosophies: the course follows where a word is taught, the profile makes deliberate beginner-priority overrides.

The join is POS-aware, so 75 homographs (a fish and a quantifier that share a spelling, for instance) were dropped rather than mislabeled. And where the validated profile publishes a level, that level is used and marked validated, so 114 labels here are Synchak's own, not the heuristic's. The agreement above is measured on the heuristic BEFORE those overrides, so the number is not flattered by them.

Do the levels track frequency at all?

Weakly, which is the honest answer. The rank correlation between assigned level and corpus frequency is 0.283 (a CEFR level is not frequency, so a loose fit is expected), but the median frequency rank does rise from A1 to B2, so the ordering is at least directionally sane.

A11,612
A22,521
B13,566
B24,186
median rank
Labels by level
A1639
A2422
B1820
B2443
C11
How much of the top N is labeled
Top 1,000: 520 labeled (52%)
Top 2,000: 893 labeled (44.7%)
Top 5,000: 1,590 labeled (31.8%)
Top 12,000: 2,325 labeled (19.4%)
Every label is graded for confidence
validated (Synchak's level) 114frequency-typical 2,183frequency outlier 28
A sample of the overlay
#LemmaCEFR
1вA1
2наA1
3уA1
4іA1
5зA1
6бутиA1
9доB1
10заA2
22відB1
38підA2
45поB1
47післяA2
57особаA2
61заявитиC1
63щобA2
69повідомитиB1
83повідомлятиB1
85себеA2
90щодоB1
123даніB2
284матчB2
331парламентB2
338акціяB2
403порушенняB2
408належатиB2
The overlay reconciles
The second A1 source: the authors sent the listShow the data Hide the data
Author-shared / A1 consensus

The second A1 source: the authors sent the list

Snapshot 2026-07-27

The field census below used to list the "1000 i 1 slovo" A1 lexical minimum (Kseniia Borodin and Oksana Turkevych, School of Ukrainian Language and Culture, Ukrainian Catholic University) as walled: licensed CC-BY-4.0 but published only as a prose PDF an extractor could not reach, so the one independent, empirically grounded A1 guideline for Ukrainian could not be joined and the overlay's rigor model called that missing consensus a seam. This page asked the authors for a machine-readable table, and co-author Kseniia Borodin sent the word list herself. This card is that list, joined onto the frequency list and republished as attributed open data under the guide's own license.

The join is honest about its grain. The authors' unit is the published entry (a single word, an aspect pair, a masculine and feminine pair, sometimes a whole phrase), the list carries no part of speech, and the join is by lemma string at the best rank, coarser than the POS-aware overlays above. Phrase entries are counted, never force-joined, and a beginner word the corpus does not rank stays honestly off-list.

838 of the 929 unique A1 entries join the top 12,000, reaching 833 distinct lemmas

Where the validated map places these words
A1610
A2170
B124
B21
C11
Where the A1 minimum sits on the list
Top 1,000: 307 of its lemmas (30.7%)
Top 2,000: 480 of its lemmas (24%)
Top 5,000: 689 of its lemmas (13.8%)
Top 12,000: 833 of its lemmas (6.9%)

Of the 806 joined lemmas the validated PULS map also covers, 75.7 percent are validated A1 and 96.8 percent sit at A1 or A2. Two independent efforts, a corpus-validated profile and an expert lexical minimum, converge on what beginner Ukrainian is. The handful above A2 is mostly the price of a coarser join: автомат the A1 ticket machine shares a spelling with the C1 rifle, and this list cannot tell them apart without a part of speech.

The teachability trade, on an independent instrument

The 833 matched lemmas cover about 34.7 percent of running text; the 833 highest-frequency lemmas would cover about 57.6 percent. That is the same finding as the validated core above, now measured on a source this page did not build: a pedagogical A1 selection deliberately trades raw coverage for concrete, teachable words, and 72 of its word entries (апельсин orange, виделка fork, бутерброд sandwich) do not rank in this news-heavy top 12,000 at all.

Beginner words the corpus does not rank
автовокзалалергіяалфавітапельсинбананблокнотблузкабутербродвареникивегетаріанськийвечерятивиделка
A sample of the join
#Published entryLemmaPULS
1в, увA1
2нанаA1
4і, й, таіA1
5з, із, зізA1
6бутибутиA1
7ненеA1
1538готельготельA1
1545статьстатьA2
1546дочкадочкаA1
1549готуватиготуватиA1
1566папірпапірA1
1570купувати – купитикупитиA1
11598цукеркацукеркаA1
11703куркакуркаA1
11781кремкремA2
11811фотографуватифотографуватиA1
The join reconciles
The next level up, and the first look at which fields the corpus missesShow the data Hide the data
Open access / A2 and the thematic axis

The next level up, and the first look at which fields the corpus misses

Snapshot 2026-07-28

The A1 card above closed a seam. Its provenance note also recorded an open one, in plain words: the A2 volume of the same series existed, but no machine-readable A2 list had been shared. That volume has since been published open access under CC-BY-4.0 by Kseniia Borodin and Olesia Lazarenko at the Europa-Universitat Viadrina, so the seam closes by publication rather than by favor. This card is its 1,000-entry register, extracted from the publication's own PDF, joined onto the frequency list the same coarse way, and republished as attributed open data.

Two things become answerable that were not before. Because this is the same authors' next volume, the two lists together measure what one CEFR step actually costs, in frequency ranks rather than in word counts. And because the A2 book also prints its whole vocabulary regrouped under its own 51 topic headings, this is the first source on this page that can say WHICH semantic fields a news-heavy frequency list misses, not merely how many words it misses.

710 of the 1,000 published A2 entries join the top 12,000, reaching 709 distinct lemmas

What one CEFR step costs

Only 45 of the A2 entries are words the same authors' A1 minimum already claimed, and those are almost all verbs collecting their perfective partner. The other 955 (95.5 percent) are new at A2, and they sit measurably deeper in the corpus: median rank 2,923 against 1,643 for the words carried up from A1. A CEFR step is not a bigger pile of the same words. It is a move outward into rarer ones.

Which fields the frequency list misses

The book groups its 1,124 thematic units under 51 topic headings. Joined against the frequency list, 21.4 percent of them do not rank in the top 12,000 at all, and the misses are not evenly spread. The worst-covered fields are the concrete, domestic, physical ones: food, personal hygiene, household technology, and the numerals, where both the collective forms and the ordinals the authors deliberately extended to thirtieth (so a learner could say a date) fall outside the list. A corpus of published Ukrainian news is a poor description of a kitchen.

Їжа69%
Числівники63.2%
Особиста гігієна60%
Технології59.1%
Способи приготування їжі57.1%
Одяг, взуття, аксесуари56.4%
Продукти, фрукти, овочі53.8%
Українська культура50%
Topic / Off-list
Where the validated map places these words
A1148
A2324
B1167
B232
C12
A2 words the corpus does not rank
абе́ткаабрико́саквапа́ркАлло́!анана́сапо́строфбанду́рабезалкого́льнийбезглюте́новийбезлакто́знийбіле́тблонди́н / блонди́нка

Of the 673 joined lemmas the validated PULS map also covers, 70.1 percent sit at A1 or A2 and 29.9 percent sit above A2, nearly all at B1. That is a looser agreement than the A1 card found, and it should be: A2 is where two expert efforts start to disagree about the boundary, and the coarse lemma-string join adds noise of its own. The page reports the disagreement rather than tuning it away.

The teachability trade, one level up

The 709 matched lemmas cover about 11.9 percent of running text; the 709 highest-frequency lemmas would cover about 55.2 percent. The trade the A1 card measured widens sharply at A2, and 227 of the word entries do not rank in this news-heavy top 12,000 at all, against 72 at A1. This is the honest ceiling on frequency-first learning: past the beginner core, a frequency list and a syllabus stop describing the same language.

A sample of the join
#Published entryLemmaPULS
9додоA1
21длядляA1
22відвідA1
25свійсвійB1
27Бува́й(те)!теA1
35тойтойA1
2813Бе́льгіяБельгія·
2822звук (Р.в. одн. зву́ка)звукA2
2836відві́дувач / відві́дувачкавідвідувачB1
2840зустріча́ти(ся) – зустрі́ти(ся)зустрітиA1
2843підзе́мнийпідземнийB1
2854деревʼя́нийдерев’янийA2
11864симпати́чнийсимпатичнийB1
11907па́скапаскаA2
11977знайо́мити(ся) – познайо́мити(ся)знайомитиB1
11982тризу́бтризубB1
The join reconciles
Two published answers to which words come first, put side by sideShow the data Hide the data
Crosswalk / Syllabus against profile

Two published answers to which words come first, put side by side

Snapshot 2026-09-13

The three cards above each read one source against the frequency list. This one reads two sources against each other. Ukrainian now has both a corpus-informed teaching syllabus, the A1 and A2 volumes of "1000 i 1 slovo", and a corpus-validated descriptive profile, the Ukrainian Vocabulary Profile on PULS. They were built by different methods to answer different questions, and until now nobody had joined them lemma by lemma. This card does, on the frequency spine, and classifies every cell.

The point is not to score either one. A syllabus decides what to teach on Tuesday and a profile records where a word first turns up in graded use; they are allowed to differ, and the interesting reading is where and how. The grid below is the whole join. Choose a cell and the words in it are listed underneath, most frequent first.

10,366 lemmas in the union of the two sources, 1,200 of them placed at the same level by both

Every lemma, by volume and by validated level

Rows are the minimum volume that carries the word, columns the level the validated profile gives it. Select a cell to list its words.

Minimum / Validated level
MinimumA1A2B1B2C1noneΣ
A1992
A21,137
neither8,237
Σ9681,3792,3853,5221,94017210,366
syllabus later: 174 lemmas

The 24 most frequent, from the published release. The full table is the download.

#LemmaPOSVolumePULS
9доADPA2A1
21дляADPA2A1
22відADPA2A1
35тойDETA2A1
56статиVERBA2A1
59областьNOUNA2A1
87якщоSCONJA2A1
95компаніяNOUNA2A1
102національнийADJA2A1
104отриматиVERBA2A1
110частинаNOUNA2A1
118світNOUNA2A1
119разNOUNA2A1
130безADPA2A1
135територіяNOUNA2A1
141життяNOUNA2A1
168допомогаNOUNA2A1
181початокNOUNA2A1
184початиVERBA2A1
196командаNOUNA2A1
297біляADPA2A1
335числоNOUNA2A1
352кінецьNOUNA2A1
370вікNOUNA2A1

The prepositions are the sharpest disagreement

Of the 174 words the profile validates at A1 and the syllabus holds back to A2, four are prepositions and a conjunction that the corpus ranks in its first 130: до (9), для (21), від (22) and без (130), plus якщо (87). The A1 volume does carry по, про and через, so this is a line the authors drew on purpose and have since confirmed: a preposition is held back until the case it governs is taught. It is exactly the kind of decision a crosswalk makes visible and a word count cannot.

What this join cannot see

Three limits, and no reading here survives ignoring them. The minimums carry no part of speech, so homographs collapse into one row. A profile level is the onset of a lexeme's earliest sense, so a word can be validated A1 for a sense the syllabus does not teach. And the three sources do not agree on what one lemma is: те heads the absent list at rank 27 not because anyone forgot it but because the spine and the profile call it a lemma while the syllabus calls it the neuter of той, which the A2 volume carries. Read the absent column as candidates to check.

Read the explainer and the method noteDownload the full crosswalk (CSV)Minimums CC-BY-4.0 (Borodin and Turkevych; Borodin and Lazarenko); validated levels CC BY-NC-SA 4.0 by the authors' permission
The crosswalk reconciles
A frequency list inherits the genre of its corpusShow the data Hide the data
Thread 06 / Genre

A frequency list inherits the genre of its corpus

Snapshot 2026-07-28

The card above says 229 word entries of the A2 minimum do not rank in this list's top 12,000, and reads that as the ceiling on learning by frequency. That reading rests on something untested. This list is built on UberText 2.0's COMBINED corpus, and the largest thing in that corpus by a wide margin is news. So an off-list word might be rare in Ukrainian, or it might be ordinary and simply absent from journalism, which does not often discuss forks, pumpkins or neckties. Those two readings give opposite advice to anyone building a word list, and nothing above can tell them apart.

So we built two frequency lists instead of one, from UberText's own fiction and news subcorpora: same collection, same cleaning, same lemmatizer, same sampling shape, both capped to the same token count. Genre is the only thing that differs. The ranks below are internally comparable and deliberately NOT comparable to the main list on this page, which a different lemmatizer produced.

Where the A2 minimum falls in each genre
in both genres 562news only 96fiction only 86in neither 192

News reaches 658 of the entries (70.3 percent). Fiction reaches 648 (69.2 percent). Almost the same amount, and not the same words: together they reach 744 (79.5 percent). A second genre of the same size buys 9.2 points that more of the first genre would not have bought. For a pedagogical target, corpus diversity is worth more than corpus size.

The exchange is close to symmetric, which is what makes it a real result rather than a bigger hammer: fiction reaches 30.9 percent of what news misses, and news reaches 33.3 percent of what fiction misses. Neither genre is better. They are looking at different parts of the language.

Where the two genres disagree most
Способи приготування їжі14.3%85.7%
Сімʼя та родина57.1%100%
Людина: зовнішність, характер, емоції та стани57.7%88.5%
Частини тіла75%100%
Посуд та інше40%60%
Природа: рослини і тварини81.8%100%
Людина: особиста інформація50%66.7%
Комунікативні фрази7.7%23.1%
News / Fiction
Only news ranks these
анке́таАнтаркти́даА́рктикабале́тбанкома́тбезкошто́внийБе́льгіябланкбрита́нець / брита́нкабуря́квиши́ва́нкавідмі́нно
Only fiction ranks these
банду́рабігборода́брова́бу́ряваре́нийвари́ти – звари́тивго́лос, уго́лосвесе́лкави́рібви́шнявідро́

Read the two rows together and the mechanism is plain. Journalism supplies the institutional and the geographic; fiction supplies the domestic, the bodily and the sensory. Neither is a description of the language on its own.

What this measurement is not

These ranks come from our own lemmatizer pass over two subcorpora, not from the lemmatizer behind the main list on this page. They are comparable to each other and to nothing else here, and no figure above mixes them with the main list. The lemmatizer also mis-handles a few high-frequency pronouns, identically in both genres, so it cannot manufacture a difference between them.

The split reconciles
The figures reconcileShow the data Hide the data

Why this is so thin: there is still no open Ukrainian CEFRLex

Thread two now joins a validated profile (by the authors' permission), an author-shared A1 lexical minimum, and an open course overlay. That it took two direct asks to get here is the point: the open, per-lemma, CEFR-graded word list, a standard resource for learning a language, has been built for about a dozen languages and never published as open Ukrainian data. Here is the whole field.

What Ukrainian has
SourceAccessLevels
Ukrainian Vocabulary Profile (PULS)validatedby permissionA1-C1 (to B1)
State Standard 2024 (SLSUFL)documents onlyA1-C2
CEFR & Ukrainian-English Language Portfolios (PCUH)documents onlyA1-B1
learn-ukrainian courseopen, CC-BY-SAA1-B2
1000+1 Words (Borodin, Turkevych)shared by the authorsA1
1000+1 Words A2 (Borodin, Lazarenko)open, CC-BYA2
Built for other languages, not Ukrainian
KELLY · 9 languages, no Ukrainian edition
CEFRLex · several languages, no Ukrainian edition
UniversalCEFR · 13 languages, no Ukrainian edition
Have the missing piece?

This page folds in an open Ukrainian CEFR word list the moment one exists, and that is not hypothetical: the A1 minimum above arrived exactly this way, because its authors answered an email. The schema it needs is small: lemma, part of speech, and CEFR level, as CSV or JSON.

lemmapart of speechCEFR levelGet in touch →
The B1 extension

What the validated B1 words do, and a guess for the rest, kept apart

The validated map labels 1,604 lemmas on this list B1. This thread builds the enrichment layer a learner working toward B2 actually needs on top of those labels: which verb pairs with which, what case each verb governs, what each word keeps company with, and a real sentence for each. Every figure is a count over open data, and every table ships as a download.

The other 5,597 lemmas have no validated level. A model guesses one for the content words among them, and the guess ships in a separate file with its own error rates, never merged into the validated column. Where the model is unsure it says so on the row.

Aspect as a relation, not a columnShow the data Hide the data

Aspect as a relation, not a column

Ukrainian aspect is lexical: a perfective and its imperfective are two lemmas, so the table relates them instead of tagging one. For the 443 B1 verbs, Wiktionary lists a partner for 378, a hand-curated table of suppletive pairs (брати and взяти among them) is asserted on top, 0 of its pairs touching a B1 verb, and the corpus supplies every attested prefixed derivative. Each related verb keeps its own validated level, which makes 102 split-level pairs visible: a B1 verb whose partner the profile places elsewhere.

Where the partner comes from
partner listed378
biaspectual2
no partner listed50
not in Wiktionary13
Split-level pairs, by the partner's level
A14
A229
B261
C18

102 of the 346 leveled partners sit at a level other than B1. A learner who meets the B1 member has usually not met the other one.

The split-level rows, most frequent partners first
B1 verbPartnerAspectPartner levelUberText
захотіти B1хотітиimpfA11,047,986
зіграти B1гратиimpfA1293,227
посидіти B1сидітиimpfA1214,612
відсвяткувати B1святкуватиimpfA138,780
розповідати B1розповістиpfA2592,456
використати B1використовуватиimpfA2400,531
помирати B1помертиpfA2364,816
виступити B1виступатиimpfA2342,427
підписувати B1підписатиpfA2325,422
зайнятися B1займатисяimpfA2323,510
запропонувати B1пропонуватиimpfA2274,648
зібратися B1збиратисяimpfA2207,282

Beyond the listed partners, 596 corpus-attested prefixed derivatives of the imperfective B1 verbs are in the table (перечитати, дочитати and their kind), 103 of them validated at B2 or C1. PULS and Wiktionary disagree on the aspect of 15 verbs; both readings are kept, and VESUM's is recorded as the third opinion.

The motion-verb grid, corpus-attested cells only

Sixteen prefixes across the eight core pairs, determinate and indeterminate. 804 spellings were generated, and a cell is filled only when UberText attests the form at least a hundred times and the VESUM lexicon knows it as that infinitive: 211 of 256 cells. The level under each form is the validated one where the profile has it.

rootв-ви-від-до-з-за-на-над-о-об-пере-під-по-при-про-роз-
ходити indet.входитиB1 +1виходитиA2відходитиB1доходитиB2сходитиB1 +2заходитиA2 +1находити +1надходитиC1·обходитисяB2 +1переходитиA2підходитиB1походитиB1приходити +1проходитиB1 +1розходитися
іти/йти det.·вийтиA2відійтиB1·зійтиB1 +1зайтиA2 +1найтиC1 +1надійти·обійтисяC1 +1перейтиA2 +1підійтиB1пітиA1прийтиA2 +1пройтиB1 +1розійтисяB2
їздити indet.в'їздитивиїздитивід'їздитидоїздитиз'їздити +1заїздитинаїздити +1··об'їздитипереїздитиB2під'їздитипоїздитиB1приїздитиB2проїздити·
їхати det.в'їхативиїхатиB1від'їхатидоїхатиB1з'їхатиB2 +1заїхатиB2наїхатинад'їхати·об'їхатипереїхатиB1під'їхатиB1поїхатиA2приїхатиA2проїхатиB1 +1роз'їхатися
носити indet.вноситиB2 +2виноситиB2 +1відноситися +1доносити +1зноситиB2 +1заносити +1наносити +1··обносити +1переноситиB2 +1підноситиC1 +1поноситиприноситиB1 +1проноситися +1розносити +1
нести det.внестиB2 +1винестивіднестиB1 +1донести +1знестиB2 +1занестиB2нанести··обнестиперенестиB2 +1піднестиB2 +1понестиB2 +1принестиA2пронести +1рознести +1
возити indet.ввозитиB2 +1вивозитиB2 +1відвозитидовозитизвозити +1завозити +1навозити···перевозитиB2 +1підвозитиB2 +1повозити +1привозитиB1 +1провозити +1розвозити +1
везти det.ввезти +1вивезтиB2відвезтиB1довезтиB2звезтизавезтинавезти···перевезтиB1 +1підвезтиB2повезтиB1привезтиB1провезтирозвезти
водити indet.вводити +3виводитиB2 +1відводити +1доводитисяB2 +1зводитиB2 +1заводити +1наводитиB1 +1··обводитипереводити +1підводити +1поводитисяB2 +1приводитиB2 +1проводитиA2 +1розводитиC1 +1
вести det.ввестиB2 +1вивестиB2 +1відвестиB1довестисяB2 +1звестиB2 +1завестиB2 +1навестиB1··обвестиперевестиB2 +1підвестисяB2 +1повестиB1 +1привестиB1провестиA2розвести +1
бігати indet.вбігативибігатиB2відбігатидобігатизбігатисяC1 +1забігатинабігати +1надбігати·оббігатиперебігатипідбігатипобігатиB1прибігатиB1пробігатиB2розбігатисяB2
бігти det.вбігтиC1 +1вибігтиB2відбігтидобігтиB2збігтисяC1 +1забігтиB1набігтинадбігти·оббігтиперебігтипідбігтиB1побігтиA2прибігтиB1пробігтиB2 +1розбігтися
літати indet.влітативилітативідлітатиB1долітатизлітати +1залітатиналітати··облітатиперелітатипідлітатиполітатиB1прилітатиB1пролітатиC1розлітатися
летіти det.влетіти +1вилетітиB1відлетітидолетітиB2злетітиB2 +1залетітиналетітинадлетіти·облетітиперелетітиB1підлетітиполетітиB1прилетітиB1пролетітиB2розлетітися
плавати indet.············поплаватиB1···
плисти/пливти det.вплистивиплисти +1відплисти +1доплисти +1спливти +1заплисти +1напливти···переплисти +1підплисти +1поплистиB2 +1приплисти +1проплисти +1розпливтися +1
Download the relation table (CSV) →Download the motion grid (CSV) →Levels: PULS, by permission, CC BY-NC-SA 4.0. Partners: Wiktionary (kaikki.org), CC-BY-SA. Counts: UberText 2.0, CC-BY.
Government, collocations, and gated examplesShow the data Hide the data

Government, collocations, and gated examples

Aggregated over 2,880,835 parsed tokens of UberText's Wikipedia subcorpus, the one whose text is license-compatible with this release. Government is verb + preposition + case with the share of the verb's nominal dependents; a pattern is shown at ten percent or more and three observations, and the raw counts stay in the download. 365 of the 443 B1 verbs have five or more observations, 285 have twenty or more. Wikipedia has a register: дякувати does not occur.

The join keys are the PULS headwords, in VESUM's conventions. The parser's lemmas are pymorphy3's, whose Ukrainian dictionary is VESUM-derived, and the convention check holds: 99.9 percent of the B1 headwords normalize to themselves (2 do not, кошти among them), under the one-percent benchmark the plan sets. 73 percent of the parsed content tokens land on a lemma of this list; the rest is reported, never merged into the ranks.

Eight verbs, their patterns above the threshold
повідомити85 obs.
про + accusative39%
dative, no preposition15%
accusative, no preposition15%
повідомляти50 obs.
про + accusative60%
accusative, no preposition20%
в + locative10%
вважати779 obs.
accusative, no preposition63%
становити2,361 obs.
genitive, no preposition52%
accusative, no preposition19%
йтися102 obs.
про + accusative68%
в + locative28%
перебувати1,530 obs.
під + instrumental37%
в + locative32%
на + locative14%
загинути564 obs.
в + locative36%
від + genitive16%
під + accusative11%
пройти257 obs.
accusative, no preposition23%
в + locative16%
How much to trust the parser

A parser is a parser, so its error on oblique dependents is estimated rather than assumed. For 60 B1 verbs a maintainer-written list gives the textbook government (not an independent annotator, and this page says so). The corpus's top pattern is the textbook one for 59 of them, and it is in the top two for 60.

textbook pattern is the top pattern59
textbook pattern is second1
present, lower0
absent0
Collocations by association, not raw bigrams

Dependency-linked pairs ranked by logDice, which is what a lexicographer uses, because raw surface bigrams surface function-word noise. 6,219 rows for 1,087 B1 lemmas, the strongest eight per lemma. The number after each collocate is its logDice.

повідомитиголова 6.27день 4.43
іступінь 11.82тисячоліття 8.5ст. 8.49рівень 7.18половина 6.84століття 5.32
повідомлятиколи 5.55
рішенняприйняття 11.11прийняти 10.5приймати 10.08ухвалити 9.66ухвалення 9.66суд 9.41
судверховний 11.4апеляційний 10.37конституційний 10.32інстанція 9.7окружний 9.54суддя 9.5
владаутримувати 11.65перебувати 11.5мавр 10.82залишитися 10.78орда 10.64орган 10.52
Attested examples, gated

2,919 real Wikipedia sentences for 1,497 B1 lemmas, kept verbatim under CC-BY-SA. Nothing is generated. Every sentence passed the russianism gate, the LanguageTool replacement tables that thread three already uses, run on every token; the gate is fail-closed and dropped 167 of the 5,571 candidates it checked.

середовище · Водночас окремі дослідники намагалися поєднувати суспільні процеси з компонентами географічного середовища.
планета · Передбачається можливість існування біосфер на інших дуже далеких планетах.
діяльність · Вони обслуговують практичні завдання людської діяльності.
населення · Виокремлюють окремі галузі суспільної географії: географія населення, промисловості, сільського господарства, транспорту, невиробничої сфери та інші.
The lemma convention, measured instead of assumed

These tables join on lemma strings, so the lemmatizer is not a detail. They carry pymorphy3's lemmas; the profile was built with nlp_uk and this list carries lang-uk's own, so the plan pinned a switch to nlp_uk on the assumption it would tighten the joins. Re-reading the same slice through both, one sentence at a time, the two agree on 92.6 percent of tokens and land content words on this list at 73 against 72.6 percent. The assumption was wrong, so the tables were left alone.

The gap is a convention, not an error on either side. nlp_uk treats a substantivized adjective as its own headword, so російською reads російська (the language) where this list has російський, and a capitalized first word often reads as a proper noun. Both are defensible; neither is the convention the ranks were built with.

ConventionOn the listWith part of speechpymorphy3shipped73%72%nlp_uk72.6%70.6%
Agreement by part of speech
NOUN94
ADJ92.3
PROPN84.7
ADP99.9
VERB92.5
CCONJ100
Where they part company

The most frequent of 29,598 disagreement types.

була → була / бутийого → він / йогопівночі → північ / півночістав → стати / ставитиінші → інший / іншіїх → вони / їх
The connectives a lemma list cannot holdShow the data Hide the data

The connectives a lemma list cannot hold

A frequency list ranks lemmas, so a phrase is invisible to it. "тому що" is counted as one very common conjunction plus one very common pronoun, and nowhere as the connective it is. This table gives 142 expressions their own IDs: 63 discourse connectives from UK-DiMLex and 79 multiword entries of the two published lexical minimums, each counted over the same 4,694,436 word tokens of Wikipedia the usage tables were cut from.

The parts carry the validated levels, the unit does not: the profile levels words, not expressions. Reading the parts gives a floor, and for 87 of the 98 expressions whose every part is validated (88.8 percent) that floor is B1 or easier. A coverage figure computed word by word therefore counts them as already known, which is the gap this table exists to measure.

A floor is not a level. Таким чином is a frozen instrumental of a C1 noun and reads C1 part by part, which is as wrong for the unit as A1 would be. The column says what the parts are worth, and nothing more.

Count the same expression two ways

Two readings of one expression: the levels its parts carry, and the expression itself.

крімB1тогоA1
known
2 of 2 parts validated · hardest part B1
абоA1абоA1
known
2 of 2 parts validated · hardest part A1
приB1цьомуA1
known
2 of 2 parts validated · hardest part B1
томуA1щоA1
known
2 of 2 parts validated · hardest part A1
доA1тогоA1
known
2 of 2 parts validated · hardest part A1
якщоA1тоA2
known
2 of 2 parts validated · hardest part A2
неA1лишеA2аA1йA1
known
4 of 4 parts validated · hardest part A2
неA1тількиA1аA1йA1
known
4 of 4 parts validated · hardest part A1
Where the expression comes from
discourse connective63
learner-list phrase79
The floor the parts set
A138
A241
B142
B214
C12
Checked against a gold annotation

An independent corpus of hand-annotated Ukrainian multiword expressions (PARSEME 2.0, 5,993 annotated instances over news text) attests 35 of these 142 expressions (24.6 percent). It is read in one direction only: no expression enters this table because that corpus has it. The corpus is NonCommercial, so it is never vendored here and nothing derived from it per expression reaches the download or the package.

In the register, not in the slice

33 expressions are never seen in the corpus slice. Most are the everyday vocabulary a beginner register has to teach and a news corpus has little use for, which is a fact about the corpus, not a fault in the register.

а усеа усе-такиа щодо...тоадже жбагажне відділеннябрати шлюббритва для голіннявзяти шлюбгаряча лініягігієнічна прокладказубна пастакаса самообслуговування
The gap-fill model, kept out of the validated columnShow the data Hide the data
Predicted / Separate file

The gap-fill model, kept out of the validated column

Trained on the 6,403 validated labels and asked about the 5,597 lemmas that have none. Proper nouns, function words, and lemmas the lexicon does not know are ruled out of scope first, so the model predicts for 4,218 content words. Held-out folds are grouped: lemmas that share a stem, an aspect link, or a spelling (3,394 groups) never straddle train and test, so a family cannot be memorized.

Grouped five-fold held-out evaluation on the validated labels
ModelExactWithin oneMacro-F1MAEQWK
majority class34%71%0.1021.0840
rank band only34.6%70.9%0.1421.0810.102
frequency only (ordinal)37.7%76.6%0.2270.9260.329
ridge + thresholds39.8%81.5%0.2940.820.459
proportional-odds ordinal logit (shipped)40%82.3%0.3130.8060.479
multinomial logistic40.5%78.3%0.3350.8770.475

Under plain random folds the shipped model scores 41.5 percent exact against 40 under grouped folds; the grouped figure is the one reported everywhere on this page, and the gap is the size of the leakage a naive split would have hidden.

The ablation ladder (primary model, grouped folds)
A frequency only37.7%76.6%0.227
B + morphology39.1%79.5%0.272
C + part of speech and length39.3%79.7%0.283
D + lexicon flags and band39.3%79.7%0.284
E + Wiktionary polysemy and loanword flag39.1%80.3%0.293
F + subtitle and web frequency (wordfreq)40%82.1%0.315
G + UniMorph derivational family40.2%82.3%0.317
H + Wiktionary derived-term family (size, fold-safe lowest level)40%82.3%0.313
step, exact, within one, macro-F1
Confusion matrix, shipped model
A1A2B1B2C1A1283903401470A2142684193661B11146259681517B23433493152990C1137859488
rows: validated level; columns: predicted level
Where the labels are, and where the model is on thin ground

The labels are missing not at random: they come from textbooks, so label presence falls with rank. Held-out exact match is 40 percent in the top five thousand and 40 percent below it. Predictions in the 2 rank bands where fewer than 35 percent of lemmas carry a label ship flagged as thin support; the list is censored at rank 12,000 and nothing here extrapolates beyond it.

rank band1k2k3k4k5k6k7k8k9k10k11k12k
label presence87.1%80.3%71.1%65%58.6%55.7%46%41.9%38.5%35.8%31.1%29.2%
held-out exact43.6%37.9%36.7%39.2%42.5%42%38.5%40.3%41.6%41.3%39.9%35.3%
Calibration and abstention

Expected calibration error of the shipped probabilities is 0.019. The abstention threshold is the lowest tested confidence at which held-out exact accuracy reaches 50 percent, a coin flip on five classes: 0.5. Below it a row ships as uncertain; 1,728 of the 4,218 predictions clear it.

confidence at leastcoverageaccuracy
0.3562%46%
0.451%47%
0.4540%48%
0.524%51%
0.554%65%
0.63%64%
0.652%67%
0.71%74%
0.81%81%
The uncovered lemmas, by what happened to them
predicted4,218
out of scope: proper noun1,298
out of scope: function word62
out of scope: not in the lexicon19
Predicted levels
A144
A216
B1355
B22,949
C1854
The first predictions by rank
#LemmaPredictedConfidenceStatus
36український ADJA10.344uncertain
68російський ADJA10.324uncertain
109грн NOUNA10.666confident
123дані NOUNA10.468uncertain
162млн NOUNA10.688confident
175європейський ADJB10.292uncertain
183проект NOUNA10.332uncertain
199посилання NOUNB10.338uncertain
244київський ADJB10.319uncertain
249повідомлятися VERBB20.504confident

Three caveats the design owes. The single strongest feature in the French template, per-level frequencies from a graded learner corpus, does not exist for Ukrainian, so this model works from native frequency, morphology and a few open resources (Wiktionary senses and loanword flags, subtitle frequency, UniMorph families, the Wiktionary family graph) and its ceiling is structurally lower; the ablation ladder shows what each block buys. Membership in the open A1 and A2 lexical minima is computed and reported but deliberately not in the shipped model: it was the strongest weight, worth about nine points of exact match, and that lift was a graded word list read back as a feature, firing on most validated A1 labels and on almost none of the lemmas being predicted. Dispersion here is documents per occurrence; Gries DP across the five subcorpora needs per-subcorpus counts the shipped dictionary does not carry. And an LLM judgment is reserved as at most one measured feature and is not in this version.

These are candidates for the profile's authors, not levels. The validated overlay is untouched by any of them.

The open family graph

The profile groups its vocabulary into word families, and that grouping is not public yet. This is the open fallback: a derivational family graph built from the English Wiktionary's Ukrainian entries (kaikki.org extraction of 2026-09-20), where two words are kin when one lists the other as a derived term, one's etymology is an affix over the other, or they are listed aspect partners. Compounds are excluded so a word like високооплачуваний cannot chain високий to платити. 17,543 such edges put 4,171 of the 12,000 list lemmas into 1,919 families; the rest have no Wiktionary kin on the list.

A family is not a level
same level219
one level apart223
two or more apart198

Among the 640 families with two or more validated members, the profile places every member at the same level in only 219 (34.2 percent); 198 span two levels or more. That is the eLex paper's own point (писати at A1, its family spread across the levels), and it is why the model uses the family's lowest validated level as one feature rather than copying it.

A few families, each member with its validated level
root: один4 in Wiktionary
один A1один A1один A1
root: сказати10 in Wiktionary
сказати A1казати A1показати A1показувати A1відказати C1
root: місто5 in Wiktionary
місто A1місце A1містити B1містечко B1
root: коли2 in Wiktionary
коли A1коли A1коли A1колишній A2
root: рішення17 in Wiktionary
вирішити A2вирішувати A2рішення B1вирішуватися B2рішучий B2вирішитися B2
root: хто3 in Wiktionary
хто A1ніхто A2хтось A2
Edges: Wiktionary via kaikki.org, CC-BY-SA. Levels: PULS, by permission, CC BY-NC-SA 4.0.
The B1 extension reconciles

The plan, stage by stage, with what is done and what is pinned: docs/ukrainian-frequency/b1-extension-pipeline.md

Part 3Quality and forms
Ukrainian Frequency / Derussification

The word older materials quietly got wrong

A frequency list tells you which words to learn. It does not tell you that some of the words you will meet in real Ukrainian text are ones a careful editor would replace: russianisms, surzhyk, and calques that older teaching materials quietly passed on. Thread three flags them on the exact list you study from.

There is no single settled russianism list to join against. What there is, open and maintained, is the Ukrainian idiomatic-style tooling: LanguageTool's Ukrainian replacement tables (the brown-uk project, the same one behind the VESUM morphology). This thread joins that tooling to the frequency list and, for every top-12,000 lemma it flags, shows the native alternative it recommends.

Open / Unvalidated

Read this the way you read thread two's open CEFR overlay: it is an OPEN, joinable signal, but an unvalidated, prescriptive one. It is what a style checker would replace, an editorial opinion, not a settled linguistic verdict. Its core is derussification, but the tooling's scope is broader than strictly-Russian loans, and a few entries (поліцейський, безкоштовний) are live usage debates. Proper-noun and spelling fixes are dropped. Every suggested form is the tooling's own, kept verbatim.

83 of the top 12,000 lemmas carry a flag from the style tooling

The finding: the calque is often the common one

63.8%44 / 69

Of the 69 flagged forms whose native replacement is a single word, 44 (63.8%) have the flagged form at least as common in real Ukrainian text as its replacement: the idiomatic word is rarer, or not in the top 12,000 at all. That is the empirical face of older materials teaching the calque, and the corpus still carrying it.

Where the native form sits (single-word swaps)
The pairs

One row per frequency band, lowest rank first. Each flagged form, the native alternative the tooling recommends, and where that alternative sits on the list. The full list is in the download.

#Flagged formRecommendedNative rank
1,257поліцейськийNOUNполіційнийnot in top 12,000
2,206прийомNOUNприйманняnot in top 12,000
3,085безкоштовнийADJбезплатнийnot in top 12,000
4,177безкоштовноADVбезплатноnot in top 12,000
5,233передвиборнийADJпередвиборчий#4,407
6,676держдепартаментNOUNДерждепартаментnot in top 12,000
7,099місцезнаходженняNOUNмісце#81
8,184властьNOUNвлада#100
9,219міліцейськийADJміліціонер#3,301
10,263подаліADVтрохи даліa construction
11,228затребуванийADJпотрібний#706

12 of the flagged adjectives are the active-participle calque (діючий, існуючий): the -ючий forms Russian has and standard Ukrainian rewrites as a relative clause (що діє). The tooling lists that rewrite first.

Checked by a native speaker

0/ 83

None of the 83 flagged words has been checked by a native speaker yet. Paid reviews are being commissioned; each accepted verdict will appear here with its reviewer's credit.

Who checked this

No answers have been accepted yet. Once they are, this card describes the people behind them: native speakers, as group counts, never as individuals.

Counts come from the intake each reviewer answers when they join. A group smaller than 3 people is never shown, not even by name, and a second group is hidden whenever one hidden group could be worked out by subtraction. Groups are shown one question at a time, never crossed.

How firmly the tooling flags it
standard replace 63soft suggestion 20
How much of the top N is flagged
Top 1,000: 0 flagged (0%)
Top 2,000: 2 flagged (0.1%)
Top 5,000: 24 flagged (0.5%)
Top 12,000: 83 flagged (0.7%)
Download the full list (CSV) →Flags: LanguageTool Ukrainian, LGPL
The join reconciles
Ukrainian Frequency / Audio and paradigms

One lemma is many words, and now you can hear it

Every thread so far has worked on the bare lemma, the dictionary headword. But a learner of a heavily inflected language does not meet headwords in text; they meet the forms. рік (year) shows up as року, роки, років, рокам. A verb has dozens of shapes. Thread four attaches those forms, and the sound, across the whole top-12,000 list.

The source is open and machine-readable: the Wiktionary declension and conjugation tables (via the kaikki.org extraction), plus the IPA and the native-speaker pronunciation audio that live in the same entries on Wikimedia Commons. Forms are kept verbatim, stress marks and all; the audio is linked, never re-hosted; and coverage is graded honestly rather than assumed.

Wiktionary + Wikimedia, CC BY-SA

The inflection tax, counted in forms

14.3×122,021 forms / 8,553 lemmas

The 8,553 lemmas in the top 12,000 that inflect expand to 122,021 distinct wordforms, an average of 14.3 each. Thread one measured the inflection tax as slow reading coverage; this is the same tax counted in the surface forms you actually have to recognize. A noun runs about ten forms, a verb closer to thirty.

Forms per lemma, by kind of word
verbs26.7 / 1,955 lem
pronouns24.8 / 35 lem
adjectives14.4 / 1,763 lem
other10 / 1 lem
nouns9.2 / 4,727 lem
numerals5.8 / 26 lem
adverbs2.2 / 46 lem

See a paradigm

A few high-frequency words, declined or conjugated, with IPA and open native audio. Pick a word; the forms are Wiktionary's own.

бути[ˈbute]
infinitiveбу́ти
1sg presentє
2sg presentє
3sg presentє
3pl presentє
past mбув
past fбула́
imperative 2sgбудь
Audio: Wikimedia Commons contributors, CC BY-SA

This is what turns the thread-one Anki seed from a bare headword list into a deck that teaches each word with its forms and its sound.

How much we could attach, of the top 12,000
carry a full paradigm71.3% (8,553)
carry an IPA transcription77.1% (9,256)
carry open native-speaker audio63.2% (7,589)
Lemmas + IPA + audio (CSV) →Every form (CSV) →Forms, IPA, audio: Wiktionary via kaikki.org, CC BY-SA
The join reconciles
Ukrainian Frequency / Word stress

Where the stress falls, for every word on the list

Ukrainian stress is free and mobile: it can land on any syllable, it moves inside a paradigm, and nothing in the spelling says where. Dictionaries mark it and running text does not, so a learner meets 12,000 lemmas with no way to say them. This thread attaches a stressed form to every row of the list. It began with an email from Andrij Rudnitsky, who pointed at the open lang-uk stress dictionary as the source.

That dictionary is the baseline, read directly from its trie and filtered by the list's own part of speech, so a bare lemma's reading is never a tagger's guess. Where it gives two readings, en.wiktionary and uk.wiktionary tell a free variant from a homograph from a minor variant; where three sources disagree, two of three decide; the few reference tiebreaks and every manual decision are ledgered in the open. No source wins by default: the Wiktionary data and the dictionary were each caught wrong.

lang-uk (MIT) + Wiktionary, CC BY-SA

One stress for most words, an honest label for the rest

97.5%9,673 / 9,920

9,673 of the 9,920 polysyllabic common words carry one confident stress, 97.5 percent. Another 226 are labeled rather than guessed: a free variant where both stresses are accepted, a homograph where the stress is the difference between two words, a dictionary doublet no open source settles. 21 are still missing. The 1,348 proper nouns are out of scope, as most learner lists leave names out: the stress the pipeline found stays on the row, labeled, and counts toward nothing.

The four readings of a row
one confident stress9,673 (97.5%)
labeled: variant, homograph, doublet226 (2.3%)
monosyllable, no mark needed732
missing21 (0.2%)
proper noun, out of scope1,348

The stress is the word

For these the stress is not pronunciation, it is meaning. Pick one. Where the two words are spelled differently somewhere in their paradigms, the primary is the reading whose forms occur more in UberText 2.0 and the count is shown; where they are spelled alike in every form, the primary is the first en.wiktionary entry and the row says it is unverified.

прохо́дитиprimary

to go, to pass, to walk

проходи́ти

to walk (:a certain distance)

#571 VERBcorpus countUberText 2.0: прохо́дити 27,584 vs проходи́ти 19 (forms that differ in spelling)
Both are right

A free variant: both stresses are accepted and the row says so instead of choosing for you.

та́кож / тако́ж #28зазна́чити / зазначи́ти #121у́ряд / уря́д #147зокре́ма / зокрема́ #172розпові́сти / розповісти́ #318че́рга / черга́ #551за́вжди / завжди́ #579до́говір / догові́р #670
Where it thins, by thousand-rank band
1+99.9% / 1
1001+100%
2001+100%
3001+99.8% / 2
4001+99.8% / 2
5001+99.9% / 1
6001+99.9% / 1
7001+99.8% / 2
8001+99.8% / 2
9001+99.7% / 3
10001+99.5% / 4
11001+99.6% / 3
Where each row came from
lang-uk dictionary 9,486 (79.1%)Wiktionary 294 (2.5%)voted or tiebroken 37 (0.3%)a rule 782 (6.5%)uk.wikipedia 1 (0%)UberText count 31 (0.3%)unresolved 21 (0.2%)out of scope 1,348 (11.2%)
What the work sent back upstream

Two data errors in the ukrainian-word-stress dictionary: його stored as йо́го (rank 40; the standard is його́) and підозрюватися as підозрюва́тися (підо́зрюватися). Hyphenated compounds there list the main and the secondary stress as alternative readings.

11 headwords in this site's own paradigms file inherit a wrong stress from en.wiktionary (ви́на for вина́, наре́чений for нарече́ний). They are published beside the file as corrections rather than patched into a verbatim mirror, and queued for Wiktionary.

Is it right? The audit, fixed before any answer

"Confident" above means the open sources agreed; it does not yet mean a native speaker did. On 2026-10-02 a stratified random sample of 348 rows was drawn once with a published seed: 200 of the confident rows, 60 of the labeled variants and doublets, and every one of the 88 homographs. Each row goes to a paid native speaker with four answers: correct, wrong (with the form as they say it), both in use, not sure.

The rule was fixed first: the confident tier counts as validated once 150 rows are judged and the lower bound of the 95 percent interval of rows judged not wrong is at least 95 percent. A wrong verdict is a flag for the ledger, never an automatic correction.

  • one confident stress: 200 of 9674
  • labeled variant or doublet: 60 of 137
  • homograph, primary from the corpus count: 31 of 31, all of them
  • homograph, primary unverified: 57 of 57, all of them

No answers yet: 0 of 348 reviewed. The sample and the rule are the commitment.

Stress column (CSV) →Anki seed (TSV) →Paradigm disagreements (CSV) →Open doublets (CSV) →ukrainian-word-stress, lang-uk, MIT
The column reconciles
Part 4Open data
Roadmap

The series roadmap

All five threads are released. Each names the open source it is built on, and every figure on this page re-derives from a committed release. No thread claims a result it cannot show.

01

The lemma frequency list

Released

The top 12000 lemmas of modern Ukrainian, ranked by corpus frequency, each with its part of speech, per-mille frequency, cumulative running-text coverage, and a thousand-rank frequency band. Published as CSV and JSON, plus an Anki-importable deck seed.

Study the words that actually pay off first, in the right order, as lemmas rather than scattered wordforms. See exactly how much reading coverage a given amount of vocabulary buys.

For: learners, teachers, tool builders, researcherslang-ukDownload the release →
02

CEFR alignment

Released

A validated per-lemma CEFR overlay: the only corpus-validated CEFR profile for Ukrainian (Synchak et al. 2025 / PULS) joined onto the frequency list, A1 to C1, for 6403 of the top 12000 lemmas, redistributed with the authors' permission as a dated snapshot. The published paper's distribution stays cited beside it, the open course overlay is kept as a measured cross-check, and the finding holds: the validated level tracks frequency only weakly, so a frequency rank is not a proficiency level.

Study the high-frequency words in validated CEFR order, see which half of the list has a validated level and how far it reaches, and see how weakly proficiency level and raw frequency actually line up.

03

The derussification pass

Released

Flag non-idiomatic forms on the list and pair each with the native alternative the open Ukrainian style tooling recommends (LanguageTool's replacement tables, brown-uk, backed by the VESUM morphology). The core is derussification (russianisms, surzhyk, the active-participle calque); the honest scope is broader, and it is fenced as an unvalidated, prescriptive signal, not a settled verdict.

Learn the idiomatic word, not the calqued one that older materials quietly teach, and see how often the calque is actually the more common form in real text.

04

Audio and paradigms

Released

Attach a pronunciation and the inflection paradigm to the top 12000 lemmas, from the open Wiktionary declension and conjugation tables (kaikki.org) and open Wikimedia pronunciation audio, so a lemma is taught as its forms rather than a bare headword. Coverage is graded honestly (it thins with rank), and the inflection multiplier is measured.

Hear the word, see how it changes across the seven cases and the aspect pairs (the part inflection makes hard), and see how many wordforms the words you are learning actually expand to.

05

The vocabulary-size test

Released

A self-scoring yes or no vocabulary-size test drawn from this list: 60 real lemmas and 60 constructed pseudowords, stratified across the 12 frequency bands, scored with the standard false-alarm correction and mapped onto the coverage curve. No Ukrainian equivalent exists off the shelf.

Measure your vocabulary against a real proficiency proxy instead of guessing, and see roughly how much running text that vocabulary actually unlocks.

07

Word stress

Released

A stressed form for every one of the 12000 lemmas: the open lang-uk stress dictionary read by the list's own part of speech, en.wiktionary and uk.wiktionary to tell free variants, homographs and minor variants apart, a two-of-three vote where the sources disagree, and a ledger of every manual decision. Where there is one answer it is given; where there are more, the row says so instead of guessing.

Say the words you are learning right from the first day, see where the stress is the difference between two words, and trust a label that says when there are two answers.

06

The text profiler

Released

Paste a Ukrainian text and see how much of it a learner can read: running-text coverage against a validated CEFR level or against what a class has actually covered (a pasted list, an uploaded CSV, the Borodin minimums, stacked and named), with the gloss list of what is left. Three counts are reported together, strict as the headline and the aspect-linked and family-linked readings as a range beneath it, with the specific words where the family assumption breaks flagged. A course reading list comes back as a sequence plan (cumulative new-word load, recycled words, orphans, a suggested order that respects pins). Validated against 29 level-marked course texts, and the result is published as it came out. Ships in Ukrainian and English editions; nothing pasted leaves the browser.

Check a text against your own class before you assign it, get the gloss list in one click, order a semester's readings so each one costs the fewest new words, and see exactly where the profiler is and is not to be trusted.

Download

The open-data release

Everything on this page re-derives from these files. They are versioned and hashed. The list is CC-BY: use it, fork it, build on it.

The lemmas.anki.tsv file imports straight into Anki as a frequency deck seed.

Previous list: v0.1.0

v0.2.0 is v0.1.0 with a reviewed cleanup ledger applied to the same source: of the v0.1.0 rows, 18 were dropped, 68 merged into the lemma they belong to, and 86 entered from below the cut, so 11182 kept rows changed rank. Every table on this page now joins on v0.2.0 ranks. v0.1.0 stays frozen and archived; anything keyed on its ranks migrates through the crosswalk shipped with this release.

Browse the previous release →
Versionv0.2.0
LicenseCC-BY-4.0
Archived copy (DOI)10.5281/zenodo.22823134
Python packagepip install ukvocab

pip install ukvocab ships this list, the validated CEFR overlay, the two minimums, the crosswalk and the B1 tables as Parquet, with lookup, batch levels and coverage; every value carries its source and snapshot.

Lemmatizer APIPOST /api/lemmatize

POST /api/lemmatize returns the VESUM headword, part of speech and tags per token in this list's convention, rate-limited, nothing retained; the contract and the round-trip check against this list are published.

GET /api/uk/lookup/<word> answers any form of a word from memory: stress, validated level, rank, course gloss, open audio and the dmklinger/ukrainian definitions (CC BY-SA 3.0), as JSON or as plain text for a watch.

Cite
Lawrence, J. (2026). Ukrainian Frequency: a lemma-based, coverage-graded open frequency list (v0.2.0). jakelawrence.xyz/research/ukrainian-frequency. Derived from UberText 2.0 (Chaplynskyi, 2023).
Verify

Verify it yourself

These checks re-run in your browser against the shipped numbers. If any fails, the release is inconsistent and the page says so.

Reviewed from outside

A weekly review reads the deployed pages, downloads and APIs against this repository: every published hash served as promised, the lookup and lemmatizer answering as the committed round-trip says, the Zenodo, PyPI and Hugging Face registries in step, and the clocks on every dated figure. Its verdict lands here, with the open items by name.

needs attentionLast reviewed 148 checks, 1 openRead the ledger (JSON)
  • riskupstream:puls · moved from 4a54aa6551c88af72e0ddc937ce8ba205003d487a05770dcbf644492a4397711 to cb78ebdca32dd311df6d32ebb66af8280cb57af588c9edd70ba6e7c8f6d008bb · Next: the quarterly re-read (v4): python3 scripts/ukrainian-frequency/scrape-puls-cefr.py, with the authors' notice checked first
Methods

Methods and provenance

The frequency signal is the UberText 2.0 lemma frequency dictionary (lang-uk). This release re-publishes derived aggregate counts, which are facts, not the source corpus text. Rows are filtered to Ukrainian-Cyrillic-alphabetic lemmas carrying a linguistic Universal Dependencies part of speech; punctuation, symbols, digit tokens, foreign or unclassified tokens, and single-character proper nouns are dropped.

Coverage is recomputed here from raw occurrence counts, not read from the source file's own frequency columns, whose normalization is undocumented. Frequency bands are transparent thousand-rank bins and are NOT CEFR levels; validated CEFR alignment is thread two, which profiles the one validated resource rather than inventing levels. The corpus is news and reference heavy, so war-era and civic vocabulary rank prominently. That is disclosed, not smoothed away.

Sources
Universal Dependencies (UD) part-of-speech scheme · Universal Dependencies · 2026-07-14
Corpus-Based Vocabulary Profiling for Ukrainian: From Lexical Analysis to CEFR · Synchak, Starko, Burak and Svystun, eLex 2025 · 2026-07-14
The Checklist Method for Testing Vocabulary Size (X_Lex / Y_Lex) · Meara, P. and Buffery, C. · 2026-07-14
Vocabulary Size and Use: Lexical Richness in L2 Written Production (the Lexical Frequency Profile) · Laufer, B. and Nation, P., Applied Linguistics 16(3) · 2026-09-13
How Large a Vocabulary Is Needed for Reading and Listening? · Nation, I. S. P., Canadian Modern Language Review 63(1) · 2026-09-13
dict_uk (Ukrainian hunspell dictionary, via LibreOffice dictionaries) · Andriy Rysin and contributors, brown-uk / dict_uk · 2026-07-14
LanguageTool Ukrainian replacement tables (replace.txt, replace_soft.txt) · brown-uk (Andriy Rysin and contributors), via LanguageTool · 2026-07-22
VESUM: a large morphological dictionary of Ukrainian · brown-uk (Andriy Rysin, Vasyl Starko and contributors) · 2026-07-22
Wiktionary Ukrainian, machine-readable extraction (wiktextract / kaikki.org) · Wiktionary contributors; extraction by Tatu Ylonen (kaikki.org) · 2026-07-22
ukrainian-word-stress 2.1.0 (the lang-uk Ukrainian stress dictionary) · lang-uk (Oleksiy Syvokon; maintained by Dmytro Chaplynskyi) · 2026-10-01
Ukrainian Wikipedia lead sentences · Wikimedia Foundation · 2026-10-01
Wikimedia Commons Ukrainian pronunciation audio · Wikimedia Commons contributors · 2026-07-22
1000 and 1 Words: Lexical Minimum in Ukrainian (A1) · Borodin, K. and Turkevych, O., Slavic Language Education 3 (LANGUAGE-LAB) · 2026-07-27
1000 and 1 Words: Lexical Minimum in Ukrainian (A2) · Borodin, K. and Lazarenko, O., Europa-Universitat Viadrina Frankfurt (Oder) · 2026-07-28
UberText 2.0 subcorpora: fiction and news, read separately · lang-uk (Chaplynskyi, D.) · 2026-07-28
Lexical Minimums for Levels A1 and A2 in Learning Ukrainian: Methodology and Practical Challenges · Borodin, K. and Lazarenko, O., in New Directions in Slavic Studies (T. Portnova, I. A. Gonzalez-Hidalgo, M. P. Pena-Molina, eds.), Editorial Universidad de Granada, ISBN 978-84-338-7814-4, pp. 41-52 · 2026-07-28
State Language Standard: Ukrainian as a Foreign Language, Levels A1 to C2 (SLSUFL) · Ministry of Education and Science of Ukraine · 2026-07-22
Teacher's Guide: Using the CEFR and Ukrainian-English Language Portfolios · Prokopchuk, N. and Huzar, O., Prairie Centre for the Study of Ukrainian Heritage (PCUH), University of Saskatchewan · 2026-07-27
KELLY project: keywords for language learning (CEFR-graded lists) · Sprakbanken, University of Gothenburg · 2026-07-22
CEFRLex: CEFR-graded receptive lexical resources · CENTAL, UCLouvain · 2026-07-22
Related

Part of a standing effort to close the digital-tooling gap for the Ukrainian language.

Need something like this built?

I build the AI tools and automations a team adopts, and the full-stack apps and data pipelines under them, and ship them to production. Tell me the problem in a sentence and I'll give you an honest read on fit within a day.

Work with me →