@valueerror/ltjs-lang-en 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +232 -0
- package/NOTICE +10 -0
- package/README.md +25 -2
- package/index.js +34 -0
- package/licenses/LGPL-2.1.txt +504 -0
- package/licenses/english-pos-dict.pom.xml +135 -0
- package/licenses/resource_en_12dicts-readme.html +738 -0
- package/licenses/resource_en_agid-readme.txt +340 -0
- package/licenses/resource_en_pos-readme.txt +115 -0
- package/package.json +60 -4
- package/resource-root.js +4 -0
- package/resources/META-INF/org/languagetool/language-module.properties +1 -0
- package/resources/en-chunker.bin +0 -0
- package/resources/en-pos-maxent.bin +0 -0
- package/resources/en-token.bin +0 -0
- package/resources/org/languagetool/resource/en/12dicts-readme.html +738 -0
- package/resources/org/languagetool/resource/en/added.txt +446 -0
- package/resources/org/languagetool/resource/en/added_custom.txt +4 -0
- package/resources/org/languagetool/resource/en/agid-readme.txt +340 -0
- package/resources/org/languagetool/resource/en/compounds.txt +9059 -0
- package/resources/org/languagetool/resource/en/confusion_sets.txt +871 -0
- package/resources/org/languagetool/resource/en/disambiguation.xml +17238 -0
- package/resources/org/languagetool/resource/en/do-not-synthesize.txt +13 -0
- package/resources/org/languagetool/resource/en/en-US-GB.txt +4804 -0
- package/resources/org/languagetool/resource/en/en.sor +211 -0
- package/resources/org/languagetool/resource/en/english.dict +0 -0
- package/resources/org/languagetool/resource/en/english.info +8 -0
- package/resources/org/languagetool/resource/en/english_synth.dict +0 -0
- package/resources/org/languagetool/resource/en/english_synth.info +7 -0
- package/resources/org/languagetool/resource/en/english_tags.txt +88 -0
- package/resources/org/languagetool/resource/en/hunspell/en_AU.dict +0 -0
- package/resources/org/languagetool/resource/en/hunspell/en_AU.info +16 -0
- package/resources/org/languagetool/resource/en/hunspell/en_CA.dict +0 -0
- package/resources/org/languagetool/resource/en/hunspell/en_CA.info +13 -0
- package/resources/org/languagetool/resource/en/hunspell/en_GB.dict +0 -0
- package/resources/org/languagetool/resource/en/hunspell/en_GB.info +15 -0
- package/resources/org/languagetool/resource/en/hunspell/en_NZ.dict +0 -0
- package/resources/org/languagetool/resource/en/hunspell/en_NZ.info +18 -0
- package/resources/org/languagetool/resource/en/hunspell/en_US.dict +0 -0
- package/resources/org/languagetool/resource/en/hunspell/en_US.info +15 -0
- package/resources/org/languagetool/resource/en/hunspell/en_ZA.dict +0 -0
- package/resources/org/languagetool/resource/en/hunspell/en_ZA.info +16 -0
- package/resources/org/languagetool/resource/en/hunspell/ignore.txt +11070 -0
- package/resources/org/languagetool/resource/en/hunspell/prohibit.txt +383 -0
- package/resources/org/languagetool/resource/en/hunspell/prohibit_custom.txt +1 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling.txt +477 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_custom.txt +1 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_en-AU.txt +34 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_en-CA.txt +28 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_en-GB.txt +44 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_en-NZ.txt +31 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_en-US.txt +41 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_en-ZA.txt +32 -0
- package/resources/org/languagetool/resource/en/hunspell/spelling_merged.txt +0 -0
- package/resources/org/languagetool/resource/en/multiwords.txt +8210 -0
- package/resources/org/languagetool/resource/en/pos-readme.txt +115 -0
- package/resources/org/languagetool/resource/en/removed.txt +31 -0
- package/resources/org/languagetool/resource/en/removed_custom.txt +4 -0
- package/resources/org/languagetool/resource/en/specific_case.txt +5621 -0
- package/resources/org/languagetool/resource/en/word_definitions.txt +1510 -0
- package/resources/org/languagetool/rules/en/coherency.txt +2501 -0
- package/resources/org/languagetool/rules/en/contractions.txt +198 -0
- package/resources/org/languagetool/rules/en/det_a.txt +959 -0
- package/resources/org/languagetool/rules/en/det_an.txt +4080 -0
- package/resources/org/languagetool/rules/en/diacritics.txt +1415 -0
- package/resources/org/languagetool/rules/en/en-AU/grammar.xml +171 -0
- package/resources/org/languagetool/rules/en/en-CA/grammar.xml +197 -0
- package/resources/org/languagetool/rules/en/en-GB/grammar.xml +555 -0
- package/resources/org/languagetool/rules/en/en-GB/replace.txt +104 -0
- package/resources/org/languagetool/rules/en/en-GB/style.xml +302 -0
- package/resources/org/languagetool/rules/en/en-NZ/grammar.xml +171 -0
- package/resources/org/languagetool/rules/en/en-NZ/replace.txt +5 -0
- package/resources/org/languagetool/rules/en/en-US/grammar.xml +913 -0
- package/resources/org/languagetool/rules/en/en-US/replace.txt +74 -0
- package/resources/org/languagetool/rules/en/en-US/style.xml +524 -0
- package/resources/org/languagetool/rules/en/grammar-l2-de.xml +227 -0
- package/resources/org/languagetool/rules/en/grammar-l2-fr.xml +39 -0
- package/resources/org/languagetool/rules/en/grammar.xml +142537 -0
- package/resources/org/languagetool/rules/en/redundancies.txt +866 -0
- package/resources/org/languagetool/rules/en/remote-rule-filters.xml +3622 -0
- package/resources/org/languagetool/rules/en/replace.txt +221 -0
- package/resources/org/languagetool/rules/en/replace_custom.txt +7 -0
- package/resources/org/languagetool/rules/en/replace_profanity.txt +540 -0
- package/resources/org/languagetool/rules/en/style.xml +12556 -0
- package/resources/org/languagetool/rules/en/synonyms.txt +42 -0
- package/resources/org/languagetool/rules/en/wordiness.txt +1061 -0
- package/resources/org/languagetool/rules/en/wrongWordInContext.txt +14 -0
- package/src/lang/en/chunking/EnglishChunkFilter.js +108 -0
- package/src/lang/en/chunking/EnglishChunker.js +135 -0
- package/src/lang/en/language/AmericanEnglish.js +73 -0
- package/src/lang/en/language/AustralianEnglish.js +42 -0
- package/src/lang/en/language/BritishEnglish.js +91 -0
- package/src/lang/en/language/CanadianEnglish.js +70 -0
- package/src/lang/en/language/English.js +398 -0
- package/src/lang/en/language/NewZealandEnglish.js +44 -0
- package/src/lang/en/language/SouthAfricanEnglish.js +40 -0
- package/src/lang/en/language/id2prioBritishEnglish.js +6 -0
- package/src/lang/en/language/id2prioEnglish.js +333 -0
- package/src/lang/en/rules/AbstractEnglishSpellerRule.js +677 -0
- package/src/lang/en/rules/AbstractEnglishSpellerRuleData.js +778 -0
- package/src/lang/en/rules/AdvancedSynthesizerFilter.js +12 -0
- package/src/lang/en/rules/AdverbFilter.js +538 -0
- package/src/lang/en/rules/AmericanReplaceRule.js +57 -0
- package/src/lang/en/rules/AvsAnData.js +37 -0
- package/src/lang/en/rules/AvsAnRule.js +182 -0
- package/src/lang/en/rules/BritishReplaceRule.js +57 -0
- package/src/lang/en/rules/CompoundRule.js +150 -0
- package/src/lang/en/rules/ConsistentApostrophesRule.js +87 -0
- package/src/lang/en/rules/ContractionSpellingRule.js +64 -0
- package/src/lang/en/rules/DateCheckFilter.js +58 -0
- package/src/lang/en/rules/DateFilterHelper.js +51 -0
- package/src/lang/en/rules/EnglishConvertToSentenceCaseFilter.js +17 -0
- package/src/lang/en/rules/EnglishDashRule.js +42 -0
- package/src/lang/en/rules/EnglishDiacriticsRule.js +67 -0
- package/src/lang/en/rules/EnglishMultitokenSpeller.js +15 -0
- package/src/lang/en/rules/EnglishNumberInWordFilter.js +38 -0
- package/src/lang/en/rules/EnglishPartialPosTagFilter.js +29 -0
- package/src/lang/en/rules/EnglishPlainEnglishRule.js +67 -0
- package/src/lang/en/rules/EnglishRedundancyRule.js +67 -0
- package/src/lang/en/rules/EnglishRepeatedWordsRule.js +212 -0
- package/src/lang/en/rules/EnglishSpecificCaseRule.js +47 -0
- package/src/lang/en/rules/EnglishSuppressMisspelledSuggestionsFilter.js +12 -0
- package/src/lang/en/rules/EnglishUnpairedBracketsRule.js +25 -0
- package/src/lang/en/rules/EnglishUnpairedQuotesRule.js +41 -0
- package/src/lang/en/rules/EnglishWordRepeatBeginningRule.js +107 -0
- package/src/lang/en/rules/EnglishWordRepeatRule.js +126 -0
- package/src/lang/en/rules/EnglishWrongWordInContextRule.js +50 -0
- package/src/lang/en/rules/FindSuggestionsFilter.js +41 -0
- package/src/lang/en/rules/FutureDateFilter.js +25 -0
- package/src/lang/en/rules/LongSentenceRule.js +19 -0
- package/src/lang/en/rules/MorfologikAmericanSpellerRule.js +69 -0
- package/src/lang/en/rules/MorfologikAustralianSpellerRule.js +45 -0
- package/src/lang/en/rules/MorfologikBritishSpellerRule.js +47 -0
- package/src/lang/en/rules/MorfologikCanadianSpellerRule.js +45 -0
- package/src/lang/en/rules/MorfologikNewZealandSpellerRule.js +45 -0
- package/src/lang/en/rules/MorfologikSouthAfricanSpellerRule.js +45 -0
- package/src/lang/en/rules/NewYearDateFilter.js +25 -0
- package/src/lang/en/rules/NewZealandReplaceRule.js +56 -0
- package/src/lang/en/rules/NoDisambiguationEnglishPartialPosTagFilter.js +24 -0
- package/src/lang/en/rules/OrdinalSuffixFilter.js +33 -0
- package/src/lang/en/rules/SimpleReplaceProfanityRule.js +55 -0
- package/src/lang/en/rules/SimpleReplaceRule.js +46 -0
- package/src/lang/en/rules/StyleTooOftenUsedAdjectiveRule.js +58 -0
- package/src/lang/en/rules/StyleTooOftenUsedNounRule.js +58 -0
- package/src/lang/en/rules/StyleTooOftenUsedVerbRule.js +58 -0
- package/src/lang/en/rules/UnitConversionRule.js +47 -0
- package/src/lang/en/rules/UnitConversionRuleImperial.js +57 -0
- package/src/lang/en/rules/UnitConversionRuleUS.js +62 -0
- package/src/lang/en/rules/VariantInfo.js +23 -0
- package/src/lang/en/rules/WordCoherencyRule.js +40 -0
- package/src/lang/en/rules/YMDDateCheckFilter.js +25 -0
- package/src/lang/en/rules/YMDNewYearDateFilter.js +25 -0
- package/src/lang/en/rules/translation/BeoLingusTranslator.js +357 -0
- package/src/lang/en/rules/translation/Inflector.js +72 -0
- package/src/lang/en/synthesis/EnglishSynthesizer.js +109 -0
- package/src/lang/en/tagging/EnglishHybridDisambiguator.js +28 -0
- package/src/lang/en/tagging/EnglishTagger.js +78 -0
- package/src/lang/en/tokenizers/EnglishWordTokenizer.js +113 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#American words confused with British ones
|
|
2
|
+
#(c) 2012 Marcin Milkowski
|
|
3
|
+
#Licensed under LGPL
|
|
4
|
+
#The list includes mostly words from http://www.learnenglish.de/mistakes/USvsBrEnglish.html
|
|
5
|
+
# en-GB -> en-US
|
|
6
|
+
aeroplane=airplane
|
|
7
|
+
aeroplanes=airplanes
|
|
8
|
+
pram=stroller
|
|
9
|
+
prams=strollers
|
|
10
|
+
#toilet=!toilet #to be researched
|
|
11
|
+
#page=bellboy
|
|
12
|
+
toffee apple=candy apple
|
|
13
|
+
toffee apples=candy apples
|
|
14
|
+
#funfair=carnival
|
|
15
|
+
#current account=checking account
|
|
16
|
+
crisps=chips
|
|
17
|
+
candy floss=cotton candy
|
|
18
|
+
washing powder=detergent
|
|
19
|
+
nappies=diapers
|
|
20
|
+
#curtains=drapes
|
|
21
|
+
drink-driving=drunk driving
|
|
22
|
+
#lift=elevator #exception: grain elevator [AE=BE], verb "to lift"
|
|
23
|
+
compere=emcee
|
|
24
|
+
#rubber=eraser
|
|
25
|
+
fish fingers=fish sticks
|
|
26
|
+
#spare time=free time
|
|
27
|
+
motorway=freeway
|
|
28
|
+
#motorway=turnpike # duplicate ???
|
|
29
|
+
#rubbish=garbage
|
|
30
|
+
#suspenders=garters
|
|
31
|
+
#petrol=gas
|
|
32
|
+
#petrol=gasoline
|
|
33
|
+
#main road=highway #to be researched
|
|
34
|
+
#bonnet=hood #careful, those are also hats in AE and BE
|
|
35
|
+
#crossroads=intersection
|
|
36
|
+
#jam=jelly #possible problems with verb "jam" and non-food jelly
|
|
37
|
+
#rucksack=knapsack
|
|
38
|
+
removal van=moving van
|
|
39
|
+
removal vans=moving vans
|
|
40
|
+
#porridge=oatmeal
|
|
41
|
+
#knickers=panties #do not tell AE to say knickers=panties
|
|
42
|
+
#tights=pantyhose
|
|
43
|
+
traffic warden=parking enforcement officer
|
|
44
|
+
traffic wardens=parking enforcement officers
|
|
45
|
+
#jug=pitcher
|
|
46
|
+
#public school=private school
|
|
47
|
+
#bank holiday=public holiday
|
|
48
|
+
#handbag=purse
|
|
49
|
+
#during breaktime=at recess
|
|
50
|
+
#school report=report card
|
|
51
|
+
wellingtons=galoshes
|
|
52
|
+
#ladder=run #make into rule: only nylon context
|
|
53
|
+
#spring onion=scallion
|
|
54
|
+
Sellotape=Scotch tape
|
|
55
|
+
washbasin=bathroom sink
|
|
56
|
+
washbasins=bathroom sinks
|
|
57
|
+
mackintosh=slicker
|
|
58
|
+
#tram=streetcar
|
|
59
|
+
#braces=suspenders
|
|
60
|
+
#jumper=sweater
|
|
61
|
+
#last post=taps
|
|
62
|
+
drawing-pin=thumbtack
|
|
63
|
+
drawing pin=thumbtack
|
|
64
|
+
drawing-pins=thumbtacks
|
|
65
|
+
drawing pins=thumbtacks
|
|
66
|
+
#rubbish=trash
|
|
67
|
+
#dustbin=trash can
|
|
68
|
+
lorry=truck
|
|
69
|
+
lorries=trucks
|
|
70
|
+
#boot=trunk #make a rule! trunks and boots are a thing in both AE and BE
|
|
71
|
+
#vest=undershirt
|
|
72
|
+
#windscreen=windshield
|
|
73
|
+
holidaying=vacationing
|
|
74
|
+
holidayed=vacationed
|
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
|
|
3
|
+
<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
|
|
4
|
+
<!--
|
|
5
|
+
English Style Rules for LanguageTool
|
|
6
|
+
See tagset.txt for the meaning of the POS tags
|
|
7
|
+
Copyright (C) 2001-2023 Daniel Naber (http://www.danielnaber.de),
|
|
8
|
+
Marcin Miłkowski, and the LanguageTool contributors
|
|
9
|
+
|
|
10
|
+
This library is free software; you can redistribute it and/or
|
|
11
|
+
modify it under the terms of the GNU Lesser General Public
|
|
12
|
+
License as published by the Free Software Foundation; either
|
|
13
|
+
version 2.1 of the License, or (at your option) any later version.
|
|
14
|
+
|
|
15
|
+
This library is distributed in the hope that it will be useful,
|
|
16
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
18
|
+
Lesser General Public License for more details.
|
|
19
|
+
|
|
20
|
+
You should have received a copy of the GNU Lesser General Public
|
|
21
|
+
License along with this library; if not, write to the Free Software
|
|
22
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
|
23
|
+
USA
|
|
24
|
+
-->
|
|
25
|
+
<!--suppress CheckTagEmptyBody -->
|
|
26
|
+
|
|
27
|
+
<!DOCTYPE rules [
|
|
28
|
+
<!ENTITY apostrophe "['’`´‘ʻ]">
|
|
29
|
+
|
|
30
|
+
<!ENTITY weekdays "Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday">
|
|
31
|
+
<!ENTITY abbrevWeekdays "Mon|Mo|Tue|Tu|Wed|We|Thu|Th|Fri|Fr|Sat|Sa|Sun|Su">
|
|
32
|
+
<!ENTITY months "January|February|March|April|May|June|July|August|September|October|November|December">
|
|
33
|
+
<!ENTITY abbrevMonths "Jan|Feb|Mar|Apr|Jun|Jul|Aug|Sep|Sept|Oct|Nov|Dec">
|
|
34
|
+
|
|
35
|
+
<!ENTITY hyphen "(?:[-‑])">
|
|
36
|
+
<!ENTITY subordinating_conjunctions "after|although|as|because|before|if|lest|like|once|since|than|that|though|unless|until|whenever|where|whereas|wherever|whether|while|why"><!-- #2988 -->
|
|
37
|
+
<!ENTITY ambiguous_date '
|
|
38
|
+
<token regexp="yes">0?[1-9]|1[0-2]</token>
|
|
39
|
+
<token>/</token>
|
|
40
|
+
<token regexp="yes">0?[1-9]|1[0-2]</token>
|
|
41
|
+
<token>/</token>
|
|
42
|
+
<token regexp="yes">\d\d\d\d</token>
|
|
43
|
+
'>
|
|
44
|
+
<!-- "7 October 2014" and "7th October 2014" -->
|
|
45
|
+
<!ENTITY date_dmy '
|
|
46
|
+
<token regexp="yes">\d\d?(th)?</token>
|
|
47
|
+
<token regexp="yes">&months;|&abbrevMonths;</token>
|
|
48
|
+
<token regexp="yes">\d\d\d\d</token>
|
|
49
|
+
'>
|
|
50
|
+
<!ENTITY date_dmy_skip '
|
|
51
|
+
<token regexp="yes">\d\d?</token>
|
|
52
|
+
<token regexp="yes">&months;|&abbrevMonths;</token>
|
|
53
|
+
<token regexp="yes" skip="-1">\d\d\d\d</token>
|
|
54
|
+
'>
|
|
55
|
+
<!-- "October 7, 2014" -->
|
|
56
|
+
<!ENTITY date_mdy '
|
|
57
|
+
<token regexp="yes">&months;|&abbrevMonths;</token>
|
|
58
|
+
<token regexp="yes">\d\d?</token>
|
|
59
|
+
<token>,</token>
|
|
60
|
+
<token regexp="yes">\d\d\d\d</token>
|
|
61
|
+
'>
|
|
62
|
+
<!ENTITY date_mdy_skip '
|
|
63
|
+
<token regexp="yes">&months;|&abbrevMonths;</token>
|
|
64
|
+
<token regexp="yes">\d\d?</token>
|
|
65
|
+
<token>,</token>
|
|
66
|
+
<token regexp="yes" skip="-1">\d\d\d\d</token>
|
|
67
|
+
'>
|
|
68
|
+
<!-- "31/10/2014" -->
|
|
69
|
+
<!ENTITY date_dmy_numbers '
|
|
70
|
+
<token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
|
|
71
|
+
<token>/</token>
|
|
72
|
+
<token regexp="yes">0?[1-9]|1[0-2]</token>
|
|
73
|
+
<token>/</token>
|
|
74
|
+
<token regexp="yes">\d\d\d\d</token>
|
|
75
|
+
'>
|
|
76
|
+
<!ENTITY date_dmy_numbers_skip '
|
|
77
|
+
<token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
|
|
78
|
+
<token>/</token>
|
|
79
|
+
<token regexp="yes">0?[1-9]|1[0-2]</token>
|
|
80
|
+
<token>/</token>
|
|
81
|
+
<token regexp="yes" skip="-1">\d\d\d\d</token>
|
|
82
|
+
'>
|
|
83
|
+
<!-- "10/31/2014" -->
|
|
84
|
+
<!ENTITY date_mdy_numbers '
|
|
85
|
+
<token regexp="yes">0?[1-9]|1[0-2]</token>
|
|
86
|
+
<token>/</token>
|
|
87
|
+
<token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
|
|
88
|
+
<token>/</token>
|
|
89
|
+
<token regexp="yes">\d\d\d\d</token>
|
|
90
|
+
'>
|
|
91
|
+
<!ENTITY date_mdy_numbers_skip '
|
|
92
|
+
<token regexp="yes">0?[1-9]|1[0-2]</token>
|
|
93
|
+
<token>/</token>
|
|
94
|
+
<token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
|
|
95
|
+
<token>/</token>
|
|
96
|
+
<token regexp="yes" skip="-1">\d\d\d\d</token>
|
|
97
|
+
'>
|
|
98
|
+
]>
|
|
99
|
+
|
|
100
|
+
<rules lang="en" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/languagetool-org/languagetool/master/languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
101
|
+
<category id="STYLE" name="Style" type="style">
|
|
102
|
+
<rule id="HAPPY_CHRISTMAS" name="Happy (Merry) Christmas" tags="picky">
|
|
103
|
+
<antipattern>
|
|
104
|
+
<token>christmas</token>
|
|
105
|
+
<token regexp="yes">holidays?|days?|birthday|eve</token>
|
|
106
|
+
</antipattern>
|
|
107
|
+
<pattern>
|
|
108
|
+
<token>happy</token>
|
|
109
|
+
<token>christmas</token>
|
|
110
|
+
</pattern>
|
|
111
|
+
<message>It's more common to wish someone <suggestion>Merry Christmas</suggestion>.</message>
|
|
112
|
+
<url>https://www.countryliving.com/life/a37128/origin-of-merry-christmas/</url>
|
|
113
|
+
<example correction="Merry Christmas">I wish you a <marker>happy christmas</marker>.</example>
|
|
114
|
+
<example>Happy Christmas Days!</example>
|
|
115
|
+
</rule>
|
|
116
|
+
<rule id="THRU" name="thru / through">
|
|
117
|
+
<antipattern>
|
|
118
|
+
<token>thru</token>
|
|
119
|
+
<token regexp="yes">axles?</token>
|
|
120
|
+
</antipattern>
|
|
121
|
+
<pattern>
|
|
122
|
+
<token>thru</token>
|
|
123
|
+
</pattern>
|
|
124
|
+
<message>The word 'thru' is informal. Consider replacing it with <suggestion>through</suggestion>.</message>
|
|
125
|
+
<url>https://www.merriam-webster.com/dictionary/thru</url>
|
|
126
|
+
<example correction="through">I'm going <marker>thru</marker> hell.</example>
|
|
127
|
+
<example>A thru axle (TA) is a wheel attachment system that secures a wheel on a hub between a pair of dropouts on a bicycle frame or fork.</example>
|
|
128
|
+
</rule>
|
|
129
|
+
</category>
|
|
130
|
+
<category id="AMERICAN_ENGLISH_STYLE" name="American English Style" type="style">
|
|
131
|
+
<rulegroup id="EG_NO_COMMA" name="'e.g.' without a comma" tags="picky">
|
|
132
|
+
<rule>
|
|
133
|
+
<antipattern>
|
|
134
|
+
<token>e</token>
|
|
135
|
+
<token>.</token>
|
|
136
|
+
<token>g</token>
|
|
137
|
+
<token>.</token>
|
|
138
|
+
<token regexp="yes" spacebefore="no">[a-z]{1,2}</token>
|
|
139
|
+
</antipattern>
|
|
140
|
+
<antipattern>
|
|
141
|
+
<token>.</token>
|
|
142
|
+
<token spacebefore="no">e</token>
|
|
143
|
+
<token>.</token>
|
|
144
|
+
<token>g</token>
|
|
145
|
+
<token>.</token>
|
|
146
|
+
</antipattern>
|
|
147
|
+
<pattern>
|
|
148
|
+
<marker>
|
|
149
|
+
<token>e</token>
|
|
150
|
+
<token>.</token>
|
|
151
|
+
<token spacebefore="no">g</token>
|
|
152
|
+
<token>.</token>
|
|
153
|
+
</marker>
|
|
154
|
+
<token negate="yes">,</token>
|
|
155
|
+
</pattern>
|
|
156
|
+
<message>A comma is missing here.</message>
|
|
157
|
+
<suggestion>e.g.,</suggestion>
|
|
158
|
+
<short>Punctuation error</short>
|
|
159
|
+
<example>There are several grammar checkers for English, e.g., LanguageTool.</example>
|
|
160
|
+
<example correction="e.g.,">There are several grammar checkers for English, <marker>e.g.</marker> LanguageTool.</example>
|
|
161
|
+
<example>Davies, R.E.G. Delta - An Airline and Its Aircraft.</example>
|
|
162
|
+
</rule>
|
|
163
|
+
<rule>
|
|
164
|
+
<pattern>
|
|
165
|
+
<marker>
|
|
166
|
+
<token>eg</token>
|
|
167
|
+
</marker>
|
|
168
|
+
<token negate="yes" regexp="yes">,|\.</token>
|
|
169
|
+
</pattern>
|
|
170
|
+
<message>A comma and a dot are missing here.</message>
|
|
171
|
+
<suggestion>e.g.,</suggestion>
|
|
172
|
+
<short>Punctuation error</short>
|
|
173
|
+
<example>There are several grammar checkers for English, e.g., LanguageTool.</example>
|
|
174
|
+
<example correction="e.g.,">There are several grammar checkers for English, <marker>eg</marker> LanguageTool.</example>
|
|
175
|
+
</rule>
|
|
176
|
+
</rulegroup>
|
|
177
|
+
<rulegroup id="IE_NO_COMMA" name="'i.e.' without a comma" tags="picky">
|
|
178
|
+
<rule>
|
|
179
|
+
<pattern>
|
|
180
|
+
<marker>
|
|
181
|
+
<token>i</token>
|
|
182
|
+
<token>.</token>
|
|
183
|
+
<token spacebefore="no">e</token>
|
|
184
|
+
<token>.</token>
|
|
185
|
+
</marker>
|
|
186
|
+
<token negate="yes" regexp="yes">,|-|–|:|;|\.|\/</token>
|
|
187
|
+
</pattern>
|
|
188
|
+
<message>A comma is missing here.</message>
|
|
189
|
+
<suggestion>i.e.,</suggestion>
|
|
190
|
+
<short>Punctuation error</short>
|
|
191
|
+
<example>Who's responsible for providing public facilities, <marker>i.e.,</marker> a post office, library, etc. for the Northwest?</example>
|
|
192
|
+
<example correction="i.e.,">Who's responsible for providing public facilities, <marker>i.e.</marker> a post office, library, etc. for the Northwest?</example>
|
|
193
|
+
</rule>
|
|
194
|
+
<rule>
|
|
195
|
+
<antipattern>
|
|
196
|
+
<token>ie</token>
|
|
197
|
+
<token>:</token>
|
|
198
|
+
</antipattern>
|
|
199
|
+
<antipattern>
|
|
200
|
+
<token case_sensitive="yes">IE</token>
|
|
201
|
+
<token regexp="yes">\d+</token>
|
|
202
|
+
</antipattern>
|
|
203
|
+
<antipattern>
|
|
204
|
+
<token regexp="yes">the|in</token>
|
|
205
|
+
<token case_sensitive="yes">IE</token>
|
|
206
|
+
</antipattern>
|
|
207
|
+
<antipattern>
|
|
208
|
+
<token>.</token>
|
|
209
|
+
<token spacebefore="no">ie</token>
|
|
210
|
+
</antipattern>
|
|
211
|
+
<antipattern>
|
|
212
|
+
<token>ie</token>
|
|
213
|
+
<token>'s</token>
|
|
214
|
+
</antipattern>
|
|
215
|
+
<antipattern case_sensitive="yes">
|
|
216
|
+
<token>IE</token>
|
|
217
|
+
<token regexp="yes">[a-z].*</token>
|
|
218
|
+
</antipattern>
|
|
219
|
+
<pattern>
|
|
220
|
+
<marker>
|
|
221
|
+
<token>ie</token>
|
|
222
|
+
</marker>
|
|
223
|
+
<token negate="yes" regexp="yes">,|-|–|:|;|\.|\/</token>
|
|
224
|
+
</pattern>
|
|
225
|
+
<message>The comma and dots are missing here:<suggestion>i.e.,</suggestion>.</message>
|
|
226
|
+
<short>Punctuation error</short>
|
|
227
|
+
<example>Who's responsible for providing public facilities, <marker>i.e.,</marker> a post office, library, etc. for the Northwest?</example>
|
|
228
|
+
<example correction="i.e.,">Who's responsible for providing public facilities, <marker>ie</marker> a post office, library, etc. for the Northwest?</example>
|
|
229
|
+
<example>Atlantipedia.ie: Encyclopedic collection of information on Atlantis.</example>
|
|
230
|
+
</rule>
|
|
231
|
+
<rule>
|
|
232
|
+
<antipattern>
|
|
233
|
+
<token>.</token>
|
|
234
|
+
<token spacebefore="no">ie</token>
|
|
235
|
+
</antipattern>
|
|
236
|
+
<pattern>
|
|
237
|
+
<marker>
|
|
238
|
+
<token>ie</token>
|
|
239
|
+
<token>.</token>
|
|
240
|
+
</marker>
|
|
241
|
+
<token negate="yes">,</token>
|
|
242
|
+
</pattern>
|
|
243
|
+
<message>The comma and dots are missing here.</message>
|
|
244
|
+
<suggestion>i.e.,</suggestion>
|
|
245
|
+
<short>Punctuation error</short>
|
|
246
|
+
<example>Who's responsible for providing public facilities, <marker>i.e.,</marker> a post office, library, etc. for the Northwest?</example>
|
|
247
|
+
<example correction="i.e.,">Who's responsible for providing public facilities, <marker>ie.</marker> a post office, library, etc. for the Northwest?</example>
|
|
248
|
+
</rule>
|
|
249
|
+
</rulegroup>
|
|
250
|
+
<rule id="ETC_PERIOD" name="period after abbreviation 'etc.'">
|
|
251
|
+
<antipattern>
|
|
252
|
+
<token>etc</token>
|
|
253
|
+
<token regexp="yes">/|_|…|#</token>
|
|
254
|
+
</antipattern>
|
|
255
|
+
<antipattern>
|
|
256
|
+
<token regexp="yes">[/\\]</token>
|
|
257
|
+
<token spacebefore="no">etc</token>
|
|
258
|
+
</antipattern>
|
|
259
|
+
<antipattern>
|
|
260
|
+
<token>the</token>
|
|
261
|
+
<token>etc</token>
|
|
262
|
+
</antipattern>
|
|
263
|
+
<antipattern>
|
|
264
|
+
<token>etc</token>
|
|
265
|
+
<token regexp="yes">folders?|director(y|ies)</token>
|
|
266
|
+
</antipattern>
|
|
267
|
+
<antipattern>
|
|
268
|
+
<token>etc</token>
|
|
269
|
+
<token regexp="yes" spacebefore="no">[/\\]</token>
|
|
270
|
+
</antipattern>
|
|
271
|
+
<pattern>
|
|
272
|
+
<marker>
|
|
273
|
+
<token case_sensitive="yes">etc</token>
|
|
274
|
+
</marker>
|
|
275
|
+
<token><exception>.</exception></token>
|
|
276
|
+
</pattern>
|
|
277
|
+
<message>In American English, abbreviations like "etc." require a period.</message>
|
|
278
|
+
<suggestion>etc.</suggestion>
|
|
279
|
+
<url>https://languagetool.org/insights/post/spelling-etc-or-ect/</url>
|
|
280
|
+
<short>Abbreviation</short>
|
|
281
|
+
<example correction="etc.">Tennis, soccer, baseball, <marker>etc</marker> are outdoor games.</example>
|
|
282
|
+
<example correction="etc.">I use things like Java, Microsoft, Unix, <marker>etc</marker> at work.</example>
|
|
283
|
+
<example correction="etc.">Make sure you bring your fishing pole, tackle, bait, <marker>etc</marker> as we will not make any stops.</example>
|
|
284
|
+
<example correction="etc.">No check engine lights <marker>etc</marker>?</example>
|
|
285
|
+
<example correction="etc.">Removed the alarm listener and replaced with lights, <marker>etc</marker>, etc.</example>
|
|
286
|
+
<example>Process: 4264 ExecStart=/etc/rc.d/init.d/newrelic-daemon start (code=exited, status=0/SUCCESS)</example>
|
|
287
|
+
<example>DND_ETC__List1</example>
|
|
288
|
+
<example>Device Handlers, etc…</example>
|
|
289
|
+
<example>root@de1lvapp098p:/etc# ls -l /dev/disk/by-uuid</example>
|
|
290
|
+
<example>Diversity Dick Liebert reported that questions for the ETC survey are currently being developed.</example>
|
|
291
|
+
</rule>
|
|
292
|
+
<rule id="MISSING_COMMA_AFTER_YEAR" name="Potentially missing comma after year">
|
|
293
|
+
<pattern>
|
|
294
|
+
<token regexp="yes">&months;</token>
|
|
295
|
+
<token regexp="yes">[0123]?[0-9]</token>
|
|
296
|
+
<token min="0">,</token>
|
|
297
|
+
<marker>
|
|
298
|
+
<token regexp="yes">[0-9]{4}</token>
|
|
299
|
+
</marker>
|
|
300
|
+
<token regexp="yes">[a-z]+</token>
|
|
301
|
+
</pattern>
|
|
302
|
+
<message>Some style guides suggest that commas should set off the year in a month-day-year date.</message>
|
|
303
|
+
<suggestion>\4,</suggestion>
|
|
304
|
+
<url>http://www.thepunctuationguide.com/comma.html#dates</url>
|
|
305
|
+
<short>Potentially missing comma</short>
|
|
306
|
+
<example correction="2011,">The meeting scheduled for July 10, <marker>2011</marker> was canceled.</example>
|
|
307
|
+
<example>My birthday is October 8, <marker>1983,</marker> but I usually do not celebrate.</example>
|
|
308
|
+
</rule>
|
|
309
|
+
|
|
310
|
+
<rulegroup id="TOILET" name="offensive word 'toilet'">
|
|
311
|
+
<rule>
|
|
312
|
+
<pattern>
|
|
313
|
+
<token>toilet</token>
|
|
314
|
+
<token regexp='yes' min="0">rooms?</token>
|
|
315
|
+
</pattern>
|
|
316
|
+
<message>This expression can be considered mildly offensive (especially in Canadian and American English).</message>
|
|
317
|
+
<suggestion>rest\2</suggestion>
|
|
318
|
+
<suggestion>wash\2</suggestion>
|
|
319
|
+
<suggestion>bath\2</suggestion>
|
|
320
|
+
<suggestion>powder \2</suggestion>
|
|
321
|
+
<url>http://www.englishteachermelanie.com/vocabulary-do-not-call-it-toilet/</url>
|
|
322
|
+
<example correction="restrooms|washrooms|bathrooms|powder rooms">Have you seen the <marker>toilet rooms</marker>?</example>
|
|
323
|
+
</rule>
|
|
324
|
+
<rule>
|
|
325
|
+
<pattern>
|
|
326
|
+
<token regexp="yes">go|visit|on|use</token>
|
|
327
|
+
<token min="0">to</token>
|
|
328
|
+
<token regexp="yes">the|a</token>
|
|
329
|
+
<marker>
|
|
330
|
+
<token>
|
|
331
|
+
toilet
|
|
332
|
+
<exception scope="next" regexp="yes">game|song|paper|bowls?|bar|store|seat|plunger|flange|water</exception>
|
|
333
|
+
</token>
|
|
334
|
+
</marker>
|
|
335
|
+
</pattern>
|
|
336
|
+
<message>This expression can be considered mildly offensive (especially in Canadian and American English).</message>
|
|
337
|
+
<suggestion>restroom</suggestion>
|
|
338
|
+
<suggestion>washroom</suggestion>
|
|
339
|
+
<suggestion>bathroom</suggestion>
|
|
340
|
+
<suggestion>powder room</suggestion>
|
|
341
|
+
<url>http://www.englishteachermelanie.com/vocabulary-do-not-call-it-toilet/</url>
|
|
342
|
+
<example correction="restroom|washroom|bathroom|powder room">I need to go to the <marker>toilet</marker>.</example>
|
|
343
|
+
</rule>
|
|
344
|
+
</rulegroup>
|
|
345
|
+
<rule id="IVE_I_HAVE_AMERICAN_STYLE" name="I've (I have) two tickets to see the Dodgers tonight">
|
|
346
|
+
<antipattern>
|
|
347
|
+
<token>'ve</token>
|
|
348
|
+
<token>at</token>
|
|
349
|
+
<token>least</token>
|
|
350
|
+
<token postag="VBN" />
|
|
351
|
+
<example>Until now, everything that's come out I've at least heard of or had some idea of what they were from the company's filings or discussions.</example>
|
|
352
|
+
</antipattern>
|
|
353
|
+
<antipattern>
|
|
354
|
+
<token skip="1">'ve</token>
|
|
355
|
+
<token postag="VBN" />
|
|
356
|
+
<example>I've fact checked the IM and have a couple of questions for you and some language suggestions.</example>
|
|
357
|
+
<example>I've hand selected these 10 matches below with you in mind.</example>
|
|
358
|
+
</antipattern>
|
|
359
|
+
<antipattern>
|
|
360
|
+
<token>'ve</token>
|
|
361
|
+
<token regexp="yes" postag="NN:UN">.+e</token> <!-- because they're not tagged as VB -->
|
|
362
|
+
<example>I've place electronic copies of the Desert Sky warranty agreement on the service2 network under the TSA_and_aggreement folder for Desert Sky.</example>
|
|
363
|
+
<example>In addition, I've note "Other Risks/Opportunities" for the quarter that could have significant impacts on our ultimate results.</example>
|
|
364
|
+
<example>I've place another call into David and let him know that the information we received included most points except for Tomcat.</example>
|
|
365
|
+
<example>As I am sure you've notice, this is not a textbook.</example>
|
|
366
|
+
</antipattern>
|
|
367
|
+
<antipattern>
|
|
368
|
+
<token>'ve</token>
|
|
369
|
+
<token min="0" postag="DT" />
|
|
370
|
+
<token min="0" postag="J.*|RB" postag_regexp="yes" />
|
|
371
|
+
<token postag="VBN" />
|
|
372
|
+
<example>I've clean forgotten.</example>
|
|
373
|
+
<example>You've all underestimated Tom.</example>
|
|
374
|
+
<example>I've already seen it.</example>
|
|
375
|
+
</antipattern>
|
|
376
|
+
<pattern>
|
|
377
|
+
<marker>
|
|
378
|
+
<token regexp="yes">I|you|we|they</token>
|
|
379
|
+
<token>'ve</token>
|
|
380
|
+
</marker>
|
|
381
|
+
<token chunk_re="B-NP.*" />
|
|
382
|
+
<token><exception>'d</exception></token>
|
|
383
|
+
</pattern>
|
|
384
|
+
<message>In American English, "\1" and "have" do not usually form a contraction unless they're followed by a past participle.</message>
|
|
385
|
+
<suggestion>\1 have</suggestion>
|
|
386
|
+
<suggestion>\1\2 got</suggestion>
|
|
387
|
+
<url>https://languagetool.org/insights/post/grammar-contractions/</url>
|
|
388
|
+
<example correction="I have|I've got"><marker>I've</marker> two tickets to see the Dodgers tonight.</example>
|
|
389
|
+
<example correction="you have|you've got">I've got more pounds to my name than <marker>you've</marker> hairs on your head.</example>
|
|
390
|
+
<example correction="We have|We've got"><marker>We've</marker> a lot to thank Tom for.</example>
|
|
391
|
+
<example correction="they have|they've got">Seeing as they're poor, <marker>they've</marker> no choice but to work their hardest.</example>
|
|
392
|
+
<example>Off photos he took we've ID'd six possible locations for Blankfein's safe house.</example>
|
|
393
|
+
</rule>
|
|
394
|
+
<rule id="SAY_SORRY" name="say sorry (apologize)">
|
|
395
|
+
<antipattern>
|
|
396
|
+
<token postag="PCT|SENT_START" postag_regexp="yes" />
|
|
397
|
+
<token>say</token>
|
|
398
|
+
<token>sorry</token>
|
|
399
|
+
<token>!</token>
|
|
400
|
+
</antipattern>
|
|
401
|
+
<antipattern>
|
|
402
|
+
<token>wanna</token>
|
|
403
|
+
<token>say</token>
|
|
404
|
+
</antipattern>
|
|
405
|
+
<pattern>
|
|
406
|
+
<marker>
|
|
407
|
+
<token inflected="yes">say</token>
|
|
408
|
+
<token>sorry</token>
|
|
409
|
+
</marker>
|
|
410
|
+
</pattern>
|
|
411
|
+
<message>Consider using <suggestion><match no="1" postag=".*" postag_regexp="yes">apologize</match></suggestion> to improve your wording.</message>
|
|
412
|
+
<example correction="apologize">I just wanted to <marker>say sorry</marker> for everything I did.</example>
|
|
413
|
+
</rule>
|
|
414
|
+
<rulegroup id="THANKS_FOR_CONTACTING_ME" name="Thanks for contacting us (reaching out to us)">
|
|
415
|
+
<!-- TODO: maybe picky -->
|
|
416
|
+
<rule>
|
|
417
|
+
<pattern>
|
|
418
|
+
<token regexp="yes" skip="3">thanks?</token>
|
|
419
|
+
<token>for</token>
|
|
420
|
+
<token postag="RB" min="0" />
|
|
421
|
+
<marker>
|
|
422
|
+
<token regexp="yes">contacting|e-?mailing</token>
|
|
423
|
+
<token regexp="yes">us|me</token>
|
|
424
|
+
</marker>
|
|
425
|
+
<token>
|
|
426
|
+
<exception regexp="yes">about|with</exception>
|
|
427
|
+
</token>
|
|
428
|
+
</pattern>
|
|
429
|
+
<message>Consider an alternative to improve your overall wording. The verb "\4" is considered neutral, while "reach out" is about seeking a positive relationship.</message>
|
|
430
|
+
<suggestion>reaching out to \5</suggestion>
|
|
431
|
+
<example correction="reaching out to us">Thank you for <marker>contacting us</marker>.</example>
|
|
432
|
+
<example>Anne, Thanks for contacting me about this.</example>
|
|
433
|
+
</rule>
|
|
434
|
+
<rule default="off">
|
|
435
|
+
<pattern>
|
|
436
|
+
<token regexp="yes" skip="3">thanks?</token>
|
|
437
|
+
<token>for</token>
|
|
438
|
+
<marker>
|
|
439
|
+
<token>your</token>
|
|
440
|
+
<token regexp="yes">e-?mail|message</token>
|
|
441
|
+
</marker>
|
|
442
|
+
<token postag="CC|PCT|TO" postag_regexp="yes" />
|
|
443
|
+
</pattern>
|
|
444
|
+
<message>Consider an alternative to improve your overall wording.</message>
|
|
445
|
+
<suggestion>reaching out</suggestion>
|
|
446
|
+
<suggestion>reaching out to us</suggestion>
|
|
447
|
+
<example correction="reaching out|reaching out to us">Thank you for <marker>your email</marker>.</example>
|
|
448
|
+
</rule>
|
|
449
|
+
<rule>
|
|
450
|
+
<pattern>
|
|
451
|
+
<token regexp="yes" skip="3">thanks?</token>
|
|
452
|
+
<token>for</token>
|
|
453
|
+
<marker>
|
|
454
|
+
<token regexp="yes">getting|stepping</token>
|
|
455
|
+
<token>in</token>
|
|
456
|
+
<token>contact</token>
|
|
457
|
+
<token>with</token>
|
|
458
|
+
<token regexp="yes">us|me</token>
|
|
459
|
+
</marker>
|
|
460
|
+
</pattern>
|
|
461
|
+
<message>Consider an alternative to improve your overall wording.</message>
|
|
462
|
+
<suggestion>reaching out to \7</suggestion>
|
|
463
|
+
<example correction="reaching out to us">Thank you for <marker>getting in contact with us</marker>.</example>
|
|
464
|
+
</rule>
|
|
465
|
+
<rule>
|
|
466
|
+
<pattern>
|
|
467
|
+
<token regexp="yes" skip="3">thanks?</token>
|
|
468
|
+
<token>for</token>
|
|
469
|
+
<marker>
|
|
470
|
+
<token regexp="yes">getting|stepping</token>
|
|
471
|
+
<token>in</token>
|
|
472
|
+
<token>contact</token>
|
|
473
|
+
</marker>
|
|
474
|
+
<token postag="CC|PCT|TO" postag_regexp="yes" />
|
|
475
|
+
</pattern>
|
|
476
|
+
<message>Consider an alternative to improve your overall wording.</message>
|
|
477
|
+
<suggestion>reaching out</suggestion>
|
|
478
|
+
<example correction="reaching out">Thank you for <marker>getting in contact</marker>.</example>
|
|
479
|
+
</rule>
|
|
480
|
+
<rule>
|
|
481
|
+
<pattern>
|
|
482
|
+
<token regexp="yes">will|'ll</token>
|
|
483
|
+
<marker>
|
|
484
|
+
<token>contact</token>
|
|
485
|
+
<token regexp="yes">you|me</token>
|
|
486
|
+
</marker>
|
|
487
|
+
<token regexp="yes">regarding|to|\.</token>
|
|
488
|
+
</pattern>
|
|
489
|
+
<message>Consider an alternative to improve your overall wording. The verb "\2" is considered neutral, while "reach out" is about seeking a positive relationship.</message>
|
|
490
|
+
<suggestion>reach out to \3</suggestion>
|
|
491
|
+
<suggestion>inform \3</suggestion>
|
|
492
|
+
<suggestion>let \3 know</suggestion>
|
|
493
|
+
<example correction="reach out to you|inform you|let you know">I will <marker>contact you</marker> regarding next week's meeting.</example>
|
|
494
|
+
</rule>
|
|
495
|
+
<rule>
|
|
496
|
+
<pattern>
|
|
497
|
+
<token regexp="yes">can|could</token>
|
|
498
|
+
<token>you</token>
|
|
499
|
+
<token postag="RB" min="0" />
|
|
500
|
+
<marker>
|
|
501
|
+
<token>contact</token>
|
|
502
|
+
<token regexp="yes">him|her|you|them|my|y?our|their|his</token>
|
|
503
|
+
</marker>
|
|
504
|
+
</pattern>
|
|
505
|
+
<message>Consider an alternative to improve your overall wording. The verb "contact" is considered neutral, while "reach out" is about seeking a positive relationship.</message>
|
|
506
|
+
<suggestion>reach out to \5</suggestion>
|
|
507
|
+
<suggestion>inform \5</suggestion>
|
|
508
|
+
<example correction="reach out to our|inform our">Could you please <marker>contact our</marker> lawyer?</example>
|
|
509
|
+
</rule>
|
|
510
|
+
</rulegroup>
|
|
511
|
+
<rule id="EX_FORMER" name="ex- (former)">
|
|
512
|
+
<pattern>
|
|
513
|
+
<marker>
|
|
514
|
+
<token>ex</token>
|
|
515
|
+
</marker>
|
|
516
|
+
<token postag='JJ.*' postag_regexp='yes'><exception regexp='yes'>officio|parte|ante|on|post|tempore|cathedra</exception></token>
|
|
517
|
+
<token postag='NN.*' postag_regexp='yes'></token>
|
|
518
|
+
</pattern>
|
|
519
|
+
<message>Consider using <suggestion>former</suggestion> instead of "ex".</message>
|
|
520
|
+
<example correction='former'>He was a <marker>ex</marker> political prisoner.</example>
|
|
521
|
+
<example>He was an ex officio member.</example>
|
|
522
|
+
</rule>
|
|
523
|
+
</category>
|
|
524
|
+
</rules>
|