├── tricky_en_GB.txt ├── tricky_en_US.txt ├── sciencywords.txt ├── detex.sh ├── LICENSE ├── languagecheck_overleaf.sh ├── tricky_violence.txt ├── syllables_en.py ├── README.rst ├── tricky_style-check.txt ├── tricky.txt ├── tricky_extra.txt ├── languagecheck.py └── easy_words.txt /tricky_en_GB.txt: -------------------------------------------------------------------------------- 1 | ### British english 2 | on the order of -> of the order 3 | on the order of -> in the order of 4 | e.g., -> e.g. (no comma in BE) 5 | i.e., -> e.g. (no comma in BE) 6 | -------------------------------------------------------------------------------- /tricky_en_US.txt: -------------------------------------------------------------------------------- 1 | ### North Americal English 2 | of the order -> on the order of 3 | in the order of -> on the order of 4 | e.g. -> e.g., (comma after in AE) 5 | i.e. -> e.g., (comma after in AE) 6 | -------------------------------------------------------------------------------- /sciencywords.txt: -------------------------------------------------------------------------------- 1 | # words that are used in the scientific literature but are not in common dictionaries 2 | redshift 3 | redshifts 4 | degeneracy 5 | degeneracies 6 | outlier 7 | outliers 8 | photometric 9 | photometry 10 | quantile 11 | quantiles 12 | metallicity 13 | metallicities 14 | arcmin 15 | arcsec 16 | priors 17 | # latex words that are false positives 18 | .pdf 19 | https 20 | graphicx 21 | lcc 22 | lccc 23 | lcccc 24 | ccc 25 | cccc 26 | ccccc 27 | cccccc 28 | ccccccc 29 | cccccccc 30 | ccccccccc 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /detex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | input=$1 4 | 5 | if [ -z "$input" ]; then 6 | echo "SYNAPSIS: $0 mylatex.tex" 7 | echo 8 | echo "Primarily runs detex mylatex.tex > mylatex.txt" 9 | echo "Additionally, extracts texts from figure and table captions." 10 | exit 1 11 | fi 12 | 13 | output=${input/.tex/.txt} 14 | if [[ "$input" == "$output" ]]; then 15 | output="$input".txt 16 | fi 17 | 18 | #if [ -e "$output" ]; then 19 | #echo "Output file $output already exists, not overwriting. Please delete it first." 20 | #exit 1 21 | #fi 22 | 23 | echo "detexing main text ..." 24 | 25 | detex $input > $output || exit 1 26 | 27 | echo "extracting figure captions ..." 28 | 29 | < $input sed 's/%.*//g' | 30 | grep -Pzo '(?s)\\caption\{.*?\\end\{' | 31 | sed 's,\label{[^}]*},,g' | 32 | sed 's,\ref{[^}]*},REF,g' | 33 | tr '\n' ' ' | 34 | sed 's,\\caption{,\n,g' | 35 | sed 's, *\\end{.*,,g'| 36 | sed 's,$,\n,g' | 37 | detex >> $output || exit 2 38 | 39 | echo "$output created." 40 | 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2022, Johannes Buchner 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | 9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 10 | 11 | -------------------------------------------------------------------------------- /languagecheck_overleaf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$1" ]; then 4 | echo "SYNAPSIS: $0 overleafurl [maintexfile]" 5 | echo 6 | echo "Example: bash languagecheck_overleaf.sh https://www.overleaf.com/1234567890abcdef mypaper.tex" 7 | exit 1 8 | fi 9 | rm -rf overleaf_repo 10 | D=$(dirname $0) 11 | url=$1 12 | giturl=${url/www.overleaf.com/git.overleaf.com/} 13 | echo "Fetching overleaf repository ${giturl} (with git clone)..." 14 | git clone --depth=1 ${giturl} overleaf_repo 15 | 16 | pushd overleaf_repo 17 | if [ -z "$2" ]; then 18 | if [ "$(ls *.tex|wc -l)" == "1" ] 19 | then 20 | texname=$(ls *.tex|head -n1) 21 | texname=${texname/.tex/} 22 | echo "Guessing manuscript name: '$texname'" 23 | else 24 | echo "Multiple manuscript names: '$(ls *.tex)'" 25 | echo "call this script again with either: " 26 | for texname in *.tex; do 27 | echo " - bash $0 $url $texname" 28 | done 29 | exit 1 30 | 31 | fi 32 | else 33 | texname=$2 34 | texname=${texname/.tex/} 35 | fi 36 | popd 37 | echo "Extracting text from "$texname.tex" file (with detex)..." 38 | bash $D/detex.sh overleaf_repo/$texname.tex || exit 1 39 | pushd overleaf_repo 40 | echo "Running pdflatex on $texname" 41 | pdflatex -interaction batchmode $texname 2>/dev/null 42 | echo "Running bibtex on $texname" 43 | bibtex $texname || exit 1 44 | echo "Running pdflatex again on $texname" 45 | pdflatex -interaction batchmode $texname 2>/dev/null 46 | pdflatex -interaction batchmode $texname || exit 1 47 | popd 48 | echo 49 | echo "Building PDF of the paper seems to have succeeded!" 50 | echo 51 | 52 | python ${D}/languagecheck.py overleaf_repo/$texname.{tex,pdf} || exit 1 53 | 54 | xdg-open overleaf_repo/${texname}.tex_index.html 55 | 56 | -------------------------------------------------------------------------------- /tricky_violence.txt: -------------------------------------------------------------------------------- 1 | ### Words with violent connotations 2 | aggressive -> is there a word without connotation of violence? 3 | attack -> is there a word without connotation of violence? 4 | battle -> is there a word without connotation of violence? 5 | brutal -> is there a word without connotation of violence? 6 | bully -> is there a word without connotation of harassment? 7 | choking -> is there a word without connotation of violence? 8 | choke -> is there a word without connotation of violence? 9 | destroy -> is there a word without connotation of violence? 10 | punch -> is there a word without connotation of violence? 11 | enforce -> is there a word without connotation of violence? 12 | forced -> is there a word without connotation of violence? 13 | harass -> is there a word without connotation of harassment? 14 | invasion -> is there a word without connotation of violence? 15 | kill -> is there a word without connotation of violence? 16 | malicious -> is there a word without connotation of mistreatment? 17 | penetrate -> is there a word without connotation of violence? 18 | provoke -> is there a word without connotation of conflict? 19 | provocation -> is there a word without connotation of conflict? 20 | obese -> is there a word without connotation? 21 | relentless -> is there a word without connotation of conflict? 22 | ruthless -> is there a word without connotation of conflict? 23 | sabotage -> is there a word without connotation of violence? 24 | savage -> is there a word without connotation of violence? 25 | seizure -> is there a word without a violence/medical connotation? 26 | stalk -> is there a word without connotation of harassment? 27 | strangle -> is there a word without connotation of violence? such as: reduce 28 | strangulation -> is there a word without connotation of violence? such as: reduction 29 | suffer -> is there a word without connotation of violence? such as: undergo 30 | terror -> is there a word without connotation of violence? 31 | trauma -> is there a word without connotation of mistreatment? 32 | threat -> is there a word without connotation of violence? 33 | violation -> is there a word without connotation of violence? 34 | violent -> is there a word without connotation of violence? 35 | stupid -> is there a word without ableist connotations? such as: awful 36 | retarded -> is there a word without ableist connotations? such as: delayed 37 | crippled -> is there a word without ableist connotations? such as: dismantled 38 | 39 | -------------------------------------------------------------------------------- /syllables_en.py: -------------------------------------------------------------------------------- 1 | """ 2 | Fallback syllable counter 3 | 4 | This is based on the algorithm in Greg Fast's perl module 5 | Lingua::EN::Syllable. 6 | 7 | Apache 2 license: https://github.com/mmautner/readability/blob/master/LICENSE.txt 8 | """ 9 | 10 | import string, re, os 11 | 12 | specialSyllables_en = """tottered 2 13 | chummed 1 14 | peeped 1 15 | moustaches 2 16 | shamefully 3 17 | messieurs 2 18 | satiated 4 19 | sailmaker 4 20 | sheered 1 21 | disinterred 3 22 | propitiatory 6 23 | bepatched 2 24 | particularized 5 25 | caressed 2 26 | trespassed 2 27 | sepulchre 3 28 | flapped 1 29 | hemispheres 3 30 | pencilled 2 31 | motioned 2 32 | poleman 2 33 | slandered 2 34 | sombre 2 35 | etc 4 36 | sidespring 2 37 | mimes 1 38 | effaces 2 39 | mr 2 40 | mrs 2 41 | ms 1 42 | dr 2 43 | st 1 44 | sr 2 45 | jr 2 46 | truckle 2 47 | foamed 1 48 | fringed 2 49 | clattered 2 50 | capered 2 51 | mangroves 2 52 | suavely 2 53 | reclined 2 54 | brutes 1 55 | effaced 2 56 | quivered 2 57 | h'm 1 58 | veriest 3 59 | sententiously 4 60 | deafened 2 61 | manoeuvred 3 62 | unstained 2 63 | gaped 1 64 | stammered 2 65 | shivered 2 66 | discoloured 3 67 | gravesend 2 68 | 60 2 69 | lb 1 70 | unexpressed 3 71 | greyish 2 72 | unostentatious 5 73 | """ 74 | 75 | fallback_cache = {} 76 | 77 | fallback_subsyl = ["cial", "tia", "cius", "cious", "gui", "ion", "iou", 78 | "sia$", ".ely$"] 79 | 80 | fallback_addsyl = ["ia", "riet", "dien", "iu", "io", "ii", 81 | "[aeiouy]bl$", "mbl$", 82 | "[aeiou]{3}", 83 | "^mc", "ism$", 84 | "(.)(?!\\1)([aeiouy])\\2l$", 85 | "[^l]llien", 86 | "^coad.", "^coag.", "^coal.", "^coax.", 87 | "(.)(?!\\1)[gq]ua(.)(?!\\2)[aeiou]", 88 | "dnt$"] 89 | 90 | 91 | # Compile our regular expressions 92 | for i in range(len(fallback_subsyl)): 93 | fallback_subsyl[i] = re.compile(fallback_subsyl[i]) 94 | for i in range(len(fallback_addsyl)): 95 | fallback_addsyl[i] = re.compile(fallback_addsyl[i]) 96 | 97 | def _normalize_word(word): 98 | return word.strip().lower() 99 | 100 | # Read our syllable override file and stash that info in the cache 101 | for line in specialSyllables_en.splitlines(): 102 | line = line.strip() 103 | if line: 104 | toks = line.split() 105 | assert len(toks) == 2 106 | fallback_cache[_normalize_word(toks[0])] = int(toks[1]) 107 | 108 | def count(word): 109 | word = _normalize_word(word) 110 | if not word: 111 | return 0 112 | 113 | # Check for a cached syllable count 114 | count = fallback_cache.get(word, -1) 115 | if count > 0: 116 | return count 117 | 118 | # Remove final silent 'e' 119 | if word[-1] == "e": 120 | word = word[:-1] 121 | 122 | # Count vowel groups 123 | count = 0 124 | prev_was_vowel = 0 125 | for c in word: 126 | is_vowel = c in ("a", "e", "i", "o", "u", "y") 127 | if is_vowel and not prev_was_vowel: 128 | count += 1 129 | prev_was_vowel = is_vowel 130 | 131 | # Add & subtract syllables 132 | for r in fallback_addsyl: 133 | if r.search(word): 134 | count += 1 135 | for r in fallback_subsyl: 136 | if r.search(word): 137 | count -= 1 138 | 139 | # Cache the syllable count 140 | fallback_cache[word] = count 141 | 142 | return count 143 | 144 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | Language checking for scientific papers 2 | -------------------------------------------- 3 | 4 | This program attempts to assist you in improving your paper before submission. 5 | 6 | Features 7 | --------- 8 | 9 | * Can analyse any LaTeX papers, and Overleaf projects. 10 | * Makes automated reports to point you to improvements: 11 | 12 | * Word level: 13 | 14 | * find common grammar mistakes, like wrong prepositions 15 | * find wordy phrases and suggest replacements 16 | * a vs an 17 | * spell-check (using hunspell) 18 | 19 | * Sentence level: 20 | 21 | * find long, wordy sentences 22 | * check topic sentences 23 | 24 | * Paragraph level: 25 | 26 | * find tense inconsistencies 27 | 28 | * Paper level: 29 | 30 | * check visual impression of paper 31 | 32 | * All analysis is done offline -- your text does not leave your computer. 33 | * Supports British and American English, but focusses on issues applying to both. 34 | 35 | Note that there are false positives -- only you can decide whether a 36 | change would make sense, the reports only point out potential issues. 37 | 38 | If you find some rules useless (too many false positives), or you want to add more, please send a pull request! 39 | 40 | Demo output 41 | ------------- 42 | 43 | Example analysis (of an early draft of `this paper `_): 44 | 45 | * `Example report for misused phrases `_ 46 | * `Overview of all reports `_ 47 | 48 | Requirements 49 | ------------- 50 | 51 | * python 52 | * convert command (ImageMagick): Install with your distribution 53 | * nltk: Install with pip 54 | * nltk data: Install with python -m nltk.downloader all 55 | * detex command (usually comes with LaTeX) 56 | * pyhunspell (optional): Install with pip 57 | 58 | Installation 59 | -------------- 60 | 61 | These commands should not give you an error:: 62 | 63 | $ which convert 64 | $ which python 65 | $ which detex 66 | $ which hunspell 67 | $ ls /usr/share/hunspell/{en_US,en_UK}.{dic,aff} 68 | 69 | Then install the python packages and data:: 70 | 71 | $ pip install pyhunspell --user 72 | $ pip install nltk --user 73 | $ python -m nltk.downloader cmudict stopwords punkt_tab averaged_perceptron_tagger_eng 74 | 75 | Usage 76 | -------------- 77 | 78 | *Using directly*: 79 | 80 | * create PDF from your latex file -> mypaper.pdf 81 | 82 | * For example, run "pdflatex mypaper.tex" 83 | 84 | * use detex to create pure text file -> mypaper.txt 85 | 86 | * For example, run "detex mypaper.tex > mypaper.txt". You need detex installed. 87 | * This does not capture figure captions. The detex.sh script can help you include those texts, "bash detex.sh mypaper.tex". You still need detex installed 88 | 89 | * run $ python languagecheck.py mydir/mypaper.txt mydir/mypaper.pdf 90 | * open with a web browser mypaper_index.html to see all reports 91 | 92 | *Using with Overleaf*:: 93 | 94 | $ bash languagecheck_overleaf.sh 95 | # for example: 96 | $ bash languagecheck_overleaf.sh https://www.overleaf.com/123456789 mypaper.tex 97 | 98 | See also 99 | --------- 100 | 101 | * style-check, a similar program written in Ruby: https://github.com/nspring/style-check/ 102 | * Statistics checklist: Check for common statistics mistakes with this checklist 103 | http://astrost.at/istics/minimal-statistics-checklist.html 104 | 105 | -------------------------------------------------------------------------------- /tricky_style-check.txt: -------------------------------------------------------------------------------- 1 | ### Bad words 2 | fashion -> ! 3 | behavioral -> ! 4 | impact -> "consequences", "effect", "result", though NSF likes "research impact" 5 | tackle -> "tackle" (a problem) is wimpy for "solve" or a tired metaphor for "address a challenge". 6 | thusly -> "thus" or "this way" or "like this" http://www.bartleby.com/64/C003/0282.html 7 | transpire -> "happen" 8 | so-called -> can be abused; it's negative. 9 | necessitate -> require. 10 | necessitated -> required. 11 | necessitates -> requires. 12 | loosing -> you almost certainly mean "losing". use "loosening" otherwise. 13 | aforementioned -> too pretentious. 14 | #important to -> "valued by"? 15 | notion -> avoid this weak phrase. 16 | 17 | ### Cliche 18 | dig deeper -> cliche 19 | attack these problems -> reword 20 | crack these problems -> reword 21 | attack this problem -> reword 22 | crack this problem -> reword 23 | 24 | 25 | ### spelling 26 | asess -> spelling 27 | elimintate -> spelling 28 | enginner -> spelling 29 | experiements -> spelling 30 | measurment -> spelling 31 | pathlogies -> spelling 32 | secrurity -> spelling 33 | taht -> spelling 34 | teh -> spelling 35 | thrid -> spelling 36 | accrurate -> spelling 37 | prevalance -> prevalence 38 | upto -> not a word, should be "up to" 39 | til -> not a word, should be "until" 40 | thes -> these/the 41 | accurarte -> spelling 42 | suppots -> spelling 43 | privledge -> "privilege" I misspell it every way possible. 44 | privlege -> "privilege" I misspell it every way possible. 45 | priviledge -> "privilege" I misspell it every way possible. 46 | infomation -> spelling 47 | queueing -> I'd love to spell it this way, but spellchecker whines. 48 | vatnage -> argh. 49 | hte -> spelling 50 | acknowledgement -> acknowledgment, though what you have is technically legal, despite ispell. 51 | acknowlegement -> needs a d. 52 | acknowlegment -> needs a d. 53 | acknowledgements -> acknowledgment , though what you have is technically legal, despite ispell. 54 | acknowlegements -> needs a d. 55 | acknowlegments -> needs a d. 56 | targetted -> "targeted" 57 | desireable -> "desirable" 58 | fullproof -> fool-proof 59 | 60 | ### Passive voice 61 | it is possible to -> passive voice, try: "can" 62 | can be evaluated -> avoid passive: We evaluated 63 | it is possible that -> "may" 64 | as can be seen in -> X shows that Y 65 | there needs to be -> passive voice in a bad way 66 | was designed -> try active voice 67 | it may be -> passive "it" 68 | it is important that -> try active: X is important because Y 69 | 70 | ### Barass 71 | absolutely essential -> essential 72 | an actual investigation -> an investigation 73 | almost unique -> rare 74 | completely surrounded -> surrounded 75 | conclusive proof -> proof 76 | an essential condition -> a condition 77 | hard evidence -> evidence 78 | they are in fact -> they are 79 | few in number -> few 80 | a positive identification -> an identification 81 | quite obvious -> obvious 82 | real problems -> problems 83 | streamlined in appearance -> streamlined 84 | quite unique -> unique 85 | every individual one -> every one 86 | the reason for this is because -> because 87 | reason why -> reason -awu 88 | reverted back -> reverted 89 | related to each other -> related 90 | each individual person -> each person 91 | in actual fact -> in fact 92 | a specific example -> an example 93 | an integral part -> a part 94 | different varieties -> varieties 95 | grouped together -> grouped 96 | percolate down -> percolate 97 | eradicate completely -> eradicate 98 | give positive encouragement -> encourage 99 | 100 | 101 | a the -> double article 102 | Figure Figure -> repeated 103 | from to -> ! 104 | help help -> help 105 | of of -> of 106 | #the the -> the 107 | we we -> we 108 | the affect -> should probably be 'the effect' 109 | there too few -> there are too few? 110 | was not was -> ! 111 | with on -> ! 112 | with with -> with 113 | my my -> my 114 | such as like -> ! 115 | further more -> furthermore 116 | safe guard -> safeguard 117 | that be -> ! 118 | can not -> cannot 119 | only only -> only 120 | is is -> is 121 | on on -> on 122 | has is -> has or is 123 | they shows -> ! 124 | less that than -> less than that 125 | from from -> double word 126 | in in -> in 127 | not not -> not 128 | it it -> it 129 | to illicit -> to elicit 130 | illicits -> elicits 131 | this lead to -> "led to" if past tense, "leads to" if present. 132 | description their -> ! 133 | including: -> including 134 | without and without -> ! 135 | can be result -> ! 136 | ,, -> , 137 | 138 | ### day-gastel 139 | a considerable amount of -> "much" 140 | a considerable number of -> "many" 141 | a decreased amount of -> "less" 142 | a decreased number of -> "fewer" 143 | a great deal of -> "much" 144 | a majority of -> "most", though 'a majority of' implies more than 50, while most implies significantly more. 145 | a number of -> "many" or "some" 146 | a situation in which -> "when" 147 | a small number of -> "a few" 148 | absolutely essential -> "essential" 149 | accounted for by the fact -> "because" 150 | adjacent to -> "near" or "next to" 151 | along the lines of -> "like" 152 | an adequate amount of -> "enough" 153 | an example of this is the fact that -> "for example" 154 | an order of magnitude faster -> "10 times as fast" 155 | apprise -> "inform" 156 | are of the same opinion -> "agree" 157 | as a consequence of -> "because" 158 | as a matter of fact -> "in fact" or leave out 159 | as a result of -> "because" 160 | as is the case -> "as happens" 161 | as of this date -> "today" 162 | as to -> "about" or leave out 163 | at a rapid rate -> "rapidly" or "fast" 164 | at an earlier date -> "soon" 165 | at no time -> "never" 166 | at present -> "now" 167 | at some future time -> "later" or "sometime" 168 | at the conclusion of -> "after" 169 | at the present time -> "now" 170 | at this point in time -> "now" 171 | based on the fact that -> "because" 172 | because of the fact that -> "because" 173 | by means of -> "by" or "with 174 | causal factor -> "cause" 175 | cognizant of -> "aware of" 176 | completely full -> "full" 177 | consensus of opinion -> "consensus" 178 | considerable amount of -> "much" 179 | contingent upon -> "dependent on" 180 | count the number of -> "count" 181 | definitely proved -> "proved" 182 | despite the fact that -> "although" 183 | due to the fact that -> "because" 184 | during the course of -> "during" or "while" 185 | during the time that -> "while" 186 | effectuate -> "cause" 187 | elucidate -> "explain" 188 | employ -> "use" 189 | enclosed herewith -> "enclosed" 190 | end result -> "result" 191 | endeavor -> "try" 192 | entirely eliminate -> "eliminate" 193 | eventuate -> "happen" 194 | fabricate -> "make" 195 | facilitate -> "help" 196 | fatal outcome -> "death" 197 | fellow colleague -> "colleague" 198 | fewer in number -> "fewer" 199 | finalize -> "end" 200 | first of all -> "first" 201 | for the purpose of -> "for" 202 | for the reason that -> "because" 203 | from the point of view of -> "for" 204 | future plans -> "plans" 205 | give an account of -> "describe" 206 | give rise to -> "cause" 207 | has been engaged in a study of -> "has studied" 208 | has the capability of -> "can" 209 | has the potential to -> "can" or "may" 210 | have the appearance of -> "look like" or "resemble" 211 | having regard to -> "about" 212 | immune serum -> "antiserum" 213 | important essentials -> "essentials" 214 | in a number of cases -> "sometimes" 215 | in a position to -> "able to" 216 | in a satisfactory manner -> "satisfactorily" 217 | in a situation in which -> "when" 218 | in a very real sense -> "in a sense" or leave out 219 | in almost all instances -> "nearly always" 220 | in case -> "if" 221 | in close proximity to -> "close" or "near" 222 | in connection with -> "about" or "concerning" 223 | in light of the fact that -> "because" 224 | in many cases -> "often" 225 | in most cases -> "usually" 226 | in my opinion it is not an unjustifiable assumption that -> "I think" 227 | in only a small number of cases -> "rarely" 228 | in order to -> "to" 229 | in relation to -> "toward" or "to" 230 | in respect to -> "about" 231 | in some cases -> "sometimes" 232 | in terms of -> "about" 233 | in the absence of -> "without" 234 | in the event that -> "if" 235 | in the most effective manner -> "most effectively" 236 | in the not too distant future -> "soon" 237 | in the not-too-distant future -> "soon" 238 | in the possession of -> "has" or "have" 239 | in this day and age -> "today" 240 | in view of the fact that -> "because" 241 | inasmuch as -> "for" or "as" 242 | in as much as -> "for" or "as" 243 | incline to the view -> "think" 244 | inclined to the view -> "thought" 245 | initiate -> "begin" or "start" 246 | is defined as -> "is" 247 | is desirous of -> "wants" 248 | is detrimental to -> "harms" 249 | is similar to -> "resembles" 250 | it has been reported by -> "___ reported" 251 | it has long been known that -> "I haven't looked up the reference" 252 | it is apparent that -> "apparently" or "clearly" 253 | it is believed that -> "I think" (or say who thinks) 254 | it is clear that -> "clearly" 255 | it is clear that much additional work will be required -> "I don't understand it" 256 | it is evident that -> probably not needed just say what happened 257 | it is generally believed -> "many think" 258 | it is my understanding that -> "I understand that" 259 | it is of interest to note that -> leave out 260 | it is often the case that -> "often" 261 | it is suggested that -> "I think" 262 | it is worth pointing out in this context -> omit 263 | it may be that -> "I think" or "perhaps" 264 | it may, however, be noted that -> "but" 265 | it should be noted that -> omit 266 | it was observed in the course of the experiments that -> "we observed" 267 | join together -> "join" 268 | lacked the ability to -> "could not" 269 | large in size -> "large" 270 | let me make one thing perfectly clear -> A snow job is coming... 271 | majority of -> "most" 272 | make reference to -> "refer to" 273 | militate against -> "prohibit" 274 | more often than not -> "usually" 275 | needless to say -> (leave out, and consider leaving out what follows it) 276 | new initiatives -> "initiatives" 277 | no later than -> "by" 278 | of an efficient nature -> "efficient" 279 | of great theoretical and practical importance -> "useful" 280 | of long standing -> "old" 281 | of the opinion that -> "think that" 282 | on a daily basis -> "daily" 283 | on account of -> "because" 284 | on behalf of -> "for" 285 | on no occasion -> "never" 286 | on the basis of -> "by" 287 | on the grounds that -> "because" 288 | on the part of -> "by" or "among" or "for" 289 | on those occasions in which -> "when" 290 | our attention has been called to the fact that -> "we belatedly discovered" 291 | owing to the fact that -> "because" 292 | perform -> "do" 293 | place a major emphasis on -> "stress" or "emphasize" 294 | pooled together -> "pooled" 295 | presents a picture similar to -> "resembles" 296 | previous to -> "before" 297 | prior to -> "before" 298 | determinations were performed -> "were determined" 299 | quantify -> "measure" 300 | quite a large quantity of -> "much" 301 | quite unique -> "unique" 302 | rather interesting -> "interesting' 303 | red in color -> "red" 304 | referred to as -> "called" 305 | regardless of the fact that -> "even though" 306 | relative to -> "about" 307 | resultant effect -> "result" 308 | root cause -> "cause" 309 | serious crisis -> "crisis" 310 | should prove the case that -> "if" 311 | smaller in size -> "smaller" 312 | so as to -> "to" 313 | subject matter -> "subject" 314 | subsequent to -> "after" 315 | sufficient -> "enough" 316 | take into consideration -> "consider" 317 | terminate -> "end" 318 | the fact of the matter is that -> (leave out) 319 | the field of -> just say the field name "chemistry" 320 | the great majority of -> "most" or "almost all" 321 | the opinion is advanced that -> "I think" 322 | the predominate number of -> "most" 323 | the question as to whether -> "whether" 324 | the reason is because -> "because" 325 | the vast majority of -> "most" or "almost all" 326 | there is a reason to believe -> "I think" 327 | they are the investigators -> "they" 328 | this result would seem to indicate -> "the result indicates" 329 | results seem to indicate -> "the results indicate" 330 | result seems to indicate -> "the result indicates" 331 | through the use of -> "by" or "with" 332 | to the fullest possible extent -> "fully" 333 | transpire -> "happen" 334 | ultimate -> "last" 335 | unanimity of opinion -> "agreement" 336 | until such time -> "until" 337 | utilization -> "use" 338 | utilize -> "use" 339 | very unique -> "unique" 340 | was of the opinion -> "believed" 341 | ways and means -> "ways" or "means" but not both 342 | we have insufficient knowledge -> "we do not know" 343 | we wish to thank -> "we thank" 344 | what is the explanation of -> "why" 345 | whether or not to -> "whether to" 346 | with a view to -> "to" 347 | with reference to -> "about" (or leave out) 348 | with regard to -> "concerning" or "about" (or leave out) 349 | with respect to -> "about 350 | with the exception of -> "except" 351 | with the result that -> "so that" 352 | within the realm of possibility -> "possible" 353 | 354 | -------------------------------------------------------------------------------- /tricky.txt: -------------------------------------------------------------------------------- 1 | ### Contractions 2 | can not -> cannot 3 | can't -> cannot 4 | don't -> do not 5 | won't -> will not 6 | didn't -> did not 7 | shouldn't -> should not 8 | we'll -> we will 9 | we've -> we have 10 | n't -> contractions should be avoided (did not for didn't, cannot for can't) 11 | 12 | ### Repetitions and Repetitions 13 | and and -> and 14 | the the -> the 15 | from the from the -> from the 16 | of of -> of 17 | did did -> did 18 | 19 | ### double negatives 20 | not un -> use the positive expression (tricky for arabian first-language speakers) 21 | not different -> similar 22 | not many -> few 23 | not have -> lack 24 | not include -> omit 25 | not consider -> ignore 26 | not the same -> different 27 | not often -> rarely 28 | not admit -> deny 29 | not accept -> reject 30 | 31 | ### wordiness 32 | despite the fact that -> although, even though 33 | regardless of the fact that -> although, even though 34 | in the event that -> if 35 | under circumstances in which -> if, when 36 | the reason for -> because, since, why 37 | for the reason that -> because, since, why 38 | owing/due to the fact that -> because, since, why 39 | in light of the fact that -> because, since, why 40 | considering the fact that -> because, since, why 41 | on the grounds that -> because, since, why 42 | this is why -> because, since, why 43 | on the occasion of -> when 44 | in a situation in which -> when 45 | as regards -> about 46 | in reference to -> about 47 | with regard to -> about 48 | concerning the matter of -> about 49 | is concerned -> about (instead of "where X is concerned") 50 | it is crucial that -> must, should 51 | it is necessary that -> must, should 52 | there is a need for -> must, should 53 | there is a necessity for -> must, should 54 | it is important that -> must, should 55 | cannot be avoided -> must, should 56 | is able to -> can 57 | has the opportunity to -> can 58 | has the capacity for -> can 59 | has the ability to -> can 60 | it is possible that -> may, might, could 61 | there is a chance that -> may, might, could 62 | it could happen that -> may, might, could 63 | the possibility exists for -> may, might, could 64 | the point of onset of -> the onset of 65 | the obtained results -> the results 66 | such as, e.g. -> for example, such as 67 | close proximity -> proximity 68 | circle around -> circle 69 | of fundamental importance -> is important, is fundamental 70 | coupled together -> coupled 71 | effect due to -> effect of 72 | is dependent on -> depends on 73 | 74 | data reduction was performed -> data were reduced 75 | has a tendency to -> tends to 76 | at the present time -> now, nowadays, currently 77 | in spite of the fact that -> although; even though 78 | due to the fact that -> because 79 | in the case of -> for X; about X 80 | perform an identification -> to identify 81 | The intersection of -> X intersects Y 82 | We aim at estimating -> We estimate 83 | make a comparison with -> to compare 84 | shows strong indications of -> indicate X strongly 85 | is in contradiction with -> contradicts 86 | is in agreement with -> agrees with 87 | Before proceeding further, it is worth commenting at this point that we have -> We have 88 | it is worth -> (sign of a wordy sentence) 89 | 90 | 91 | ### tricky 92 | the existence of -> simplify (e.g. is present, exists) 93 | the presence of -> simplify (e.g. is present, exists) 94 | in agreement -> simplify (e.g. agrees with) 95 | in the present paper -> simplify (it is clear that you are writing; here) 96 | in the present work -> simplify (it is clear that you are writing; here) 97 | we think -> we think/believe: can you rephrase? 98 | we believe -> we think/believe: can you rephrase? 99 | there is -> rephrase; make the following active, use a stronger verb 100 | there are -> rephrase; make the following active, use a stronger verb 101 | respectively -> double-check that you are pairing lists here 102 | ? -> question marks should rarely be used 103 | 104 | ### Wrong comparisons 105 | high speed -> fast 106 | low speed -> slow 107 | high velocity -> fast 108 | low velocity -> slow 109 | large abundance -> high abundance 110 | big abundance -> high abundance 111 | small abundance -> low abundance 112 | large absorption -> high absorption 113 | big absorption -> high absorption 114 | small absorption -> low absorption 115 | large accuracy -> high accuracy 116 | big accuracy -> high accuracy 117 | small accuracy -> low accuracy 118 | large adiabaticity -> high adiabaticity 119 | big adiabaticity -> high adiabaticity 120 | small adiabaticity -> low adiabaticity 121 | large background -> high background 122 | big background -> high background 123 | small background -> low background 124 | large brightness -> high brightness 125 | big brightness -> high brightness 126 | small brightness -> low brightness 127 | large contrast -> strong contrast 128 | big contrast -> strong contrast 129 | small contrast -> weak contrast 130 | large degree -> high degree 131 | big degree -> high degree 132 | small degree -> low degree 133 | large density -> high density 134 | big density -> high density 135 | small density -> low density 136 | large energy -> high energy 137 | big energy -> high energy 138 | small energy -> low energy 139 | large extinction -> high extinction 140 | big extinction -> high extinction 141 | small extinction -> low extinction 142 | large fraction -> high fraction 143 | big fraction -> high fraction 144 | small fraction -> low fraction 145 | large frequency -> high frequency 146 | big frequency -> high frequency 147 | small frequency -> low frequency 148 | large latitude -> high latitude 149 | big latitude -> high latitude 150 | small latitude -> low latitude 151 | large level -> high level 152 | big level -> high level 153 | small level -> low level 154 | large luminosity -> high luminosity 155 | big luminosity -> high luminosity 156 | small luminosity -> low luminosity 157 | large mass -> high mass 158 | big mass -> high mass 159 | small mass -> low mass 160 | large metallicity -> high metallicity 161 | big metallicity -> high metallicity 162 | small metallicity -> low metallicity 163 | large number -> high number 164 | big number -> high number 165 | small number -> low number 166 | large obliquity -> high obliquity 167 | big obliquity -> high obliquity 168 | small obliquity -> low obliquity 169 | large percentage -> high percentage 170 | big percentage -> high percentage 171 | small percentage -> low percentage 172 | large precision -> high precision 173 | big precision -> high precision 174 | small precision -> low precision 175 | large pressure -> high pressure 176 | big pressure -> high pressure 177 | small pressure -> low pressure 178 | large probability -> high probability 179 | big probability -> high probability 180 | small probability -> low probability 181 | large proportion -> high proportion 182 | big proportion -> high proportion 183 | small proportion -> low proportion 184 | large quality -> high quality 185 | big quality -> high quality 186 | small quality -> low quality 187 | large rate -> high rate 188 | big rate -> high rate 189 | small rate -> low rate 190 | large redshift -> high redshift 191 | big redshift -> high redshift 192 | small redshift -> low redshift 193 | large resolution -> high resolution 194 | big resolution -> high resolution 195 | small resolution -> low resolution 196 | large speed -> high speed 197 | big speed -> high speed 198 | small speed -> low speed 199 | large temperature -> high temperature 200 | big temperature -> high temperature 201 | small temperature -> low temperature 202 | large value -> high value 203 | big value -> high value 204 | small value -> low value 205 | large velocity -> high velocity 206 | big velocity -> fast, high velocity 207 | small velocity -> slow, low velocity 208 | 209 | large range -> wide/broad range 210 | big range -> wide/broad range 211 | high range -> wide/broad range 212 | small range -> narrow range 213 | low range -> narrow range 214 | large spread -> wide/broad spread 215 | big spread -> wide/broad spread 216 | high spread -> wide/broad spread 217 | small spread -> narrow spread 218 | low spread -> narrow spread 219 | large variety -> wide/broad variety 220 | big variety -> wide/broad variety 221 | high variety -> wide/broad variety 222 | small variety -> narrow variety 223 | low variety -> narrow variety 224 | weak constraint -> loose constraint 225 | strong constraint -> tight constraint 226 | 227 | large acceleration -> strong acceleration 228 | big acceleration -> strong acceleration 229 | high acceleration -> strong acceleration 230 | small acceleration -> weak acceleration 231 | low acceleration -> weak acceleration 232 | large anisotropy -> strong anisotropy 233 | big anisotropy -> strong anisotropy 234 | high anisotropy -> strong anisotropy 235 | small anisotropy -> weak anisotropy 236 | low anisotropy -> weak anisotropy 237 | large argument -> strong argument 238 | big argument -> strong argument 239 | high argument -> strong argument 240 | small argument -> weak argument 241 | low argument -> weak argument 242 | large asymmetry -> strong asymmetry 243 | big asymmetry -> strong asymmetry 244 | high asymmetry -> strong asymmetry 245 | small asymmetry -> weak asymmetry 246 | low asymmetry -> weak asymmetry 247 | large constraint -> strong constraint 248 | big constraint -> strong constraint 249 | high constraint -> strong constraint 250 | small constraint -> weak constraint 251 | low constraint -> weak constraint 252 | high contrast -> strong contrast 253 | low contrast -> weak contrast 254 | large current -> strong current 255 | big current -> strong current 256 | high current -> strong current 257 | small current -> weak current 258 | low current -> weak current 259 | large dependence -> strong dependence 260 | big dependence -> strong dependence 261 | high dependence -> strong dependence 262 | small dependence -> weak dependence 263 | low dependence -> weak dependence 264 | large effect -> strong effect 265 | big effect -> strong effect 266 | high effect -> strong effect 267 | small effect -> weak effect 268 | low effect -> weak effect 269 | large evidence -> strong evidence 270 | big evidence -> strong evidence 271 | high evidence -> strong evidence 272 | small evidence -> weak evidence 273 | low evidence -> weak evidence 274 | large magnetic -> strong magnetic 275 | big magnetic -> strong magnetic 276 | high magnetic -> strong magnetic 277 | small magnetic -> weak magnetic 278 | low magnetic -> weak magnetic 279 | large field -> strong field 280 | big field -> strong field 281 | high field -> strong field 282 | small field -> weak field 283 | low field -> weak field 284 | large flow -> strong flow 285 | big flow -> strong flow 286 | high flow -> strong flow 287 | small flow -> weak flow 288 | low flow -> weak flow 289 | large gradient -> strong gradient 290 | big gradient -> strong gradient 291 | high gradient -> strong gradient 292 | small gradient -> weak gradient 293 | low gradient -> weak gradient 294 | large instability -> strong instability 295 | big instability -> strong instability 296 | high instability -> strong instability 297 | small instability -> weak instability 298 | low instability -> weak instability 299 | large pulse -> strong pulse 300 | big pulse -> strong pulse 301 | high pulse -> strong pulse 302 | small pulse -> weak pulse 303 | low pulse -> weak pulse 304 | large relevance -> strong relevance 305 | big relevance -> strong relevance 306 | high relevance -> strong relevance 307 | small relevance -> weak relevance 308 | low relevance -> weak relevance 309 | large shear -> strong shear 310 | big shear -> strong shear 311 | high shear -> strong shear 312 | small shear -> weak shear 313 | low shear -> weak shear 314 | large turbulence -> strong turbulence 315 | big turbulence -> strong turbulence 316 | high turbulence -> strong turbulence 317 | small turbulence -> weak turbulence 318 | low turbulence -> weak turbulence 319 | 320 | partly true -> vague, ambiguous 321 | somewhat consistent -> vague, ambiguous 322 | the fact that -> check that what follows is a fact, otherwise simplify 323 | in any case -> in all cases, in either case 324 | / -> slash (/) is ambiguous. use either "and", "or" (or a formula if ratio) 325 | 326 | ### Ambiguous 327 | #Due to -> Don't start like that 328 | #Besides -> ambiguous 329 | 330 | ### Colloquial phrases and formal equivalents (not comprehensive, see above) 331 | a couple of -> some 332 | a little -> slightly 333 | a lot of -> much/many 334 | back up -> confirm 335 | was done -> was made (but "work done") 336 | get rid of -> eliminate 337 | goes along with -> is accompanied by 338 | going beyond -> exceeding 339 | goes down to -> decreases 340 | going from -> extending 341 | go on -> continue 342 | goes up to -> increases 343 | hopeless -> very poor 344 | luckily -> fortunately 345 | put constraints on -> place or set constraints on 346 | specially -> especially 347 | when it comes to -> for (when it comes to measuring the emission flow) 348 | #already -> rephrase 349 | anyhow -> rephrase, colloquial 350 | really -> rephrase, colloquial 351 | basically -> rephrase, colloquial 352 | actually -> rephrase, colloquial 353 | generally -> rephrase, colloquial 354 | kind of -> rephrase, colloquial 355 | sort of -> rephrase, colloquial 356 | type of -> rephrase, colloquial 357 | for all intents and purposes -> rephrase, colloquial 358 | definitely -> rephrase, colloquial 359 | #individual -> rephrase, colloquial 360 | #specific -> rephrase, colloquial 361 | #particular -> rephrase, colloquial 362 | 363 | 364 | ### Common mistakes (A&A frequent changes) 365 | data is -> data are 366 | data was -> data were 367 | take into account -> take X into account (put object in the middle); consider 368 | the actual situation -> the present/current situation 369 | is in agreement with -> agrees with 370 | was in agreement with -> agreed with 371 | were in agreement with -> agreed with 372 | are in agreement with -> agree with 373 | aim to -> leave out; (not incorrect, but sometimes awkward; correct use: we aim to do X; aim at doing X) 374 | albeit -> although (Albeit means "although it be", so it cannot be used with another verb) 375 | allow to -> allow us to do X, allow X to be done, allow Xing 376 | allows to -> allows us to do X, allows X to be done, allows Xing 377 | allowed to -> allowed us to do X, allowed X to be done, allowed Xing 378 | #associate to -> associate with 379 | #associated to -> associated with 380 | a bad result -> a poor result; an incorrect result (bad implies moral) 381 | of high accuracy -> very accurate 382 | of importance -> important 383 | the best value -> the most precise value (best implies moral) 384 | Besides, -> Besides that, Along with that, In addition (besides is ambiguous) 385 | #both .* as well as -> both \1 and 386 | candidate to -> candidate for 387 | in case of -> in the case of, whenever, for 388 | center around -> center on, situated around/at 389 | centre around -> centre on, situated around/at 390 | is claimed to be -> It is said/claimed to be, Z claim that X is Y 391 | compare to -> compare with (unless plural follows / no differentiation) 392 | compared to -> compared with (unless plural follows / no differentiation) 393 | comparable with -> comparable to; similar to; compared with 394 | combined together -> combine 395 | combine together -> combine 396 | combined together -> combine 397 | composed by -> composed of 398 | comprise of -> comprise 399 | comprised of -> comprise 400 | only concentrate on -> concentrate on 401 | to confront -> to compare X with (and) Y 402 | take into consideration -> take X into consideration 403 | took into consideration -> took X into consideration 404 | #contradict X with Y X contradicts Y; compare X and Y 405 | contrary to -> in contrast to; instead, 406 | correct from -> correct for 407 | correlate to -> correlate with 408 | correspond with -> correspond to 409 | used 2 data -> used two datapoints 410 | decrease down -> decrease 411 | decreased down -> decreased 412 | decreases down -> decreases 413 | decrease of -> decrease in 414 | depend of -> depend with; dependent of to depend on; be dependent on 415 | to detail -> to explain X in detail 416 | in details -> in detail 417 | discriminate -> distinguish; differentiate (See the dictionary for the differences. One legitimate use is in a phrase like "to discriminate spurious features from true absorption bands because of the quality of what needs to be distinguished) 418 | discuss on -> discuss 419 | discuss about -> discuss 420 | a study of -> X was/is studied 421 | an effect due to -> an effect of 422 | Due to -> Owing to, Because of, X causes, as a result of (Due to is ambiguous) 423 | effect due to -> effect of 424 | enable to -> enable us to do X, enable X to be done, enable Xing 425 | enables to -> enables us to do X, enables X to be done, enables Xing 426 | enabled to -> enabled us to do X, enabled X to be done, enabled Xing 427 | enhance the -> increase the 428 | evidenced by -> shown/illustrated/proven by 429 | evidence for -> evidence of 430 | evidences -> pieces of evidence, proof 431 | detect the existence of -> detect 432 | detected the existence of -> detected 433 | the fact that -> wordy; use for instance "the possibility" instead "of the fact that X can be" 434 | fit by a Gaussian -> fit with a Gaussian 435 | fit by a Normal -> fit with a Normal 436 | focus only on -> focus on 437 | in a following -> in the next/subsequent X, in the following way 438 | in the following -> in the next/subsequent X, in the following way 439 | a large fraction -> a high percentage, large portion/amount/number 440 | a significant fraction -> a high percentage, large portion/amount/number 441 | in the frame of -> in the framework of 442 | adds a further -> adds another/more 443 | went further -> went farther 444 | Further, -> Furthermore, 445 | Globally, -> In general, 446 | happened -> occured 447 | Hence, we -> As a result, We therefore, Thus 448 | ignore -> neglect, omit, exclude (false cognate) 449 | impact on -> to affect, to have an impact/effect on 450 | impacted on -> affected, had an impact/effect on 451 | important amount -> large amount 452 | impossibility to -> impossibility of doing X, it is impossible to do X 453 | increase of -> increase in 454 | independent on -> independent of 455 | independent from -> independent of 456 | indication for -> indication of 457 | influence in -> influence on, have an influence on 458 | influence for -> influence on, have an influence on 459 | infra-red -> infrared 460 | infra-structure -> infrastructure 461 | issue -> problem, question, concern 462 | large intensity -> high intensity 463 | large list -> long list 464 | latter two -> the last two 465 | this latter -> the latter 466 | in the last years -> in recent years, in past years, in the last decade of the Xth century. 467 | for instance -> such as, similar to, the same as 468 | like -> such as, similar to, the same as 469 | is likely -> is very likely X, is very likely to be X, probably X, most likely X 470 | made up from -> made up of 471 | regions are marked -> regions are labeled 472 | matches with -> matches 473 | matched with -> matched 474 | method to -> method of -ing 475 | analysis motivates the conclusion -> leads to / justifies the conclusion 476 | neglect -> ignore/neglected to do/did not consider/disregarded X 477 | a number of -> several, in many cases 478 | null correction -> null hypothesis or similar rephrasing 479 | the result is null -> the result is zero/nil/nought 480 | obtain that -> find that; obtain X 481 | #On the -> The (Use only for short, limited papers or for very long treatises, but not for normal papers or section headings.) 482 | on the panel -> in the panel 483 | on the figure -> in the figure 484 | on the corner -> in the corner 485 | in order to do -> to do 486 | on the order of a few -> of a few, close to, on the order of N, comparable to 487 | of the order of -> close to, on the order of N, comparable to 488 | originate from -> originate in; come/stem from 489 | In this paper, we -> We / This paper 490 | penetrate in -> penetrate 491 | penetrate into -> penetrate 492 | a few percent -> a few percentage points 493 | calibration was performed -> was calibrated 494 | permit to do -> permit us to do 495 | permitted to do -> permitted us to do 496 | permits to do -> permits us to do 497 | plotted by a line -> plotted as a line 498 | possibility to do -> possibility of doing; it is possible to do 499 | is preferentially found -> usually, preferably, mostly 500 | detect the presence of X -> detect X 501 | detected the presence of X -> detect X 502 | assume a priori -> assume 503 | assumed a priori -> assumed 504 | quite -> ambiguous, reword (rather is also ambiguous) 505 | rather -> ambiguous, reword (quite is also ambiguous) 506 | to reference -> to refer to, to supply references, to list 507 | unregular -> irregular, unregulated 508 | is low relative to -> is lower than 509 | in the remainder of the paper -> in the rest of the paper 510 | is large with respect to -> is larger than 511 | is the result of a -> the result of; is an X effect 512 | over scale -> on scale; at scale; to scale 513 | with scale -> on scale; at scale; to scale 514 | the same than -> the same as 515 | the same that -> the same as 516 | shortly -> briefly, in a short while 517 | similar as -> similar to 518 | since a year -> for a year; a year ago 519 | Since -> Because, After which 520 | small mass -> low mass 521 | a small time -> a short time 522 | a small talk -> a short talk 523 | So, -> therefore 524 | this sort of -> (when plural follows) these sorts of Xs; this sort of X 525 | #the stars X -> the star's X; the stars' X; the stellar X 526 | small statistic -> low statistics, small sample, small number statistics 527 | large statistic -> high statistics, large sample, large statistical sample 528 | a study on -> a study of 529 | sub-sample -> subsample 530 | sub-structure -> substructure 531 | subzero -> sub-zero 532 | submm -> sub-mm, submillimeter 533 | #such X -> this X OR this sort of X; these Xs 534 | suggested to do -> suggested doing 535 | #suggest X to be -> suggest that X is; It was suggested that 536 | suited for -> suited to doing; suitable for 537 | sum up -> add up; sum 538 | supposed to orbit -> assumed to orbit 539 | in tension with -> in contrast to, in conflict with, contrasts with, 540 | a test to -> a test of 541 | than that reported -> than reported, [than those/the one/what X] reported 542 | together with -> and, with 543 | combined together with -> combined with 544 | a tool to determine -> tool for determining 545 | trend for -> tendency for X to have; trend toward X having 546 | turns out that -> It leads to; It results in 547 | turned out that -> It lead to; It results in 548 | this type of -> (when plural follows) this type of X; these types of Xs 549 | typical for -> typical of 550 | ultra-violet -> ultraviolet 551 | ultra-sound -> ultrasound 552 | on the usage of -> on the use of 553 | useful to determine -> useful for determining 554 | variation of -> variation in X (quantity that varies); a variation of this procedure (alternative way to do it) 555 | well observed -> observed fully, observed well; explained fully/clearly 556 | as well as -> Overused; don't you mean "and" in a specific instance? 557 | whether or not -> whether 558 | yet undetected -> an as yet undetected; a still undetected X 559 | yield a result -> give a result, illustrate, etc. 560 | yield the result -> give the result, illustrate, etc. 561 | 562 | ### Prepositions 563 | #not comprehensive, contribute your own examples 564 | at distance -> at a distance 565 | associate to -> associate with 566 | associated to -> associated with 567 | assumption of -> assumption about 568 | #consist of/in 569 | convert to -> convert into 570 | converted to -> convert into 571 | correct the -> correct for the 572 | divide to -> divide into 573 | imprint onto -> imprint on 574 | include into -> include in 575 | included into -> included in 576 | inspired of -> inspired by 577 | within a figure -> in a figure 578 | within a month -> in a month 579 | within a period -> in a period 580 | within a year -> in a year 581 | in a day -> on a day 582 | in a map -> on a map 583 | in a scale -> on a scale 584 | representative for -> representative of 585 | same like -> same as 586 | separate in -> separate into 587 | separated in -> separated into 588 | similar of -> similar to 589 | study about -> study of 590 | contradict with -> contradict 591 | contradicts with -> contradicts 592 | dominate over -> dominate 593 | dominates over -> dominates 594 | increase up -> increase 595 | increased up -> increased 596 | increases up -> increases 597 | match with -> match 598 | matched with -> matched 599 | matches with -> matches 600 | orbit around -> orbit 601 | orbits around -> orbits 602 | orbited around -> orbited 603 | overlap with -> overlap 604 | overlapped with -> overlapped 605 | overlaps with -> overlaps 606 | penetrate into -> penetrate (without "into", unless modified: "penetrate far into a cloud") 607 | sum up -> sum ("to add"; sum up is a phrasal verb that means "to summarize") 608 | 609 | 610 | ### My favorite mistakes 611 | shades -> shading 612 | in optical wavelengths -> at optical wavelengths 613 | starts at -> starts from 614 | start at -> start from 615 | started at -> started from 616 | in the onset -> at the onset 617 | in the center -> at the center 618 | in the centre -> at the centre 619 | surpress -> suppress 620 | that is considered -> that is being considered 621 | diseased -> deceased 622 | consider we -> consider that we 623 | 624 | 625 | ### Very bad ones 626 | should of -> should have 627 | could of -> could have 628 | would of -> would have 629 | has the affect -> has the effect 630 | was effected -> was affected 631 | irregardless -> regardless, irrespective 632 | Irregardless -> Regardless, Irrespective 633 | 634 | # there is a separate report for these, which is more likely to be correct than these simple rules 635 | # a vs. an 636 | #a a -> an a 637 | #a e -> an e 638 | #a i -> an i 639 | #a o -> an o 640 | #a u -> an u 641 | 642 | ### Commas 643 | e.g. -> e.g., (comma after e.g. is recommended) 644 | i.e. -> i.e., (comma after i.e. is recommended) 645 | e.g. -> ,e.g. (comma before e.g. needed) 646 | i.e. -> ,i.e. (comma before i.e. needed) 647 | respectively -> , respectively (comma before) 648 | 649 | ### Sentences starting with And/Or 650 | And -> Sentences cannot start with and. Join with previous sentence, or use additionally, furthermore, ... 651 | Or -> Sentences cannot start with or. Join with previous sentence, or use alternatively, however, ... 652 | -------------------------------------------------------------------------------- /tricky_extra.txt: -------------------------------------------------------------------------------- 1 | ### Additional diction rules 2 | in my opinion it is not an unjustifiable assumption that -> I think 3 | it was observed in the course of the experiments that -> we observed 4 | it is worth pointing out in this context that -> note that 5 | of great theoretical and practical importance -> useful 6 | call your attention to the fact that -> remind you, notify you 7 | an example of this is the fact that -> thus 8 | in a considerable number of cases -> often 9 | except in a small number of cases -> usually 10 | it may, however, be noted that -> but 11 | with the possible exception of -> except 12 | we have insufficient knowledge -> we don't know 13 | it is of interest to note that -> ! 14 | accounted for by the fact that -> caused by 15 | notwithstanding the fact that -> although 16 | in the light of the fact that -> because 17 | an order of magnitude faster -> 10 times faster 18 | the opinion is advanced that -> I think 19 | on the order of magnitude of -> about 20 | in the majority of instances -> usually, generally 21 | a particular preference for -> reword? 22 | the fullest possible extent -> most, completely or fully (or omit) 23 | it has long been known that -> I haven't bothered to look up the reference. 24 | find it interesting to know -> Avoid 25 | there is reason to believe -> I think 26 | the question as to whether -> whether, the question whether 27 | it is considered desirable -> I or we want to 28 | conspicuous by its absence -> (cliche, avoid) 29 | it is often the case that -> often 30 | in the foreseeable future -> (cliche, avoid) 31 | in spite of the fact that -> though, although 32 | in a satisfactory manner -> satisfactorily 33 | from the point of view of -> for 34 | we are pleased to advice -> (cliche, avoid) 35 | pursuant to your request -> (cliche, avoid) 36 | involve the necessity of -> demand, require 37 | in view of the fact that -> since, as, because 38 | in the majority of cases -> usually, generally 39 | a considerable amount of -> much 40 | was of the opinion that -> believed 41 | this is a subject which -> this subject 42 | thanking you in advance -> (write "thanking you" or "your attention to this matter would be appreciated" and acknowledge granted favours) 43 | thanking you in advance -> (write "thanking you" or "your attention to this matter would be appreciated" and acknowledge granted favors) 44 | take into consideration -> consider 45 | regarding the matter of -> (cliche, avoid) 46 | put to use in measuring -> measure 47 | it should be noted that -> note that (or leave out) 48 | in the neighbourhood of -> about,approximately,near 49 | based on the fact, that -> because 50 | are of the same opinion -> agree 51 | you are hereby advised -> (cliche, avoid) 52 | would seem to indicate -> indicates 53 | there is no doubt that -> no doubt, doubtless 54 | the foreseeable future -> soon, the future 55 | put to use in building -> build 56 | owing to the fact that -> since, because 57 | in the neighborhood of -> about,approximately,near 58 | despite the fact, that -> although, though 59 | based on the fact that -> because 60 | as good or better than -> (use "as good as or better than" or possibly rearrange the sentence) 61 | all things being equal -> (cliche, avoid) 62 | with the exception of -> except 63 | this will acknowledge -> (cliche, avoid) 64 | the reason is because -> because 65 | the great majority of -> most 66 | previous to, prior to -> before 67 | make an adjustment in -> adjust 68 | lacked the ability to -> could not 69 | in the last analysis -> reword? 70 | in the final analysis -> Avoid by rewriting the sentence. 71 | in close proximity to -> close to, near to 72 | has the capability of -> can 73 | give encouragement to -> encourage 74 | give an indication of -> indicate 75 | for your information -> reword? 76 | easier said than done -> (cliche, avoid) 77 | due to the fact, that -> because 78 | despite the fact that -> although, though 79 | bring to a conclusion -> conclude 80 | at this point in time -> now 81 | with the result that -> so, therefore 82 | sufficient number of -> enough 83 | of the same opinion -> reword? 84 | of the opinion that -> reword? 85 | it stands to reason -> reword? 86 | it is suggested that -> I think 87 | in the possession of -> has, have 88 | in a very real sense -> in a sense (or omit) 89 | in a number of cases -> some 90 | for the reason, that -> since, because 91 | during the time that -> while 92 | during the course of -> during, while 93 | due to the fact that -> because 94 | consensus of opinion -> consensus 95 | arrive at a decision -> decide 96 | absolutely essential -> essential 97 | worth pointing out -> reword? 98 | small concentration -> low concentration 99 | please feel free to -> (cliche, avoid) 100 | on the grounds that -> since, because 101 | it stands to reason -> (cliche, avoid) 102 | it is evident that -> reword? 103 | it is doubtful that -> possibly 104 | it is believed that -> I think 105 | it is apparent that -> apparently 106 | it can be seen that -> thus, so 107 | in the direction of -> toward 108 | for the reason that -> since, because 109 | deleterious effect -> reword? 110 | at the same time as -> while 111 | at the present time -> now 112 | as can be seen from -> shows 113 | as a matter of fact -> in fact (or omit) 114 | as a consequence of -> because 115 | absolutely complete -> complete 116 | a matter of concern -> (cliche, avoid) 117 | varying amounts of -> varying 118 | through the use of -> by, with 119 | there are not many -> few 120 | reference to this -> reword? 121 | reason to believe -> reword? 122 | par for the course -> (cliche, avoid) 123 | on the right track -> (cliche, avoid) 124 | little doubt that -> reword? 125 | last but not least -> (avoid) 126 | is used to control -> controls 127 | in the vicinity of -> about,approximately,near 128 | in connection with -> about, concerning 129 | in close proximity -> close, near 130 | in all probability -> probably 131 | for the purpose of -> for 132 | entirely eliminate -> eliminate 133 | each and every one -> (avoid) 134 | connected together -> connected 135 | but not limited to -> (weak definition) 136 | at an earlier date -> previously 137 | along the lines of -> like (or omit) 138 | with reference to -> concerning, about 139 | the necessity of -> reword? 140 | take appropriate -> reword? 141 | slowly but surely -> (cliche, avoid) 142 | representative of -> represents 143 | reason is because -> reason is that, because 144 | minor importance -> reword? 145 | is designed to be -> is 146 | in the event that -> if 147 | in point of fact -> reword? 148 | in a hasty manner -> hastily 149 | enclosed herewith -> (cliche, avoid) 150 | as already stated -> (use active instead of passive voice) 151 | an indication of -> reword? 152 | along those lines -> (avoid) 153 | along these lines -> (overworked phrase, avoid) 154 | along the line of -> like (or omit) 155 | a small number of -> few 156 | a large number of -> many 157 | we wish to thank -> we thank 158 | we wish to state -> (cliche, avoid) 159 | personal opinion -> opinion 160 | on the occasion -> reword? 161 | on a daily basis -> daily 162 | notwithstanding -> reword? 163 | militate against -> prohibit 164 | many and diverse -> (cliche, avoid) 165 | it is clear that -> clearly 166 | is equipped with -> has 167 | in the nature of -> like 168 | in the matter of -> (cliche, avoid) 169 | in the course of -> during 170 | in such a manner -> ! 171 | in large measure -> largely 172 | in an area where -> where 173 | in a position to -> can, may 174 | having regard to -> about 175 | communicate with -> talk, telephone, write to 176 | collect together -> collect 177 | basic principles -> principles 178 | ask the question -> ask 179 | as a last resort -> (cliche, avoid) 180 | with the aid of -> with 181 | with respect to -> about 182 | the point that -> reword? 183 | suggested that -> reword? 184 | subsequently to -> after 185 | still continues -> continues 186 | repeat the same -> repeat the 187 | regressing back -> regressing 188 | pooled together -> pooled 189 | one of the most -> Do not use at the beginning of a paragraph, best avoid at all because it is an overused phrase. 190 | on the basis of -> by 191 | needless to say -> (avoid and consider leaving out what follows) 192 | large number of -> many 193 | in the long run -> (cliche, avoid) 194 | in short supply -> (cliche, avoid) 195 | in reference to -> concerning, about 196 | in reference to -> (cliche, avoid) 197 | in an effort to -> to 198 | he is a man who -> he 199 | for this reason -> so 200 | for this reason -> since, because 201 | experimentalize -> experiment 202 | experimentalise -> experiment 203 | completely full -> full 204 | attached hereto -> (cliche, avoid) 205 | at the rate of -> reword? 206 | at the present -> reword? 207 | as of this date -> today 208 | along the lines -> (avoid) 209 | adequate enough -> (weak definition) 210 | with regard to -> concerning, about (or leave out) 211 | with a view to -> to 212 | whether or not -> (restrict to synonym for "regardless of whether" else simply use "whether") 213 | the fact that -> reword? 214 | the case that -> reword? 215 | suggestive of -> reword? 216 | still continue -> continue 217 | sophisticated -> reword? 218 | reverting back -> reverting 219 | regressed back -> regressed 220 | referred to as -> called 221 | on the part on -> ! 222 | on the part of -> by, among, for 223 | it may be that -> I think 224 | indicative of -> reword? 225 | in the form of -> as 226 | in relation to -> toward, to 227 | in accordance -> reword? 228 | gratuitousness -> Synonym for "unearned" or "unwarranted", do not confuse with "free." 229 | doubtful that -> reword? 230 | disinteresting -> Synonym for "impartial", do not confuse with "uninterested." 231 | discontentment -> discontent 232 | different than -> Restrict to introducing a clause and use "different from" else. 233 | comparing with -> "Compare" to points out resemblances, "compare with" points out differences. 234 | avail yourself -> help 235 | authorization -> reword? 236 | authorisation -> reword? 237 | as is the case -> as happens 238 | as appropriate -> (weak definition) 239 | apparent that -> reword? 240 | along the line -> (avoid) 241 | a tendency to -> reword? 242 | without which -> ! 243 | wish to thank -> thank 244 | transitioning -> (only use as a noun) 245 | through which -> ! 246 | the truth was -> (a bad way to start a sentence) 247 | the order of -> reword? 248 | subsequent to -> after 249 | reverted back -> ("revert" means "to go back", so this expression is redundant) 250 | respectively -> reword? 251 | pertaining to -> about, on 252 | personalizing -> (avoid) 253 | personalising -> (avoid) 254 | on account of -> because 255 | join together -> join 256 | is defined as -> is 257 | in the event -> reword? 258 | in some cases -> sometimes 259 | in respect to -> about 260 | in regards to -> as regards, in regard to, about or another simple preposition 261 | in many cases -> often 262 | exception of -> reword? 263 | exactly equal -> equal 264 | evident that -> reword? 265 | disinterested -> Synonym for "impartial", do not confuse with "uninterested." 266 | complimentary -> A "complimentary" comment is one which is flattering. A "complementary" comment is one which completes or complements another comment. 267 | complementary -> A "complimentary" comment is one which is flattering. A "complementary" comment is one which completes or complements another comment. 268 | compared with -> "Compare" to points out resemblances, "compare with" points out differences. 269 | comparatively -> Avoid unless really comparing. 270 | capability to -> (weak definition) 271 | capability of -> (weak definition) 272 | by the use of -> by 273 | between which -> ! 274 | at this time -> reword? 275 | as to whether -> whether 276 | as applicable -> (weak definition) 277 | a majority of -> most 278 | ing behaviour -> (avoid the term [...]ing behaviour) 279 | transitioned -> (only use as a noun) 280 | the truth is -> (a bad way to start a sentence) 281 | the fact was -> (avoid) 282 | student body -> students 283 | reinitiating -> restarting 284 | regress back -> ("revert" means "to go back", so this expression is redundant) 285 | rather than -> reword? 286 | preventative -> preventive 287 | personalized -> (avoid) 288 | personalised -> (avoid) 289 | on behalf of -> for 290 | of interest -> reword? 291 | meaningfully -> significant or rewrite, because it is an overused word 292 | may be that -> reword? 293 | low quantity -> small quantity 294 | irregardless -> regardless 295 | in regard to -> as regards, in regard to, about or another simple preposition 296 | if practical -> (weak definition) 297 | gratuitously -> Synonym for "unearned" or "unwarranted", do not confuse with "free." 298 | give rise to -> cause 299 | fortuitously -> A fortuitous event has the connotation of being an unexpected accident. 300 | first of all -> first 301 | facilitating -> help 302 | essentially -> reword? 303 | compare with -> "Compare" to points out resemblances, "compare with" points out differences. 304 | as necessary -> ! 305 | as a minimum -> (weak definition) 306 | arrive at a -> reword? 307 | administrate -> administer 308 | accomplished -> did 309 | ing behavior -> (avoid the term [...]ing behavior) 310 | worth while -> (restrict to actions, do not use for approval and consider using a stronger word) 311 | under which -> ! 312 | transpiring -> (restrict to "become known", do not confuse with "happen" or "occur") 313 | the nature -> reword? 314 | the fact is -> (avoid) 315 | the authors -> we 316 | termination -> end 317 | terminating -> ending, stopping 318 | succeed in -> reword? 319 | revert back -> ("revert" means "to go back", so this expression is redundant) 320 | respective -> reword? 321 | relative to -> about 322 | reinitiated -> restarted 323 | regretfully -> (do not use as substitute for "regrettable") 324 | register up -> (means less than "register" because of its commonness) 325 | provide for -> (weak definition) 326 | proceed to -> reword? 327 | principally -> (a "principle" is a rule, while a "principal" is a person, when used as a noun, or means "chief", when used as an adjective, and the adverb for both words is spelt "principally") 328 | prestigious -> (an overused word) 329 | personalize -> (avoid) 330 | personalise -> (avoid) 331 | notoriously -> Synonym for "disreputable and widely known." 332 | not unique -> reword? 333 | majority of -> most 334 | little data -> few data 335 | is used to -> reword? 336 | interesting -> Avoid using "interesting" when introducing something. Simply introduce it. 337 | inflammable -> Only use as synonym for flammable or combustible. 338 | inasmuch as -> for, as 339 | in terms of -> in, for, about (or avoid) 340 | in order to -> to 341 | importantly -> Rewrite. 342 | importantly -> (avoid) 343 | if and when -> (cliche, avoid) 344 | hollow tube -> tube 345 | from which -> reword? 346 | facilitated -> help 347 | elucidating -> explain 348 | disinterest -> Synonym for "impartial", do not confuse with "uninterested." 349 | definitely -> reword? 350 | considering -> Not followed by "as" when it means "believe to be". 351 | clear that -> reword? 352 | check up on -> check 353 | by no means -> (cliche, avoid) 354 | by means of -> by, with 355 | at present -> reword? 356 | as shown in -> shows that 357 | as means of -> for, to 358 | as a result -> so 359 | anticipated -> Use "expect" for simple predictions and "anticipate" for more complex actions in advance of an event. 360 | alternative -> Alternative refers to choosing the other of two possibilities. Alternate refers to another element of a set, without connoting choice. 361 | after which -> ! 362 | about which -> ! 363 | ability to -> reword? 364 | a number of -> many, several 365 | inflammable -> (better use the preferred synonym "flammable", do not confuse with "combustible") 366 | 367 | ### Additional diction rules: Second round 368 | worthwhile -> (only apply to actions and consider using a stronger word instead) 369 | with which -> ! 370 | upon which -> ! 371 | uniqueness -> ("unique" or "uncommon"?) 372 | transpired -> (restrict to "become known", do not confuse with "happen" or "occur") 373 | transition -> (only use as a noun) 374 | the author -> I 375 | terminated -> ended, stopped 376 | sufficient -> enough 377 | reinitiate -> start again 378 | reason why -> reason 379 | principlly -> (a "principle" is a rule, while a "principal" is a person, when used as a noun, or means "chief", when used as an adjective, and the adverb for both words is spelt "principally") 380 | principles -> (a "principle" is a rule, while a "principal" is a person, when used as a noun, or means "chief", when used as an adjective, and the adverb for both words is spelt "principally") 381 | principals -> (a "principle" is a rule, while a "principal" is a person, when used as a noun, or means "chief", when used as an adjective, and the adverb for both words is spelt "principally") 382 | possessing -> Do not use as substitute for "have" or "own." 383 | personally -> (avoid) 384 | over which -> ! 385 | orientated -> oriented 386 | oftentimes -> often 387 | occurrence -> event 388 | obsoleting -> Using obsolete as a verb is ugly. 389 | not until -> reword? 390 | not under -> reword? 391 | memorandum -> "Memorandum" is singular, "memoranda" is plural. 392 | meaningful -> significant or rewrite, because it is an overused word 393 | into which -> ! 394 | insightful -> Consider substituting "perceptive". 395 | initiating -> beginning, starting 396 | infrequent -> rare 397 | infamously -> Synonym for "disreputable and widely known." 398 | in number -> reword? 399 | in length -> reword? 400 | in colour -> reword? 401 | gratuitous -> Synonym for "unearned" or "unwarranted", do not confuse with "free." 402 | fortuitous -> A fortuitous event has the connotation of being an unexpected accident. 403 | facilitate -> help 404 | face up to -> face 405 | enter into -> enter 406 | end result -> result 407 | elucidated -> explain 408 | dependable -> reliable, trustworthy 409 | deficiency -> lack 410 | coped with -> ! 411 | contacting -> When used as a transitive verb, "contact" is a poor choice. Get in touch with someone, or call them, instead of contacting them. 412 | considered -> Not followed by "as" when it means "believe to be". 413 | comprising -> Only use in the meaning of including something. 414 | check into -> check 415 | carry out -> reword? 416 | be capable -> (weak definition) 417 | be able to -> (weak definition) 418 | basically -> reword? 419 | as long as -> when, if 420 | anticipate -> Use "expect" for simple predictions and "anticipate" for more complex actions in advance of an event. 421 | accomplish -> do 422 | a need for -> need 423 | a man who -> reword? 424 | which was -> (often superfluous) 425 | viewpoint -> point of view (do not use as substitute for "view, opinion") 426 | utilizing -> using 427 | utilising -> using 428 | transpire -> (restrict to "become known", do not confuse with "happen" or "occur") 429 | torturous -> ("torturous" involves torture, while "tortuous" merely involves twist) 430 | there was -> (a dead phrase; rewrite the sentence and it will probably improve) 431 | there are -> (a dead phrase; rewrite the sentence and it will probably improve) 432 | the fact -> reword? 433 | terminate -> end 434 | situation -> (rewrite) 435 | should of -> should have 436 | requisite -> required 437 | regretful -> (do not use as substitute for "regrettable") 438 | referring -> (an allusion is an indirect reference, while a reference is a direct reference) 439 | principle -> (a "principle" is a rule, while a "principal" is a person, when used as a noun, or means "chief", when used as an adjective, and the adverb for both words is spelt "principally") 440 | principal -> (a "principle" is a rule, while a "principal" is a person, when used as a noun, or means "chief", when used as an adjective, and the adverb for both words is spelt "principally") 441 | presently -> (do not use as substitute for "now", restrict to synonym for "soon") 442 | possessed -> Do not use as substitute for "have" or "own." 443 | performed -> done 444 | otherwise -> ! 445 | obsoleted -> Using obsolete as a verb is ugly. 446 | number of -> many, several 447 | notorious -> Synonym for "disreputable and widely known." 448 | need for -> reword? 449 | much data -> many data 450 | memoranda -> "Memorandum" is singular, "memoranda" is plural. 451 | literally -> Do not use to support exaggeration. 452 | inside of -> When inside is used as a preposition, the word "of" is not needed: I walked inside the building. 453 | inferring -> Something that is suggested is "implied", whereas something that is deduced is "inferred". 454 | in color -> reword? 455 | impacting -> Use something more precise, unless you are discussing a physical collision. 456 | hopefully -> Restrict to "with hope", do not confuse with "I hope." Best avoid it. 457 | help but -> reword? 458 | formalize -> Rewrite. 459 | formalise -> Rewrite. 460 | for which -> ! 461 | finalised -> end (or avoid)d 462 | fabricate -> make 463 | expecting -> Use "expect" for simple predictions and "anticipate" for more complex actions in advance of an event. 464 | equitable -> fair 465 | enthusing -> (avoid) 466 | elucidate -> explain 467 | effective -> (weak definition) 468 | effecting -> affecting? 469 | doubt but -> doubt 470 | currently -> Often redundant: This program is currently checking your document. 471 | criterion -> "Criterion" is singular, "criteria" is plural. 472 | cope with -> ! 473 | contacted -> When used as a transitive verb, "contact" is a poor choice. Get in touch with someone, or call them, instead of contacting them. 474 | comprised -> Only use in the meaning of including something. 475 | comparing -> "Compare" to points out resemblances, "compare with" points out differences. 476 | clockwise -> ! 477 | character -> Often redundant, except when discussing role-playing games. 478 | certainly -> Avoid if used to intensify any and every statement. 479 | alternate -> Alternative refers to choosing the other of two possibilities. Alternate refers to another element of a set, without connoting choice. 480 | all right -> (avoid) 481 | affective -> "affective" or "effective"? 482 | actually -> reword? 483 | would of -> would have 484 | utilized -> used 485 | utilised -> used 486 | used for -> (used for [...] purposes: used for [...]) 487 | uniquely -> ("unique" or "uncommon"?) 488 | ultimate -> last 489 | tortuous -> ("torturous" involves torture, while "tortuous" merely involves twist) 490 | to which -> ! 491 | there is -> (a dead phrase; rewrite the sentence and it will probably improve) 492 | so as to -> to 493 | secondly -> second 494 | rise to -> reword? 495 | relating -> (do not use as an intransitive verb: "I get along well with my advisor" instead of "I relate well to my advisor") 496 | referred -> (an allusion is an indirect reference, while a reference is a direct reference) 497 | prior to -> before 498 | powerful -> Overused, especially in computer industry press releases. 499 | on which -> ! 500 | ofttimes -> often 501 | of which -> ! 502 | obsolete -> Using obsolete as a verb is ugly. 503 | nauseous -> Synonym for "sickening", do not confuse with the adjective "sick" or the verb "nauseate." 504 | momentos -> Use memento instead, even if Webster's claims momento is a word. 505 | might of -> might have 506 | make an -> reword? 507 | lose out -> Means less than "lose" because of its commonness. 508 | likewise -> ! 509 | later on -> later 510 | is where -> Only use to denote place; do not use in definitions. 511 | initiate -> begin, start 512 | inferred -> Something that is suggested is "implied", whereas something that is deduced is "inferred". 513 | infamous -> Synonym for "disreputable and widely known." 514 | in which -> ! 515 | in size -> reword? 516 | in fact -> reword? 517 | implying -> Something that is suggested is "implied", whereas something that is deduced is "inferred". 518 | impacted -> Use something more precise, unless you are discussing a physical collision. 519 | finalize -> end (or avoid) 520 | finalise -> end (or avoid) 521 | finalise -> end (or avoid) 522 | facility -> Substitute if you can name the object. 523 | expected -> Use "expect" for simple predictions and "anticipate" for more complex actions in advance of an event. 524 | enthused -> (avoid) 525 | enter in -> enter 526 | ensuring -> (use "assure" with people, "ensure" with things, and "insure" when talking about money) 527 | enormity -> Restrict to connoting abnormality or something more unusual than mere size. 528 | effected -> affected? 529 | criteria -> "Criterion" is singular, "criteria" is plural. 530 | consider -> Not followed by "as" when it means "believe to be". 531 | comprise -> Only use in the meaning of including something. 532 | compared -> "Compare" to points out resemblances, "compare with" points out differences. 533 | check on -> check 534 | by which -> ! 535 | at which -> ! 536 | at below -> below 537 | at above -> above 538 | assuring -> (use "assure" with people, "ensure" with things, and "insure" when talking about money) 539 | allusion -> (an allusion is an indirect reference, while a reference is a direct reference) 540 | affected -> "Affect" means "have an influence on", "produce an effect on", "concern", "effect a change in"; compare with "effect": "bring about", "cause", "produce, "result in." 541 | adequate -> (weak definition) 542 | a lot of -> Often obsolete, should sometimes be replaced by "many" 543 | win out -> (means less than "win" because of its commonness) 544 | whether -> (avoid using "or not" after "whether," unless you mean "regardless of whether") 545 | varying -> (use "various" if a finite number of constant instances is meant) 546 | utilize -> use 547 | utilise -> use 548 | 549 | ### Additional diction rules: Final round, likely some false positives 550 | upshot -> reword? 551 | try out -> (means less than "try" because of its commonness) 552 | try and -> ("try" should be followed by an infinitive, not the word "and") 553 | thirdly -> third 554 | stratum -> ("stratum" is singular, "strata" is plural) 555 | stating -> (if used as a verb, restrict to the meaning of "express fully or clearly") 556 | sort of -> (do not use as substitute for "rather" or "something like") 557 | so that -> ! 558 | sign up -> (means less than "sign" because of its commonness) 559 | related -> (do not use as an intransitive verb: "I get along well with my advisor" instead of "I relate well to my advisor") 560 | rather -> reword? 561 | precede -> Synonym for "to come before," do not confuse with "proceed." 562 | possess -> Do not use as substitute for "have" or "own." 563 | pluming -> Do not confuse the fruit "plum" with "plumbing" a depth. 564 | perform -> do 565 | ongoing -> (avoid) 566 | neither -> Should be followed by "nor" instead of "or". 567 | near by -> near, near at hand, close by, hard by 568 | momento -> Use memento instead, even if Webster's claims momento is a word. 569 | mislead -> = lead 570 | manner -> reword? 571 | make a -> reword? 572 | loosing -> As a verb, it means "to release", but it can also be used as adverb. It is not a tense of "lose." 573 | literal -> Do not use to support exaggeration. 574 | kind of -> Do not use as substitute for "rather" or "something like." 575 | is when -> Only use to denote time; do not use in definitions. 576 | in case -> if 577 | implied -> Something that is suggested is "implied", whereas something that is deduced is "inferred". 578 | however -> Means "in whatever way, to whatever extent" inside a sentence and "nevertheless" at the beginning of a sentence. 579 | got to -> reword? 580 | further -> "Farther" denotes distance, "further" denotes time or quantity. 581 | forward -> send (if used as verb) 582 | firstly -> first 583 | farther -> "Farther" denotes distance, "further" denotes time or quantity. 584 | fairly -> reword? 585 | enthuse -> (avoid) 586 | ensured -> (use "assure" with people, "ensure" with things, and "insure" when talking about money) 587 | dessert -> "Desert" and "dessert" are sometimes confused, to the delight of the masses. 588 | data is -> data are 589 | contact -> When used as a transitive verb, "contact" is a poor choice. Get in touch with someone, or call them, instead of contacting them. 590 | compare -> "Compare" to points out resemblances, "compare with" points out differences. 591 | can not -> (use "cannot" unless you want to put special emphasis on the word "not") 592 | between -> (choose "between" 2 options and "among" 3 or more) 593 | attempt -> try 594 | assured -> (use "assure" with people, "ensure" with things, and "insure" when talking about money) 595 | as per -> reword? 596 | alluded -> (an allusion is an indirect reference, while a reference is a direct reference) 597 | who is -> (often superfluous) 598 | verbal -> ("verbal" can be either spoken or written down, "oral" refers to the mouth) 599 | use to -> ("use to" or "used to"?) 600 | unique -> ("unique" or "uncommon"?) 601 | timely -> (weak definition) 602 | thrust -> (use sparingly, unless you are writing a romance novel) 603 | system -> Frequently used without need. 604 | strata -> ("stratum" is singular, "strata" is plural) 605 | stated -> (if used as a verb, restrict to the meaning of "express fully or clearly") 606 | relate -> (do not use as an intransitive verb: "I get along well with my advisor" instead of "I relate well to my advisor") 607 | quite -> reword? 608 | plumed -> Do not confuse the fruit "plum" with "plumbing" a depth. 609 | people -> Do not use with numbers or as substitute for "public". 610 | normal -> (weak definition) 611 | nature -> Omit if redundant. 612 | mostly -> (avoid) 613 | misled -> = lead 614 | loosed -> As a verb, it means "to release", but it can also be used as adverb. It is not a tense of "lose." 615 | loathe -> Only use as a verb, "loath" is an adjective. 616 | inside -> When inside is used as an adverb, add the word "of": I will be there inside of an hour. 617 | impact -> Use something more precise, unless you are discussing a physical collision. 618 | hearty -> A "hardy" person can survive hardship. A "hearty" meal is a nourishing one. 619 | gotten -> The preferred form of this participle is "got," but it is unpleasant to the ear in either form. 620 | fuller -> A fuller is a hammer for spreading iron. You can't "fill your glass fuller." 621 | factor -> "component", "ingredient" or "element" outside mathematical contexts 622 | expect -> Use "expect" for simple predictions and "anticipate" for more complex actions in advance of an event. 623 | ensure -> (use "assure" with people, "ensure" with things, and "insure" when talking about money) 624 | effect -> "Affect" means "have an influence on", "produce an effect on", "concern", "effect a change in"; compare with "effect": "bring about", "cause", "produce, "result in." 625 | due to -> Synonym for "attributable to", often confused with "through, because of, owing to." 626 | desert -> "Desert" and "dessert" are sometimes confused, to the delight of the masses. 627 | clever -> Greatly overused word, restrict to small matters. 628 | assure -> (use "assure" with people, "ensure" with things, and "insure" when talking about money) 629 | as yet -> (you can often replace with simply "yet," except at the beginning of a sentence) 630 | and/or -> (avoid) 631 | allude -> (an allusion is an indirect reference, while a reference is a direct reference) 632 | affect -> "Affect" means "have an influence on", "produce an effect on", "concern", "effect a change in"; compare with "effect": "bring about", "cause", "produce, "result in." 633 | unwise -> (avoid words that end in -unwise) 634 | would -> (use "should" if used as conditional statement in the first person or for "shall" in indirect quotation after a verb in past tense. Consider omitting it for repeated actions) 635 | while -> (if used as substitute for "and, but" then replace by semicolon, do not use as substitute for "although" as it leads to ambiguity or absurdity, best use it only in the sense of "during the time that") 636 | which -> (use "that" if clause is restrictive) 637 | vital -> important 638 | state -> (if used as a verb, restrict to the meaning of "express fully or clearly") 639 | so on -> ! 640 | sight -> (a "site" is a place, a "sight" is related to "seeing") 641 | shall -> (shall is sometimes used with first person pronouns and the future tense. It expresses something you believe will happen, not something that you are determined to do. A drowning man shouts: "I shall drown, no one will save me!") 642 | refer -> (an allusion is an indirect reference, while a reference is a direct reference) 643 | payed -> "Payed" is only used to refer to extending a rope. The past tense of "pay" is "paid." 644 | might -> can 645 | loose -> As a verb, it means "to release", but it can also be used as adverb. It is not a tense of "lose." 646 | loath -> Only use as a verb, "loath" is an adjective. 647 | liken -> Avoid using the verb "liken," it is ugly. 648 | leave -> Do not use as substitute for "let:" Let go of my hand! Let it be! 649 | infer -> Something that is suggested is "implied", whereas something that is deduced is "inferred". 650 | imply -> Something that is suggested is "implied", whereas something that is deduced is "inferred". 651 | hardy -> A "hardy" person can survive hardship. A "hearty" meal is a nourishing one. 652 | funny -> Avoid "funny" when introducing something. Simply introduce it. 653 | folks -> Avoid using "folks", when writing formally, to refer to your family or friends. 654 | fewer -> Use "fewer" for numbers and "less" for quantities. 655 | coped -> ! 656 | claim -> Do not use as substitute for "declare", "maintain" or "charge." 657 | as to -> about (or omit) 658 | among -> Choose "between" 2 options and "among" 3 or more. 659 | izing -> (words ending in -izing tend suggest usage of American spelling) 660 | whom -> (often incorrectly used for "who") 661 | very -> (use sparingly; try to use words that are strong in themselves for emphasis) 662 | type -> (do not use as synonym for "kind of") 663 | they -> (do not use as substitute for "each, each one, everybody, every one, anybody, any one, somebody, some one") 664 | than -> (examine sentences containing "than" to insure that they are not missing words: I love my father more than my mother. I love my father more than my mother loves my father. I love my father more than I love my mother) 665 | site -> (a "site" is a place, a "sight" is related to "seeing") 666 | plum -> Do not confuse the fruit "plum" with "plumbing" a depth. 667 | oral -> ("verbal" can be either spoken or written down, "oral" refers to the mouth) 668 | loan -> Only use as a noun. "Lend" is a verb. 669 | like -> Substitute by "as" before phrases or clauses: Our love was beautiful, as love was meant to be. 670 | led -> = lead 671 | 672 | 673 | -------------------------------------------------------------------------------- /languagecheck.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys, os 4 | import random 5 | import codecs 6 | import subprocess 7 | import glob 8 | from collections import Counter 9 | import nltk # Install nltk: $ pip install nltk --user 10 | 11 | header = """ 12 | 13 | 14 | %(title)s 15 | 16 | """ 17 | 18 | if len(sys.argv) != 3: 19 | sys.stderr.write("""SYNOPSIS: %(cmd)s 20 | 21 | txtfile: Use detex to remove tex from a latex file. 22 | Example: detex mn.tex > mn.txt 23 | pdffile: PDF of your paper 24 | 25 | Environment variables: 26 | LANG: [en_GB|en_US] 27 | Choose language. 28 | 29 | Usage example: 30 | LANG=en_GB %(cmd)s mn.txt mn.pdf 31 | 32 | Johannes Buchner (C) 2016 33 | http://github.com/JohannesBuchner/languagecheck/ 34 | """ % dict(cmd=sys.argv[0])) 35 | sys.exit(1) 36 | filename = sys.argv[1] 37 | pdf = sys.argv[2] 38 | lang = os.environ.get('LANG', 'en_GB') 39 | if 'US' in lang: 40 | lang = 'en_US' 41 | elif 'GB' in lang: 42 | lang = 'en_GB' 43 | else: 44 | lang = 'en_GB' 45 | print('Using language "%s". You can set LANG=en_GB or LANG=en_US.' % lang) 46 | 47 | prefix = filename + '_vis-' 48 | def list_img(): 49 | return sorted(glob.glob(prefix + '*.png')) 50 | 51 | for i in list_img(): 52 | #print 'deleting old image %s' % i 53 | os.remove(i) 54 | 55 | print('creating visualisation ...') 56 | process = subprocess.Popen(['convert', '-density', '40', '-blur', '5x3', pdf, prefix + "%02d.png"]) 57 | 58 | verb_classes = ['VB', 'VBD', 'VBN', 'VBP', 'VBZ'] 59 | 60 | def is_full_sentence(txt, sentence, entities): 61 | has_verb = False 62 | has_end = False 63 | has_noun = False 64 | for w, wt in sentence: 65 | if wt in verb_classes: 66 | has_verb = True 67 | if wt.startswith('NN'): 68 | has_noun = True 69 | if wt == '.': 70 | has_end = True 71 | if has_verb and has_noun and has_end: 72 | return True 73 | nsym = sum([wt in ['.', ':', ','] for w, wt in sentence]) 74 | nwords = len(sentence) 75 | if nsym > 3: 76 | return False 77 | if nwords > 10: 78 | return True 79 | return False 80 | 81 | def topic_sentences(paragraphs): 82 | with codecs.open(filename + '_topic.html', 'w', 'latin1') as f: 83 | f.write(header % dict(title='Topic sentences')) 84 | f.write("""

