Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.languagetool.rules.uk.grammar-spelling.xml Maven / Gradle / Ivy
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
<!--
Ukrainian grammar and typo rules for LanguageTool
Copyright (C) 2007 Andriy Rysin
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-->
<!DOCTYPE rules [
<!ENTITY punct_std "[,.:;!?…/()\[\]"«»„“”–—-]|[.!?]{2,3}">
<!ENTITY punct_dash "[–—-]">
<!ENTITY punct_quote "["«»„“”]">
<!ENTITY punct_quote_left "["«„“”]">
]>
<rules lang="uk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd">
<category name="Орфографія" id="SPELLING">
<rulegroup id="SLOVA_Z_NAPIV_RAZOM" name="Слова з напів- пишемо разом">
<rule>
<pattern>
<marker>
<token>напів</token>
<token postag_regexp="yes" postag="(noun|adj|adv).*"></token>
</marker>
</pattern>
<message>Слова з «напів» пишемо разом <suggestion>напів<match no="2"/></suggestion></message>
<short>Правильно писати разом</short>
<example correction="напівгіркий">У цього овоча <marker>напів гіркий</marker> присмак.</example>
<example correction="напіввагон">Зелений <marker>напів вагон</marker></example>
<example>У цього овоча напівгіркий присмак.</example>
</rule>
</rulegroup>
<rule id="piv_with_proper_noun_1992" name="пів- з власними назвами">
<pattern>
<marker>
<token>пів</token>
<!--
<token regexp="yes">Європи|Києва|України|Польщі|Росії|Харкова|Америки|Австралії|Туреччини|Австрії|Відня|Китаю|Кореї|Франції|Іспанії|Італії|Угорщини|Москви|Казані|Швейцарії</token>
-->
<token postag_regexp="yes" postag="noun:.*:v_rod.*:prop.*"></token>
</marker>
</pattern>
<message>«пів» з усіма власними назвами пишемо через дефіс: <suggestion><match no="1"/>-<match no="2"/></suggestion></message>
<short>Правильно писати через дефіс</short>
<example correction="пів-Європи">Снігопади паралізували <marker>пів Європи</marker>.</example>
<example correction="пів-Євро́пи">Снігопади паралізували <marker>пів Євро́пи</marker>.</example>
<example>Снігопади паралізували пів-Європи.</example>
</rule>
<rule id="piv_before_iotized_1992" name="пів' перед йотованими">
<pattern>
<marker>
<token>пів</token>
<token case_sensitive="yes" regexp="yes">[яюєї].*</token>
</marker>
</pattern>
<message>«пів» із загальними назвами на я, ю, є, ї пишемо через апостроф. Ви мали на увазі <suggestion>пів'<match no="2"/></suggestion>?</message>
<short>Правильно «пів'яблука» тощо</short>
<example correction="пів'яблука">З'їсти <marker>пів яблука</marker>.</example>
<example>З'їсти пів'яблука.</example>
<example correction="Пів'їдальні"><marker>Пів їдальні</marker> займали столи.</example>
<example>Пів'їдальні займали столи. </example>
<example correction="пів'юаня">Вартість квитка – <marker>пів юаня</marker>.</example>
<example>Вартість квитка – пів'юаня.</example>
<example>об'їздив пів Європи</example>
</rule>
<rulegroup id="piv_okremo_2019" name="пів пишемо окремо">
<rule>
<pattern>
<token regexp="yes">пів['–-][а-яіїєґ'].*
<exception>пів-на-пів</exception>
<exception postag_regexp="yes" postag="noun(?!.*ua_1992).*"/>
</token>
</pattern>
<message>За правописом 2019 «пів» з іменниками пишемо окремо, якщо це слово не становить єдине поняття</message>
<suggestion><match no="1" regexp_match="([пП]ів)['–-]?([а-яіїєґА-ЯІЇЄҐ].*)" regexp_replace="$1 $2" /></suggestion>
<example correction="пів яблука">з'їв <marker>пів'яблука</marker>.</example>
<example correction="Пів ящика">з'їв <marker>Пів'ящика</marker>.</example>
<example correction="пів України">з'їв <marker>пів-України</marker>.</example>
<example correction="пів Європи">з'їв <marker>пів'Європи</marker>.</example>
<example>пів'ют</example>
<example>півколо</example>
</rule>
<rule>
<pattern>
<token regexp="yes" postag_regexp="yes" postag="noun.*?:nv.*">пів[^'–-][а-яіїєґ'].*
<exception postag_regexp="yes" postag="noun(?!.*ua_1992).*"/>
</token>
</pattern>
<message>За правописом 2019 «пів» з іменниками пишемо окремо, якщо це слово не становить єдине поняття</message>
<suggestion><match no="1" regexp_match="(пів)([а-яіїєґ'].*)" regexp_replace="$1 $2" /></suggestion>
<example correction="пів огірка">з'їв <marker>півогірка</marker>.</example>
<example>півколо</example>
<example>південноафриканський</example>
</rule>
</rulegroup>
<rulegroup id="SLOVA_BEZ_DEFISU" name="Слова без дефісу">
<rule>
<antipattern>
<token regexp="yes">[«"“„]</token>
<token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ].*</token>
<token regexp="yes">[»"”“]</token>
</antipattern>
<pattern>
<!-- to speed up slow rule: these don't happen often: геліо|гідро|космо|метео|мілі|палео|рентгено|стерео|фоно -->
<token regexp="yes">(авіа|авто|агро|анти|аудіо|біо|вело|відео|водо|газо|гео|гіпер|давньо|екзо|еко|екстра|електро|етно|загально|зоо|ізо|квазі|кіно|контр|лже|макро|мета|мікро|моно|мото|мульти|нео|пост|псевдо|радіо|соціо|супер|теле|транс|турбо|ультра|фото)[-–][а-яіїєґ][^-]{2,}
<exception inflected="yes" regexp="yes">аудіо-відео|геліо-кадмієвий|водо-водяний|супер-пупер.*|водо-водо.*</exception>
<!-- will be handled by 2019 spelling rule -->
<exception regexp="yes">контр[-–]адмір.*</exception>
<exception case_sensitive="yes" regexp="yes">.+[–-][А-ЯІЇЄҐ].*</exception>
</token>
</pattern>
<message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
<url>http://www.pravopys.net/#search=25-33</url>
<short>Правильно писати разом</short>
<example correction="мультивалютний"><marker>мульти-валютний</marker> обмін.</example>
<example correction="ультрагіркий">У цього овоча <marker>ультра-гіркий</marker> присмак.</example>
<example correction="Квазісмішний"><marker>Квазі-смішний</marker> жарт.</example>
<!--
<example correction="гідроаеропорт"><marker>гідро-аеропорт</marker>.</example>
-->
<example correction="екопоселення"><marker>еко-поселення</marker></example>
<example>анти-Забужко</example>
<example>мета-2013</example>
<example>контр-адмірал</example>
<example>на «Супер-нова»</example>
<example>не багато-не мало</example>
</rule>
<rule id="habar_2019" name="Хабара і хабаря">
<pattern>
<token inflected="yes" postag_regexp="yes" postag=".*ua_1992.*">хабар
<exception postag_regexp="yes" postag=".*ua_2019.*"/>
</token>
</pattern>
<message>За правописом 2019 хабар відмінюється, як м'яка група</message>
<suggestion><match no="1" postag_regexp="yes" postag="(.*?)ua_1992(.*)" postag_replace="$1ua_2019$2" /></suggestion>
<example correction="хабаря">дав <marker>хабара</marker>.</example>
<example correction="хабарем"><marker>хабаром</marker>.</example>
<example>хабарі</example>
</rule>
<rule>
<pattern>
<token regexp="yes">анти|віце|екс|квазі|лже|супер|ультра</token>
<token regexp="yes" case_sensitive="yes" postag_regexp="yes" postag="noun.*?prop.*">[А-ЯІЇЄҐ][а-яіїєґ']{3,}
<exception>Нова</exception>
</token>
</pattern>
<message>Із власною назвою компонента <match no="1"/> пишеться через дефіс</message>
<suggestion><match no="1"/>-<match no="2"/></suggestion>
<url>http://www.pravopys.net/#search=25-33</url>
<short>Правильно писати разом</short>
<example correction="екс-Югославія"><marker>екс Югославія</marker>.</example>
<example>супер Нова</example>
<!-- handled by rule above -->
<example>екс капітан</example>
</rule>
<rule>
<pattern>
<token regexp="yes">(багато|високо|мало|низько)[-–][а-яіїєґ][^-]{2,}
<exception regexp="yes">багато[–-](пре)?багато|високо[–-](пре)?високо|низько[–-]низ(ен)?ько|мало[–-]помалу|мало[–-]мало</exception>
<!-- TODO: exception for everything tagged -->
<exception regexp="yes">(багато|мало)[–-](хто|кому|кого|ким|що|чого|чому|чим|багато|мало|коли|де)</exception>
<exception case_sensitive="yes" regexp="yes">.+[–-][А-ЯІЇЄҐ].*</exception>
</token>
</pattern>
<message>Пишеться разом <suggestion><match no="1" regexp_match="(.*)[-–](.*)" regexp_replace="$1$2"/></suggestion></message>
<url>http://www.pravopys.net/#search=25-33</url>
<short>Правильно писати разом</short>
<example correction="Багатоповерховий"><marker>Багато-поверховий</marker> будинок.</example>
<example>багато-багато</example>
<example>багато-кому</example>
<example>мало-багато</example>
<example>високо-високо</example>
<example>мало-не</example>
<example>село Мало-Янисоль</example>
<example>Високо-Литовськ</example>
<example>мало-коли</example> <!-- пишеться окремо -->
</rule>
</rulegroup>
<rulegroup id="WORDS_WITH_DASH" name="Слова через дефіс">
<rule>
<antipattern>
<token>що</token>
<token>буде</token>
</antipattern>
<antipattern>
<token>як</token>
<token>є</token>
</antipattern>
<antipattern>
<token>будь</token>
<token>що</token>
<token>,</token>
<token>а</token>
</antipattern>
<pattern>
<token>будь</token>
<token regexp="yes" inflected="yes">де|що|як|хто|чий|коли|який|котрий</token>
</pattern>
<message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
<example correction="будь-де">І в нас і <marker>будь де</marker>.</example>
<example correction="будь-якому">І в нас і в <marker>будь якому</marker> місці.</example>
<example>будь що буде</example>
<!-- <example>будь як усі</example> -->
<example>будь як є</example>
<example>Будь що, а першого вересня</example>
</rule>
<rule>
<pattern>
<token regexp="yes">де|хто|коли|який|котрий</token>
<token>будь</token>
</pattern>
<message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
<example correction="де-будь">І в нас і <marker>де будь</marker>.</example>
<example>Колись ви казали, що будь у вас друге життя...</example>
</rule>
<rule>
<pattern>
<token>все</token>
<token>таки</token>
</pattern>
<message>Це слово пишеться через дефіс: <suggestion>\1-\2</suggestion></message>
<example correction="все-таки">Ви <marker>все таки</marker> вирішили піддатися спокусі.</example>
</rule>
<rule>
<pattern>
<token>пліч</token>
<token>о</token>
<token>пліч</token>
</pattern>
<message>Це слово пишеться через дефіс: <suggestion>\1-\2-\3</suggestion></message>
<example correction="пліч-о-пліч">і <marker>пліч о пліч</marker> билися зі своїми.</example>
</rule>
</rulegroup>
<rulegroup id="ALT_SPELLING" name="Альтернативний правопис">
<rule>
<pattern>
<token postag_regexp="yes" postag=".*:alt.*">
<exception negate_pos="yes" postag_regexp="yes" postag=".*:alt.*|SENT_END|PARA_END" />
</token>
</pattern>
<message>Слово, написане не за чинним правописом</message>
<example correction=""><marker>диференціялу</marker></example>
<example correction=""><marker>ґрантовий</marker></example>
<example>проекту</example>
<example>проєкту</example>
<example correction=""><marker>ґра́нтовий</marker></example>
<!-- TODO: fix core
<example correction=""><marker>ґра́нтовий</marker>.</example>
-->
<example>хоче прорости</example>
<example>проекту</example>
</rule>
</rulegroup>
<rule id="VERB_SUBSTANDARD_FORMS" name="Просторічні форми">
<antipattern>
<token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ]([а-яіїєґ']+|\.)</token>
<token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ][а-яіїєґ']+</token>
</antipattern>
<pattern>
<token postag_regexp="yes" postag="verb.*?:p:1.*?:subst.*">
<exception negate_pos="yes" postag_regexp="yes" postag="verb.*?:p:1.*?:subst.*|SENT_END|PARA_END"/>
</token>
</pattern>
<message>Форми теп. і майб. ч. на -м(ся) є просторічними. Нормативними є форми на -мо: <suggestion><match no="1" regexp_match="^(.*?)(ся)?$" regexp_replace="$1о$2"/></suggestion></message>
<url>http://pravopys.net/#search=80-85</url>
<example correction="підемо">Сьогодні <marker>підем</marker> в кіно.</example>
<example correction="прогуляємося">Підемо <marker>прогуляємся</marker>.</example>
<example correction="Підемо"><marker>Підем</marker> в кіно завтра.</example>
<example correction="Скажемо">…<marker>Скажем</marker> їм.</example>
<example>прозвали Сергієм Підрахуєм</example>
<example>В.Кукольником, П.Подієм, І.Орлом</example>
<example>хотять</example>
</rule>
<rule id="VERB_SUBSTANDARD_FORMS_2" name="Просторічні форми 2">
<pattern>
<token postag_regexp="yes" postag="verb.*?:3.*?:subst.*">
<exception negate_pos="yes" postag_regexp="yes" postag="verb.*?:3.*?:subst.*|SENT_END|PARA_END"/>
</token>
</pattern>
<message>Ця дієслівна форма є просторічною</message>
<suggestion><match no="1" postag_regexp="yes" postag="(verb.*):subst(.*)" postag_replace="$1$2"/></suggestion>
<example correction="хочуть">щось <marker>хотять</marker>.</example>
<example correction="ходить">хтось <marker>ходе</marker>.</example>
</rule>
<rulegroup id="DIGITS_AND_LETTERS" name="Цифри та літери">
<rule>
<antipattern>
<token regexp="yes">[«"„]</token>
<token regexp="yes" spacebefore="no">[а-яіїєґ'-][а-яіїєґ]+[0-9]+[^а-яіїєґ]+</token>
<!--
<token regexp="yes">[»"“]</token>
-->
</antipattern>
<pattern>
<marker>
<token case_sensitive="yes" regexp="yes">[А-ЯІЇЄҐ][а-яіїєґ'-]*[а-яіїєґ]+[0-9]+[^а-яіїєґА-ЯІЇЄҐ–-][^а-яіїєґА-ЯІЇЄҐ]*
<exception regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ-]+[0-9]+</exception>
</token>
</marker>
</pattern>
<message>Відсутній дефіс або пробіл між словом і числом</message>
<suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)" regexp_replace="$1-$2"/></suggestion>
<suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)" regexp_replace="$1 $2"/></suggestion>
<example correction="Мі-17|Мі 17"><marker>Мі17</marker></example>
<example>СО2</example>
<example>абстракція11</example>
<example>"Приват24 для бізнезу"</example>
<example>Ан32-П</example>
</rule>
<rule>
<pattern>
<marker>
<token regexp="yes">[а-яіїєґ][а-яіїєґ'.-]*</token>
<token regexp="yes" spacebefore="no">[0-9][0-9.,:–—-]*%?</token>
</marker>
</pattern>
<message>Відсутній дефіс або пробіл між словом і числом</message>
<suggestion><match no="1"/> <match no="2"/></suggestion>
<suggestion><match no="1"/>-<match no="2"/></suggestion>
<example correction="мої 1|мої-1">А <marker>мої1</marker>.</example>
<example correction="культивувати 170|культивувати-170">почали <marker>культивувати170</marker> років</example>
<example correction="до 1600|до-1600"><marker>до1600</marker> ккал</example>
<example correction="Євро 2012|Євро-2012">на хвилі <marker>Євро2012</marker></example>
<example correction="майже 100%|майже-100%"><marker>майже100%</marker>.</example>
<example correction="тримаємо 12–15|тримаємо-12–15"><marker>тримаємо12–15</marker> хвилин</example>
<example>20 мм2</example>
<!-- CO2 in cyrillic -->
<example>СО2</example>
<example>ми скористалися службою «Інфо300»</example>
<example>АН4774087</example>
<example>ТУ4-2441</example>
<example>в підпункті 14а</example>
</rule>
<rule>
<pattern>
<marker>
<token regexp="yes">[А-ЯІЇЄҐа-яіїєґ'-][а-яіїєґ]+[0-9]+[а-яіїєґ]+
</token>
</marker>
</pattern>
<message>Цифри всередині слова</message>
<suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)([а-яіїєґ'-])" regexp_replace="$1$3"/></suggestion>
<suggestion><match no="1" regexp_match="([А-ЯІЇЄҐа-яіїєґ'-])([0-9]+)([а-яіїєґ'-])" regexp_replace="$1 $2 $3"/></suggestion>
<example correction="напередодні|напе 1 редодні"><marker>напе1редодні</marker></example>
<example>40х40х30</example>
</rule>
<rule>
<antipattern>
<token regexp="yes">[А-ЯІЇЄҐ].*</token>
<token regexp="yes">,</token>
<token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
</antipattern>
<antipattern>
<token regexp="yes">номер.*|буд\.|нумерац.*|[/№]</token>
<token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
</antipattern>
<antipattern>
<token>«</token>
<token regexp="yes">[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*</token>
<token>»</token>
</antipattern>
<antipattern>
<token regexp="yes">[0-9]{1,3}[а-яіїєґ]?</token>
<token regexp="yes">,|і|та</token>
<token regexp="yes">[0-9]{1,3}[а-яіїєґ]</token>
</antipattern>
<pattern>
<marker>
<token regexp="yes">[$+-]?[0-9,-]*[0-9,][а-яіїєґ'][а-яіїєґ'-]*[.²³]?
<exception case_sensitive="yes">1С</exception>
<exception regexp="yes">[0-9]+'|[0-9]+к</exception>
<exception case_sensitive="yes" regexp="yes">[+-]?[0-9,-]*[0-9][оo][СC]</exception> <!-- both lat and cyr o and C, taken care by rule below -->
</token>
</marker>
</pattern>
<message>Відсутній дефіс або пробіл між числом і словом (або пропущена кома після назви вулиці)</message>
<suggestion><match no="1" regexp_match="([0-9,-]*[0-9,])([а-яіїєґ'-])" regexp_replace="$1 $2"/></suggestion>
<suggestion><match no="1" regexp_match="([0-9,-]*[0-9,])([а-яіїєґ'-])" regexp_replace="$1-$2"/></suggestion>
<example correction="21 відсоток|21-відсоток">набрав <marker>21відсоток</marker>.</example>
<example correction="505 грн|505-грн"><marker>505грн</marker>.</example>
<example correction="5,05 грн|5,05-грн"><marker>5,05грн</marker>.</example>
<example correction="1989 го|1989-го">15 лютого <marker>1989го</marker>.</example>
<example correction="0,4-10 кВ|0,4-10-кВ">напруги <marker>0,4-10кВ</marker>.</example>
<!--TODO: for some reason antipattrn tiggers here when no space between тис. and ,
<example correction="6 те|6-те">5-те місце — $10 тис., <marker>6те</marker> місце — $6 тис..</example>
-->
<example>Естафета 4х100 м.</example>
<example>Грушевського, 9а</example>
<example>Грушевського, буд. 9а</example>
<example>14,7оС</example>
<example>та ж вулиця, номер 8ж</example>
<example>автобусом № 441, 41к</example>
<example>Будівля №36а</example>
<example>у справі № 8/348а</example>
<example>1С</example>
<example>23° 27'</example>
<example>програма «4М».</example>
<example>від 27 грудня 1978 року за №44у—279 вирок</example>
</rule>
<!-- we now smart enough to split tokens of year and letter -->
<rule>
<pattern>
<marker>
<token regexp="yes">[$+-]?[0-9,-]*[0-9]</token>
<token regexp="yes" spacebefore="no">[а-яіїєґ][а-яіїєґ'.-]*
<exception postag_regexp="yes" postag="noun.*fname:abbr"/>
</token>
</marker>
</pattern>
<message>Відсутній дефіс або пробіл між числом і словом</message>
<suggestion><match no="1"/> <match no="2"/></suggestion>
<suggestion><match no="1"/>-<match no="2"/></suggestion>
<example correction="1981 р.|1981-р.">З <marker>1981р.</marker></example>
<example>концерти № 1 Л. Бетховена</example>
</rule>
</rulegroup>
<rulegroup id="top_with_num_2019" name="Топ- з числівниками">
<url>https://r2u.org.ua/check/rules/top_with_num_2019</url>
<rule>
<pattern>
<token regexp="yes">топ-[0-9]+</token>
</pattern>
<message>За правописом 2019 компонент топ- із числівниками не поєднуваний</message>
<suggestion><match no="1" regexp_match="(топ)-([0-9]+)" regexp_replace="найкращі $2"/></suggestion>
<suggestion><match no="1" regexp_match="(топ)-([0-9]+)" regexp_replace="найбільші $2"/></suggestion>
<example correction="найкращі 100|найбільші 100"><marker>топ-100</marker>.</example>
</rule>
<rule>
<pattern>
<token postag_regexp="yes" postag="numr:.*:bad" regexp="yes">топ-.*</token>
</pattern>
<message>За правописом 2019 компонент топ- із числівниками не поєднуваний</message>
<suggestion><match no="1" regexp_match="(топ)-(.*)" regexp_replace="найкращі $2"/></suggestion>
<suggestion><match no="1" regexp_match="(топ)-(.*)" regexp_replace="найбільші $2"/></suggestion>
<example correction="найкращі десять|найбільші десять"><marker>топ-десять</marker>.</example>
</rule>
</rulegroup>
<rulegroup id="ABBREVIATIONS_WRONG_DOT" name="Скорочення - зайва крапка">
<!-- TODO: c - секунда, c. - село/сторінка; м — метр, м. — місто; т - тонна, т. - точка -->
<url>http://www.library.ukma.edu.ua/fileadmin/documents/Bibliography/26_DCTU3582-97.pdf</url>
<rule>
<antipattern>
<token>.</token>
<token regexp="yes">&punct_dash;</token>
<token regexp="yes">(авт\.|ред\.)</token>
</antipattern>
<pattern>
<token case_sensitive="yes" regexp="yes">[мк]?г|мкг|грн|год|крб|м?л|[мнсдк]м|мкм|[нм]с|мкс|смт|трлн|хв|млн|млрд</token>
<token negate_pos="yes" postag_regexp="yes" postag="SENT_END|PARA_END">.</token>
</pattern>
<message>Стягнені скорочення та метричні одиниці пишуться без крапки: <suggestion><match no="1"/></suggestion></message>
<example correction="грн">100 <marker>грн.</marker> в банк.</example>
<example correction="год">Двадцять <marker>год.</marker> їзди.</example>
<example correction="грн">40 800 грн при комерційній ціні лише 3 400 <marker>грн.</marker> за одиницю!</example>
<example>Двадцять год.</example>
<example>12,75 грн.</example>
<example>В м. Київ.</example>
<example>Прийшов Л. Коцюба.</example>
<example>штрафували на 30 тисяч злотих (близько 54 000 грн. – Авт.), конфіскували у нього машину.</example>
<example>населення Землі налічує 257 млн. </example>
</rule>
<rule>
<pattern>
<token regexp="yes">млн\.|млрд\.</token>
</pattern>
<message>Стягнені скорочення пишуться без крапки: <suggestion><match no="1" regexp_match="(.*)\." regexp_replace="$1"/></suggestion></message>
<example correction="млн">всього 20 <marker>млн.</marker> осіб.</example>
</rule>
<rule>
<pattern>
<token case_sensitive="yes">смт</token>
<token>.</token>
</pattern>
<message>Стягнені скорочення та метричні одиниці пишуться без крапки: <suggestion><match no="1"/></suggestion></message>
<example correction="смт">розташовано у <marker>смт.</marker> Луків.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">[0-9,-]+|кв\.|куб\.</token>
<marker>
<token case_sensitive="yes" regexp="yes">([смкд]|мк)?м</token>
<token negate_pos="yes" postag_regexp="yes" postag="SENT_END|PARA_END">.</token>
</marker>
<token case_sensitive="yes" negate="yes" regexp="yes">[А-ЯІЇЄҐ].*</token>
</pattern>
<message>Метричні одиниці пишуться без крапки: <suggestion><match no="2"/></suggestion></message>
<example correction="м">100 <marker>м.</marker> дороги.</example>
<example correction="м">100 кв. <marker>м.</marker> дороги.</example>
<example>Останні 100 м.</example>
<example>Прийшов М. Гориня.</example>
<example>Проїхали м. Львів.</example>
<example>Листи надсилайте на адресу: 79026 м. Львів, вул. Володимира Великого</example>
<!-- TODO: важко розрізнити секунди від села від сторінки -->
<!--
<example correction="с">Останніх 37,8 <marker>с.</marker> шляху.</example>
<example>Проїхали с. Веселе.</example>
-->
</rule>
<rule>
<pattern case_sensitive="yes">
<token>р.</token>
<token>р.</token>
</pattern>
<message>Роки скорочено пишуться <suggestion>рр.</suggestion></message>
<example correction="рр.">70-80 <marker>р.р.</marker></example>
</rule>
</rulegroup>
<rulegroup id="ABBREVIATIONS_MISSING_DOT" name="Скорочення - пропущена крапка">
<rule>
<antipattern>
<token regexp="yes">коп|тис</token>
<token regexp="yes">[….!?]|[.!?]{2,3}</token> <!-- dot may still happen separately - tokenizing all cases properly is hard -->
</antipattern>
<pattern>
<token regexp="yes">.*[0-9]</token>
<marker>
<token regexp="yes">коп|тис</token>
</marker>
</pattern>
<message>Скорочення з відкиданням літер пишуться з крапкою: <suggestion><match no="2"/>.</suggestion></message>
<example correction="коп.">зросла на 50—70 <marker>коп</marker>/л</example>
<example correction="коп.">496 грн 75 <marker>коп</marker> за екземпляр</example>
<example correction="тис.">штраф у 150 <marker>тис</marker> гривень</example>
<example correction="тис.">штраф у 150 <marker>тис</marker></example>
<example correction="тис.">штраф у 150
 <marker>тис</marker> гривень</example>
<example>це $400
 тис.», – розповідає Олег.</example>
<example>це 100 тис…</example>
<example>це 100 тис...</example>
</rule>
</rulegroup>
<rule id="dot_with_gram_hryven" name="Крапка з грамами і гривнями">
<pattern>
<token regexp="yes">[0-9]([0-9, ]*)</token>
<marker>
<token>гр.</token>
</marker>
</pattern>
<message>Грами скорочено пишемо: <suggestion>г</suggestion>; гривні скорочено пишемо <suggestion>грн</suggestion></message>
<example correction="г|грн">800 <marker>гр.</marker> м'яса.</example>
<example correction="г|грн">1 000 <marker>гр.</marker> 80 коп.</example>
</rule>
<!--
<rule id="INVALID_APOSTROPHE" name="Нерекомендований символ апострофа">
<regexp>[а-яіїєґ'-]*[бпвмфгґкхжчшр][`´‘”‟"][єїюя][а-яіїєґ'-]*</regexp>
<message>Правильно: <suggestion><match no="1" regexp_match="(.*[бпвмфгґкхжчшр])[`´‘”‟"]([єїюя].*)" regexp_replace="$1'$2"/></suggestion></message>
<example correction="кар'єра"><marker>кар‘єра</marker>.</example>
</rule>
-->
<rule id="UL_VS_VUL" name="ул. і вул.">
<pattern>
<marker>
<token>ул</token>
<token>.</token>
</marker>
</pattern>
<message>Правильно: <suggestion>вул.</suggestion></message>
<example correction="вул.">на <marker>ул.</marker> Городецькій.</example>
<example>вул.</example>
</rule>
<rulegroup id="graty_vs_hraty" name="Грати/ґрати">
<rule>
<pattern>
<token postag_regexp="yes" postag="prep.*">
<exception postag_regexp="yes" postag="adv.*"/>
<exception>проти</exception>
</token>
<marker>
<token inflected="yes" postag_regexp="yes" postag="noun:inanim.*">грати</token>
</marker>
</pattern>
<message>Можливо, замість дієслова «грати» тут має бути іменник «ґрати»?</message>
<suggestion><match no="2" regexp_match="г([а-яіїєґ]+)" regexp_replace="ґ$1"/></suggestion>
<example correction="ґрати">кинути за <marker>грати</marker>.</example>
<example correction="ґратами">сидіти за <marker>гратами</marker>.</example>
<example>щоб просто грати</example>
<example>щоб добре грати</example>
</rule>
<rule>
<pattern>
<unify>
<feature id="gender"/>
<feature id="case"/>
<token regexp="yes" inflected="yes">тюремний|залізний|дерев'яний|мічний|холодний</token>
<marker>
<token inflected="yes" postag_regexp="yes" postag="noun:inanim.*">грати</token>
</marker>
</unify>
</pattern>
<message>Можливо, замість дієслова «грати» тут має бути іменник «ґрати»?</message>
<suggestion><match no="2" regexp_match="г([а-яіїєґ]+)" regexp_replace="ґ$1"/></suggestion>
<example correction="ґратами">за залізними <marker>гратами</marker>.</example>
<example>на такому рівні грати</example>
</rule>
</rulegroup>
<rulegroup id="TON_VS_TONN" name="Тон/тонн">
<!--
<rule>
<pattern>
<token postag_regexp="yes" postag="num.*"/>
<marker>
<token>тон</token>
</marker>
</pattern>
<message>Правильно: <suggestion>тонн</suggestion></message>
<example correction="тонн">1600 <marker>тон</marker></example>
<example correction="тонн">п'ять <marker>тон</marker></example>
</rule>
-->
<rule>
<pattern>
<!--
<token regexp="yes" inflected="yes">п'ять|шість|сім|вісім|дев'ять|нуль|десять|двадцять|тридцять|сорок|.*десят|дев'яносто|сто|двісті|триста|чотириста|п'ятьсот|шістьсот|сімсот|вісімсот|сотня|тисяча|мільйон|мільярд|тис.|млн|млрд|([0-9-]*[05-9]|[0-9-]+11)
-->
<or>
<token regexp="yes" inflected="yes">тис\.|млн|млрд</token>
<token postag_regexp="yes" postag=".*num.*">
<exception postag_regexp="yes" postag=".*:v_oru.*"/>
<exception scope="previous" regexp="yes">[:./№«]</exception>
<exception regexp="yes">(1[0-9]{3}|20[0-2][0-9])</exception>
<exception regexp="yes">один|перший</exception>
</token>
</or>
<marker>
<token regexp="yes">(нано|мікро|мілі|дека|кіло|мега|гіга|тера|пета)?тон</token>
</marker>
</pattern>
<message>Ви мали на увазі: <suggestion><match no="2"/>н</suggestion>?</message>
<example correction="кілотонн">10 <marker>кілотон</marker></example>
<example correction="тонн">10 <marker>тон</marker></example>
<example correction="тонн">п'ять <marker>тон</marker></example>
<example correction="тонн">72-78 <marker>тон</marker></example>
<example correction="тонн">кілька <marker>тон</marker></example>
<example>лише один тон</example>
<example>10 тонн</example>
<example>10 тонів</example>
</rule>
</rulegroup>
<rule id="VYSHIDNYI_VYHIDNYI" name="Висхідний замість вихідний">
<pattern>
<marker>
<token inflected="yes">висхідний</token>
</marker>
<token inflected="yes" regexp="yes">позиція|положення|пункт|точка</token>
</pattern>
<message>Ви мали на увазі: <suggestion>вихідний</suggestion>?</message>
<example correction="вихідний">Поверталися на <marker>висхідну</marker> позицію.</example>
</rule>
<rule id="HRYVNA_HRYVNIA" name="Гривна замість гривня">
<antipattern>
<token inflected="yes" regexp="yes" skip="-1">браслет|золотавий|плести|прикраса|прикрашати|шийний|шия</token>
<token inflected="yes">гривна
<exception inflected="yes">гривня</exception>
</token>
</antipattern>
<antipattern>
<token inflected="yes" skip="-1">гривна
<exception inflected="yes">гривня</exception>
</token>
<token inflected="yes" regexp="yes">браслет|плести|прикраса|прикрашати|шийний|шия</token>
</antipattern>
<pattern>
<marker>
<token inflected="yes">гривна
<exception inflected="yes">гривня</exception>
</token>
</marker>
</pattern>
<message>Ви мали на увазі: <suggestion>гривня</suggestion>?</message>
<example correction="гривня">Заробив 7 млн <marker>гривен</marker>.</example>
<example>девальвація гривні</example>
<example>На шиї він мав золоту гривну, на пальцях – золоті персні</example>
<example>«гривна» — це давня нашийна прикраса.</example>
</rule>
<rulegroup id="BEZVISTI_VS_BEZVISTY" name="Безвісті/безвісти">
<rule>
<pattern>
<token regexp="yes">зник.*|пропа[вл].*</token>
<marker>
<token>безвісті</token>
</marker>
</pattern>
<message>Правильно: <suggestion>безвісти</suggestion></message>
<example correction="безвісти">зниклих <marker>безвісті</marker>.</example>
<example correction="безвісти">пропали <marker>безвісті</marker>.</example>
</rule>
<rule>
<pattern>
<marker>
<token>безвісті</token>
</marker>
<token regexp="yes">зник.*|пропа[вл].*</token>
</pattern>
<message>Правильно: <suggestion>безвісти</suggestion></message>
<example correction="безвісти"><marker>безвісті</marker> зникли.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">зник.*|пропа[вл].*</token>
<marker>
<token>без</token>
<token regexp="yes">віст[іи]</token>
</marker>
</pattern>
<message>Правильно: <suggestion>безвісти</suggestion></message>
<example correction="безвісти">зниклих <marker>без вісті</marker>.</example>
<example correction="безвісти">пропали <marker>без вісти</marker>.</example>
</rule>
<rule>
<pattern>
<marker>
<token>без</token>
<token regexp="yes">віст[іи]</token>
</marker>
<token regexp="yes">зник.*|пропа[вл].*</token>
</pattern>
<message>Правильно: <suggestion>безвісти</suggestion></message>
<example correction="безвісти"><marker>без вісті</marker> зникли.</example>
<example correction="безвісти"><marker>без вісти</marker> зникли.</example>
</rule>
</rulegroup>
<rulegroup id="pryslivnykovi_spoluky_cherez_defis" name="Прислівникові сполуки через дефіс">
<rule>
<pattern>
<token>давним</token>
<token>давно</token>
</pattern>
<message>Правильно: <suggestion>давним-давно</suggestion></message>
<example correction="давним-давно">Це було <marker>давним давно</marker>.</example>
</rule>
<rule>
<pattern>
<token>навіки</token>
<token>віків</token>
</pattern>
<message>Правильно: <suggestion>навіки-віків</suggestion></message>
<example correction="навіки-віків">це вже <marker>навіки віків</marker>.</example>
</rule>
<rule>
<pattern>
<token>віч</token>
<token>на</token>
<token>віч</token>
</pattern>
<message>Правильно: <suggestion>віч-на-віч</suggestion></message>
<example correction="віч-на-віч">Зустрілися <marker>віч на віч</marker>.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">[ву]сього</token>
<token>на</token>
<token>всього</token>
</pattern>
<message>Правильно: <suggestion>\1-на-всього</suggestion></message>
<example correction="всього-на-всього">Їх було <marker>всього на всього</marker> троє.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">[ву]сього</token>
<token>навсього</token>
</pattern>
<message>Правильно: <suggestion>\1-на-всього</suggestion></message>
<example correction="всього-на-всього">Їх було <marker>всього навсього</marker> троє.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">[ву]сього-навсього</token>
</pattern>
<message>Правильно: <suggestion>всього-на-всього</suggestion></message>
<example correction="всього-на-всього">Їх було <marker>всього-навсього</marker> троє.</example>
</rule>
<rule>
<pattern>
<token>як</token>
<token>не</token>
<token>як</token>
</pattern>
<message>Правильно: <suggestion>як-не-як</suggestion></message>
<example correction="як-не-як">але <marker>як не як</marker> пішло.</example>
</rule>
<rule>
<pattern>
<token>де</token>
<token>не</token>
<token>де</token>
</pattern>
<message>Правильно: <suggestion>де-не-де</suggestion></message>
<example correction="де-не-де">але <marker>де не де</marker> пішло.</example>
</rule>
<rule>
<pattern>
<token>коли</token>
<token>не</token>
<token>коли</token>
</pattern>
<message>Правильно: <suggestion>коли-не-коли</suggestion></message>
<example correction="коли-не-коли">але <marker>коли не коли</marker> працювало.</example>
</rule>
<rule>
<pattern>
<token>хоч</token>
<token>не</token>
<token>хоч</token>
</pattern>
<message>Правильно: <suggestion>хоч-не-хоч</suggestion></message>
<example correction="хоч-не-хоч">але <marker>хоч не хоч</marker> зробив.</example>
</rule>
<rule>
<pattern>
<token>з</token>
<token>давніх</token>
<token>давен</token>
</pattern>
<message>Правильно: <suggestion>з давніх-давен</suggestion></message>
<example correction="з давніх-давен">так <marker>з давніх давен</marker> повелося.</example>
</rule>
<rule>
<pattern>
<token>з</token>
<token>діда</token>
<token>прадіда</token>
</pattern>
<message>Правильно: <suggestion>з діда-прадіда</suggestion></message>
<example correction="з діда-прадіда">так <marker>з діда прадіда</marker> повелося.</example>
</rule>
<rule>
<pattern>
<token>без</token>
<token>кінця</token>
<token>краю</token>
</pattern>
<message>Правильно: <suggestion>без кінця-краю</suggestion></message>
<example correction="без кінця-краю">і так <marker>без кінця краю</marker>.</example>
</rule>
<rule>
<pattern>
<token>на</token>
<token case_sensitive="yes">гора</token>
</pattern>
<message>Правильно: <suggestion>на-гора</suggestion></message>
<example correction="на-гора">видавати <marker>на гора</marker>.</example>
<example>натякаючи, що на Гора поширюється «аморальність» поведінки Клінтона</example>
</rule>
<rule>
<pattern>
<token>по</token>
<token>латині</token>
</pattern>
<message>Правильно: <suggestion>по-латині</suggestion></message>
<example correction="по-латині">шпарити <marker>по латині</marker>.</example>
</rule>
<!-- десь колись може писатися окремо
<rule>
<pattern>
<token>десь</token>
<token>колись</token>
</pattern>
<message>Правильно: <suggestion>десь-колись</suggestion></message>
<example correction="десь-колись">і <marker>десь колись</marker>.</example>
</rule>
-->
<rule>
<pattern>
<token regexp="yes">куди|коли</token>
<token>небудь</token>
</pattern>
<message>Правильно: <suggestion>\1-небудь</suggestion></message>
<example correction="куди-небудь">поїхав <marker>куди небудь</marker>.</example>
</rule>
<rule>
<pattern>
<token>отож</token>
<token regexp="yes">то|бо</token>
</pattern>
<message>Правильно: <suggestion>\1-\2</suggestion></message>
<example correction="отож-бо">А <marker>отож бо</marker> й воно.</example>
</rule>
</rulegroup>
<rule id="DASH_STREET" name="-стріт/-стрит">
<pattern>
<token regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*-[Сс]трит</token>
</pattern>
<message>Чинний правопис передбачає -стріт (також укр. літера і ближча до англ. звука [i:] в слові street)</message>
<example correction=""><marker>Бейкер-стрит</marker>.</example>
</rule>
<rule id="DASH_CITY" name="-ситі/-сіті">
<pattern>
<token regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*-[Сс][иі]ті</token>
</pattern>
<message>Чинний правопис передбачає -сіті, однак в мовній практиці поширений також варіант -ситі, адже укр. літера и ближча до англ. звука [ɪ] в слові city</message>
<example correction=""><marker>Канзас-Сіті</marker>.</example>
<example correction=""><marker>Канзас-Ситі</marker>.</example>
</rule>
<rule id="DASH_RIVER" name="-ривер/-рівер">
<pattern>
<token regexp="yes" case_sensitive="yes">[А-ЯІЇЄҐ].*-[Рр]івер</token>
</pattern>
<message>Правильно: <suggestion><match no="1" regexp_match="([А-ЯІЇЄҐ].*-[Рр])[иі](вер)" regexp_replace="$1и$2"/></suggestion></message>
<example correction="Іст-Ривер"><marker>Іст-Рівер</marker>.</example>
</rule>
<rule id="BABUSIV" name="Бабусів">
<pattern>
<token regexp="yes">бабусів(-.+)?</token>
</pattern>
<message>Неправильна форма</message>
<suggestion>бабусь</suggestion>
<suggestion>бабусин</suggestion>
<example correction="бабусь|бабусин">до тих <marker>бабусів-дідусів</marker>.</example>
</rule>
<rule id="IHOR_VOCATIVE" name="Кличний для «Ігор»">
<pattern>
<token case_sensitive="yes">Ігоре</token>
</pattern>
<message>Правильно: <suggestion>Ігорю</suggestion></message>
<url>http://www.bbc.co.uk/blogs/ukrainian/ponomariv</url>
<example correction="Ігорю">Агов, <marker>Ігоре</marker>!</example>
</rule>
<rulegroup id="LATIN_LETTERS_IN_SENTENCE" name="Латинські літери в реченні">
<rule>
<pattern>
<token regexp="yes">.*[а-яіїєґ]</token>
<token regexp="yes">,</token>
<marker>
<token case_sensitive="yes">a</token>
</marker>
<token regexp="yes">[а-яіїєґ].*</token>
</pattern>
<message>Потенційна помилка: латинська літера замість української</message>
<suggestion>а</suggestion>
<example correction="а">2014 року, <marker>a</marker> то й раніше.</example>
<!--
<example>заробітна плата, a й b — числа</example>
-->
</rule>
<rule>
<pattern>
<token regexp="yes">.*[а-яіїєґ]</token>
<token regexp="yes" min="0">[:,»)-]</token>
<marker>
<token case_sensitive="yes">i</token>
</marker>
<token regexp="yes">[а-яіїєґ].*</token>
</pattern>
<message>Потенційна помилка: латинська літера замість української</message>
<suggestion>і</suggestion>
<example correction="і">врахували це, <marker>i</marker> головним героєм.</example>
<example correction="і">так <marker>i</marker> не запрацювала.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">В2В.*</token>
</pattern>
<message>Потенційна помилка: українські літери замість латинських</message>
<suggestion><match no="1" regexp_match="В2В(.*)" regexp_replace="B2B$1"/></suggestion>
<example correction="B2B-маркетинг">врахували це, <marker>В2В-маркетинг</marker>.</example>
</rule>
<rule>
<pattern>
<token regexp="yes" case_sensitive="yes">рН.*</token>
</pattern>
<message>Потенційна помилка: українські літери замість латинських</message>
<suggestion><match no="1" regexp_match="рН(.*)" regexp_replace="pH$1"/></suggestion>
<example correction="pH">врахували рівень <marker>рН</marker>.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">АІ-[а-яіїєґ].*</token>
</pattern>
<message>Потенційна помилка: українські літери замість латинських</message>
<suggestion><match no="1" regexp_match="АІ-(.*)" regexp_replace="AI-$1"/></suggestion>
<example correction="AI-сканування">таке собі <marker>АІ-сканування</marker>.</example>
</rule>
<rule>
<pattern>
<token>ВВС</token>
</pattern>
<message>Потенційна помилка: українські літери замість латинських</message>
<suggestion>BBC</suggestion>
<suggestion>Бі-Бі-Сі</suggestion>
<example correction="BBC|Бі-Бі-Сі">повідомляє <marker>ВВС</marker> Україна.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">ІР-[а-яіїєґ].*</token>
</pattern>
<message>Потенційна помилка: українські літери замість латинських</message>
<suggestion><match no="1" regexp_match="ІР(.*)" regexp_replace="IP$1"/></suggestion>
<example correction="IP-адреса"><marker>ІР-адреса</marker>.</example>
<example>ІР-21</example>
</rule>
<rule>
<pattern>
<token regexp="yes">МАС-адрес.*</token>
</pattern>
<message>Потенційна помилка: українські літери замість латинських</message>
<suggestion><match no="1" regexp_match="МАС(.*)" regexp_replace="MAC$1"/></suggestion>
<example correction="MAC-адреса"><marker>МАС-адреса</marker>.</example>
</rule>
</rulegroup>
<rulegroup id="zakinchennya_cyfrovyh_chyslivnykiv" name="Закінчення цифрових числівників">
<url>https://r2u.org.ua/check/rules/zakinchennya_cyfrovyh_chyslivnykiv</url>
<!-- Не є усталеним правилом, пишуть по-різному
<rule>
<pattern>
<or>
<token regexp="yes">([0-9]*[02-9])?((1-ш|2-г|[4560]-т|[78]-м)(ий|ого|ому|им|а|ої|ій|ою|е|і|их|ими))</token>
<token regexp="yes">([0-9]*1[0-9]-т)(ий|ого|ому|им|а|ої|ій|ою|е|і|их|ими)</token>
<token regexp="yes">([0-9]*[02-9])?3-т(ій|ього|ьому|ім|я|ьої|ій|ю|ьою|є|і|іх|іми)</token>
<token regexp="yes">([0-9]*[02-9])?((1-|2-|[4560]-|[78]-|[0-9]*1[0-9]-|[0-9]*[2-9]0-)(ий|ого|ому|им|ої|ій|ою|их|ими))</token>
<token regexp="yes">([0-9]*1[0-9]-т)(ий|ого|ому|им|ої|ій|ою|их|ими)</token>
<token regexp="yes">([0-9]*[02-9])?3-(ій|ь?ого|ьому|ім|ь?ої|ій|ь?ою|іх|іми)</token>
</or>
</pattern>
<message>Потенційна помилка: зайві літери закінчення числівника.</message>
<example correction=""><marker>1-ший</marker> поверх.</example>
<example correction="">у <marker>2-гій</marker> Київський гімназії.</example>
<example correction="">е базується <marker>173-тя</marker> десантна бригада</example>
<example correction="">між <marker>3-тім</marker> та 4-м валом</example>
<example correction="">між 3-м та <marker>4-тим</marker> валом</example>
<example correction="">між 13-м та <marker>14-им</marker> валом</example>
<example correction=""><marker>7-ма</marker> ракетка.</example>
<example correction=""><marker>11-та</marker> ракетка.</example>
<example correction="">в <marker>70-тих</marker> роках</example>
<example correction="">на <marker>3-ьому</marker> поверсі</example>
<example>разом із 17-ма тисячами</example>
<example>11-а ракетка</example>
<example>в 70-х роках</example>
<example>на 12-му поверсі</example>
<example>1990-і</example>
</rule>
-->
<rule id="ROMAN_DIGITS_SUFFIX" name="Закінчення для римських чисел">
<pattern>
<token regexp="yes" case_sensitive="yes">(X{1,3}(IX|IV|V?I{0,3})|X{0,3}(IX|I?V|V?I{1,3}))-[а-яіїє]{1,4}</token>
</pattern>
<message>Потенційна помилка: до римських цифр букви не дописуються</message>
<suggestion><match no="1" regexp_match="([IVX]+)-[а-яіїє]+" regexp_replace="$1"/></suggestion>
<example correction="III">починаючи з <marker>III-го</marker> кварталу.</example>
<example correction="IX">на <marker>IX-му</marker> з'їзді.</example>
<example>на IX з'їзді.</example>
</rule>
</rulegroup>
<rule id="tumana" name="Тумана">
<pattern>
<token>тумана</token>
</pattern>
<message>У значенні природного явища р.в.<suggestion>туману</suggestion></message>
<example correction="туману"><marker>тумана</marker> напустив.</example>
</rule>
<rulegroup id="neporivniuvayi" name="Непорівнюваний">
<rule>
<pattern>
<token inflected="yes">непорівнюваний</token>
</pattern>
<message>Непорівнюваний має значення "що його не порівнюють" (в момент мовлення). В більшості випадків потрібне слово: <suggestion>непорівнянний</suggestion> "що його неможливо порівняти"</message>
<example correction="непорівнянний">отакий <marker>непорівнюваний</marker> варіант</example>
</rule>
<rule>
<pattern>
<token inflected="yes">непорівнюваність</token>
</pattern>
<message>Непорівнюваність має значення "що його не порівнюють" (в момент мовлення). В більшості випадків потрібне слово: <suggestion>непорівнянність</suggestion> "неможливість порівняти"</message>
<example correction="непорівнянність">отака <marker>непорівнюваність</marker></example>
</rule>
<rule>
<pattern>
<token inflected="yes">непояснюваний</token>
</pattern>
<message>Непояснюваний має значення "що його не пояснюють" (в момент мовлення). В більшості випадків потрібне слово: <suggestion>непоясненний</suggestion> "що його неможливо пояснити"</message>
<example correction="непоясненний">отакий <marker>непояснюваний</marker> варіант</example>
</rule>
</rulegroup>
<rulegroup id="stretch_plivka" name="Стретч плівка">
<rule>
<pattern>
<token regexp="yes">стре[йт]ч</token>
<token>плівка</token>
</pattern>
<message>Правильно: <suggestion>стретч-плівка</suggestion></message>
<example correction="стретч-плівка">отака <marker>стрейч плівка</marker>.</example>
</rule>
</rulegroup>
<!-- we have Java rule
<rule id="small_letter_at_sent_start" name="Мала літера на початку речення">
<pattern>
<token postag="SENT_START"/>
<marker>
<token case_sensitive="yes" regexp="yes">[а-яіїєґ][а-яіїєґ'-]*</token>
</marker>
</pattern>
<message>Речення має починатися з великої літери</message>
<suggestion><match no="2" case_conversion ="startupper"/></suggestion>
<example correction="Машина"><marker>машина</marker> приїхала рано.</example>
</rule>
-->
<rule id="vid_teper" name="Від тепер">
<pattern>
<token>від</token>
<token>тепер</token>
</pattern>
<message>Відтепер пишеться разом</message>
<suggestion>відтепер</suggestion>
<example correction="відтепер"><marker>від тепер</marker> і до кінця.</example>
</rule>
<rule id="ne_perelyvky" name="Не переливки">
<pattern>
<token>не</token>
<token>переливки</token>
</pattern>
<message>Присудкове слово <suggestion>непереливки</suggestion> пишеться разом</message>
<example correction="непереливки">буде <marker>не переливки</marker>.</example>
</rule>
<rule id="na_pryzvolyasche" name="На призволяще">
<pattern>
<token>на</token>
<token>призволяще</token>
</pattern>
<message><suggestion>напризволяще</suggestion> пишеться разом</message>
<example correction="напризволяще">кинути <marker>на призволяще</marker>.</example>
</rule>
<rule id="chym_duzh" name="Чим дуж">
<pattern>
<token>чим</token>
<token>дуж</token>
</pattern>
<message><suggestion>чимдуж</suggestion> пишеться разом</message>
<example correction="чимдуж"><marker>чим дуж</marker>.</example>
</rule>
<rule id="ne_syla" name="Не сила">
<pattern>
<marker>
<token>не</token>
<token>сила</token>
</marker>
<token postag_regexp="yes" postag="verb.*?inf.*"/>
</pattern>
<message><suggestion>несила</suggestion> перед іфінітивом пишеться разом</message>
<example correction="несила">і <marker>не сила</marker> терпіти</example>
</rule>
<rule id="v_odnochas" name="В одночас">
<pattern>
<token>в</token>
<token>одночас</token>
</pattern>
<message>«Одночас» пишеться разом</message>
<suggestion>водночас</suggestion>
<example correction="водночас"><marker>в одночас</marker>.</example>
</rule>
<rule id="dva_prizvyscha" name="Два прізвища через дефіс">
<pattern>
<token regexp="yes">Джексона-Веніка|Колесніченка-Ківалова|Молотова-Ріббентропа</token>
</pattern>
<message>Два прізвища пишуться через (довге) тире</message>
<suggestion><match no="1" regexp_match="(.*?)-(.*?)" regexp_replace="$1 — $2"/></suggestion>
<example correction="Джексона — Веніка">поправка <marker>Джексона-Веніка</marker>.</example>
</rule>
<rulegroup id="skladni_neozhacheni_zaymennyky" name="Складні неозначені займенники">
<rule>
<pattern>
<marker>
<token regexp="yes">бо|чорт|хто</token>
<token>зна</token>
<token inflected="yes" regexp="yes">котрий|чий|який|хто|що|де|як|коли|куди|звідки</token>
</marker>
</pattern>
<message>Орфографічна помилка</message>
<suggestion><match no="1"/><match no="2"/>-<match no="3"/></suggestion>
<example correction="бозна-якому"><marker>бо зна якому</marker></example>
<example correction="хтозна-що"><marker>хто зна що</marker></example>
<example>бозна в якому</example>
<example>і хтозна, що діятиметься</example>
</rule>
<rule>
<pattern>
<marker>
<token regexp="yes">казна|хтозна|чортзна|бозна</token>
<token inflected="yes" regexp="yes">котрий|чий|який|хто|що|де|як|коли|куди|звідки</token>
</marker>
</pattern>
<message>Орфографічна помилка</message>
<suggestion><match no="1"/>-<match no="2"/></suggestion>
<example correction="казна-якому"><marker>казна якому</marker></example>
<example>казна щомісяця одержуватиме</example>
</rule>
</rulegroup>
<!--
з пробілом: ДСТУ 3582-97 (1997) http://www.stu.cn.ua/media/files/pdf/DSTU_3582-97.pdf
без пробіла: ДСТУ 3582-13 (2013) http://lib.npu.edu.ua/full_txt/DSTU_3582_2013.pdf
<rulegroup id="I_T_P" name="і т.п.">
<rule>
<regexp>т\.(д|п|ін)\.</regexp>
<message>Правильно <suggestion>т. \1.</suggestion>?</message>
<example correction="т. п.">путівки, дачі і <marker>т.п.</marker></example>
</rule>
<rule>
<regexp>н\.е\.</regexp>
<message>Правильно <suggestion>н. е.</suggestion>?</message>
<example correction="н. е."> у 79 році <marker>н.е.</marker></example>
</rule>
</rulegroup>
-->
</category>
<category id="TYPOGRAPHY" name="Типографія" type="typographical">
<!-- short dash is replaced with '-' in tagger, so we have to use Java rule to catch it -->
<!--
<rulegroup id="long_dash" name="Риска">
<rule>
<pattern>
<token regexp="yes">[а-яіїєґ']+[—–][а-яіїєґ']+</token>
</pattern>
<message>Риска всередині слова. Всередині слова вживайте дефіс, між словами виокремлюйте риску пробілами.</message>
<suggestion><match no="1" regexp_match="(.*)[—–](.*)" regexp_replace="$1-$2"/></suggestion>
<suggestion><match no="1" regexp_match="(.*)[—–](.*)" regexp_replace="$1 — $2"/></suggestion>
<example correction="січень-лютий|січень — лютий"><marker>січень—лютий</marker></example>
<example correction="яскраво-рожевий|яскраво — рожевий"><marker>яскраво–рожевий</marker>.</example>
<example correction="Вовка-Волкова|Вовка — Волкова"><marker>Вовка—Волкова</marker></example>
</rule>
</rulegroup>
-->
<rulegroup id="word_with_long_dash" name="Слова з довгим тире без пробілу">
<rule>
<pattern>
<marker>
<token regexp="yes">[а-яіїєґ][а-яіїєґ'-]*</token>
<token spacebefore="no">—</token>
</marker>
<token spacebefore="yes"/>
</pattern>
<message>Довге тире після слова без пробілу</message>
<suggestion>\1 —</suggestion>
<suggestion>\1-</suggestion>
<example correction="зими —|зими-"><marker>зими—</marker> літа</example>
<example>зими — літа</example>
</rule>
</rulegroup>
<rulegroup id="KVT_HOD" name="кВт*год">
<rule>
<pattern>
<token>кВт</token>
<token>/</token>
<token>год</token>
</pattern>
<message>Правильно: <suggestion>кВт·год</suggestion></message>
<example correction="кВт·год">15 <marker>кВт/год</marker>.</example>
</rule>
<rule>
<pattern>
<token>кВт</token>
<token>/</token>
<token>г</token>
</pattern>
<message>Правильно: <suggestion>кВт·год</suggestion></message>
<example correction="кВт·год">15 <marker>кВт/г</marker>.</example>
</rule>
<rule>
<pattern>
<token regexp="yes">кВт[*∙]г</token>
</pattern>
<message>Правильно: <suggestion>кВт·год</suggestion></message>
<example correction="кВт·год">15 <marker>кВт*г</marker>.</example>
<example correction="кВт·год">15 <marker>кВт∙г</marker>.</example>
</rule>
</rulegroup>
<rule id="UPPER_INDEX_FOR_M" name="Верхній індекс для метрів">
<pattern>
<token regexp="yes">([кдсмн]|мк)?м[23]</token>
</pattern>
<message>Можливо, потрібен верхній індекс?</message>
<suggestion><match no="1" regexp_match="([а-я]+)([23])" regexp_replace="$1²"/></suggestion>
<suggestion><match no="1" regexp_match="([а-я]+)([23])" regexp_replace="$1³"/></suggestion>
<example correction="км²|км³">900 тис. <marker>км2</marker></example>
<example correction="м²|м³">900 <marker>м3</marker></example>
<example>20 скм3</example>
</rule>
<rule id="DEGREES_FOR_C" name="Знак градусів">
<pattern>
<token case_sensitive="yes" regexp="yes">[+-]?[0-9,-]*[0-9][оo][СC]</token> <!-- both lat and cyr o and C -->
</pattern>
<message>Можливо, потрібен знак градуса?</message>
<suggestion><match no="1" regexp_match="([+-]?[0-9,-]*[0-9])[оo][СC]" regexp_replace="$1°C"/></suggestion>
<example correction="27°C">температура знизиться до <marker>27оC</marker>.</example>
<example>20 ОС</example>
</rule>
</category>
</rules>