did_you_mean 0.9.10-java → 0.10.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.travis.yml +13 -19
  4. data/CHANGELOG.md +229 -0
  5. data/Gemfile +4 -7
  6. data/README.md +5 -16
  7. data/Rakefile +35 -33
  8. data/benchmark/jaro_winkler/memory_usage.rb +12 -0
  9. data/benchmark/jaro_winkler/speed.rb +14 -0
  10. data/benchmark/levenshtein/memory_usage.rb +12 -0
  11. data/benchmark/levenshtein/speed.rb +17 -0
  12. data/benchmark/memory_usage.rb +31 -0
  13. data/did_you_mean.gemspec +9 -2
  14. data/evaluation/calculator.rb +122 -0
  15. data/evaluation/dictionary_generator.rb +36 -0
  16. data/evaluation/incorrect_words.yaml +1159 -0
  17. data/ext/did_you_mean/extconf.rb +1 -1
  18. data/ext/did_you_mean/{method_missing.c → method_receiver.c} +1 -1
  19. data/lib/did_you_mean.rb +22 -3
  20. data/lib/did_you_mean/core_ext/name_error.rb +30 -22
  21. data/lib/did_you_mean/core_ext/no_method_error.rb +13 -2
  22. data/lib/did_you_mean/core_ext/rubinius.rb +16 -0
  23. data/lib/did_you_mean/finders.rb +48 -17
  24. data/lib/did_you_mean/finders/method_finder.rb +62 -0
  25. data/lib/did_you_mean/finders/name_error_finders.rb +8 -11
  26. data/lib/did_you_mean/finders/name_error_finders/class_finder.rb +77 -0
  27. data/lib/did_you_mean/finders/name_error_finders/name_finder.rb +18 -0
  28. data/lib/did_you_mean/formatter.rb +20 -0
  29. data/lib/did_you_mean/jaro_winkler.rb +87 -0
  30. data/lib/did_you_mean/test_helper.rb +1 -1
  31. data/lib/did_you_mean/version.rb +1 -1
  32. data/test/core_ext/name_error_extension_test.rb +74 -0
  33. data/test/{no_method_error_extension_test.rb → core_ext/no_method_error_extension_test.rb} +1 -1
  34. data/test/correctable/class_name_test.rb +65 -0
  35. data/test/correctable/method_name_test.rb +84 -0
  36. data/test/{null_finder_test.rb → correctable/uncorrectable_name_test.rb} +3 -7
  37. data/test/correctable/variable_name_test.rb +79 -0
  38. data/test/edit_distance/jaro_winkler_test.rb +30 -0
  39. data/test/test_helper.rb +2 -20
  40. data/test/word_collection_test.rb +76 -12
  41. metadata +58 -56
  42. data/Appraisals +0 -23
  43. data/gemfiles/activerecord_32.gemfile +0 -21
  44. data/gemfiles/activerecord_40.gemfile +0 -21
  45. data/gemfiles/activerecord_41.gemfile +0 -21
  46. data/gemfiles/activerecord_42.gemfile +0 -21
  47. data/gemfiles/activerecord_edge.gemfile +0 -25
  48. data/lib/did_you_mean/finders/name_error_finders/similar_class_finder.rb +0 -50
  49. data/lib/did_you_mean/finders/name_error_finders/similar_name_finder.rb +0 -61
  50. data/lib/did_you_mean/finders/similar_attribute_finder.rb +0 -26
  51. data/lib/did_you_mean/finders/similar_method_finder.rb +0 -34
  52. data/lib/did_you_mean/word_collection.rb +0 -30
  53. data/test/all_test.rb +0 -18
  54. data/test/name_error_extension_test.rb +0 -73
  55. data/test/similar_attribute_finder_test.rb +0 -17
  56. data/test/similar_class_finder_test.rb +0 -85
  57. data/test/similar_method_finder_test.rb +0 -60
  58. data/test/similar_name_finder_test.rb +0 -62
@@ -0,0 +1,12 @@
1
+ require 'memory_profiler'
2
+ require 'did_you_mean/jaro_winkler'
3
+
4
+ str1, str2 = "user_signed_in?", "user_logged_in?"
5
+
6
+ report = MemoryProfiler.report do
7
+ 80.times do
8
+ DidYouMean::Jaro.distance str1, str2
9
+ end
10
+ end
11
+
12
+ report.pretty_print
@@ -0,0 +1,14 @@
1
+ require 'benchmark/ips'
2
+ require 'did_you_mean'
3
+
4
+ Benchmark.ips do |x|
5
+ x.report "before" do
6
+ DidYouMean::Jaro.before_distance "user_signed_in?", "user_logged_in?"
7
+ end
8
+
9
+ x.report "after" do
10
+ DidYouMean::Jaro.after_distance "user_signed_in?", "user_logged_in?"
11
+ end
12
+
13
+ x.compare!
14
+ end
@@ -0,0 +1,12 @@
1
+ require 'memory_profiler'
2
+ require 'did_you_mean/levenshtein'
3
+
4
+ str1, str2 = "user_signed_in?", "user_logged_in?"
5
+
6
+ report = MemoryProfiler.report do
7
+ 80.times do
8
+ DidYouMean::Levenshtein.distance str1, str2
9
+ end
10
+ end
11
+
12
+ report.pretty_print
@@ -0,0 +1,17 @@
1
+ require 'benchmark/ips'
2
+ require 'did_you_mean'
3
+ require 'did_you_mean/levenshtein'
4
+
5
+ STR1, STR2 = "user_signed_in?", "user_logged_in?"
6
+
7
+ Benchmark.ips do |x|
8
+ x.report "enumerable" do
9
+ DidYouMean::Levenshtein.before_distance STR1, STR2
10
+ end
11
+
12
+ x.report "while" do
13
+ DidYouMean::Levenshtein.after_distance STR1, STR2
14
+ end
15
+
16
+ x.compare!
17
+ end
@@ -0,0 +1,31 @@
1
+ require 'memory_profiler'
2
+ require 'did_you_mean'
3
+
4
+ # public def foo; end
5
+ # error = (self.fooo rescue $!)
6
+ # executable = -> { error.to_s }
7
+
8
+ class DidYouMean::WordCollection
9
+ include DidYouMean::BaseFinder
10
+
11
+ def initialize(words)
12
+ @words = words
13
+ end
14
+
15
+ def similar_to(input, filter = EMPTY)
16
+ @suggestions, @input = nil, input
17
+ suggestions
18
+ end
19
+
20
+ def searches
21
+ { @input => @words }
22
+ end
23
+ end if !defined?(DidYouMean::WordCollection)
24
+
25
+ METHODS = ''.methods
26
+ INPUT = 'start_with?'
27
+ collection = DidYouMean::WordCollection.new(METHODS)
28
+ executable = proc { collection.similar_to(INPUT) }
29
+
30
+ GC.disable
31
+ MemoryProfiler.report { 100.times(&executable) }.pretty_print
data/did_you_mean.gemspec CHANGED
@@ -14,12 +14,19 @@ Gem::Specification.new do |spec|
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
- # spec.extensions = ["ext/did_you_mean/extconf.rb"]
18
- spec.platform = 'java'
19
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
19
  spec.require_paths = ["lib"]
