diff options
Diffstat (limited to 'JLanguageTool/src/rules/uk')
-rw-r--r-- | JLanguageTool/src/rules/uk/grammar.xml | 190 | ||||
-rw-r--r-- | JLanguageTool/src/rules/uk/replace.txt | 24 |
2 files changed, 214 insertions, 0 deletions
diff --git a/JLanguageTool/src/rules/uk/grammar.xml b/JLanguageTool/src/rules/uk/grammar.xml new file mode 100644 index 0000000..982e152 --- /dev/null +++ b/JLanguageTool/src/rules/uk/grammar.xml @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="utf-8"?> +<?xml-stylesheet type="text/xsl" href="../print.xsl" +title="Pretty print" ?> +<?xml-stylesheet type="text/css" href="../rules.css" +title="Easy editing stylesheet" ?> +<!-- +Ukrainian grammar and typo rules for LanguageTool +Copyright (C) 2007 Andriy Rysin +$Id$ +--> + +<rules lang="uk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../rules.xsd"> + + <category name="Punctuation"> + <!-- TODO: + Вставні вирази: "з іншого боку", "на мою думку", "на жаль" + Вставні слова : "певно", "напевно", "вірите", "" + + Question: + can "surround by commas" rule be more compact-written? + --> + + <rulegroup id="PLEASE_NO_COMMA" name="«будь ласка» виділяється комами"> + <rule> + <pattern mark_to="0"> + <token>будь</token> + <token>ласка</token> + <token negate="yes" regexp="yes">,|\.</token> + </pattern> + <message>Відсутня права кома: <suggestion>\1 \2, \3</suggestion>.</message> + <example type="correct">Запитайте, <marker>будь ласка, у</marker> водія.</example> + <example type="incorrect">Запитайте, <marker>будь ласка у</marker> водія.</example> + </rule> + <rule> + <pattern> + <token negate="yes">,<exception postag="SENT_START"/></token> + <token>будь</token> + <token>ласка</token> + </pattern> + <message>Відсутня ліва кома: <suggestion>\1, \2 \3</suggestion>.</message> + <example type="correct">Запитайте, будь ласка, у водія.</example> + <example type="incorrect"><marker>Запитайте будь ласка</marker>, у водія.</example> + </rule> + </rulegroup> + + <rulegroup id="INSERTED_WORDS_NO_COMMA" name="вставні слова, напр., «мабуть», «щоправда», виділяються комами"> + <rule> + <pattern mark_to="0"> + <token regexp="yes">мабуть|врешті|по-перше|по-друге|по-третє|щоправда|о?крім того|а втім</token> + <token negate="yes" regexp="yes">,|\.</token> + </pattern> + <message>Відсутня права кома: <suggestion>\1, \2</suggestion>.</message> + <example type="correct">Це, <marker>мабуть,</marker> водій.</example> + <example type="incorrect">Це, <marker>мабуть водій</marker>.</example> + </rule> + <rule> + <pattern> + <token negate="yes">,<exception postag="SENT_START"/></token> + <token regexp="yes">мабуть|по-перше|по-друге|по-третє|щоправда|о?крім того|а втім</token> + </pattern> + <message>Відсутня ліва кома: <suggestion>\1, \2</suggestion>.</message> + <example type="correct"><marker>Мабуть,</marker> це водій.</example> + <example type="correct">Це<marker>, мабуть</marker>, водій.</example> + <example type="incorrect"><marker>Це мабуть</marker>, водій.</example> + </rule> + </rulegroup> + +<!-- + не працює надійно, окрім того може перекриватися з правилами, які вимагають кому + <rule id="LIST_AND_NO_COMMA" name="та і або у списках не виділяється комою"> + <pattern mark_from="2"> + <token regexp="yes">.*</token> + <token>,</token> + <token regexp="yes">.*</token> + <token>,</token> + <token regexp="yes">і|та|або</token> + </pattern> + <message>"та", "і" та "або" в переліку, зазвичай, не виділяється комою: <suggestion>\3 \5</suggestion>.</message> + <example type="correct">Підтримує німецьку, <marker>англійську та</marker> українську мови.</example> + <example type="incorrect">Підтримує німецьку, <marker>англійську, та</marker> українську мови.</example> + </rule> +--> + <rulegroup name="Відсутня кома перед «але», ..." id="COMMA_BEFORE_BUT"> + <rule> + <pattern> + <token regexp="yes" negate="yes">[\p{Punct}–—\(]<exception postag="SENT_START"/></token> + <token>але</token> + </pattern> + <message>Відсутня кома перед „але”: <suggestion>\1, \2</suggestion></message> + <example type="correct">Вгадав всі літери, але не зміг прочитати слово.</example> + <example type="incorrect">Вгадав всі <marker>літери але</marker> не зміг прочитати слово.</example> + </rule> + </rulegroup> + + + </category> + + <category name="Grammar"> + <!-- TODO: + додати підтримку POS та словоформ + --> + <rulegroup name="Узгодженість" id="CONISTENCY1"> + <rule> + <pattern> + <token regexp="yes">в|у</token> + <token postag="verb"/> + </pattern> + <message>Прийменник перед дієсловом <suggestion>\2</suggestion></message> + <example type="correct">Їм треба їхати.</example> + <example type="correct">Їм треба вїхати.</example> + <example type="incorrect">Їм треба <marker>в їхати</marker>.</example> + </rule> + </rulegroup> + + <!-- нереальне правило - лише для тестування теґу "refl" + <rulegroup name="Узгодженість 2" id="CONISTENCY2"> + <rule> + <pattern> + <token regexp="yes" negate="yes">мусиш|хочеш</token> + <token postag="refl"/> + </pattern> + <message>Невірне використання зворотного дієслова <suggestion>Хочеш \2</suggestion></message> + <example type="correct">Хочеш дивитися?</example> + <example type="incorrect">Велике <marker>дерево дивитися</marker>.</example> + </rule> + </rulegroup> + --> + </category> + + <category name="Style"> + <!-- TODO: + проблеми: 1) як пропонувати "й", якщо наступне не почитанється з "й", і "та", якщо далі не йде "а" + 2) як пропонувати частину слова "дощ йде" -> "дощ іде"? + --> + <rulegroup name="Милозвучність" id="NICE"> + <!-- + <rule> + <pattern> + <token regexp="yes">.*[аеєиіїоуюя]</token> + <token regexp="yes">і</token> + </pattern> + <message>Зіяння <suggestion>\1 й</suggestion> <suggestion>\1 та</suggestion></message> + <example type="correct">Поле й ліс.</example> + <example type="correct">Поле та ліс.</example> + <example type="incorrect"><marker>Поле і</marker> ліс.</example> + </rule> + --> + <rule> + <pattern> + <token regexp="yes">.*[аеєиіїоуюя]</token> + <token>у</token> + <token regexp="yes" negate="yes">в.*</token> + </pattern> + <message>Зіяння <suggestion>\1 в \3</suggestion></message> + <example type="correct">Балка в степу.</example> + <example type="incorrect"><marker>Балка у степу</marker>.</example> + </rule> + <rule> + <pattern> + <token>зі</token> + <token regexp="yes">[аеєиіїоуюя].*</token> + </pattern> + <message>Зіяння <suggestion>з \2</suggestion></message> + <example type="correct">Потяг з Австрії.</example> + <example type="incorrect">Потяг <marker>зі Австрії</marker>.</example> + </rule> + </rulegroup> + </category> + + <!-- + <category name="Borrowings"> + TODO: + 1) залежні від лексем + 2) незалежні (невідмінювані) + --> + + <!-- незалежні + <rulegroup id="NON_LEXEM_BORROWING" name="калькування"> + <rule> + <pattern> + <token regexp="yes"></token> + </pattern> + <message>Неукраїнське слово: <suggestion></suggestion>.</message> + </rule> + </rulegroup> + + </category> --> + +</rules> diff --git a/JLanguageTool/src/rules/uk/replace.txt b/JLanguageTool/src/rules/uk/replace.txt new file mode 100644 index 0000000..b411af7 --- /dev/null +++ b/JLanguageTool/src/rules/uk/replace.txt @@ -0,0 +1,24 @@ +# TODO: додати підтримку відмінювання +# TODO: додати підтримку фраз + +# незмінювані +накінець=нарешті + +# лексеми +багатократний=багаторазовий +висок=скроня +гордитись=пишатись +жилий=житловий +лишнiй=зайвий +мiроприємство=захід +насморк=нежить +оточуючий=навколишній +поясниця=поперек +пропуск=перепустка +співпадати=збігатися +строчка=рядок + +# сполуки +#рахую, що=вважаю, що +#в розстрочку=на виплат +#так як=оскільки |