Russian Noun Case Agreement in AI-Generated Text
9 min read · updated August 11, 2026
Мы работаем в новый офисе is the kind of sentence generated Russian produces and a reviewer flags without being able to say exactly what rule it broke. The noun is correctly in the prepositional case. The adjective in front of it is in the nominative. The two must match, and they do not.
The sentence that is wrong
The correct form is Мы работаем в новом офисе — we work in the new office. The preposition в with a location meaning governs the prepositional case, so офис becomes офисе and новый must become новом. What generation produced was a correctly inflected noun with an uninflected modifier.
The pattern is consistent enough to be diagnostic. The noun is usually right, because the preposition sits immediately before the phrase and the noun-plus-ending is a frequent bigram in training data. The adjective is wrong because it is the dictionary form, and the dictionary form is nominative. Generated Russian tends to be right about the head and wrong about what agrees with it, and the further the modifier is from the governing word, the more often it happens.
One phrase through six cases
Here is новый дом (a new house, masculine inanimate) in all six cases, singular and plural, with what governs each.
case singular plural typical trigger ------------ -------------- -------------- ------------------------- nominative новый дом новые дома subject именительный genitive нового дома новых домов possession; у, из, от, без; родительный counts of 5+; negation dative новому дому новым домам indirect object; к, по дательный accusative новый дом новые дома direct object; в, на винительный (motion toward) instrumental новым домом новыми домами means; с, над, под, за творительный prepositional (о) новом доме (о) новых домах в, на (location); о, при предложный
Two extra rules make the accusative harder than the table suggests. For inanimate masculine nouns it is identical to the nominative, which is why Я вижу новый дом looks uninflected and is correct. For animate masculine nouns it is identical to the genitive: Я вижу нового студента, not новый студент. Animacy is a lexical property of the noun, so the same syntactic slot takes different endings depending on whether the referent is alive.
And numerals govern case in their own way, which interacts with the plural categories:
1 дом nominative singular один дом
2–4 дома GENITIVE SINGULAR два дома, три дома, четыре дома
5–20 домов genitive plural пять домов, двадцать домов
21 дом back to nom. singular двадцать один дом
22 дома genitive singular двадцать два дома
25 домов genitive plural двадцать пять домов
11–14 домов genitive plural одиннадцать домов
— despite ending in 1–4Those are the same boundaries CLDR encodes as one, few and many for Russian, which is why a count-plus-noun string is a plural-rules problem and not a generation problem.
What agreement actually requires
An adjective in Russian agrees with its noun in three dimensions at once: gender, number and case. Twelve inflected forms in the singular alone, before the animacy variants. Anything in the noun phrase that is not the noun has to move with it — adjectives, participles, possessive and demonstrative pronouns, and ordinal numerals.
Wrong Right What broke
--------------------------- ------------------------- -----------------
в новый офисе в новом офисе adj. nominative,
noun prepositional
с новый коллегой с новым коллегой adj. nominative,
noun instrumental
для нашего новый клиента для нашего нового клиента one modifier of two
left uninflected
Я вижу новый студента Я вижу нового студента animacy ignored
in the accusative
эта новый компания эта новая компания gender disagreementThe fourth line is the one to notice. When two modifiers precede a noun, generated text frequently inflects the first and leaves the second, which suggests the agreement is being carried a short distance rather than applied to the phrase. Long noun phrases, coordinated nouns and any construction where the governing preposition is separated from its noun are where the rate goes up.
Templates are the main source
Before blaming the model, check whether the sentence was assembled by concatenation. A localised string with a slot in it fixes the case of the slot at authoring time, and whatever is interpolated arrives in the nominative because that is the form things are stored in.
Template Interpolated Result Correct
----------------- --------------- --------------- ------------------
Удалить {name}? Иван Удалить Иван? Удалить Ивана?
(accusative)
Письмо от {name} Анна Письмо от Анна Письмо от Анны
(genitive)
Позвонить {name} Пётр Позвонить Пётр Позвонить Петру
(dative)No amount of prompt engineering fixes this, because the model never sees the sentence: the string came out of a resource file and the name came out of a database. There are two real answers. Either inflect the name, which requires morphological data and is genuinely hard for surnames and foreign names, or rewrite the template so no case is required. The second is what shipped software does: Удалить: Иван Петров with a colon, or Отправитель: Анна, puts the name in a nominative-safe position and the sentence is correct for every value.
The fix
- Classify the failing string first. If it came from a resource file with a placeholder, it is a template problem and no model change will help. If it came from free generation, continue.
- For templates, rewrite to nominative-safe forms — colon constructions, labels, or a phrasing where the variable is the subject. Do this before anything else; it is the largest and cheapest share of the errors.
- For counts, move to ICU plural rules with the Russian
one,few,manyandotherforms rather than asking a model for the right noun ending. The library is right for 11 and 21; a model is right for those by chance. - For genuine generation, put the required case in the prompt explicitly and give one worked example per case. A model asked for “the prepositional form” performs noticeably better than one asked to write a sentence and get the grammar right implicitly.
- Validate automatically. A morphological analyser —
pymorphy,mystemor a UD-trained parser — tags every token with case, gender and number. Extract each noun phrase, compare the tags of the modifiers against the head, and flag any mismatch. This catches the exact error described here without a native speaker in the loop. - Sample and review the flagged output with a native speaker before trusting the validator’s precision. Analysers are ambiguous on homographic forms, and a validator that cries wolf gets ignored.
- Keep the generated Russian in a review queue rather than shipping it to users directly, at least until the flag rate is stable. Agreement errors do not degrade meaning; they degrade trust, and a reader who sees one stops believing the rest of the page.