22
20
 
21
+ spec.required_ruby_version = '>= 1.9.3'
22
+
23
+ case RUBY_ENGINE
24
+ when 'ruby'
25
+ spec.extensions = ["ext/did_you_mean/extconf.rb"]
26
+ when 'jruby'
27
+ spec.platform = 'java'
28
+ end
29
+
23
30
  spec.add_dependency "interception"
24
31
 
25
32
  spec.add_development_dependency "bundler", "~> 1.5"
@@ -0,0 +1,122 @@
1
+ require 'benchmark'
2
+
3
+ def report(message, &block)
4
+ time = 1000 * Benchmark.realtime(&block)
5
+
6
+ if (time / 1000 / 60) >= 1
7
+ minutes = (time / 1000 / 60).floor
8
+ seconds = (time % (60 * 1000)) / 1000
9
+
10
+ puts " \e[36m%2dm%.3fs:\e[0m %s" % [minutes, seconds, message]
11
+ elsif (time / 1000) >= 1
12
+ seconds = (time % (60 * 1000)) / 1000
13
+
14
+ puts " \e[36m%9.3fs:\e[0m %s" % [seconds, message]
15
+ else
16
+ puts " \e[36m%8.1fms:\e[0m %s" % [time, message]
17
+ end
18
+
19
+ time
20
+ end
21
+
22
+ puts "\n"
23
+
24
+ report "loading program" do
25
+ require 'yaml'
26
+ require 'set'
27
+ require 'did_you_mean'
28
+
29
+ begin
30
+ require 'jaro_winkler'
31
+ DidYouMean::JaroWinkler.module_eval do
32
+ module_function
33
+ def distance(str1, str2)
34
+ ::JaroWinkler.distance(str1, str2)
35
+ end if RUBY_ENGINE != 'jruby'
36
+ end
37
+ rescue LoadError, NameError
38
+ end
39
+
40
+ class DidYouMean::WordCollection
41
+ include DidYouMean::BaseFinder
42
+
43
+ def initialize(words)
44
+ @words = words
45
+ end
46
+
47
+ def similar_to(input, filter = EMPTY)
48
+ @suggestions, @input = nil, input
49
+ suggestions
50
+ end
51
+
52
+ def searches
53
+ { @input => @words }
54
+ end
55
+
56
+ private
57
+ def normalize(str); str; end
58
+ end if !defined?(DidYouMean::WordCollection)
59
+ end
60
+
61
+ report "loading dictionary" do
62
+ yaml = open("evaluation/dictionary.yml").read
63
+ yaml = YAML.load(yaml).map{|word| word.downcase.tr(" ".freeze, "_".freeze) }
64
+
65
+ DICTIONARY = Set.new(yaml)
66
+ end
67
+
68
+ report "loading corrent/incorrect words" do
69
+ COLLECTION = DidYouMean::WordCollection.new(DICTIONARY)
70
+ INCORRECT_WORDS = YAML.load(open("evaluation/incorrect_words.yaml").read)
71
+ end
72
+
73
+ total_count = 0
74
+ correct_count = 0
75
+ words_not_corrected = []
76
+ filename = "log/words_not_corrected_#{Time.now.to_i}.yml"
77
+
78
+ puts "
79
+ Total number of test data: #{INCORRECT_WORDS.size}
80
+ did_you_mean version: #{DidYouMean::VERSION}
81
+
82
+ "
83
+
84
+ report "calculating accuracy" do
85
+ index = 0
86
+ INCORRECT_WORDS.each do |correct, incorrect|
87
+ if DICTIONARY.include?(correct)
88
+ total_count += 1
89
+
90
+ corrections = COLLECTION.similar_to(incorrect)
91
+ if corrections.first == correct
92
+ correct_count += 1
93
+ else
94
+ words_not_corrected << {
95
+ correct => incorrect,
96
+ 'result'.freeze => corrections
97
+ }
98
+ end
99
+ end
100
+
101
+ index += 1
102
+ puts "processed #{index} items" if index % 100 == 0
103
+ end
104
+
105
+ puts "\n"
106
+ end
107
+
108
+ puts "
109
+ Evaulation result
110
+
111
+ Total count : #{total_count}
112
+ Correct count: #{correct_count}
113
+ Accuracy : #{correct_count.to_f / total_count}
114
+
115
+ "
116
+
117
+ Dir.mkdir('log') unless File.exist?('log')
118
+ File.open(filename, 'w') do |file|
119
+ file.write(words_not_corrected.to_yaml)
120
+ end
121
+
122
+ puts "Incorrect suggestions were logged to #{filename}."
@@ -0,0 +1,36 @@
1
+ require 'open-uri'
2
+ require 'cgi'
3
+ require 'json'
4
+
5
+ per_page = 500
6
+ base_url = "https://simple.wiktionary.org/w/api.php?action=query&aplimit=#{per_page}&list=allpages&format=json"
7
+ filename = "evaluation/dictionary.yml"
8
+ count = nil
9
+ apfrom = ""
10
+ num = 0
11
+ titles = []
12
+
13
+ begin
14
+ url = base_url + "&apfrom=#{apfrom}"
15
+
16
+ puts "downloading page %2d: #{url}" % num
17
+
18
+ body = open(url).read
19
+ json = JSON.load(body)
20
+ count = json["query"]["allpages"].size
21
+ apfrom = CGI.escape(json["query"]["allpages"].last['title']) if count > 0
22
+
23
+ titles += json["query"]["allpages"].map {|hash| hash["title"] }
24
+ num += 1
25
+ end while count == per_page
26
+
27
+ require 'yaml'
28
+
29
+ File.open(filename, 'w') do |file|
30
+ file.write(titles.uniq.to_yaml)
31
+ end
32
+
33
+ puts "
34
+ Number of titles: #{titles.uniq.size}
35
+ Dictionary saved: #{filename}
36
+ "
@@ -0,0 +1,1159 @@
1
+ # This data is based on Birkbeck Spelling Error Corpus: http://ota.ox.ac.uk/headers/0643.xml
2
+ # More specifically, this is a yaml version of the data in FAWTHROP1DAT.643 and FAWTHROP1DAT.643.
3
+ ---
4
+ abattoir: abbatoir
5
+ abhorrence: abhorence
6
+ absence: absense
7
+ absorbent: absorbant
8
+ absorption: absorbtion
9
+ accede: acceed
10
+ accelerate: acellerate
11
+ accessible: accesible
12
+ accidentally: accidently
13
+ accommodate: accomodate
14
+ accommodation: accomodation
15
+ accommodations: accomodations
16
+ accompaniment: accompanimen
17
+ accompanying: acompaning
18
+ accomplice: acomplice
19
+ accrued: acrued
20
+ accumulated: acumulated
21
+ accustom: acustom
22
+ achievement: acheivement
23
+ acknowledgment: acknowledgement
24
+ acquaintance: acquantance
25
+ acquiesce: aquiese
26
+ acquiescence: acquiesence
27
+ acquire: aquire
28
+ actually: actualy
29
+ adaptability: adaptibility
30
+ addition: additon
31
+ address: adress
32
+ adequately: adequattly
33
+ adjacent: ajacent
34
+ adjourned: adjorned
35
+ administration: adminstration
36
+ admissible: admissable
37
+ admitting: admiting
38
+ advantageous: advantageos
39
+ advice: advise
40
+ affidavit: afidavit
41
+ aggravated: agravated
42
+ aghast: agast
43
+ agreeable: agreable
44
+ allotted: alloted
45
+ also: allso
46
+ alumnae: alumni
47
+ alumni: alumnae
48
+ amateur: amatuer
49
+ amiable: aimiable
50
+ ammonia: amonia
51
+ analogous: analagous
52
+ analysis: analsis
53
+ analyze: analize
54
+ angel: angell
55
+ anniversary: anniversery
56
+ announcement: anouncement
57
+ annoyance: anoyance
58
+ answer: anwser
59
+ antarctic: antartic
60
+ any: anye
61
+ anything: anythin
62
+ apollo: appolo
63
+ apology: appology
64
+ apparent: apparant
65
+ appearance: appearence
66
+ appearing: appearin
67
+ appetite: appitite
68
+ appetites: appatites
69
+ appropriate: apropriate
70
+ appropriation: apropriation
71
+ approximate: aproximate
72
+ approximately: aproximatly
73
+ archaeological: archeological
74
+ ascertain: assertain
75
+ asinine: assinine
76
+ asking: askin
77
+ asleep: asleeep
78
+ assassinate: assasinate
79
+ assessment: assesment
80
+ assiduous: assidious
81
+ assistance: assistence
82
+ attorneys: attornies
83
+ authoritative: authorative
84
+ auxiliary: auxillary
85
+ available: availble
86
+ awkward: aukward
87
+ bachelor: batchelor
88
+ balloon: baloon
89
+ banana: bananna
90
+ bankruptcy: bankrupcy
91
+ bargaining: baragining
92
+ battalion: batallion
93
+ beam: beame
94
+ before: befor
95
+ beginning: begining
96
+ believe: belive
97
+ belligerent: beligerant
98
+ beneficent: beneficient
99
+ beneficial: benificial
100
+ bitch: bich
101
+ brake: brakke
102
+ brethren: bretheren
103
+ brief: brif
104
+ britain: britian
105
+ britannia: britania
106
+ brown: broun
107
+ bungalow: bungalo
108
+ buoyancy: bouyancy
109
+ buoyant: bouyant
110
+ buried: burried
111
+ bushel: bushell
112
+ business: busness
113
+ buying: buyin
114
+ cancellation: cancelation
115
+ calling: callin
116
+ cantaloupe: cantaloube
117
+ caribbean: carribean
118
+ catalogues: catologues
119
+ category: catagorey
120
+ cemetery: cemetary
121
+ chauffeur: chauffuer
122
+ chemistry: chemestry
123
+ chimneys: chimnies
124
+ cincinnati: cincinatti
125
+ clever: cleva
126
+ coalesced: coalesed
127
+ coherent: coherant
128
+ coliseum: colosium
129
+ collateral: calateral
130
+ colossal: collosal
131
+ colossus: collosus
132
+ commanded: commaunded
133
+ commission: commision
134
+ commitment: committment
135
+ committee: committe
136
+ communicate: comunicate
137
+ comparative: comparitive
138
+ comparatively: comparitively
139
+ compendium: conpendium
140
+ competent: compitent
141
+ concede: consede
142
+ conceive: concieve
143
+ conceived: concieved
144
+ conditions: condicions
145
+ confectionery: confectionary
146
+ confirmation: confermation
147
+ confusing: confusin
148
+ connoisseurs: connoiseurs
149
+ conscience: concience
150
+ conscientious: conscientous
151
+ consensus: concensus
152
+ considering: consderin
153
+ consistent: consistant
154
+ conspired: conpired
155
+ consumer: comsumer
156
+ contemptible: contempible
157
+ continuous: continous
158
+ controllable: controlable
159
+ controversy: controversey
160
+ conveniently: conviently
161
+ coolly: cooly
162
+ corduroy: corderoy
163
+ correspondence: correspondanc
164
+ corrugated: corrigated
165
+ could: coud
166
+ counting: countin
167
+ countryman: countriman
168
+ craftsman: craftman
169
+ curiosity: curiousity
170
+ curriculum: curicculum
171
+ customary: customery
172
+ cynical: synical
173
+ darling: darlin
174
+ decidedly: dicidely
175
+ deem: deam
176
+ definitely: definatly
177
+ delinquent: delinquint
178
+ delirious: dilirious
179
+ delving: delvin
180
+ denying: denyin
181
+ dependant: dependent
182
+ depreciation: depeciation
183
+ descendant: descendent
184
+ description: desacription
185
+ despair: dispair
186
+ deuce: duece
187
+ develop: develope
188
+ development: developement
189
+ dictionary: dictionery
190
+ dignitary: dignatary
191
+ dilapidated: dilapadated
192
+ diminish: diminsh
193
+ dining: dinning
194
+ diphtheria: diptheria
195
+ disappoint: dissappoint
196
+ disappointment: dissappointment
197
+ disastrous: disasterous
198
+ discipline: disiplin
199
+ discrete: discite
200
+ dispel: dispell
201
+ dissipate: disippate
202
+ divine: devine
203
+ doctor: docter
204
+ doctors: docters
205
+ dormitory: dormatory
206
+ doubt: doupt
207
+ drastically: drasticly
208
+ drawing: drawin
209
+ dreaming: dreamin
210
+ drew: drewe
211
+ dropped: droped
212
+ drunkenness: drunkeness
213
+ duchess: dutchess
214
+ duly: duely
215
+ during: durin
216
+ earnest: ernest
217
+ ecstasy: ecstacy
218
+ effecting: effectinge
219
+ effeminate: affeminate
220
+ effervescent: effervesent
221
+ efficiency: effeciency
222
+ eisenhower: eisenhhower
223
+ eligible: elegable
224
+ eliminate: illiminate
225
+ embarrass: embarass
226
+ embarrassment: embarrasment
227
+ encyclopedia: encylopedia
228
+ endorsement: endorsment
229
+ enemy: emeny
230
+ engineers: egnineers
231
+ enlarged: enlargd
232
+ entertained: enterteyned
233
+ equipped: equipt
234
+ equivalent: equivelant
235
+ esteemed: estimed
236
+ every: evrey
237
+ exaggerate: exagerate
238
+ exaggeration: exageration
239
+ examination: eximination
240
+ examining: examinin
241
+ excellence: excelence
242
+ exercises: excercises
243
+ exhilarating: exhilirating
244
+ exhorted: exorted
245
+ existence: existance
246
+ exorbitant: exhorbitant
247
+ experience: experiance
248
+ explicitly: explisitly
249
+ exquisite: exqusite
250
+ eyeing: eying
251
+ facilitate: facilatate
252
+ fascinating: facinating
253
+ fatiguing: fatiging
254
+ fear: feare
255
+ february: febuary
256
+ fictitious: fictitous
257
+ fielder: fiedler
258
+ fiery: firey
259
+ fighting: fieghting
260
+ filipinos: philipinoes
261
+ filthiness: filthness
262
+ finally: finaly
263
+ flammable: flamable
264
+ flourished: florished
265
+ foreign: forien
266
+ forthright: fortright
267
+ forty: fourty
268
+ fox: foxx
269
+ frescos: frescoes
270
+ friend: freind
271
+ fulfill: fullfil
272
+ fundamental: fundemental
273
+ fundamentally: fundementally
274
+ gardener: gardner
275
+ gauge: guage
276
+ generosity: generousity
277
+ genius: genious
278
+ ghastly: gastly
279
+ gnawing: knawing
280
+ gone: gonne
281
+ government: goverment
282
+ grabbing: grabbin
283
+ grammar: grammer
284
+ gramophone: grammophon
285
+ grandeur: granduer
286
+ grateful: greatful
287
+ grievous: grievious
288
+ grill: grille
289
+ guarantee: gaurantee
290
+ guaranteed: guarenteed
291
+ guardian: guardien
292
+ guttural: gutteral
293
+ hammarskjold: hammerskjold
294
+ hand: hande
295
+ handkerchief: hankerchief
296
+ handsome: hansome
297
+ harass: harrass
298
+ having: haveing
299
+ heartrending: heartrendering
300
+ height: heighth
301
+ heinous: hienous
302
+ hemorrhage: hemorrage
303
+ heyday: heydey
304
+ himself: himselfe
305
+ hindrance: hinderence
306
+ humbly: humly
307
+ hurricane: huricane
308
+ hygiene: hygeine
309
+ identified: indentified
310
+ idiosyncrasy: idiocyncracy
311
+ imagination: imagnation
312
+ imitation: immitation
313
+ immediately: imidatly
314
+ immensely: immensly
315
+ impedance: impedence
316
+ impresario: impressario
317
+ incense: insense
318
+ incessant: incesant
319
+ incidentally: incidently
320
+ incompatibility: incompatability
321
+ inconvenience: inconvience
322
+ incorrigible: incorigible
323
+ incredible: incredable
324
+ indefinite: indefinate
325
+ independence: independance
326
+ indictment: inditement
327
+ indispensable: indispensible
328
+ inevitable: inevitible
329
+ infallible: infalable
330
+ infinite: infinate
331
+ ingratitude: ingratitoode
332
+ innocuous: inocuous
333
+ inoculate: innoculate
334
+ insistence: insistance
335
+ instantaneous: instantanous
336
+ instead: insted
337
+ intercede: intersede
338
+ interfered: interferred
339
+ interference: intereference
340
+ interrupted: interupted
341
+ invariably: invarably
342
+ irrelevant: irrelavent
343
+ irreparable: irrepairable
344
+ irresistible: irristible
345
+ itemized: itimized
346
+ jackknife: jacknife
347
+ jaguar: jagaur
348
+ japanese: japaneze
349
+ jaundice: jaundise
350
+ jealousy: jelousy
351
+ jeopardize: jeprodise
352
+ judgment: judgement
353
+ kaleidoscope: kaliedoscope
354
+ kapok: kapock
355
+ khaki: kahki
356
+ kimono: kimona
357
+ kindergarten: kindergarden
358
+ kitchen: kitchin
359
+ knickknacks: knicknacks
360
+ labeled: labelled
361
+ laboratory: labratory
362
+ language: langauge
363
+ leeway: leaway
364
+ leisure: liesure
365
+ leveled: levelled
366
+ library: libray
367
+ license: lisence
368
+ lieutenant: leutenant
369
+ linoleum: linolium
370
+ liquefied: liquified
371
+ liquefy: liquify
372
+ livelihood: livelyhood
373
+ lodestone: loadstone
374
+ lodgment: lodgement
375
+ lonely: lonley
376
+ magnificent: magnigicient
377
+ maintenance: maintainance
378
+ mammoth: mamoth
379
+ management: managment
380
+ maneuver: manuveur
381
+ manufactories: manufacturies
382
+ masterpiece: masterpice
383
+ material: materiel
384
+ mathematics: mathmatics
385
+ mattress: mattres
386
+ maudlin: mauldin
387
+ meant: ment
388
+ medicine: medecine
389
+ meeting: meetin
390
+ mercenary: mercanery
391
+ merchandise: merchandize
392
+ merchantmen: merchantment
393
+ meteorological: meterological
394
+ metropolitan: metropolitian
395
+ millionaire: millionnaire
396
+ miniature: minature
397
+ miscellaneous: miscelaneous
398
+ mischievous: mischievious
399
+ moccasins: mocassins
400
+ momentous: momentus
401
+ mortgage: morgage
402
+ mortgaged: mortgauged
403
+ murmurs: murmers
404
+ mustnt: musnt
405
+ mutilate: mutalate
406
+ mythical: mithical
407
+ nadir: nadar
408
+ naphtha: naptha
409
+ narrative: narative
410
+ naturally: naturaly
411
+ navigating: navagating
412
+ necessarily: necessarilly
413
+ necessary: nessisary
414
+ niagara: niagra
415
+ nickel: nickle
416
+ niggardly: nigardly
417
+ ninetieth: nintieth
418
+ ninetyninth: nintynineth
419
+ nocturnal: nocternal
420
+ nonsense: nonsence
421
+ notwithstanding: nothwithstanding
422
+ nowadays: nowdays
423
+ obbligato: obliggato
424
+ obdurate: obdirate
425
+ occasion: ocassion
426
+ occasionally: occasionaly
427
+ occurred: occureed
428
+ occurrence: occurence
429
+ octopus: octapus
430
+ odyssey: oddysey
431
+ ominous: omenous
432
+ omission: ommision
433
+ onerous: onirous
434
+ opportunities: oppotunities
435
+ opposition: oposition
436
+ oppressor: oppresser
437
+ optician: optitian
438
+ oratorio: orotario
439
+ orchestra: ochestra
440
+ ordinarily: ordinarilly
441
+ origin: origen
442
+ originally: origionally
443
+ own: owne
444
+ pain: paine
445
+ pamphlet: phamplet
446
+ pamphlets: phamplets
447
+ parallel: parellel
448
+ paralysis: parallysis
449
+ paraphernalia: parephernalia
450
+ parenthesis: parenthasis
451
+ participle: participal
452
+ pastime: pasttime
453
+ pastor: paster
454
+ paternity: paternaty
455
+ pavilion: pavillion
456
+ peasant: peasent
457
+ peculiar: pecular
458
+ penance: pennance
459
+ pendulum: pendelum
460
+ penguins: pengiuns
461
+ peninsula: peninsular
462
+ penitentiary: penitentary
463
+ perceive: percieve
464
+ perforation: preforation
465
+ permissible: permissable
466
+ perseverance: perseverence
467
+ personalty: personality
468
+ perspiration: persperation
469
+ persuade: pursuade
470
+ persuaded: pursuaded
471
+ persuasion: persausion
472
+ pertaining: pertaning
473
+ pervaded: prevaded
474
+ pharaohs: pharoahs
475
+ phase: faze
476
+ phenomenal: phenominal
477
+ phenomenon: phenonenon
478
+ philippines: phillipines
479
+ physician: physican
480
+ pickerel: pickeral
481
+ picnicking: picnicing
482
+ pittsburgh: pittsburg
483
+ plagiarism: plaigarism
484
+ plaque: placque
485
+ playwright: playwrite
486
+ pleasant: plesent
487
+ poetry: poetrie
488
+ poisonous: poisenous
489
+ ponderous: pondorous
490
+ possess: posess
491
+ possession: possesion
492
+ possibilities: possablities
493
+ prairie: prarie
494
+ preceding: preceeding
495
+ precipice: presipice
496
+ preferable: preferrable
497
+ preference: preferance
498
+ preferred: prefered
499
+ prejudice: prejedice
500
+ preparation: preperation
501
+ preserved: perserved
502
+ presumptuous: presumptous
503
+ prevalent: prevelant
504
+ preventive: preventative
505
+ prisoner: prisner
506
+ privilege: priviledge
507
+ probably: probabley
508
+ procedure: proceduer
509
+ professor: proffesor
510
+ proffer: profer
511
+ prominent: prominant
512
+ promontory: promonotory
513
+ pronunciation: pronounciation
514
+ propeller: propellor
515
+ prophecy: prophesy
516
+ provisions: provisons
517
+ pseudonym: pseudynom
518
+ psychological: psycological
519
+ public: publick
520
+ publicly: publically
521
+ pumpkin: pumkin
522
+ pursue: persue
523
+ pursuer: persuer
524
+ pursuit: persuit
525
+ qualified: qualafied
526
+ quandary: quandry
527
+ quantities: quanties
528
+ quarantine: quarrantine
529
+ quarreled: quarelled
530
+ quarter: quater
531
+ questionnaire: questionare
532
+ quiescent: quiscent
533
+ quorum: quorem
534
+ radiant: radient
535
+ radiator: radiater
536
+ raise: raize
537
+ rating: rateing
538
+ really: realy
539
+ rebuttal: rebutal
540
+ receded: receeded
541
+ receipt: reciept
542
+ receipts: reciepts
543
+ receive: recieve
544
+ receiver: reciever
545
+ receptacle: receptacel
546
+ recipient: resipient
547
+ reciprocal: reciprocel
548
+ reckon: recon
549
+ reclamation: reclaimation
550
+ recommend: recomend
551
+ recommendation: recomendation
552
+ recommendations: reccomendations
553
+ recommended: recommend
554
+ recommending: recomending
555
+ recompense: recompence
556
+ redundant: redundent
557
+ reference: refference
558
+ referred: refered
559
+ referring: refering
560
+ refrigerator: refrigerater
561
+ regretted: regreted
562
+ rehabilitate: rehabilatate
563
+ relevant: relevaant
564
+ religious: religous
565
+ remembrance: rememberance
566
+ rendezvous: rendevous
567
+ renegade: renagade
568
+ renown: renoun
569
+ reparation: repairation
570
+ repel: repell
571
+ repetition: repitition
572
+ representatives: representitives
573
+ rescinded: resinded
574
+ reservoir: resevoir
575
+ responsibility: responsiblity
576
+ restaurant: restuarant
577
+ restaurateur: restauranteur
578
+ rhapsody: raphsody
579
+ rheumatism: rhuematism
580
+ rhododendron: rhododrendon
581
+ rhubarb: ruhbarb
582
+ rhythm: rythm
583
+ ridiculous: rediculous
584
+ romantic: romantick
585
+ rummage: rumage
586
+ running: runing
587
+ sabbath: sabath
588
+ sacrament: sacrement
589
+ sacrilegious: sacreligious
590
+ safety: safty
591
+ sagacious: sagatious
592
+ sailor: sailer
593
+ sandwich: sanwich
594
+ sanitary: sanatary
595
+ satisfactory: satisfactary
596
+ scarcity: scarsity
597
+ scissors: sissers
598
+ seize: sieze
599
+ seized: siezed
600
+ self: selfe
601
+ sell: selle
602
+ semesters: semisters
603
+ seminary: seminery
604
+ separate: seporate
605
+ sergeant: sergant
606
+ sheep: sheepe
607
+ shepherd: sheperd
608
+ silhouette: silhuette
609
+ shipping: shippin
610
+ shoulder: shouldda
611
+ shoulders: sholders
612
+ showing: showin
613
+ shrubbery: shrubery
614
+ siege: seige
615
+ significant: significent
616
+ silk: silke
617
+ similar: similiar
618
+ simultaneous: similtanous
619
+ sincerity: sincerety
620
+ slimmest: slimest
621
+ smiling: smilin
622
+ sociable: socable
623
+ social: socal
624
+ solemn: solomn
625
+ sophomore: sophmore
626
+ sorority: sororiety
627
+ sought: saught
628
+ source: sorce
629
+ souvenir: souviner
630
+ sovereignty: sovreignty
631
+ sparsely: sparcely
632
+ spear: speer
633
+ specifically: specificly
634
+ specimen: speciment
635
+ specimens: specimans
636
+ spirituous: spiritous
637
+ sprinkle: sprinkel
638
+ starting: startin
639
+ stationary: stationery
640
+ statue: statu
641
+ stirring: stirrin
642
+ stirrups: stirups
643
+ stomach: stomack
644
+ straining: strainin
645
+ straitjacket: straightjacket
646
+ stratagem: strategem
647
+ strategy: stratagy
648
+ strenuous: strenous
649
+ stretched: streched
650
+ stubbornness: stubborness
651
+ suburban: sububan
652
+ success: sucess
653
+ sufficient: suficient
654
+ suffrage: sufferage
655
+ sugar: suger
656
+ suing: sueing
657
+ superficial: superfical
658
+ superintendent: supertendent
659
+ supersede: supercede
660
+ supplement: suplement
661
+ suppress: supress
662
+ surprise: suprise
663
+ surreptitious: sureptitous
664
+ surrounded: surounded
665
+ swearing: swearinge
666
+ syllables: sylables
667
+ symmetry: symetry
668
+ synonymous: synonomous
669
+ systematically: systemetically
670
+ tacit: tasit
671
+ taking: takin
672
+ technically: technecally
673
+ television: televison
674
+ temperament: temperment
675
+ temporarily: temporarly
676
+ temporary: tempory
677
+ tendency: tendancy
678
+ terrestrial: terestial
679
+ terrors: terrours
680
+ that: thatt
681
+ therefore: therefor
682
+ thief: theaf
683
+ think: thinke
684
+ thinking: thinkin
685
+ thorough: thourough
686
+ thoroughly: throughly
687
+ tobacco: tobbaco
688
+ tobogganing: tobboganing
689
+ tonnage: tonage
690
+ tragedy: tradgedy
691
+ tranquility: tranquillity
692
+ tranquillity: tranquility
693
+ transferable: transferrable
694
+ transferred: transfred
695
+ truculent: trucculent
696
+ truly: truley
697
+ tying: tieing
698
+ tyrannical: tyranical
699
+ undoubtedly: undoubtly
700
+ unequaled: unequalled
701
+ unfortunately: unfortunatly
702
+ university: unversity
703
+ unmistakable: unmistakeable
704
+ unparalleled: unparalelled
705
+ until: untill
706
+ usage: useage
707
+ usually: usualy
708
+ usurious: usurous
709
+ utterance: utterence
710
+ vacancy: vancancy
711
+ vaccination: vacinnation
712
+ vacillate: vaccilate
713
+ various: vairious
714
+ vegetable: vegatable
715
+ vengeance: vengance
716
+ vertical: verticle
717
+ vice: vise
718
+ victuals: vituals
719
+ vilify: villify
720
+ villain: villian
721
+ violence: violance
722
+ violin: vioiln
723
+ visible: visable
724
+ vitamins: vitamines
725
+ voucher: vouture
726
+ wagging: waggin
727
+ waggish: wagish
728
+ wednesday: wensday
729
+ weed: weede
730
+ weight: weigth
731
+ weird: wierd
732
+ whether: wether
733
+ which: whitch
734
+ who: whoe
735
+ withhold: withold
736
+ worshiping: worshipping
737
+ yacht: yaht
738
+ yearned: yerned
739
+ yeoman: yoman
740
+ yield: yeild
741
+ zealous: zelous
742
+ zenith: zeenith
743
+ ability: ablity
744
+ academically: academicly
745
+ accept: acept
746
+ accepted: acepted
747
+ access: acess
748
+ accessibility: accessability
749
+ accessing: accesing
750
+ according: acording
751
+ account: acount
752
+ accounts: acounts
753
+ acquaintances: aquantences
754
+ adaptable: adabtable
755
+ addressable: addresable
756
+ adequate: adiquate
757
+ adjournment: adjurnment
758
+ advise: advice
759
+ again: agiin
760
+ agencies: agences
761
+ aggravating: agravating
762
+ allow: alow
763
+ although: athough
764
+ analyse: analiss
765
+ analysed: analised
766
+ analysing: aalysing
767
+ and: anf
768
+ announcing: anouncing
769
+ annoying: anoying
770
+ annual: anual
771
+ anomalies: anomolies
772
+ apologies: appologies
773
+ apologised: appologised
774
+ appeal: apeal
775
+ appendix: apendix
776
+ applicable: aplicable
777
+ applied: upplied
778
+ applying: applieing
779
+ appointment: appoitment
780
+ appointments: apointments
781
+ appreciated: apreciated
782
+ appreciation: apreciation
783
+ approach: aproach
784
+ approached: aproached
785
+ are: arte
786
+ arguing: aurguing
787
+ arranged: arrainged
788
+ arrangeing: aranging
789
+ arrangement: arrangment
790
+ arrangements: araingements
791
+ articles: articals
792
+ assessing: accesing
793
+ associated: assosiated
794
+ atmosphere: atmospher
795
+ auguments: aurgument
796
+ availability: avaiblity
797
+ base: basse
798
+ benefit: benifit
799
+ benefits: benifits
800
+ between: beetween
801
+ bicycle: bicycal
802
+ bingley: bingly
803
+ bonus: bonas
804
+ build: biuld
805
+ building: biulding
806
+ busy: buisy
807
+ career: carrer
808
+ careers: currers
809
+ categories: catagoris
810
+ centrally: centraly
811
+ certain: cirtain
812
+ challenges: chalenges
813
+ challenge: chalange
814
+ choice: choise
815
+ choices: choises
816
+ choose: chose
817
+ choosing: chosing
818
+ clerical: clearical
819
+ clerk: clerck
820
+ collate: colate
821
+ combine: comibine
822
+ commercial: comersial
823
+ comments: coments
824
+ commit: comit
825
+ committees: commitees
826
+ compare: compair
827
+ compared: comppared
828
+ comparison: comparrison
829
+ completely: completly
830
+ component: componant
831
+ composed: compossed
832
+ conditioning: conditining
833
+ conference: conferance
834
+ consider: concider
835
+ considerable: conciderable
836
+ consist: consisit
837
+ consisting: consisiting
838
+ consists: consisits
839
+ contained: contasined
840
+ containing: contasining
841
+ continually: contually
842
+ continued: contuned
843
+ controlled: controled
844
+ conversely: conversly
845
+ corporate: corparate
846
+ credit: creadit
847
+ criticism: citisum
848
+ currently: curruntly
849
+ data: dsata
850
+ dealt: delt
851
+ decide: descide
852
+ decided: descided
853
+ decides: descides
854
+ decision: descisions
855
+ decisions: descisions
856
+ declarations: declaratrions
857
+ definition: defenition
858
+ definitions: defenitions
859
+ demands: diemands
860
+ dependence: dependance
861
+ described: discribed
862
+ desirable: disiable
863
+ desperately: despratly
864
+ diagrammatically: diagrammatica
865
+ different: diffrent
866
+ difficult: dificult
867
+ difficulty: dificulty
868
+ disaggregate: disaggreagte
869
+ disappointing: dissapoiting
870
+ discretion: discresion
871
+ dissension: desention
872
+ dragged: draged
873
+ earlier: earlyer
874
+ earliest: earlyest
875
+ easier: easer
876
+ easily: easyly
877
+ econometric: economtric
878
+ edition: ediition
879
+ eliminated: elimiated
880
+ embellishing: embelishing
881
+ employed: emploied
882
+ employees: emploies
883
+ employment: empolyment
884
+ encompassing: encompasing
885
+ encourage: encorage
886
+ enormously: enomosly
887
+ entirely: entierly
888
+ equalled: equaled
889
+ erroneous: errounous
890
+ especially: especaily
891
+ essential: esential
892
+ eventually: eventully
893
+ evident: evedent
894
+ exact: exsact
895
+ exactly: exsactly
896
+ examine: examin
897
+ excellent: exerlant
898
+ except: excxept
899
+ excessively: exessively
900
+ executed: executted
901
+ expansion: expanion
902
+ expense: expence
903
+ expensive: expencive
904
+ experiences: experances
905
+ explaining: explaning
906
+ exponentially: exponentualy
907
+ extremely: extreemly
908
+ facilities: facilitys
909
+ fails: failes
910
+ 'false': faulse
911
+ familiar: familer
912
+ families: familys
913
+ favourable: faverable
914
+ favourably: favorably
915
+ feeling: fealing
916
+ female: femail
917
+ figure: figuar
918
+ figures: figuars
919
+ financial: finatical
920
+ financially: financialy
921
+ flexible: flexable
922
+ forbidden: forbiden
923
+ forecast: forcast
924
+ fourth: forth
925
+ functionally: functionaly
926
+ functions: functuions
927
+ further: futher
928
+ gaining: ganing
929
+ generated: generataed
930
+ geneva: geniva
931
+ geographically: goegraphicaly
932
+ graphically: graphicaly
933
+ guidelines: guidlines
934
+ handle: handel
935
+ hierarchal: hierachial
936
+ hierarchy: hierchy
937
+ however: howeverr
938
+ humour: humor
939
+ ideally: idealy
940
+ immediate: imediate
941
+ inconceivable: inconcievable
942
+ indeed: indead
943
+ independent: independant
944
+ inefficient: ineffiect
945
+ initial: intital
946
+ input: inut
947
+ inquiries: equiries
948
+ insight: insite
949
+ intelligence: inteligence
950
+ interest: intrest
951
+ interesting: intresting
952
+ interpretation: interpritatio
953
+ interrogating: interogationg
954
+ investigated: investegated
955
+ journalism: journaism
956
+ knowledge: knowlege
957
+ largely: largly
958
+ later: latter
959
+ length: lengh
960
+ level: leval
961
+ levels: levals
962
+ lieu: liew
963
+ literature: litriture
964
+ loans: lones
965
+ locally: localy
966
+ luckily: luckeley
967
+ majority: majorty
968
+ manually: manualy
969
+ many: mony
970
+ mathematically: mathematicaly
971
+ matrix: matriiix
972
+ mean: meen
973
+ means: meens
974
+ minutes: muiuets
975
+ misleading: missleading
976
+ monitoring: monitering
977
+ months: monthes
978
+ moving: moveing
979
+ nationally: nationaly
980
+ nature: natior
981
+ necessitates: nessisitates
982
+ necessity: nessesity
983
+ negligible: negligable
984
+ neither: niether
985
+ night: nite
986
+ normally: normaly
987
+ now: noe
988
+ numbers: numbuers
989
+ obtaining: optaning
990
+ occur: occure
991
+ operations: operatins
992
+ operator: opertor
993
+ operators: oprators
994
+ opinion: oppinion
995
+ opportunity: oppotunity
996
+ ordinary: ordenary
997
+ organization: oranisation
998
+ organized: oranised
999
+ orientated: orentated
1000
+ output: oputput
1001
+ overall: overal
1002
+ paid: payed
1003
+ parameters: perametres
1004
+ partially: partialy
1005
+ particular: particulaur
1006
+ particularly: particulary
1007
+ patterns: pattarns
1008
+ per: pere
1009
+ perhaps: perhapse
1010
+ permanent: perminant
1011
+ permanently: perminantly
1012
+ personnel: personel
1013
+ pivoting: pivting
1014
+ politics: polatics
1015
+ position: possition
1016
+ possible: possable
1017
+ prepared: prepaired
1018
+ primarily: pimarily
1019
+ prior: piror
1020
+ proceeding: proceding
1021
+ profession: preffeson
1022
+ profit: proffit
1023
+ profits: proffits
1024
+ progresses: progressess
1025
+ progression: progresion
1026
+ projects: projeccts
1027
+ proportions: proprtions
1028
+ provide: provid
1029
+ provisionally: provisionaly
1030
+ proviso: provisoe
1031
+ qualities: quaties
1032
+ queries: quies
1033
+ reaching: reching
1034
+ readjusted: reajusted
1035
+ received: recived
1036
+ receives: recives
1037
+ receiving: reciving
1038
+ recently: reciently
1039
+ refered: reffered
1040
+ regained: regined
1041
+ register: rgister
1042
+ relatively: relitivly
1043
+ repetitive: repetative
1044
+ representative: representitiv
1045
+ requested: rquested
1046
+ required: reequired
1047
+ research: reserch
1048
+ resolved: resoved
1049
+ responsibilities: responsibliti
1050
+ responsible: responcible
1051
+ resulting: reulting
1052
+ retirement: retirment
1053
+ routine: rouint
1054
+ safeguard: safegaurd
1055
+ salaries: salarys
1056
+ scheme: scheem
1057
+ scrutinized: scrutiniesed
1058
+ search: serch
1059
+ searching: serching
1060
+ secretaries: secutaries
1061
+ security: seurity
1062
+ seen: seeen
1063
+ segment: segemnt
1064
+ senior: sienior
1065
+ sense: sence
1066
+ sensible: sensable
1067
+ separated: seperated
1068
+ separation: seperation
1069
+ session: sesion
1070
+ set: et
1071
+ sheets: sheertes
1072
+ shortened: shortend
1073
+ shown: hown
1074
+ sign: eign
1075
+ simular: similar
1076
+ singular: singulaur
1077
+ someone: somone
1078
+ sources: sorces
1079
+ speaking: speeking
1080
+ standardizing: stanerdizing
1081
+ stopped: stoped
1082
+ students: studens
1083
+ studying: studing
1084
+ subsequent: subsiquent
1085
+ subtract: subtrcat
1086
+ successful: sucssuful
1087
+ successive: sucsesive
1088
+ such: shuch
1089
+ suffering: suufering
1090
+ suggested: sugested
1091
+ suggestion: sugestion
1092
+ suggests: sugests
1093
+ suited: suted
1094
+ summarys: sumarys
1095
+ supervision: supervison
1096
+ supplementary: suplementary
1097
+ supplements: suplements
1098
+ supposedly: supposidly
1099
+ surrounding: serounding
1100
+ surroundings: suroundings
1101
+ surveys: servays
1102
+ surveying: servaying
1103
+ system: sysem
1104
+ table: tasble
1105
+ technique: tecnique
1106
+ techniques: tecniques
1107
+ the: thw
1108
+ their: thier
1109
+ there: thear
1110
+ thermawear: thermawhere
1111
+ these: thess
1112
+ they: thay
1113
+ thoughts: thorts
1114
+ through: throut
1115
+ throughout: throuout
1116
+ timing: timeing
1117
+ titles: tittles
1118
+ to: ro
1119
+ together: togehter
1120
+ totally: totaly
1121
+ traditionally: traditionaly
1122
+ transactions: trasactions
1123
+ transportability: transportibil
1124
+ triangular: triangulaur
1125
+ umbrella: umberalla
1126
+ unavailable: unavailble
1127
+ understandable: understadable
1128
+ unequalled: unequaled
1129
+ unequivocally: unequivocaly
1130
+ union: unioun
1131
+ unique: uneque
1132
+ universally: universaly
1133
+ unnecessarily: unessasarily
1134
+ unnecessary: unessessay
1135
+ unresolved: unresloved
1136
+ used: usedf
1137
+ useful: usful
1138
+ user: uers
1139
+ utilized: utalised
1140
+ valuable: valuble
1141
+ variable: varible
1142
+ variant: vairiant
1143
+ variety: variatry
1144
+ virtually: vertually
1145
+ visitor: vistor
1146
+ visitors: vistors
1147
+ voluntary: volantry
1148
+ voting: voteing
1149
+ weapons: wepons
1150
+ weighted: wagted
1151
+ were: where
1152
+ when: whn
1153
+ whereas: wheras
1154
+ widely: widly
1155
+ will: wil
1156
+ within: withing
1157
+ would: whould
1158
+ written: writen
1159
+ years: yesars