feat(ru): drop obscene lexicon (mat) from the Russian noun list #7

Merged
developer merged 1 commits from feature/drop-obscene-mat into master 2026-06-30 05:08:48 +00:00
Owner

Что

Убирает из русского словаря (Scrabble + Эрудит) 11 матерных существительных на корнях хуй / еб·ёб / пизд / бляд:

ахуй  блядь  выблядок  ебальник  еблан  охуение
пизда  пиздец  пиздобол  хуй  хуйня

Почему так

Это морфологически полноценные нарицательные существительные в им. п. ед. ч. — пайплайн впускал их как любое другое слово (OpenCorpora/libmorph дают «существительное»-чтение). Граммемы «обсценное» в наборе помет OpenCorpora нет, поэтому чисто алгоритмического сигнала не существует. Кандидаты найдены алгоритмически — сканом по порождающим корням мата, — затем выверены вручную (отсеяны ложняки: дрочёна-блюдо, моча, очко, сука, хула, талмудист, скипидар, …).

Как

Слова вето́ируются как политика через manual_reject.txt, который уже вычитается последним в ru_stage2.build()логика пайплайна не меняется. scrabble.txt — детерминированный результат этого вычитания; erudit.txt — его Ё→Е свёртка, регенерирована tools/fold_yo.py.

Грубое-но-не-мат муд* (мудак, мудила) и легитимные омографы (очко, сука, моча, дрочёна) намеренно оставлены.

Проверка

  • scrabble.txt 83027 → 83016 (−11), erudit.txt 82985 → 82974 (−11)
  • make dawg — все три DAWG собираются непустыми (ru_scrabble 52792 узла, ru_erudit 52543)
  • комментарии в manual_reject.txt безопасно отбрасываются фильтром cyr_ok
## Что Убирает из русского словаря (Scrabble + Эрудит) **11 матерных существительных** на корнях **хуй / еб·ёб / пизд / бляд**: ``` ахуй блядь выблядок ебальник еблан охуение пизда пиздец пиздобол хуй хуйня ``` ## Почему так Это морфологически полноценные нарицательные существительные в им. п. ед. ч. — пайплайн впускал их как любое другое слово (OpenCorpora/libmorph дают «существительное»-чтение). Граммемы «обсценное» в наборе помет OpenCorpora нет, поэтому чисто алгоритмического сигнала не существует. Кандидаты найдены алгоритмически — сканом по порождающим корням мата, — затем выверены вручную (отсеяны ложняки: `дрочёна`-блюдо, `моча`, `очко`, `сука`, `хула`, `талмудист`, `скипидар`, …). ## Как Слова вето́ируются как **политика** через `manual_reject.txt`, который уже вычитается последним в `ru_stage2.build()` — **логика пайплайна не меняется**. `scrabble.txt` — детерминированный результат этого вычитания; `erudit.txt` — его Ё→Е свёртка, регенерирована `tools/fold_yo.py`. Грубое-но-не-мат `муд*` (мудак, мудила) и легитимные омографы (очко, сука, моча, дрочёна) **намеренно оставлены**. ## Проверка - `scrabble.txt` 83027 → **83016** (−11), `erudit.txt` 82985 → **82974** (−11) - `make dawg` — все три DAWG собираются непустыми (ru_scrabble 52792 узла, ru_erudit 52543) - комментарии в `manual_reject.txt` безопасно отбрасываются фильтром `cyr_ok`
developer added 1 commit 2026-06-30 05:04:54 +00:00
Remove the 11 obscene nouns built on the хуй/еб·ёб/пизд/бляд roots
(ахуй, блядь, выблядок, ебальник, еблан, охуение, пизда, пиздец,
пиздобол, хуй, хуйня) from the Russian Scrabble/Эрудит dictionary.

These are morphologically valid common nouns, so the pipeline admitted
them like any other word — OpenCorpora's tagset exposes no obscenity
grammeme to filter on. They are vetoed as policy via manual_reject.txt,
which is subtracted last in ru_stage2.build(), so no pipeline logic
changes: scrabble.txt is the deterministic result of that subtraction
and erudit.txt is its Ё→Е fold, regenerated with tools/fold_yo.py.

The coarser-but-not-mat муд* (мудак, мудила) and legitimate homographs
(очко, сука, моча, дрочёна) are deliberately kept.

scrabble.txt 83027 -> 83016, erudit.txt 82985 -> 82974.
owner approved these changes 2026-06-30 05:06:22 +00:00
developer merged commit 729914dae7 into master 2026-06-30 05:08:48 +00:00
developer deleted branch feature/drop-obscene-mat 2026-06-30 05:08:48 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-dictionary#7