Topic sentences of each paragraph

85 | The first sentence of a should give the heading / selling 86 | point of 87 | the paragraph. Details follow inside the paragraph. 88 | Does this paper make sense when reading only the first 89 | sentences of the paragraph? 90 |
91 |
    92 | """) 93 | for para in paragraphs: 94 | txt, sentence, entities = para[0] 95 | if is_full_sentence(txt, sentence, entities): 96 | f.write("
  • " + txt.split('. ')[0] + '\n') 97 | f.close() 98 | 99 | def consistent_paragraph(paragraphs): 100 | with codecs.open(filename + '_para.html', 'w', 'latin1') as f: 101 | f.write(header % dict(title='Paragraph consistency')) 102 | f.write("""

    Paragraph consistency

    103 |

    Each paragraph should make sense on its own. 104 | They should not be too long. 105 | Here they are in random order. 106 | 107 |

    Think of the inverted pyramid (important information first, 108 | then clarify). Comparable to a telegraph line, the attention of the 109 | reader can break off at any point. 110 |

    111 |
    112 | """) 113 | paragraphs = list(paragraphs) 114 | random.shuffle(paragraphs) 115 | for para in paragraphs: 116 | if any((is_full_sentence(txt, sentence, entities) for txt, sentence, entities in para)): 117 | p = ' '.join([txt for txt, sentence, entities in para]) 118 | f.write("
    " + p + '\n') 119 | f.close() 120 | 121 | def count_tenses(tags): 122 | past_count = 0 123 | present_count = 0 124 | future_count = (' '.join([w for w, wt in tags])).count('going to') 125 | for w, wt in tags: 126 | if w in ['shall', 'will']: 127 | future_count += 1 128 | elif wt in ['VB', 'VBP', 'VBZ']: 129 | present_count += 1 130 | elif wt == 'VBD': 131 | past_count += 1 132 | return past_count, present_count, future_count 133 | 134 | def guess_tense(tags, entities, last_tense): 135 | past_count, present_count, future_count = count_tenses(tags) 136 | if future_count > 0: 137 | return 'future' 138 | elif past_count > 2: 139 | return 'past' 140 | elif past_count > 0 and present_count == 0: 141 | return 'past' 142 | elif present_count > 0 and past_count == 0: 143 | return 'present' 144 | elif past_count > 1 and present_count <= past_count: 145 | return 'past' 146 | elif present_count > 1 and past_count < present_count: 147 | return 'present' 148 | else: 149 | return last_tense 150 | 151 | def guess_tense_tree(tags, entities, last_tense): 152 | parts = [] 153 | part = [] 154 | for w, wt in tags: 155 | if w in [',', ':', ';']: 156 | parts.append(part) 157 | part = [] 158 | else: 159 | part.append((w, wt)) 160 | parts.append(part) 161 | del part 162 | parts = [part for part in parts if len(part) > 0] 163 | # if all put together: 164 | tense_full = guess_tense(tags, entities, last_tense) 165 | for part in parts: 166 | tense_part = guess_tense(part, [], tense_full) 167 | if tense_part != tense_full: 168 | return 'mixed' 169 | return tense_full 170 | 171 | 172 | def tenses(paragraphs): 173 | with codecs.open(filename + '_tense.html', 'w', 'latin1') as f: 174 | f.write(header % dict(title='Tenses')) 175 | f.write("""

    Tenses

    176 | 182 | """) 183 | def time(txt, cls): 184 | return '%s' % (cls, txt) 185 | f.write(time("Past: When describing your steps.", "past") + "
    ") 186 | f.write(time("Present: When describing general truths.", "present") + "
    ") 187 | f.write(time("Future: When describing future work.", "future") + "
    ") 188 | f.write(time("Mixed tenses.", "mixed") + "
    ") 189 | f.write("
    ") 190 | paragraphs = list(paragraphs) 191 | for para in paragraphs: 192 | last_tense = None 193 | f.write("

    ") 194 | for txt, tags, entities in para: 195 | if is_full_sentence(txt, tags, entities): 196 | tense = guess_tense_tree(tags, entities, last_tense) 197 | if tense is None: 198 | f.write(txt) 199 | else: 200 | f.write(time(txt, tense)) 201 | last_tense = tense 202 | f.write('\n') 203 | f.write("\n

    ") 204 | f.close() 205 | 206 | 207 | def spelling(paragraphs): 208 | hlang = lang 209 | try: 210 | import hunspell # if import fails: pip install pyhunspell https://github.com/blatinier/pyhunspell 211 | except ImportError: 212 | print(" install hunspell package to use spell checker - https://github.com/blatinier/pyhunspell") 213 | return 214 | try: 215 | h = hunspell.HunSpell('/usr/share/myspell/%s.dic' % hlang, '/usr/share/myspell/%s.aff' % hlang) # if this fails, you dont have that language installed or are not on Unix 216 | except Exception: 217 | try: 218 | h = hunspell.HunSpell('/usr/share/hunspell/%s.dic' % hlang, '/usr/share/hunspell/%s.aff' % hlang) # if this fails, you dont have that language installed or are not on Unix 219 | except Exception: 220 | print(" could not load dictionaries (", '/usr/share/{hunspell,myspell}/%s.dic' % hlang, '/usr/share/{hunspell,myspell}/%s.aff' % hlang, "Is hunspell installed?") 221 | return 222 | # add custom words: 223 | for line in open(os.path.join(os.path.dirname(__file__), 'sciencywords.txt')): 224 | if line.startswith('#'): continue 225 | h.add(line.strip()) 226 | 227 | badchars_for_word = list(':/+.=*~\\') + ["%d" % i for i in range(10)] + ["cccc"] 228 | 229 | with codecs.open(filename + '_spelling.html', 'w', 'latin1') as f: 230 | f.write(header % dict(title='Spelling')) 231 | f.write("""

    Spelling

    \n""") 232 | handled = set() 233 | counter = Counter() 234 | items_uppercase = [] 235 | items_nonupper = [] 236 | n = 0 237 | nupper = 0 238 | paragraphs = list(paragraphs) 239 | for k, para in enumerate(paragraphs): 240 | for txt, tags, entities in para: 241 | if not is_full_sentence(txt, tags, entities): 242 | continue 243 | for word, wt in tags: 244 | word = word.strip("'") 245 | if len(word) < 3: continue # not a word 246 | if any((char in word for char in badchars_for_word)): continue 247 | if word not in handled and not h.spell(word): 248 | outstring = h.suggest(word) 249 | if any(letter.isupper() for letter in word): 250 | items_uppercase.append((word, outstring)) 251 | nupper += 1 252 | else: 253 | n += 1 254 | items_nonupper.append((word, outstring)) 255 | counter.update([word]) 256 | handled.add(word) 257 | sys.stdout.write(' %.2f%% -- %d words checked, %d potential issues \r' % (k*100. / len(paragraphs), len(handled), n)) 258 | sys.stdout.flush() 259 | 260 | sys.stdout.write(' %.2f%% -- %d words checked, %d potential issues \n' % (100., len(handled), n)) 261 | f.write("
      \n") 262 | for n, word, s in sorted([(counter[word], word, s) for word, s in items_nonupper], reverse=True): 263 | noccur = "" if n <= 1 else " (%d times)" % n 264 | f.write("
    • %s -> %s%s\n" % (word, ', '.join(s), noccur)) 265 | f.write("\n
    ") 266 | f.write("

    Words with upper case letters

    \n") 267 | f.write("These may be acronyms and thus OK.\n") 268 | f.write("
      \n") 269 | for n, word, s in sorted([(counter[word], word, s) for word, s in items_uppercase], reverse=True): 270 | noccur = "" if n <= 1 else "(%d times)" % n 271 | f.write("
    • %s -> %s%s\n" % (word, ', '.join(s), noccur)) 272 | f.write("\n
    ") 273 | 274 | 275 | stopwords = nltk.corpus.stopwords.words('english') 276 | def wordiness(paragraphs): 277 | with codecs.open(filename + '_wordiness.html', 'w', 'latin1') as f: 278 | f.write(header % dict(title='Wordiness')) 279 | f.write("""

    Wordiness, long sentences

    280 | These sentences seem very long, have many sub-clauses or too many small words (stopwords). 281 | Can you break them into smaller sentences? Can you reword them? 282 |
    283 | 286 | """) 287 | ranked_sentences = [] 288 | for para in paragraphs: 289 | for txt, tags, entities in para: 290 | if is_full_sentence(txt, tags, entities): 291 | n = len(tags) 292 | nclauses = sum([wt in [':', ';', ',', 'and'] for w, wt in tags]) 293 | nstop = sum([w in stopwords for w, wt in tags]) 294 | badness = 0 295 | reasons = [] 296 | if n > 30: 297 | badness += n / 10 * 100 298 | reasons.append('long') 299 | if nclauses > 3: 300 | badness += nclauses * 10 301 | reasons.append('clauses') 302 | if n > 10 and nstop * 3 > n: 303 | badness += (nstop * 2 * 30 / n) 304 | reasons.append('stopwords') 305 | ranked_sentences.append((badness, reasons, txt)) 306 | ranked_sentences.sort(reverse=True) 307 | for badness, reasons, txt in ranked_sentences: 308 | if badness < 30: break 309 | f.write("
    %s (%d,%s)\n" % (txt, badness, ','.join(reasons))) 310 | f.close() 311 | 312 | def not_punctuation(w): 313 | return not (len(w)==1 and (not w.isalpha())) 314 | #def get_word_count(text): 315 | # return len(list(filter(not_punctuation, word_tokenize(text)))) 316 | #def get_sent_count(text): 317 | # return len(sent_tokenize(text)) 318 | # from https://github.com/mmautner/readability/blob/master/utils.py, Apache2 licensed 319 | import syllables_en 320 | #def count_syllables(words): 321 | # syllableCount = 0 322 | # for word in words: 323 | # syllableCount += syllables_en.count(word) 324 | # return syllableCount 325 | 326 | # from textstat/textstat.py, MIT licensed 327 | import string 328 | exclude = list(string.punctuation) 329 | easy_word_set = set([line.strip() for line in open(os.path.join(os.path.dirname(__file__), 'easy_words.txt')) 330 | if not line.startswith('#')]) 331 | 332 | def count_words(words): 333 | count = 0 334 | for w in words: 335 | if w in exclude: 336 | continue 337 | count += 1 338 | return count 339 | 340 | def count_syllables(words): 341 | for w in words: 342 | if w in exclude: 343 | continue 344 | s = syllables_en.count(w) 345 | if s > 7: # probably a latex thing and not a word 346 | continue 347 | yield s 348 | 349 | def syllable_stats(words): 350 | totsyl = 0 351 | polysylcount = 0 352 | complexwords = 0 353 | for w in words: 354 | if w in exclude: 355 | continue 356 | s = syllables_en.count(w) 357 | 358 | if s > 7: # probably a latex thing and not a word 359 | continue 360 | totsyl += s 361 | if s >= 3: 362 | polysylcount += s 363 | complex_s = s 364 | # complex words are not nouns, have >= 3 syl, not counting common endings 365 | # (and are not compound words, not checked here) 366 | if any([w.endswith(ending) for ending in ('es', 'ed', 'ing')]): 367 | complex_s = s - 1 368 | if complex_s >= 3 and w[0].islower() and w not in easy_word_set: 369 | complexwords += 1 370 | return totsyl, polysylcount, complexwords 371 | 372 | def readability(paragraphs): 373 | with codecs.open(filename + '_readability.html', 'w', 'latin1') as f: 374 | f.write(header % dict(title='Reading ease')) 375 | colors = [] 376 | #for flesch_reading_ease in 95, 85, 75, 65, 55, 40, 20: 377 | # u = 1 - flesch_reading_ease / 100. 378 | for fog_index in [17,16,15,14,13,12,11,10,9,8,7,6]: 379 | u = (fog_index - 6) / (17 - 6.) 380 | u = max(0, min(1, u)) 381 | 382 | # add color here 383 | g = max(0.1, 1 - u*1.3) 384 | b = g 385 | r = min(1, 1.7 - u*1.3) 386 | colors += [r*255, g*255, b*255] 387 | f.write("""

    Reading ease

    388 | 411 | 412 |

    413 | Highlighting difficult passages by measure of the 414 | reading ease 415 | and fog index, which measure 416 | average sentence length, average syllables and frequency of complex words. 417 | These can point to passages which could be simplified to more direct language. 418 |

    419 | Warning: these should only be taken only as guides! Measuring language have severe limitations! 420 |

    421 |
    422 | 423 |
    Score Flesch radability ease 424 |
    100.00-90.00 Very easy to read. Easily understood by an average 11-year-old student. 425 |
    90.0-80.0 Easy to read. Conversational English for consumers. 426 |
    80.0-70.0 Fairly easy to read. 427 |
    70.0-60.0 Plain English. Easily understood by 13- to 15-year-old students. 428 |
    60.0-50.0 Fairly difficult to read. 429 |
    50.0-30.0 Difficult to read. 430 |
    30.0-0.0 Very difficult to read. Best understood by university graduates. 431 |
    432 | 433 | """) 434 | 435 | f.write(""" 436 | 437 |
    Fog IndexReading level by grade 438 |
    17 College graduate 439 |
    16 College senior 440 |
    15 College junior 441 |
    14 College sophomore 442 |
    13 College freshman 443 |
    12 High school senior 444 |
    11 High school junior 445 |
    10 High school sophomore 446 |
    9 High school freshman 447 |
    8 Eighth grade 448 |
    7 Seventh grade 449 |
    6 Sixth grade 450 |
    451 |
    452 | """ % tuple(colors)) 453 | 454 | 455 | # f.write(""" 456 | #Fog IndexReading level by grade 457 | #17 College graduate 458 | #16 College senior 459 | #15 College junior 460 | #14 College sophomore 461 | #13 College freshman 462 | #12 High school senior 463 | #11 High school junior 464 | #10 High school sophomore 465 | #9 High school freshman 466 | #8 Eighth grade 467 | #7 Seventh grade 468 | #6 Sixth grade 469 | # 470 | # 471 | # 472 | #
    Score Flesch radability ease 473 | #
    100.00-90.00 Very easy to read. Easily understood by an average 11-year-old student. 474 | #
    90.0-80.0 Easy to read. Conversational English for consumers. 475 | #
    80.0-70.0 Fairly easy to read. 476 | #
    70.0-60.0 Plain English. Easily understood by 13- to 15-year-old students. 477 | #
    60.0-50.0 Fairly difficult to read. 478 | #
    50.0-30.0 Difficult to read. 479 | #
    30.0-0.0 Very difficult to read. Best understood by university graduates. 480 | #
    481 | #
    482 | # """ % tuple(colors)) 483 | def reading_ease_name(v): 484 | if v > 90: return 'very easy' 485 | if v > 80: return 'easy' 486 | if v > 70: return 'fairly easy' 487 | if v > 60: return 'plain english' 488 | if v > 50: return 'fairly difficult' 489 | if v > 30: return 'difficult' 490 | return 'very difficult' 491 | #def time(txt, cls): 492 | # return '%s' % (cls, txt) 493 | #f.write(time("Past: When describing your steps.", "past") + "
    ") 494 | #f.write(time("Present: When describing general truths.", "present") + "
    ") 495 | #f.write(time("Future: When describing future work.", "future") + "
    ") 496 | #f.write(time("Mixed tenses.", "mixed") + "
    ") 497 | #f.write("
    ") 498 | paragraphs = list(paragraphs) 499 | 500 | word_count = 0 501 | sentence_count = 0 502 | grouped_paragraphs = [] 503 | current_paragraphs = [] 504 | for para in paragraphs: 505 | current_paragraphs.append(para) 506 | for txt, tags, entities in para: 507 | if is_full_sentence(txt, tags, entities): 508 | word_count += len(tags) 509 | sentence_count += 1 510 | 511 | #if word_count > 100: 512 | if sentence_count > 30: 513 | grouped_paragraphs.append(current_paragraphs) 514 | current_paragraphs = [] 515 | word_count = 0 516 | sentence_count = 0 517 | 518 | for group in grouped_paragraphs: 519 | # compute statistics for this group 520 | out = "" 521 | sentence_count = 0 522 | sentence_lengths = [] 523 | syllables = [] 524 | poly_syllable_count = 0 525 | complex_word_count = 0 526 | for para in group: 527 | out += "

    " 528 | for txt, tags, entities in para: 529 | sentence_count += 1 530 | words = [word for (word, tag) in tags] 531 | sentence_lengths.append(count_words(words)) 532 | totsyl, polysyl, complexwords = syllable_stats(words) 533 | syllables.append(totsyl) 534 | poly_syllable_count += polysyl 535 | complex_word_count += complexwords 536 | out += txt + '\n' 537 | out += "\n

    " 538 | 539 | # compute Flesch reading ease 540 | # average sentence length 541 | asl = sum(sentence_lengths) * 1. / sentence_count 542 | # average syllables per word 543 | asw = sum(syllables) * 1. / sum(sentence_lengths) 544 | flesch_reading_ease = 206.835 - 1.015 * asl - 84.6 * asw 545 | 546 | # compute fog index 547 | complex_word_fraction = complex_word_count * 100. / sum(sentence_lengths) 548 | fog_index = 0.4 * (asl + complex_word_fraction) 549 | smog_index = 1.0430 * (poly_syllable_count * 30. / sentence_count)**0.5 + 3.1291 550 | 551 | u = 1 - flesch_reading_ease / 100. 552 | u = (fog_index - 6) / (17 - 6.) 553 | u = max(0, min(1, u)) 554 | 555 | # add color here 556 | g = max(0.1, 1 - u*1.3) 557 | b = g 558 | r = min(1, 1.7 - u*1.3) 559 | 560 | #f.write("
    Reading ease (Flesch): %.1f, Fog index (Gunning reading level): %d
    " % 561 | # (flesch_reading_ease, fog_index)) 562 | #f.write("\n
    %s
    \n" % (r*255,g*255,b*255, out)) 563 | 564 | #f.write("
    Reading ease (Flesch): %.1f, Fog index (Gunning reading level): %d
    \n" % 565 | # (r*255,g*255,b*255, flesch_reading_ease, fog_index)) 566 | #f.write(out) 567 | 568 | f.write("
    %s - Reading ease (Flesch): %.1f, Fog index (Gunning reading level):%d\n" % 569 | (r*255,g*255,b*255, reading_ease_name(flesch_reading_ease), flesch_reading_ease, fog_index)) 570 | f.write(out) 571 | f.write("
    ") 572 | 573 | 574 | f.close() 575 | 576 | def tricky_words(paragraphs): 577 | with codecs.open(filename + '_tricky.html', 'w', 'latin1') as f: 578 | f.write(header % dict(title='Tricky words')) 579 | f.write("""

    Tricky words, Prepositions & Wordiness

    580 | These phrases are misused often, colloquial or just wordy. 581 | Think about replacing them or rewriting the sentence; some suggestions are given. 582 |
    583 | 586 | """) 587 | all_rules = [] 588 | matchers = set() 589 | for rule_filename in 'tricky.txt', 'tricky_%s.txt' % lang, 'tricky_style-check.txt', 'tricky_violence.txt', 'tricky_extra.txt': 590 | f.write("

    Rules from %s

    \n" % rule_filename) 591 | is_noisy = 'extra' in rule_filename 592 | if is_noisy: 593 | f.write("

    Beware that the number of false positive is likely higher in these rules") 594 | nused = 0 595 | nrules = 0 596 | rule_header = '%s' % rule_filename 597 | rules = open(os.path.join(os.path.dirname(__file__), rule_filename)).readlines() 598 | for rule in rules: 599 | rule = rule.rstrip() 600 | if rule.startswith('###'): 601 | f.write("

    %s

    \n" % rule.lstrip('# ')) 602 | rule_header = '%s from %s' % (rule.lstrip('# '), rule_filename) 603 | continue 604 | if rule.startswith('#') or len(rule) == 0: 605 | continue 606 | if ' -> ' not in rule: 607 | print('bad rule in %s:' % rule_filename, rule) 608 | 609 | a, b = rule.split('->') 610 | all_rules.append((a, b, rule_header, is_noisy)) 611 | #if a in matchers: 612 | # print('duplicate/previously known rule in %s:' % rule_filename, rule) 613 | matchers.add(a) 614 | used = False 615 | for para in paragraphs: 616 | for txt, tags, entities in para: 617 | if a in txt: 618 | if not used: 619 | f.write("
    %s
    \n" % rule) 620 | f.write("
      \n") 621 | used = True 622 | f.write("
    • %s\n" % (txt.replace(a, '' + a + '' + ' -> '+b+' '))) 623 | if used: 624 | nused += 1 625 | f.write("
    \n") 626 | nrules += 1 627 | 628 | f.write("

    Only %d/%d rules have applied to this text

    \n" % (nused, nrules)) 629 | f.write("
    ") 630 | 631 | with codecs.open(filename + '_tricky_inline.html', 'w', 'latin1') as f: 632 | f.write(header % dict(title='Tricky words')) 633 | f.write("""

    Tricky words, Prepositions & Wordiness

    634 | The marked phrases are misused often, colloquial or just wordy. 635 | Think about replacing them or rewriting the sentence; some suggestions are given. 636 |
    637 | 640 | """) 641 | 642 | for para in paragraphs: 643 | for txt, tags, entities in para: 644 | matches = [(a, b, rule_header, is_noisy) for a, b, rule_header, is_noisy in all_rules if not is_noisy and a in txt] 645 | if len(matches) > 0: 646 | f.write("
  • %s\n" % txt) 647 | already_marked = set() 648 | f.write('
      \n') 649 | for a, b, rule_header, is_noisy in matches: 650 | if a in already_marked: 651 | continue 652 | f.write('
    • %s\n' % ('noisy' if is_noisy else '', txt.replace(a, '%s -> %s ' % (a, rule_header, b)))) 653 | already_marked.add(a) 654 | f.write('
    \n') 655 | 656 | 657 | 658 | def a_or_an_words(paragraphs): 659 | with codecs.open(filename + '_a.html', 'w', 'latin1') as f: 660 | f.write(header % dict(title='a or an')) 661 | f.write("""

    a or an?

    662 | The rule is that a is used before a word starting with a 663 | consonant (a house, a unicorn), and an before a vowel 664 | (an ox, an hour). Here we check whether the following word is a vowel or consonant. 665 |
    666 | 669 | """) 670 | from collections import defaultdict 671 | firstsyll = defaultdict(list) 672 | for word, syl in nltk.corpus.cmudict.entries(): 673 | firstsyll[word].append(syl[0]) 674 | 675 | nfound = 0 676 | nwrong = 0 677 | ncorrect = 0 678 | f.write("
      \n") 679 | for para in paragraphs: 680 | for txt, tags, entities in para: 681 | for i, (word, _wordtype) in enumerate(tags): 682 | if word not in ('a', 'an'): 683 | continue 684 | expect_vowel = word == 'an' 685 | if i + 1 == len(tags): 686 | # no word after a/an. 687 | continue 688 | nextword, _wordtype2 = tags[i+1] 689 | if nextword.isupper(): 690 | # need to spell word 691 | # just use first letter 692 | nextword = nextword[0].lower() 693 | nfound += 1 694 | nextsylls = firstsyll.get(nextword, []) 695 | guess = False 696 | is_potentially_vowel = False 697 | is_potentially_consonant = False 698 | for nextsyll in nextsylls: 699 | if nextsyll[0] in 'AEIOU': 700 | is_potentially_vowel = True 701 | else: 702 | is_potentially_consonant = True 703 | if len(nextsylls) == 0: 704 | # we do not know how to pronounce this word 705 | # try to use simple rule of consonants and vowels 706 | guess = True 707 | if nextword[0].upper() in 'AEIOU': 708 | is_potentially_vowel = True 709 | else: 710 | is_potentially_consonant = True 711 | if expect_vowel and is_potentially_vowel: 712 | continue # ok 713 | ncorrect += 1 714 | elif not expect_vowel and is_potentially_consonant: 715 | continue # ok 716 | ncorrect += 1 717 | else: 718 | guesstext = ' (word unknown, simple guess)' if guess else '' 719 | nwrong += 1 720 | if is_potentially_vowel: 721 | f.write("
    • %s %s -> *AN* %s%s\n" % (word, nextword, nextword, guesstext)) 722 | elif is_potentially_consonant: 723 | f.write("
    • %s %s -> *A* %s%s\n" % (word, nextword, nextword, guesstext)) 724 | else: 725 | print('unexpected:', word, nextword, nextsylls, expect_vowel, is_potentially_vowel, is_potentially_consonant) 726 | f.write("
    \n") 727 | f.write("

    %d of %d usages correct.

    \n" % (nfound - nwrong, nfound)) 728 | f.close() 729 | 730 | with codecs.open(filename + '_index.html', 'w', 'latin1') as f: 731 | f.write(header % dict(title='Language check')) 732 | f.write("""

    Report for "%(prefix)s"

    733 | This program attempts to assist you in improving your paper. 734 | Language is ambiguous and subjective, a computer can not understand it. 735 | All results should be seen as suggestions; think about the highlighted sentences. 736 | 737 |

    Available reports

    738 | 756 | 757 |

    758 | Caveat emptor: The generated reports linked above may help you catch some classes of common mistakes, 759 | but does not replace careful reading and self-editing. 760 |


    761 | Here are some systematic steps to consider when improving a paper: 762 |

    763 | 764 |

    Context-level

    765 |
      766 |
    • %(checkbox)s Is the text placed well in context (in relation to wider debate)? 767 |
    • %(checkbox)s Will readers from different contexts understand? Do they require more support? 768 |
    • %(checkbox)s Are there enough inter-text links? References, cross-links to sections, figures. Do you need to be more explicit? 769 |
    770 | 771 |

    Concept-level

    772 |
      773 |
    • %(checkbox)s what concept involved? How difficult are they? Do they rely on culture? 774 |
    • %(checkbox)s Have the concepts been presented clearly and in enough detail? 775 |
    • %(checkbox)s What is the argument? How complicated is it? How obvious is the logic? 776 |
    777 | 778 |

    Sentence-level

    779 |
      780 |
    • %(checkbox)s Spot inert sentences. Wordy, awkward connections. Those that do not advance the argument/text. 781 |
    • %(checkbox)s Delete whereever you can. 782 |
    • %(checkbox)s How lengthy are the sentences? How complex grammatically are the sentences? read most difficult sentence aloud. 783 |
    • %(checkbox)s Which sentence is most difficult to understand / easy to misinterpret? 784 |
    • %(checkbox)s Unclear grammar? 785 |
    • %(checkbox)s Add repetition only where useful 786 |
    • %(checkbox)s Consider different modes of presenting 787 |
    • %(checkbox)s How would one of my reader see this text? 788 |
    • %(checkbox)s Put best, shining ideas in the spotlight 789 |
    790 | 791 |

    Word/Phrasing

    792 | Tip: Try reading the text to yourself out loud! (alternatively, try a text-to-speech program) 793 |
      794 |
    • %(checkbox)s word/phrase unfamiliar? 795 |
    • %(checkbox)s word/phrase ambiguous/confusing? 796 |
    • %(checkbox)s word/phrase synonyms, different meanings? distinct? 797 |
    798 | 799 |

    Repeat from above.

    800 | 801 |

    Slow reading, secretary-level work

    802 |
      803 |
    • %(checkbox)s Before doing this, it is best to take a break from your text for a day or two 804 |
    • %(checkbox)s Adopt the attitude: "There are bound to be some errors here and it is my job to find them now." 805 |
    • %(checkbox)s Reformat your text to double-spaced lines and read aloud. 806 |
    • %(checkbox)s Check completeness (internal references) 807 |
    • %(checkbox)s Check consistency (nomenclature, policies) 808 |
    • %(checkbox)s Check accuracy (of quotations, values, statistics, references). 809 |
    810 |

    811 | 812 |

    Presentation

    813 |
      814 |
    • %(checkbox)s Adhere to style of publisher 815 |
    • %(checkbox)s Check figures 816 |
    817 |

    818 |

      819 | """ % dict(prefix=os.path.basename(filename), checkbox='')) 820 | 821 | 822 | doc = codecs.open(filename, encoding='latin1').read() 823 | while '\n\n\n' in doc: 824 | doc = doc.replace('\n\n\n', '\n\n') 825 | 826 | chunks = doc.split('\n\n') 827 | 828 | # those chunks are the parts of the documents 829 | #print '\n\n---\n\n'.join(chunks[:20]) 830 | #print 'XXXXXXXX' 831 | # python -m nltk.downloader all 832 | #tagger = nltk.data.load(nltk.tag._POS_TAGGER).tag_sents 833 | tagger = nltk.tag.pos_tag_sents 834 | #from nltk.tag.hunpos import HunposTagger 835 | #import os 836 | #a = os.path.dirname(__file__) 837 | #tagger = HunposTagger(path_to_model=a + '/hunpos-1.0-linux/hunpos-tag', path_to_bin=a + '/hunpos-1.0-linux/en_wsj.model') 838 | 839 | paragraphs = [] 840 | for i, chunk in enumerate(chunks): 841 | sys.stdout.write('Analysing paragraph %d/%d \r' % (i+1, len(chunks))) 842 | sys.stdout.flush() 843 | chunk = chunk.replace(' .', ' X.').replace(r'\textem', '').replace(r'\textbf', '').replace(r'\texttt', '').replace(r'\em', '').replace(r'\textit', '').replace(r'\it', '').replace('~', ' ').replace('\n', ' ') 844 | chunk = chunk.replace('[', ' ').replace(']', ' ').replace(' ', ' ').replace(' ', ' ') 845 | # try to pass this on to ntkl 846 | sentences = nltk.sent_tokenize(chunk) 847 | tokens = [nltk.word_tokenize(sent) for sent in sentences] 848 | tags = tagger(tokens) 849 | #entities = nltk.chunk.ne_chunk_sents(tags) 850 | entities = [[] for tag in tags] 851 | para = list(zip(sentences, tags, entities)) 852 | if para: 853 | paragraphs.append(para) 854 | 855 | print() 856 | print('analysis: a vs an') 857 | a_or_an_words(paragraphs) 858 | print('analysis: tricky words') 859 | tricky_words(paragraphs) 860 | print('analysis: wordiness') 861 | wordiness(paragraphs) 862 | print('analysis: reading ease') 863 | readability(paragraphs) 864 | print('analysis: tenses') 865 | tenses(paragraphs) 866 | print('analysis: topic sentences') 867 | topic_sentences(paragraphs) 868 | print('analysis: paragraph consistency') 869 | consistent_paragraph(paragraphs) 870 | print('analysis: spelling mistakes') 871 | spelling(paragraphs) 872 | 873 | 874 | print('analysis: visualisation') 875 | r = process.wait() 876 | if r != 0: 877 | print('visualisation returned with', r) 878 | with codecs.open(filename + '_vis.html', 'w', 'latin1') as f: 879 | f.write(header % dict(title='Appearance')) 880 | f.write("""

      Appearance

      881 |

      Papers are also supposed to look attractive, 882 | so that the reader wants to jump in. 883 |

      884 | 885 |

      Do these pages look odd? Does the abstract look unusually long? 886 | Are the figures well-placed and inviting? 887 |

      888 | """) 889 | j = 0 890 | for i in list_img(): 891 | if os.path.exists(i): 892 | j = j + 1 893 | f.write("" % os.path.basename(i)) 894 | if j % 2 == 0: 895 | f.write("
      \n") 896 | if j == 0: 897 | print('WARNING: converting pdf to images seems to have failed.') 898 | 899 | 900 | print('done') 901 | 902 | print() 903 | print('open %s in a web browser' % (filename + '_index.html')) 904 | -------------------------------------------------------------------------------- /easy_words.txt: -------------------------------------------------------------------------------- 1 | # from https://github.com/shivam5992/textstat/blob/master/textstat/easy_words.txt 2 | # MIT license https://github.com/shivam5992/textstat/blob/master/LICENSE.txt 3 | a 4 | able 5 | aboard 6 | about 7 | above 8 | absent 9 | accept 10 | accident 11 | account 12 | ache 13 | aching 14 | acorn 15 | acre 16 | across 17 | act 18 | acts 19 | add 20 | address 21 | admire 22 | adventure 23 | afar 24 | afraid 25 | after 26 | afternoon 27 | afterward 28 | afterwards 29 | again 30 | against 31 | age 32 | aged 33 | ago 34 | agree 35 | ah 36 | ahead 37 | aid 38 | aim 39 | air 40 | airfield 41 | airplane 42 | airport 43 | airship 44 | airy 45 | alarm 46 | alike 47 | alive 48 | all 49 | alley 50 | alligator 51 | allow 52 | almost 53 | alone 54 | along 55 | aloud 56 | already 57 | also 58 | always 59 | am 60 | America 61 | American 62 | among 63 | amount 64 | an 65 | and 66 | angel 67 | anger 68 | angry 69 | animal 70 | another 71 | answer 72 | ant 73 | any 74 | anybody 75 | anyhow 76 | anyone 77 | anything 78 | anyway 79 | anywhere 80 | apart 81 | apartment 82 | ape 83 | apiece 84 | appear 85 | apple 86 | April 87 | apron 88 | are 89 | aren't 90 | arise 91 | arithmetic 92 | arm 93 | armful 94 | army 95 | arose 96 | around 97 | arrange 98 | arrive 99 | arrived 100 | arrow 101 | art 102 | artist 103 | as 104 | ash 105 | ashes 106 | aside 107 | ask 108 | asleep 109 | at 110 | ate 111 | attack 112 | attend 113 | attention 114 | August 115 | aunt 116 | author 117 | auto 118 | automobile 119 | autumn 120 | avenue 121 | awake 122 | awaken 123 | away 124 | awful 125 | awfully 126 | awhile 127 | ax 128 | axe 129 | baa 130 | babe 131 | babies 132 | back 133 | background 134 | backward 135 | backwards 136 | bacon 137 | bad 138 | badge 139 | badly 140 | bag 141 | bake 142 | baker 143 | bakery 144 | baking 145 | ball 146 | balloon 147 | banana 148 | band 149 | bandage 150 | bang 151 | banjo 152 | bank 153 | banker 154 | bar 155 | barber 156 | bare 157 | barefoot 158 | barely 159 | bark 160 | barn 161 | barrel 162 | base 163 | baseball 164 | basement 165 | basket 166 | bat 167 | batch 168 | bath 169 | bathe 170 | bathing 171 | bathroom 172 | bathtub 173 | battle 174 | battleship 175 | bay 176 | be 177 | beach 178 | bead 179 | beam 180 | bean 181 | bear 182 | beard 183 | beast 184 | beat 185 | beating 186 | beautiful 187 | beautify 188 | beauty 189 | became 190 | because 191 | become 192 | becoming 193 | bed 194 | bedbug 195 | bedroom 196 | bedspread 197 | bedtime 198 | bee 199 | beech 200 | beef 201 | beefsteak 202 | beehive 203 | been 204 | beer 205 | beet 206 | before 207 | beg 208 | began 209 | beggar 210 | begged 211 | begin 212 | beginning 213 | begun 214 | behave 215 | behind 216 | being 217 | believe 218 | bell 219 | belong 220 | below 221 | belt 222 | bench 223 | bend 224 | beneath 225 | bent 226 | berries 227 | berry 228 | beside 229 | besides 230 | best 231 | bet 232 | better 233 | between 234 | bib 235 | bible 236 | bicycle 237 | bid 238 | big 239 | bigger 240 | bill 241 | billboard 242 | bin 243 | bind 244 | bird 245 | birth 246 | birthday 247 | biscuit 248 | bit 249 | bite 250 | biting 251 | bitter 252 | black 253 | blackberry 254 | blackbird 255 | blackboard 256 | blackness 257 | blacksmith 258 | blame 259 | blank 260 | blanket 261 | blast 262 | blaze 263 | bleed 264 | bless 265 | blessing 266 | blew 267 | blind 268 | blindfold 269 | blinds 270 | block 271 | blood 272 | bloom 273 | blossom 274 | blot 275 | blow 276 | blue 277 | blueberry 278 | bluebird 279 | blush 280 | board 281 | boast 282 | boat 283 | bob 284 | bobwhite 285 | bodies 286 | body 287 | boil 288 | boiler 289 | bold 290 | bone 291 | bonnet 292 | boo 293 | book 294 | bookcase 295 | bookkeeper 296 | boom 297 | boot 298 | born 299 | borrow 300 | boss 301 | both 302 | bother 303 | bottle 304 | bottom 305 | bought 306 | bounce 307 | bow 308 | bowl 309 | bow-wow 310 | box 311 | boxcar 312 | boxer 313 | boxes 314 | boy 315 | boyhood 316 | bracelet 317 | brain 318 | brake 319 | bran 320 | branch 321 | brass 322 | brave 323 | bread 324 | break 325 | breakfast 326 | breast 327 | breath 328 | breathe 329 | breeze 330 | brick 331 | bride 332 | bridge 333 | bright 334 | brightness 335 | bring 336 | broad 337 | broadcast 338 | broke 339 | broken 340 | brook 341 | broom 342 | brother 343 | brought 344 | brown 345 | brush 346 | bubble 347 | bucket 348 | buckle 349 | bud 350 | buffalo 351 | bug 352 | buggy 353 | build 354 | building 355 | built 356 | bulb 357 | bull 358 | bullet 359 | bum 360 | bumblebee 361 | bump 362 | bun 363 | bunch 364 | bundle 365 | bunny 366 | burn 367 | burst 368 | bury 369 | bus 370 | bush 371 | bushel 372 | business 373 | busy 374 | but 375 | butcher 376 | butt 377 | butter 378 | buttercup 379 | butterfly 380 | buttermilk 381 | butterscotch 382 | button 383 | buttonhole 384 | buy 385 | buzz 386 | by 387 | bye 388 | cab 389 | cabbage 390 | cabin 391 | cabinet 392 | cackle 393 | cage 394 | cake 395 | calendar 396 | calf 397 | call 398 | caller 399 | calling 400 | came 401 | camel 402 | camp 403 | campfire 404 | can 405 | canal 406 | canary 407 | candle 408 | candlestick 409 | candy 410 | cane 411 | cannon 412 | cannot 413 | canoe 414 | can't 415 | canyon 416 | cap 417 | cape 418 | capital 419 | captain 420 | car 421 | card 422 | cardboard 423 | care 424 | careful 425 | careless 426 | carelessness 427 | carload 428 | carpenter 429 | carpet 430 | carriage 431 | carrot 432 | carry 433 | cart 434 | carve 435 | case 436 | cash 437 | cashier 438 | castle 439 | cat 440 | catbird 441 | catch 442 | catcher 443 | caterpillar 444 | catfish 445 | catsup 446 | cattle 447 | caught 448 | cause 449 | cave 450 | ceiling 451 | cell 452 | cellar 453 | cent 454 | center 455 | cereal 456 | certain 457 | certainly 458 | chain 459 | chair 460 | chalk 461 | champion 462 | chance 463 | change 464 | chap 465 | charge 466 | charm 467 | chart 468 | chase 469 | chatter 470 | cheap 471 | cheat 472 | check 473 | checkers 474 | cheek 475 | cheer 476 | cheese 477 | cherry 478 | chest 479 | chew 480 | chick 481 | chicken 482 | chief 483 | child 484 | childhood 485 | children 486 | chill 487 | chilly 488 | chimney 489 | chin 490 | china 491 | chip 492 | chipmunk 493 | chocolate 494 | choice 495 | choose 496 | chop 497 | chorus 498 | chose 499 | chosen 500 | christen 501 | Christmas 502 | church 503 | churn 504 | cigarette 505 | circle 506 | circus 507 | citizen 508 | city 509 | clang 510 | clap 511 | class 512 | classmate 513 | classroom 514 | claw 515 | clay 516 | clean 517 | cleaner 518 | clear 519 | clerk 520 | clever 521 | click 522 | cliff 523 | climb 524 | clip 525 | cloak 526 | clock 527 | close 528 | closet 529 | cloth 530 | clothes 531 | clothing 532 | cloud 533 | cloudy 534 | clover 535 | clown 536 | club 537 | cluck 538 | clump 539 | coach 540 | coal 541 | coast 542 | coat 543 | cob 544 | cobbler 545 | cocoa 546 | coconut 547 | cocoon 548 | cod 549 | codfish 550 | coffee 551 | coffeepot 552 | coin 553 | cold 554 | collar 555 | college 556 | color 557 | colored 558 | colt 559 | column 560 | comb 561 | come 562 | comfort 563 | comic 564 | coming 565 | company 566 | compare 567 | conductor 568 | cone 569 | connect 570 | coo 571 | cook 572 | cooked 573 | cooking 574 | cookie 575 | cookies 576 | cool 577 | cooler 578 | coop 579 | copper 580 | copy 581 | cord 582 | cork 583 | corn 584 | corner 585 | correct 586 | cost 587 | cot 588 | cottage 589 | cotton 590 | couch 591 | cough 592 | could 593 | couldn't 594 | count 595 | counter 596 | country 597 | county 598 | course 599 | court 600 | cousin 601 | cover 602 | cow 603 | coward 604 | cowardly 605 | cowboy 606 | cozy 607 | crab 608 | crack 609 | cracker 610 | cradle 611 | cramps 612 | cranberry 613 | crank 614 | cranky 615 | crash 616 | crawl 617 | crazy 618 | cream 619 | creamy 620 | creek 621 | creep 622 | crept 623 | cried 624 | croak 625 | crook 626 | crooked 627 | crop 628 | cross 629 | crossing 630 | cross-eyed 631 | crow 632 | crowd 633 | crowded 634 | crown 635 | cruel 636 | crumb 637 | crumble 638 | crush 639 | crust 640 | cry 641 | cries 642 | cub 643 | cuff 644 | cup 645 | cuff 646 | cup 647 | cupboard 648 | cupful 649 | cure 650 | curl 651 | curly 652 | curtain 653 | curve 654 | cushion 655 | custard 656 | customer 657 | cut 658 | cute 659 | cutting 660 | dab 661 | dad 662 | daddy 663 | daily 664 | dairy 665 | daisy 666 | dam 667 | damage 668 | dame 669 | damp 670 | dance 671 | dancer 672 | dancing 673 | dandy 674 | danger 675 | dangerous 676 | dare 677 | dark 678 | darkness 679 | darling 680 | darn 681 | dart 682 | dash 683 | date 684 | daughter 685 | dawn 686 | day 687 | daybreak 688 | daytime 689 | dead 690 | deaf 691 | deal 692 | dear 693 | death 694 | December 695 | decide 696 | deck 697 | deed 698 | deep 699 | deer 700 | defeat 701 | defend 702 | defense 703 | delight 704 | den 705 | dentist 706 | depend 707 | deposit 708 | describe 709 | desert 710 | deserve 711 | desire 712 | desk 713 | destroy 714 | devil 715 | dew 716 | diamond 717 | did 718 | didn't 719 | die 720 | died 721 | dies 722 | difference 723 | different 724 | dig 725 | dim 726 | dime 727 | dine 728 | ding-dong 729 | dinner 730 | dip 731 | direct 732 | direction 733 | dirt 734 | dirty 735 | discover 736 | dish 737 | dislike 738 | dismiss 739 | ditch 740 | dive 741 | diver 742 | divide 743 | do 744 | dock 745 | doctor 746 | does 747 | doesn't 748 | dog 749 | doll 750 | dollar 751 | dolly 752 | done 753 | donkey 754 | don't 755 | door 756 | doorbell 757 | doorknob 758 | doorstep 759 | dope 760 | dot 761 | double 762 | dough 763 | dove 764 | down 765 | downstairs 766 | downtown 767 | dozen 768 | drag 769 | drain 770 | drank 771 | draw 772 | drawer 773 | draw 774 | drawing 775 | dream 776 | dress 777 | dresser 778 | dressmaker 779 | drew 780 | dried 781 | drift 782 | drill 783 | drink 784 | drip 785 | drive 786 | driven 787 | driver 788 | drop 789 | drove 790 | drown 791 | drowsy 792 | drub 793 | drum 794 | drunk 795 | dry 796 | duck 797 | due 798 | dug 799 | dull 800 | dumb 801 | dump 802 | during 803 | dust 804 | dusty 805 | duty 806 | dwarf 807 | dwell 808 | dwelt 809 | dying 810 | each 811 | eager 812 | eagle 813 | ear 814 | early 815 | earn 816 | earth 817 | east 818 | eastern 819 | easy 820 | eat 821 | eaten 822 | edge 823 | egg 824 | eh 825 | eight 826 | eighteen 827 | eighth 828 | eighty 829 | either 830 | elbow 831 | elder 832 | eldest 833 | electric 834 | electricity 835 | elephant 836 | eleven 837 | elf 838 | elm 839 | else 840 | elsewhere 841 | empty 842 | end 843 | ending 844 | enemy 845 | engine 846 | engineer 847 | English 848 | enjoy 849 | enough 850 | enter 851 | envelope 852 | equal 853 | erase 854 | eraser 855 | errand 856 | escape 857 | eve 858 | even 859 | evening 860 | ever 861 | every 862 | everybody 863 | everyday 864 | everyone 865 | everything 866 | everywhere 867 | evil 868 | exact 869 | except 870 | exchange 871 | excited 872 | exciting 873 | excuse 874 | exit 875 | expect 876 | explain 877 | extra 878 | eye 879 | eyebrow 880 | fable 881 | face 882 | facing 883 | fact 884 | factory 885 | fail 886 | faint 887 | fair 888 | fairy 889 | faith 890 | fake 891 | fall 892 | false 893 | family 894 | fan 895 | fancy 896 | far 897 | faraway 898 | fare 899 | farmer 900 | farm 901 | farming 902 | far-off 903 | farther 904 | fashion 905 | fast 906 | fasten 907 | fat 908 | father 909 | fault 910 | favor 911 | favorite 912 | fear 913 | feast 914 | feather 915 | February 916 | fed 917 | feed 918 | feel 919 | feet 920 | fell 921 | fellow 922 | felt 923 | fence 924 | fever 925 | few 926 | fib 927 | fiddle 928 | field 929 | fife 930 | fifteen 931 | fifth 932 | fifty 933 | fig 934 | fight 935 | figure 936 | file 937 | fill 938 | film 939 | finally 940 | find 941 | fine 942 | finger 943 | finish 944 | fire 945 | firearm 946 | firecracker 947 | fireplace 948 | fireworks 949 | firing 950 | first 951 | fish 952 | fisherman 953 | fist 954 | fit 955 | fits 956 | five 957 | fix 958 | flag 959 | flake 960 | flame 961 | flap 962 | flash 963 | flashlight 964 | flat 965 | flea 966 | flesh 967 | flew 968 | flies 969 | flight 970 | flip 971 | flip-flop 972 | float 973 | flock 974 | flood 975 | floor 976 | flop 977 | flour 978 | flow 979 | flower 980 | flowery 981 | flutter 982 | fly 983 | foam 984 | fog 985 | foggy 986 | fold 987 | folks 988 | follow 989 | following 990 | fond 991 | food 992 | fool 993 | foolish 994 | foot 995 | football 996 | footprint 997 | for 998 | forehead 999 | forest 1000 | forget 1001 | forgive 1002 | forgot 1003 | forgotten 1004 | fork 1005 | form 1006 | fort 1007 | forth 1008 | fortune 1009 | forty 1010 | forward 1011 | fought 1012 | found 1013 | fountain 1014 | four 1015 | fourteen 1016 | fourth 1017 | fox 1018 | frame 1019 | free 1020 | freedom 1021 | freeze 1022 | freight 1023 | French 1024 | fresh 1025 | fret 1026 | Friday 1027 | fried 1028 | friend 1029 | friendly 1030 | friendship 1031 | frighten 1032 | frog 1033 | from 1034 | front 1035 | frost 1036 | frown 1037 | froze 1038 | fruit 1039 | fry 1040 | fudge 1041 | fuel 1042 | full 1043 | fully 1044 | fun 1045 | funny 1046 | fur 1047 | furniture 1048 | further 1049 | fuzzy 1050 | gain 1051 | gallon 1052 | gallop 1053 | game 1054 | gang 1055 | garage 1056 | garbage 1057 | garden 1058 | gas 1059 | gasoline 1060 | gate 1061 | gather 1062 | gave 1063 | gay 1064 | gear 1065 | geese 1066 | general 1067 | gentle 1068 | gentleman 1069 | gentlemen 1070 | geography 1071 | get 1072 | getting 1073 | giant 1074 | gift 1075 | gingerbread 1076 | girl 1077 | give 1078 | given 1079 | giving 1080 | glad 1081 | gladly 1082 | glance 1083 | glass 1084 | glasses 1085 | gleam 1086 | glide 1087 | glory 1088 | glove 1089 | glow 1090 | glue 1091 | go 1092 | going 1093 | goes 1094 | goal 1095 | goat 1096 | gobble 1097 | God 1098 | god 1099 | godmother 1100 | gold 1101 | golden 1102 | goldfish 1103 | golf 1104 | gone 1105 | good 1106 | goods 1107 | goodbye 1108 | good-by 1109 | goodbye 1110 | good-bye 1111 | good-looking 1112 | goodness 1113 | goody 1114 | goose 1115 | gooseberry 1116 | got 1117 | govern 1118 | government 1119 | gown 1120 | grab 1121 | gracious 1122 | grade 1123 | grain 1124 | grand 1125 | grandchild 1126 | grandchildren 1127 | granddaughter 1128 | grandfather 1129 | grandma 1130 | grandmother 1131 | grandpa 1132 | grandson 1133 | grandstand 1134 | grape 1135 | grapes 1136 | grapefruit 1137 | grass 1138 | grasshopper 1139 | grateful 1140 | grave 1141 | gravel 1142 | graveyard 1143 | gravy 1144 | gray 1145 | graze 1146 | grease 1147 | great 1148 | green 1149 | greet 1150 | grew 1151 | grind 1152 | groan 1153 | grocery 1154 | ground 1155 | group 1156 | grove 1157 | grow 1158 | guard 1159 | guess 1160 | guest 1161 | guide 1162 | gulf 1163 | gum 1164 | gun 1165 | gunpowder 1166 | guy 1167 | ha 1168 | habit 1169 | had 1170 | hadn't 1171 | hail 1172 | hair 1173 | haircut 1174 | hairpin 1175 | half 1176 | hall 1177 | halt 1178 | ham 1179 | hammer 1180 | hand 1181 | handful 1182 | handkerchief 1183 | handle 1184 | handwriting 1185 | hang 1186 | happen 1187 | happily 1188 | happiness 1189 | happy 1190 | harbor 1191 | hard 1192 | hardly 1193 | hardship 1194 | hardware 1195 | hare 1196 | hark 1197 | harm 1198 | harness 1199 | harp 1200 | harvest 1201 | has 1202 | hasn't 1203 | haste 1204 | hasten 1205 | hasty 1206 | hat 1207 | hatch 1208 | hatchet 1209 | hate 1210 | haul 1211 | have 1212 | haven't 1213 | having 1214 | hawk 1215 | hay 1216 | hayfield 1217 | haystack 1218 | he 1219 | head 1220 | headache 1221 | heal 1222 | health 1223 | healthy 1224 | heap 1225 | hear 1226 | hearing 1227 | heard 1228 | heart 1229 | heat 1230 | heater 1231 | heaven 1232 | heavy 1233 | he'd 1234 | heel 1235 | height 1236 | held 1237 | hell 1238 | he'll 1239 | hello 1240 | helmet 1241 | help 1242 | helper 1243 | helpful 1244 | hem 1245 | hen 1246 | henhouse 1247 | her 1248 | hers 1249 | herd 1250 | here 1251 | here's 1252 | hero 1253 | herself 1254 | he's 1255 | hey 1256 | hickory 1257 | hid 1258 | hidden 1259 | hide 1260 | high 1261 | highway 1262 | hill 1263 | hillside 1264 | hilltop 1265 | hilly 1266 | him 1267 | himself 1268 | hind 1269 | hint 1270 | hip 1271 | hire 1272 | his 1273 | hiss 1274 | history 1275 | hit 1276 | hitch 1277 | hive 1278 | ho 1279 | hoe 1280 | hog 1281 | hold 1282 | holder 1283 | hole 1284 | holiday 1285 | hollow 1286 | holy 1287 | home 1288 | homely 1289 | homesick 1290 | honest 1291 | honey 1292 | honeybee 1293 | honeymoon 1294 | honk 1295 | honor 1296 | hood 1297 | hoof 1298 | hook 1299 | hoop 1300 | hop 1301 | hope 1302 | hopeful 1303 | hopeless 1304 | horn 1305 | horse 1306 | horseback 1307 | horseshoe 1308 | hose 1309 | hospital 1310 | host 1311 | hot 1312 | hotel 1313 | hound 1314 | hour 1315 | house 1316 | housetop 1317 | housewife 1318 | housework 1319 | how 1320 | however 1321 | howl 1322 | hug 1323 | huge 1324 | hum 1325 | humble 1326 | hump 1327 | hundred 1328 | hung 1329 | hunger 1330 | hungry 1331 | hunk 1332 | hunt 1333 | hunter 1334 | hurrah 1335 | hurried 1336 | hurry 1337 | hurt 1338 | husband 1339 | hush 1340 | hut 1341 | hymn 1342 | I 1343 | ice 1344 | icy 1345 | I'd 1346 | idea 1347 | ideal 1348 | if 1349 | ill 1350 | I'll 1351 | I'm 1352 | important 1353 | impossible 1354 | improve 1355 | in 1356 | inch 1357 | inches 1358 | income 1359 | indeed 1360 | Indian 1361 | indoors 1362 | ink 1363 | inn 1364 | insect 1365 | inside 1366 | instant 1367 | instead 1368 | insult 1369 | intend 1370 | interested 1371 | interesting 1372 | into 1373 | invite 1374 | iron 1375 | is 1376 | island 1377 | isn't 1378 | it 1379 | its 1380 | it's 1381 | itself 1382 | I've 1383 | ivory 1384 | ivy 1385 | jacket 1386 | jacks 1387 | jail 1388 | jam 1389 | January 1390 | jar 1391 | jaw 1392 | jay 1393 | jelly 1394 | jellyfish 1395 | jerk 1396 | jig 1397 | job 1398 | jockey 1399 | join 1400 | joke 1401 | joking 1402 | jolly 1403 | journey 1404 | joy 1405 | joyful 1406 | joyous 1407 | judge 1408 | jug 1409 | juice 1410 | juicy 1411 | July 1412 | jump 1413 | June 1414 | junior 1415 | junk 1416 | just 1417 | keen 1418 | keep 1419 | kept 1420 | kettle 1421 | key 1422 | kick 1423 | kid 1424 | kill 1425 | killed 1426 | kind 1427 | kindly 1428 | kindness 1429 | king 1430 | kingdom 1431 | kiss 1432 | kitchen 1433 | kite 1434 | kitten 1435 | kitty 1436 | knee 1437 | kneel 1438 | knew 1439 | knife 1440 | knit 1441 | knives 1442 | knob 1443 | knock 1444 | knot 1445 | know 1446 | known 1447 | lace 1448 | lad 1449 | ladder 1450 | ladies 1451 | lady 1452 | laid 1453 | lake 1454 | lamb 1455 | lame 1456 | lamp 1457 | land 1458 | lane 1459 | language 1460 | lantern 1461 | lap 1462 | lard 1463 | large 1464 | lash 1465 | lass 1466 | last 1467 | late 1468 | laugh 1469 | laundry 1470 | law 1471 | lawn 1472 | lawyer 1473 | lay 1474 | lazy 1475 | lead 1476 | leader 1477 | leaf 1478 | leak 1479 | lean 1480 | leap 1481 | learn 1482 | learned 1483 | least 1484 | leather 1485 | leave 1486 | leaving 1487 | led 1488 | left 1489 | leg 1490 | lemon 1491 | lemonade 1492 | lend 1493 | length 1494 | less 1495 | lesson 1496 | let 1497 | let's 1498 | letter 1499 | letting 1500 | lettuce 1501 | level 1502 | liberty 1503 | library 1504 | lice 1505 | lick 1506 | lid 1507 | lie 1508 | life 1509 | lift 1510 | light 1511 | lightness 1512 | lightning 1513 | like 1514 | likely 1515 | liking 1516 | lily 1517 | limb 1518 | lime 1519 | limp 1520 | line 1521 | linen 1522 | lion 1523 | lip 1524 | list 1525 | listen 1526 | lit 1527 | little 1528 | live 1529 | lives 1530 | lively 1531 | liver 1532 | living 1533 | lizard 1534 | load 1535 | loaf 1536 | loan 1537 | loaves 1538 | lock 1539 | locomotive 1540 | log 1541 | lone 1542 | lonely 1543 | lonesome 1544 | long 1545 | look 1546 | lookout 1547 | loop 1548 | loose 1549 | lord 1550 | lose 1551 | loser 1552 | loss 1553 | lost 1554 | lot 1555 | loud 1556 | love 1557 | lovely 1558 | lover 1559 | low 1560 | luck 1561 | lucky 1562 | lumber 1563 | lump 1564 | lunch 1565 | lying 1566 | machine 1567 | machinery 1568 | mad 1569 | made 1570 | magazine 1571 | magic 1572 | maid 1573 | mail 1574 | mailbox 1575 | mailman 1576 | major 1577 | make 1578 | making 1579 | male 1580 | mama 1581 | mamma 1582 | man 1583 | manager 1584 | mane 1585 | manger 1586 | many 1587 | map 1588 | maple 1589 | marble 1590 | march 1591 | March 1592 | mare 1593 | mark 1594 | market 1595 | marriage 1596 | married 1597 | marry 1598 | mask 1599 | mast 1600 | master 1601 | mat 1602 | match 1603 | matter 1604 | mattress 1605 | may 1606 | May 1607 | maybe 1608 | mayor 1609 | maypole 1610 | me 1611 | meadow 1612 | meal 1613 | mean 1614 | means 1615 | meant 1616 | measure 1617 | meat 1618 | medicine 1619 | meet 1620 | meeting 1621 | melt 1622 | member 1623 | men 1624 | mend 1625 | meow 1626 | merry 1627 | mess 1628 | message 1629 | met 1630 | metal 1631 | mew 1632 | mice 1633 | middle 1634 | midnight 1635 | might 1636 | mighty 1637 | mile 1638 | milk 1639 | milkman 1640 | mill 1641 | miler 1642 | million 1643 | mind 1644 | mine 1645 | miner 1646 | mint 1647 | minute 1648 | mirror 1649 | mischief 1650 | miss 1651 | Miss 1652 | misspell 1653 | mistake 1654 | misty 1655 | mitt 1656 | mitten 1657 | mix 1658 | moment 1659 | Monday 1660 | money 1661 | monkey 1662 | month 1663 | moo 1664 | moon 1665 | moonlight 1666 | moose 1667 | mop 1668 | more 1669 | morning 1670 | morrow 1671 | moss 1672 | most 1673 | mostly 1674 | mother 1675 | motor 1676 | mount 1677 | mountain 1678 | mouse 1679 | mouth 1680 | move 1681 | movie 1682 | movies 1683 | moving 1684 | mow 1685 | Mr. 1686 | Mrs. 1687 | much 1688 | mud 1689 | muddy 1690 | mug 1691 | mule 1692 | multiply 1693 | murder 1694 | music 1695 | must 1696 | my 1697 | myself 1698 | nail 1699 | name 1700 | nap 1701 | napkin 1702 | narrow 1703 | nasty 1704 | naughty 1705 | navy 1706 | near 1707 | nearby 1708 | nearly 1709 | neat 1710 | neck 1711 | necktie 1712 | need 1713 | needle 1714 | needn't 1715 | Negro 1716 | neighbor 1717 | neighborhood 1718 | neither 1719 | nerve 1720 | nest 1721 | net 1722 | never 1723 | nevermore 1724 | new 1725 | news 1726 | newspaper 1727 | next 1728 | nibble 1729 | nice 1730 | nickel 1731 | night 1732 | nightgown 1733 | nine 1734 | nineteen 1735 | ninety 1736 | no 1737 | nobody 1738 | nod 1739 | noise 1740 | noisy 1741 | none 1742 | noon 1743 | nor 1744 | north 1745 | northern 1746 | nose 1747 | not 1748 | note 1749 | nothing 1750 | notice 1751 | November 1752 | now 1753 | nowhere 1754 | number 1755 | nurse 1756 | nut 1757 | oak 1758 | oar 1759 | oatmeal 1760 | oats 1761 | obey 1762 | ocean 1763 | o'clock 1764 | October 1765 | odd 1766 | of 1767 | off 1768 | offer 1769 | office 1770 | officer 1771 | often 1772 | oh 1773 | oil 1774 | old 1775 | old-fashioned 1776 | on 1777 | once 1778 | one 1779 | onion 1780 | only 1781 | onward 1782 | open 1783 | or 1784 | orange 1785 | orchard 1786 | order 1787 | ore 1788 | organ 1789 | other 1790 | otherwise 1791 | ouch 1792 | ought 1793 | our 1794 | ours 1795 | ourselves 1796 | out 1797 | outdoors 1798 | outfit 1799 | outlaw 1800 | outline 1801 | outside 1802 | outward 1803 | oven 1804 | over 1805 | overalls 1806 | overcoat 1807 | overeat 1808 | overhead 1809 | overhear 1810 | overnight 1811 | overturn 1812 | owe 1813 | owing 1814 | owl 1815 | own 1816 | owner 1817 | ox 1818 | pa 1819 | pace 1820 | pack 1821 | package 1822 | pad 1823 | page 1824 | paid 1825 | pail 1826 | pain 1827 | painful 1828 | paint 1829 | painter 1830 | painting 1831 | pair 1832 | pal 1833 | palace 1834 | pale 1835 | pan 1836 | pancake 1837 | pane 1838 | pansy 1839 | pants 1840 | papa 1841 | paper 1842 | parade 1843 | pardon 1844 | parent 1845 | park 1846 | part 1847 | partly 1848 | partner 1849 | party 1850 | pass 1851 | passenger 1852 | past 1853 | paste 1854 | pasture 1855 | pat 1856 | patch 1857 | path 1858 | patter 1859 | pave 1860 | pavement 1861 | paw 1862 | pay 1863 | payment 1864 | pea 1865 | peas 1866 | peace 1867 | peaceful 1868 | peach 1869 | peaches 1870 | peak 1871 | peanut 1872 | pear 1873 | pearl 1874 | peck 1875 | peek 1876 | peel 1877 | peep 1878 | peg 1879 | pen 1880 | pencil 1881 | penny 1882 | people 1883 | pepper 1884 | peppermint 1885 | perfume 1886 | perhaps 1887 | person 1888 | pet 1889 | phone 1890 | piano 1891 | pick 1892 | pickle 1893 | picnic 1894 | picture 1895 | pie 1896 | piece 1897 | pig 1898 | pigeon 1899 | piggy 1900 | pile 1901 | pill 1902 | pillow 1903 | pin 1904 | pine 1905 | pineapple 1906 | pink 1907 | pint 1908 | pipe 1909 | pistol 1910 | pit 1911 | pitch 1912 | pitcher 1913 | pity 1914 | place 1915 | plain 1916 | plan 1917 | plane 1918 | plant 1919 | plate 1920 | platform 1921 | platter 1922 | play 1923 | player 1924 | playground 1925 | playhouse 1926 | playmate 1927 | plaything 1928 | pleasant 1929 | please 1930 | pleasure 1931 | plenty 1932 | plow 1933 | plug 1934 | plum 1935 | pocket 1936 | pocketbook 1937 | poem 1938 | point 1939 | poison 1940 | poke 1941 | pole 1942 | police 1943 | policeman 1944 | polish 1945 | polite 1946 | pond 1947 | ponies 1948 | pony 1949 | pool 1950 | poor 1951 | pop 1952 | popcorn 1953 | popped 1954 | porch 1955 | pork 1956 | possible 1957 | post 1958 | postage 1959 | postman 1960 | pot 1961 | potato 1962 | potatoes 1963 | pound 1964 | pour 1965 | powder 1966 | power 1967 | powerful 1968 | praise 1969 | pray 1970 | prayer 1971 | prepare 1972 | present 1973 | pretty 1974 | price 1975 | prick 1976 | prince 1977 | princess 1978 | print 1979 | prison 1980 | prize 1981 | promise 1982 | proper 1983 | protect 1984 | proud 1985 | prove 1986 | prune 1987 | public 1988 | puddle 1989 | puff 1990 | pull 1991 | pump 1992 | pumpkin 1993 | punch 1994 | punish 1995 | pup 1996 | pupil 1997 | puppy 1998 | pure 1999 | purple 2000 | purse 2001 | push 2002 | puss 2003 | pussy 2004 | pussycat 2005 | put 2006 | putting 2007 | puzzle 2008 | quack 2009 | quart 2010 | quarter 2011 | queen 2012 | queer 2013 | question 2014 | quick 2015 | quickly 2016 | quiet 2017 | quilt 2018 | quit 2019 | quite 2020 | rabbit 2021 | race 2022 | rack 2023 | radio 2024 | radish 2025 | rag 2026 | rail 2027 | railroad 2028 | railway 2029 | rain 2030 | rainy 2031 | rainbow 2032 | raise 2033 | raisin 2034 | rake 2035 | ram 2036 | ran 2037 | ranch 2038 | rang 2039 | rap 2040 | rapidly 2041 | rat 2042 | rate 2043 | rather 2044 | rattle 2045 | raw 2046 | ray 2047 | reach 2048 | read 2049 | reader 2050 | reading 2051 | ready 2052 | real 2053 | really 2054 | reap 2055 | rear 2056 | reason 2057 | rebuild 2058 | receive 2059 | recess 2060 | record 2061 | red 2062 | redbird 2063 | redbreast 2064 | refuse 2065 | reindeer 2066 | rejoice 2067 | remain 2068 | remember 2069 | remind 2070 | remove 2071 | rent 2072 | repair 2073 | repay 2074 | repeat 2075 | report 2076 | rest 2077 | return 2078 | review 2079 | reward 2080 | rib 2081 | ribbon 2082 | rice 2083 | rich 2084 | rid 2085 | riddle 2086 | ride 2087 | rider 2088 | riding 2089 | right 2090 | rim 2091 | ring 2092 | rip 2093 | ripe 2094 | rise 2095 | rising 2096 | river 2097 | road 2098 | roadside 2099 | roar 2100 | roast 2101 | rob 2102 | robber 2103 | robe 2104 | robin 2105 | rock 2106 | rocky 2107 | rocket 2108 | rode 2109 | roll 2110 | roller 2111 | roof 2112 | room 2113 | rooster 2114 | root 2115 | rope 2116 | rose 2117 | rosebud 2118 | rot 2119 | rotten 2120 | rough 2121 | round 2122 | route 2123 | row 2124 | rowboat 2125 | royal 2126 | rub 2127 | rubbed 2128 | rubber 2129 | rubbish 2130 | rug 2131 | rule 2132 | ruler 2133 | rumble 2134 | run 2135 | rung 2136 | runner 2137 | running 2138 | rush 2139 | rust 2140 | rusty 2141 | rye 2142 | sack 2143 | sad 2144 | saddle 2145 | sadness 2146 | safe 2147 | safety 2148 | said 2149 | sail 2150 | sailboat 2151 | sailor 2152 | saint 2153 | salad 2154 | sale 2155 | salt 2156 | same 2157 | sand 2158 | sandy 2159 | sandwich 2160 | sang 2161 | sank 2162 | sap 2163 | sash 2164 | sat 2165 | satin 2166 | satisfactory 2167 | Saturday 2168 | sausage 2169 | savage 2170 | save 2171 | savings 2172 | saw 2173 | say 2174 | scab 2175 | scales 2176 | scare 2177 | scarf 2178 | school 2179 | schoolboy 2180 | schoolhouse 2181 | schoolmaster 2182 | schoolroom 2183 | scorch 2184 | score 2185 | scrap 2186 | scrape 2187 | scratch 2188 | scream 2189 | screen 2190 | screw 2191 | scrub 2192 | sea 2193 | seal 2194 | seam 2195 | search 2196 | season 2197 | seat 2198 | second 2199 | secret 2200 | see 2201 | seeing 2202 | seed 2203 | seek 2204 | seem 2205 | seen 2206 | seesaw 2207 | select 2208 | self 2209 | selfish 2210 | sell 2211 | send 2212 | sense 2213 | sent 2214 | sentence 2215 | separate 2216 | September 2217 | servant 2218 | serve 2219 | service 2220 | set 2221 | setting 2222 | settle 2223 | settlement 2224 | seven 2225 | seventeen 2226 | seventh 2227 | seventy 2228 | several 2229 | sew 2230 | shade 2231 | shadow 2232 | shady 2233 | shake 2234 | shaker 2235 | shaking 2236 | shall 2237 | shame 2238 | shan't 2239 | shape 2240 | share 2241 | sharp 2242 | shave 2243 | she 2244 | she'd 2245 | she'll 2246 | she's 2247 | shear 2248 | shears 2249 | shed 2250 | sheep 2251 | sheet 2252 | shelf 2253 | shell 2254 | shepherd 2255 | shine 2256 | shining 2257 | shiny 2258 | ship 2259 | shirt 2260 | shock 2261 | shoe 2262 | shoemaker 2263 | shone 2264 | shook 2265 | shoot 2266 | shop 2267 | shopping 2268 | shore 2269 | short 2270 | shot 2271 | should 2272 | shoulder 2273 | shouldn't 2274 | shout 2275 | shovel 2276 | show 2277 | shower 2278 | shut 2279 | shy 2280 | sick 2281 | sickness 2282 | side 2283 | sidewalk 2284 | sideways 2285 | sigh 2286 | sight 2287 | sign 2288 | silence 2289 | silent 2290 | silk 2291 | sill 2292 | silly 2293 | silver 2294 | simple 2295 | sin 2296 | since 2297 | sing 2298 | singer 2299 | single 2300 | sink 2301 | sip 2302 | sir 2303 | sis 2304 | sissy 2305 | sister 2306 | sit 2307 | sitting 2308 | six 2309 | sixteen 2310 | sixth 2311 | sixty 2312 | size 2313 | skate 2314 | skater 2315 | ski 2316 | skin 2317 | skip 2318 | skirt 2319 | sky 2320 | slam 2321 | slap 2322 | slate 2323 | slave 2324 | sled 2325 | sleep 2326 | sleepy 2327 | sleeve 2328 | sleigh 2329 | slept 2330 | slice 2331 | slid 2332 | slide 2333 | sling 2334 | slip 2335 | slipped 2336 | slipper 2337 | slippery 2338 | slit 2339 | slow 2340 | slowly 2341 | sly 2342 | smack 2343 | small 2344 | smart 2345 | smell 2346 | smile 2347 | smoke 2348 | smooth 2349 | snail 2350 | snake 2351 | snap 2352 | snapping 2353 | sneeze 2354 | snow 2355 | snowy 2356 | snowball 2357 | snowflake 2358 | snuff 2359 | snug 2360 | so 2361 | soak 2362 | soap 2363 | sob 2364 | socks 2365 | sod 2366 | soda 2367 | sofa 2368 | soft 2369 | soil 2370 | sold 2371 | soldier 2372 | sole 2373 | some 2374 | somebody 2375 | somehow 2376 | someone 2377 | something 2378 | sometime 2379 | sometimes 2380 | somewhere 2381 | son 2382 | song 2383 | soon 2384 | sore 2385 | sorrow 2386 | sorry 2387 | sort 2388 | soul 2389 | sound 2390 | soup 2391 | sour 2392 | south 2393 | southern 2394 | space 2395 | spade 2396 | spank 2397 | sparrow 2398 | speak 2399 | speaker 2400 | spear 2401 | speech 2402 | speed 2403 | spell 2404 | spelling 2405 | spend 2406 | spent 2407 | spider 2408 | spike 2409 | spill 2410 | spin 2411 | spinach 2412 | spirit 2413 | spit 2414 | splash 2415 | spoil 2416 | spoke 2417 | spook 2418 | spoon 2419 | sport 2420 | spot 2421 | spread 2422 | spring 2423 | springtime 2424 | sprinkle 2425 | square 2426 | squash 2427 | squeak 2428 | squeeze 2429 | squirrel 2430 | stable 2431 | stack 2432 | stage 2433 | stair 2434 | stall 2435 | stamp 2436 | stand 2437 | star 2438 | stare 2439 | start 2440 | starve 2441 | state 2442 | station 2443 | stay 2444 | steak 2445 | steal 2446 | steam 2447 | steamboat 2448 | steamer 2449 | steel 2450 | steep 2451 | steeple 2452 | steer 2453 | stem 2454 | step 2455 | stepping 2456 | stick 2457 | sticky 2458 | stiff 2459 | still 2460 | stillness 2461 | sting 2462 | stir 2463 | stitch 2464 | stock 2465 | stocking 2466 | stole 2467 | stone 2468 | stood 2469 | stool 2470 | stoop 2471 | stop 2472 | stopped 2473 | stopping 2474 | store 2475 | stork 2476 | stories 2477 | storm 2478 | stormy 2479 | story 2480 | stove 2481 | straight 2482 | strange 2483 | stranger 2484 | strap 2485 | straw 2486 | strawberry 2487 | stream 2488 | street 2489 | stretch 2490 | string 2491 | strip 2492 | stripes 2493 | strong 2494 | stuck 2495 | study 2496 | stuff 2497 | stump 2498 | stung 2499 | subject 2500 | such 2501 | suck 2502 | sudden 2503 | suffer 2504 | sugar 2505 | suit 2506 | sum 2507 | summer 2508 | sun 2509 | Sunday 2510 | sunflower 2511 | sung 2512 | sunk 2513 | sunlight 2514 | sunny 2515 | sunrise 2516 | sunset 2517 | sunshine 2518 | supper 2519 | suppose 2520 | sure 2521 | surely 2522 | surface 2523 | surprise 2524 | swallow 2525 | swam 2526 | swamp 2527 | swan 2528 | swat 2529 | swear 2530 | sweat 2531 | sweater 2532 | sweep 2533 | sweet 2534 | sweetness 2535 | sweetheart 2536 | swell 2537 | swept 2538 | swift 2539 | swim 2540 | swimming 2541 | swing 2542 | switch 2543 | sword 2544 | swore 2545 | table 2546 | tablecloth 2547 | tablespoon 2548 | tablet 2549 | tack 2550 | tag 2551 | tail 2552 | tailor 2553 | take 2554 | taken 2555 | taking 2556 | tale 2557 | talk 2558 | talker 2559 | tall 2560 | tame 2561 | tan 2562 | tank 2563 | tap 2564 | tape 2565 | tar 2566 | tardy 2567 | task 2568 | taste 2569 | taught 2570 | tax 2571 | tea 2572 | teach 2573 | teacher 2574 | team 2575 | tear 2576 | tease 2577 | teaspoon 2578 | teeth 2579 | telephone 2580 | tell 2581 | temper 2582 | ten 2583 | tennis 2584 | tent 2585 | term 2586 | terrible 2587 | test 2588 | than 2589 | thank 2590 | thanks 2591 | thankful 2592 | Thanksgiving 2593 | that 2594 | that's 2595 | the 2596 | theater 2597 | thee 2598 | their 2599 | them 2600 | then 2601 | there 2602 | these 2603 | they 2604 | they'd 2605 | they'll 2606 | they're 2607 | they've 2608 | thick 2609 | thief 2610 | thimble 2611 | thin 2612 | thing 2613 | think 2614 | third 2615 | thirsty 2616 | thirteen 2617 | thirty 2618 | this 2619 | thorn 2620 | those 2621 | though 2622 | thought 2623 | thousand 2624 | thread 2625 | three 2626 | threw 2627 | throat 2628 | throne 2629 | through 2630 | throw 2631 | thrown 2632 | thumb 2633 | thunder 2634 | Thursday 2635 | thy 2636 | tick 2637 | ticket 2638 | tickle 2639 | tie 2640 | tiger 2641 | tight 2642 | till 2643 | time 2644 | tin 2645 | tinkle 2646 | tiny 2647 | tip 2648 | tiptoe 2649 | tire 2650 | tired 2651 | title 2652 | to 2653 | toad 2654 | toadstool 2655 | toast 2656 | tobacco 2657 | today 2658 | toe 2659 | together 2660 | toilet 2661 | told 2662 | tomato 2663 | tomorrow 2664 | ton 2665 | tone 2666 | tongue 2667 | tonight 2668 | too 2669 | took 2670 | tool 2671 | toot 2672 | tooth 2673 | toothbrush 2674 | toothpick 2675 | top 2676 | tore 2677 | torn 2678 | toss 2679 | touch 2680 | tow 2681 | toward 2682 | towards 2683 | towel 2684 | tower 2685 | town 2686 | toy 2687 | trace 2688 | track 2689 | trade 2690 | train 2691 | tramp 2692 | trap 2693 | tray 2694 | treasure 2695 | treat 2696 | tree 2697 | trick 2698 | tricycle 2699 | tried 2700 | trim 2701 | trip 2702 | trolley 2703 | trouble 2704 | truck 2705 | true 2706 | truly 2707 | trunk 2708 | trust 2709 | truth 2710 | try 2711 | tub 2712 | Tuesday 2713 | tug 2714 | tulip 2715 | tumble 2716 | tune 2717 | tunnel 2718 | turkey 2719 | turn 2720 | turtle 2721 | twelve 2722 | twenty 2723 | twice 2724 | twig 2725 | twin 2726 | two 2727 | ugly 2728 | umbrella 2729 | uncle 2730 | under 2731 | understand 2732 | underwear 2733 | undress 2734 | unfair 2735 | unfinished 2736 | unfold 2737 | unfriendly 2738 | unhappy 2739 | unhurt 2740 | uniform 2741 | United 2742 | States 2743 | unkind 2744 | unknown 2745 | unless 2746 | unpleasant 2747 | until 2748 | unwilling 2749 | up 2750 | upon 2751 | upper 2752 | upset 2753 | upside 2754 | upstairs 2755 | uptown 2756 | upward 2757 | us 2758 | use 2759 | used 2760 | useful 2761 | valentine 2762 | valley 2763 | valuable 2764 | value 2765 | vase 2766 | vegetable 2767 | velvet 2768 | very 2769 | vessel 2770 | victory 2771 | view 2772 | village 2773 | vine 2774 | violet 2775 | visit 2776 | visitor 2777 | voice 2778 | vote 2779 | wag 2780 | wagon 2781 | waist 2782 | wait 2783 | wake 2784 | waken 2785 | walk 2786 | wall 2787 | walnut 2788 | want 2789 | war 2790 | warm 2791 | warn 2792 | was 2793 | wash 2794 | washer 2795 | washtub 2796 | wasn't 2797 | waste 2798 | watch 2799 | watchman 2800 | water 2801 | watermelon 2802 | waterproof 2803 | wave 2804 | wax 2805 | way 2806 | wayside 2807 | we 2808 | weak 2809 | weakness 2810 | weaken 2811 | wealth 2812 | weapon 2813 | wear 2814 | weary 2815 | weather 2816 | weave 2817 | web 2818 | we'd 2819 | wedding 2820 | Wednesday 2821 | wee 2822 | weed 2823 | week 2824 | we'll 2825 | weep 2826 | weigh 2827 | welcome 2828 | well 2829 | went 2830 | were 2831 | we're 2832 | west 2833 | western 2834 | wet 2835 | we've 2836 | whale 2837 | what 2838 | what's 2839 | wheat 2840 | wheel 2841 | when 2842 | whenever 2843 | where 2844 | which 2845 | while 2846 | whip 2847 | whipped 2848 | whirl 2849 | whisky 2850 | whiskey 2851 | whisper 2852 | whistle 2853 | white 2854 | who 2855 | who'd 2856 | whole 2857 | who'll 2858 | whom 2859 | who's 2860 | whose 2861 | why 2862 | wicked 2863 | wide 2864 | wife 2865 | wiggle 2866 | wild 2867 | wildcat 2868 | will 2869 | willing 2870 | willow 2871 | win 2872 | wind 2873 | windy 2874 | windmill 2875 | window 2876 | wine 2877 | wing 2878 | wink 2879 | winner 2880 | winter 2881 | wipe 2882 | wire 2883 | wise 2884 | wish 2885 | wit 2886 | witch 2887 | with 2888 | without 2889 | woke 2890 | wolf 2891 | woman 2892 | women 2893 | won 2894 | wonder 2895 | wonderful 2896 | won't 2897 | wood 2898 | wooden 2899 | woodpecker 2900 | woods 2901 | wool 2902 | woolen 2903 | word 2904 | wore 2905 | work 2906 | worker 2907 | workman 2908 | world 2909 | worm 2910 | worn 2911 | worry 2912 | worse 2913 | worst 2914 | worth 2915 | would 2916 | wouldn't 2917 | wound 2918 | wove 2919 | wrap 2920 | wrapped 2921 | wreck 2922 | wren 2923 | wring 2924 | write 2925 | writing 2926 | written 2927 | wrong 2928 | wrote 2929 | wrung 2930 | yard 2931 | yarn 2932 | year 2933 | yell 2934 | yellow 2935 | yes 2936 | yesterday 2937 | yet 2938 | yolk 2939 | yonder 2940 | you 2941 | you'd 2942 | you'll 2943 | young 2944 | youngster 2945 | your 2946 | yours 2947 | you're 2948 | yourself 2949 | yourselves 2950 | youth 2951 | you've 2952 | --------------------------------------------------------------------------------