diff --git a/src/rules/disallowed_words/russian.txt b/src/rules/disallowed_words/russian.txt new file mode 100644 index 00000000..0b47c4f6 --- /dev/null +++ b/src/rules/disallowed_words/russian.txt @@ -0,0 +1,258 @@ +хуй +хуина +хуйло +опизденевшие +пизда +др +доп +ул +им +ст +св +чел +шт +пр +см +мн +пл +мл +уд +ср +др +рус +ед +чл +корр +еп +пп +оз +кг +гв +рр +тд +км +кн +мм +юр +ур +дв +ев +яп +шп +яз +цз +тт +сб +пн +вт +ср +чт +пт +вск +эп +зп +сц +уу +ув +оо +би +мя +ал +сс +уг +ол +сл +узб +эк +кр +хр +кс +рч +вн +ов +аг +уч +хх +дд +тп +мч +вр +ьо +ин +оф +ус +тж +жд +дл +мд +фр +эм +ит +оп +лл +ак +эл +рп +вм +3-бет +аббр +аббрев +абл +абс +абх +авар +Авв +авг +Авд +австр +австрал +авт +Агг +агр +адж +адм +адыг +азерб +азиат +акад +академ +акк +акц +алб +алг +алгебр +алж +алт +алф +альм +альп +ам +Ам +амер +анат +англ +ангол +аннот +антич +ао +ап +Апок +апп +апр +ар +араб +арам +аргент +арифм +арм +арт +артез +арх +археол +архиеп +архим +архип +архит +ас +асб +асс +ассир +ассист +астр +астрон +ат +ата +ати +атм +афг +афр +ацет +б-ка +б-н +б-ца +б-чка +бат-н +башк +бел +белорус +бзн +библ +биогр +биол +бирм +Бл +блгв +блгвв +блж +блр +больн +бр +браз +брет +брит +бц +быв +Быт +бюдж +бюлл +вл +Вл +вс +вт +вып +г-жа +г-н +Гбайт +ГВт +гг +Гкал +гл +глаг +гм +гос +гр +грн +дал +дБ +деепр +дееприч +Дж +диак +долл +дптр +др +зак +зам +Зв +изд-во +кал +кат +кв +кВА +кВт +кВтч +ккал +корп +корр +Мб +Мбит +МВт +мг +МГц +межд +междунар +мес +мест +нареч +Бк +Вт +га +гг +Гг +Ггц +кг +км +кт +мкс +мм +сек diff --git a/src/rules/russian.toml b/src/rules/russian.toml new file mode 100644 index 00000000..77b5a34a --- /dev/null +++ b/src/rules/russian.toml @@ -0,0 +1,78 @@ +min_trimmed_length = 3 + +# For count = 2 we have sentences like: "Это он", "Будет беда" +# and a lot of trash abbreviations like "до н.", "и доп." +min_word_count = 3 + +max_word_count = 14 + +# In Russian, words can consist of one letter, so no restrictions +min_characters = 0 + +may_end_with_colon = false +quote_start_with_letter = true +needs_punctuation_end = false +needs_letter_start = true + +# Apparently, in some places the sentences are cut incorrectly, +# which is why we get some part of the sentence, and not its entirety. +# This is required to fix sentences like: +# с Иваном Галамяном. +needs_uppercase_start = true + +allowed_symbols_regex = "[А-Яа-яёЁ\\s:,.\\-‑?;!—­‐–'·=’―−”‘]" + +disallowed_symbols = [ + # Here invisible chars: use vim to work with them + '­', '​', '', '་' +] + +broken_whitespace = [" ", " ,", " .", " ?", " !", " ;", " \""] + +abbreviation_patterns = [ + # Abbreviations: + + # 1. М.Н.С. + "[А-Я]+\\.*[А-Я]", + + # 2. А. Пушкин + "[А-Я]\\.", + + # 3. Дж. + "[А-Я][а-я]\\.", + + # 4. СССР + "[А-Я]{2,}", + + # 5. г. Пушкина. + "\\s[а-я]\\.", + + # 6. — — + "— —", + + # 7. сайка фито— и зоопланктоном + "[а-я]—\\s[а-я]", + + # 8. Повод —первое упоминание + "[а-я]\\s—[а-я]", + + # 9. с разрывом связей С—С и образованием + "[А-Я]—[А-Я]", + + # 10. Words that are similar to ordinary, but cannot be at the end of a sentence, + # which means they are abbreviations + "\\s(ор|ок|ом|ум|те|ил)\\.", + + # 11. по учению св.отцов + "[а-я]\\.[а-я]", + + # 12. др.-евр. чл.-корр. + "[а-я]{1,3}\\.-[а-я]{1,4}\\.", + + # 13. ул.Тюменская + "[А-Яа-я]\\.[А-Яа-я]", + + # 14. Ставропольский кр., + "\\.," +] +