From 206adeea562112af2f661edc8c8b37eada392452 Mon Sep 17 00:00:00 2001 From: Leonid Fedotov <3584432+iLeonidze@users.noreply.github.com> Date: Sun, 5 Jan 2020 14:12:14 +0300 Subject: [PATCH 1/4] Create russian.toml --- src/rules/russian.toml | 103 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/rules/russian.toml diff --git a/src/rules/russian.toml b/src/rules/russian.toml new file mode 100644 index 00000000..65bfd268 --- /dev/null +++ b/src/rules/russian.toml @@ -0,0 +1,103 @@ +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 + +# The following are symbols that are either absent in the Russian language +# or participating in language constructs that will be difficult or impossible to voice, +# as well as constructions causing problems in sentences +# (for example, opening quotes without closing) +disallowed_symbols = [ + '<', '>', '+', '*', '\', '#', '@', '^', '[', ']', '(', ')', '/', + 'é', 'è', 'à', 'ç', 'Å', '薛', '⋅', '·', 'ѿ', '=', '|', '≡', '→', + '×', 'Ա', 'բ', 'դ', 'ի', 'ս', 'յ', 'շ', 'ո', '•', 'थ्', '©', '¸', + '天', '不', '言', ',', '以', '行', '與', '事', '示', '之', '而', + '已', '矣', '《', '大', '学', '集', '注', '》', '多', '识', '录', + '「', '鴃', '」', '鳩', '鳧', '鶯', 'ا', 'ل', 'ر', 'د', 'ن', + 'เ', 'วฺ', 'ส', 'ลฺ', 'ยุ', 'ทิ', 'โ', 'ร', 'ชฺ', 'ท', 'ยุ', 'ตฺ', 'สฺ', + 'ย', 'พ', 'ทฺ', 'นิ', 'इ', '_', 'Ѳ', '‹', '›', '`', + 'і', 'ў', '~', '®', '%', '⟨', '⟩', '¬', '&', '≤', + 'α', 'β', 'Γ', 'γ', 'Δ', 'δ', 'ε', 'ζ', 'η', 'Θ', 'θ', 'ι', 'Ә', + 'Λ', 'λ', 'μ', 'ν', 'Ξ', 'ξ', 'ρ', 'Σ', 'σ', 'ς', 'τ', + 'υ', 'Φ', 'φ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω', 'a', 'A', 'b', 'B', 'c', + 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', + 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', + 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', + 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', + 'җ', 'ә', 'ү', 'ː', 'қ', 'ћ', 'Ä', 'Ҋ', 'ј', 'Ι', 'Χ', + + # There is a lot of broken sentences like: + # У меня щемило сердце: «Что мы сделаем? + # Такой он был веселый, бодрый, нас воодушевлял: „Вы знаете, не бойтесь! + # История и культура»". + # Пушкин, прочитав поэму, сказал «— Далеко мальчик пойдет». + # После увольнения он пытается создать новую жизнь...Жизнь, в свою очередь, строит ему множество «баррикад" + # Пушкин, Набоков… мало кого еще можно поставить в этот ряд? + # Let's remove them all, we have so many good sentences without problems + '«', '»', '"', '„', '“', '”', '‘', '…', + + '{', '}', '(', ')', + + # Sentences with accented chars, it is not possible to voice and + # should be removed, example: + # е́р + 'ѣ', 'Ѣ', 'І', 'ң', 'ă', 'ĕ', ' ́', '́', + + # Sentences with invisible chars + '­', '​', '', '་', +] + +broken_whitespace = [" ", " ,", " .", " ?", " !", " ;", " \""] + +# Abbreviations: +# 1. М.Н.С. +# 2. А. Пушкин +# 3. Дж. +# 4. СССР +# 5. г. Пушкина. +# 6. — — +# 7. сайка фито— и зоопланктоном +# 8. Повод —первое упоминание +# 9. с разрывом связей С—С и образованием +# 10. ор. ок. +# 11. по учению св.отцов +# 12. др.-евр. чл.-корр. +# 13. ул.Тюменская +# 14. Ставропольский кр., + +# It is not possible to disallow ALL bad symbols, let's use regex for this +# 15. Remove any other bad symbols +abbreviation_patterns = [ + "[А-Я]+\\.*[А-Я]", + "[А-Я]\\.", + "[А-Я][а-я]\\.", + "[А-Я]{2,}", + "\\s[а-я]\\.", + "— —", + "[а-я]—\\s[а-я]", + "[а-я]\\s—[а-я]", + "[А-Я]—[А-Я]", + "\\s(ор|ок|ом|ум|те|ил)\\.", + "[а-я]\\.[а-я]", + "[а-я]{1,3}\\.-[а-я]{1,4}\\.", + "[А-Яа-я]\\.[А-Яа-я]", + "\\.,", + "[^\\dА-Яа-яёЁ\\s:,.-‑?;!—­‐–'·=’―−”‘]" +] From a9b4fb1a12e1b45229dee61b776bca61118dc9f8 Mon Sep 17 00:00:00 2001 From: Leonid Fedotov <3584432+iLeonidze@users.noreply.github.com> Date: Sun, 5 Jan 2020 14:40:46 +0300 Subject: [PATCH 2/4] Add files via upload --- src/rules/russian.toml | 59 ++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/src/rules/russian.toml b/src/rules/russian.toml index 65bfd268..52fe36ed 100644 --- a/src/rules/russian.toml +++ b/src/rules/russian.toml @@ -52,52 +52,67 @@ disallowed_symbols = [ # Пушкин, Набоков… мало кого еще можно поставить в этот ряд? # Let's remove them all, we have so many good sentences without problems '«', '»', '"', '„', '“', '”', '‘', '…', - '{', '}', '(', ')', - + # Sentences with accented chars, it is not possible to voice and # should be removed, example: # е́р 'ѣ', 'Ѣ', 'І', 'ң', 'ă', 'ĕ', ' ́', '́', - # Sentences with invisible chars - '­', '​', '', '་', + # Sentences with invisible chars (use vim to work with them) + '­', '​', '', '་' ] broken_whitespace = [" ", " ,", " .", " ?", " !", " ;", " \""] -# Abbreviations: -# 1. М.Н.С. -# 2. А. Пушкин -# 3. Дж. -# 4. СССР -# 5. г. Пушкина. -# 6. — — -# 7. сайка фито— и зоопланктоном -# 8. Повод —первое упоминание -# 9. с разрывом связей С—С и образованием -# 10. ор. ок. -# 11. по учению св.отцов -# 12. др.-евр. чл.-корр. -# 13. ул.Тюменская -# 14. Ставропольский кр., - -# It is not possible to disallow ALL bad symbols, let's use regex for this -# 15. Remove any other bad symbols 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. Ставропольский кр., "\\.,", + + # It is not possible to disallow ALL bad symbols, let's use regex for this + # 15. Remove any other bad symbols "[^\\dА-Яа-яёЁ\\s:,.-‑?;!—­‐–'·=’―−”‘]" ] + From 0005a319133c77aee160e59162fd6e5e1c73d376 Mon Sep 17 00:00:00 2001 From: Leonid Fedotov <3584432+iLeonidze@users.noreply.github.com> Date: Sun, 5 Jan 2020 14:42:17 +0300 Subject: [PATCH 3/4] Add files via upload --- src/rules/disallowed_words/russian.txt | 258 +++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 src/rules/disallowed_words/russian.txt 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-бет +аббр +аббрев +абл +абс +абх +авар +Авв +авг +Авд +австр +австрал +авт +Агг +агр +адж +адм +адыг +азерб +азиат +акад +академ +акк +акц +алб +алг +алгебр +алж +алт +алф +альм +альп +ам +Ам +амер +анат +англ +ангол +аннот +антич +ао +ап +Апок +апп +апр +ар +араб +арам +аргент +арифм +арм +арт +артез +арх +археол +архиеп +архим +архип +архит +ас +асб +асс +ассир +ассист +астр +астрон +ат +ата +ати +атм +афг +афр +ацет +б-ка +б-н +б-ца +б-чка +бат-н +башк +бел +белорус +бзн +библ +биогр +биол +бирм +Бл +блгв +блгвв +блж +блр +больн +бр +браз +брет +брит +бц +быв +Быт +бюдж +бюлл +вл +Вл +вс +вт +вып +г-жа +г-н +Гбайт +ГВт +гг +Гкал +гл +глаг +гм +гос +гр +грн +дал +дБ +деепр +дееприч +Дж +диак +долл +дптр +др +зак +зам +Зв +изд-во +кал +кат +кв +кВА +кВт +кВтч +ккал +корп +корр +Мб +Мбит +МВт +мг +МГц +межд +междунар +мес +мест +нареч +Бк +Вт +га +гг +Гг +Ггц +кг +км +кт +мкс +мм +сек From d824882e178b22f217a452141f478a0ac05cb171 Mon Sep 17 00:00:00 2001 From: Leonid Fedotov <3584432+iLeonidze@users.noreply.github.com> Date: Tue, 7 Jan 2020 11:13:51 +0400 Subject: [PATCH 4/4] Add files via upload --- src/rules/russian.toml | 48 ++++-------------------------------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/src/rules/russian.toml b/src/rules/russian.toml index 52fe36ed..77b5a34a 100644 --- a/src/rules/russian.toml +++ b/src/rules/russian.toml @@ -20,46 +20,10 @@ needs_letter_start = true # с Иваном Галамяном. needs_uppercase_start = true -# The following are symbols that are either absent in the Russian language -# or participating in language constructs that will be difficult or impossible to voice, -# as well as constructions causing problems in sentences -# (for example, opening quotes without closing) +allowed_symbols_regex = "[А-Яа-яёЁ\\s:,.\\-‑?;!—­‐–'·=’―−”‘]" + disallowed_symbols = [ - '<', '>', '+', '*', '\', '#', '@', '^', '[', ']', '(', ')', '/', - 'é', 'è', 'à', 'ç', 'Å', '薛', '⋅', '·', 'ѿ', '=', '|', '≡', '→', - '×', 'Ա', 'բ', 'դ', 'ի', 'ս', 'յ', 'շ', 'ո', '•', 'थ्', '©', '¸', - '天', '不', '言', ',', '以', '行', '與', '事', '示', '之', '而', - '已', '矣', '《', '大', '学', '集', '注', '》', '多', '识', '录', - '「', '鴃', '」', '鳩', '鳧', '鶯', 'ا', 'ل', 'ر', 'د', 'ن', - 'เ', 'วฺ', 'ส', 'ลฺ', 'ยุ', 'ทิ', 'โ', 'ร', 'ชฺ', 'ท', 'ยุ', 'ตฺ', 'สฺ', - 'ย', 'พ', 'ทฺ', 'นิ', 'इ', '_', 'Ѳ', '‹', '›', '`', - 'і', 'ў', '~', '®', '%', '⟨', '⟩', '¬', '&', '≤', - 'α', 'β', 'Γ', 'γ', 'Δ', 'δ', 'ε', 'ζ', 'η', 'Θ', 'θ', 'ι', 'Ә', - 'Λ', 'λ', 'μ', 'ν', 'Ξ', 'ξ', 'ρ', 'Σ', 'σ', 'ς', 'τ', - 'υ', 'Φ', 'φ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω', 'a', 'A', 'b', 'B', 'c', - 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', - 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', - 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', - 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z', - 'җ', 'ә', 'ү', 'ː', 'қ', 'ћ', 'Ä', 'Ҋ', 'ј', 'Ι', 'Χ', - - # There is a lot of broken sentences like: - # У меня щемило сердце: «Что мы сделаем? - # Такой он был веселый, бодрый, нас воодушевлял: „Вы знаете, не бойтесь! - # История и культура»". - # Пушкин, прочитав поэму, сказал «— Далеко мальчик пойдет». - # После увольнения он пытается создать новую жизнь...Жизнь, в свою очередь, строит ему множество «баррикад" - # Пушкин, Набоков… мало кого еще можно поставить в этот ряд? - # Let's remove them all, we have so many good sentences without problems - '«', '»', '"', '„', '“', '”', '‘', '…', - '{', '}', '(', ')', - - # Sentences with accented chars, it is not possible to voice and - # should be removed, example: - # е́р - 'ѣ', 'Ѣ', 'І', 'ң', 'ă', 'ĕ', ' ́', '́', - - # Sentences with invisible chars (use vim to work with them) + # Here invisible chars: use vim to work with them '­', '​', '', '་' ] @@ -109,10 +73,6 @@ abbreviation_patterns = [ "[А-Яа-я]\\.[А-Яа-я]", # 14. Ставропольский кр., - "\\.,", - - # It is not possible to disallow ALL bad symbols, let's use regex for this - # 15. Remove any other bad symbols - "[^\\dА-Яа-яёЁ\\s:,.-‑?;!—­‐–'·=’―−”‘]" + "\\.," ]