Codebase list nuspell / HEAD
Import Debian changes 5.1.2-1 nuspell (5.1.2-1) unstable; urgency=medium . * New upstream release. (Closes: #1020967) Thorsten Alteholz 1 year, 7 months ago
27 changed file(s) with 5037 addition(s) and 4938 deletion(s). Raw diff Collapse all Expand all
2020 env:
2121 CXXFLAGS: ${{ matrix.cxxflags }}
2222 steps:
23 - uses: actions/checkout@v2
23 - uses: actions/checkout@v3
2424 with: { submodules: true }
2525
2626 - name: Configure CMake
4242 runs-on: windows-latest
4343
4444 steps:
45 - uses: actions/checkout@v2
45 - uses: actions/checkout@v3
46 with: { submodules: true }
4647
4748 - name: Bring runner env vars to workflows
4849 shell: bash
4950 run: |
5051 echo "local_app_data=$LOCALAPPDATA" >> $GITHUB_ENV
5152 echo "vcpkg_root=$VCPKG_INSTALLATION_ROOT" >> $GITHUB_ENV
52 vcpkg x-history icu | awk 'NR==2{ print "icu_ver="$1 }' >> $GITHUB_ENV
53 vcpkg x-history catch2 | awk 'NR==2{ print "catch2_ver="$1 }' >> $GITHUB_ENV
53 vcpkg search icu | awk '$1=="icu"{ print "icu_ver="$2 }' >> $GITHUB_ENV
5454
55 - uses: actions/cache@v2
55 - uses: actions/cache@v3
5656 with:
5757 # use backslashes in path here for Windows.
5858 path: ${{ env.local_app_data }}\vcpkg\archives
59 key: windows-vcpkg-cache-${{ env.icu_ver }}-${{ env.catch2_ver }}
59 key: windows-vcpkg-cache-${{ env.icu_ver }}
6060 restore-keys: windows-vcpkg-cache-
6161
6262 - name: Pull Vcpkg dependencies
63 run: vcpkg install icu catch2 --triplet=x64-windows
63 run: vcpkg install icu getopt --triplet=x64-windows
6464
6565 - name: Configure CMake
6666 run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
44
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8 ## [5.1.2] - 2022-09-29
9 ### Changed
10 - Rewrite internal testing tool verify and improve it to support testing
11 suggestions.
12
13 ### Fixed
14 - Greatly improve the speed of suggestions in certain edge cases. See #45.
15 - Fix minor encoding issue in the CLI tool on Windows when reading from file(s)
16 instead of the standard input. UTF-8 is now the default encoding in that case
17 and not the one of the console.
18
19 ## [5.1.1] - 2022-09-09
20 ### Added
21 - Add configuration option `BUILD_TOOLS` that can be used to disable building
22 the CLI tool. It is ON by default. See #122.
23
24 ### Changed
25 - Made error reporting more detailed and robust. The message in the thrown
26 exception is much richer when there are parsing errors. The library does
27 not write directly to `cerr`, it does not pollute it. See #123.
28
29 ### Fixed
30 - Fix compiler warnings regarding usage of deprecated functions.
31 - Fix CLI tool on Windows + MSVC to properly accept arguments. Windows + MSVC
32 now requires library `getopt` from Vcpkg. Fixes #122.
733
834 ## [5.1.0] - 2022-02-15
935 ### Added
225251 - Spelling error detection (checking) is closely matching Hunspell
226252 - Support for spelling error correction (suggestions)
227253
228 [Unreleased]: https://github.com/nuspell/nuspell/compare/v5.1.0...HEAD
254 [Unreleased]: https://github.com/nuspell/nuspell/compare/v5.1.2...HEAD
255 [5.1.2]: https://github.com/nuspell/nuspell/compare/v5.1.1...v5.1.2
256 [5.1.1]: https://github.com/nuspell/nuspell/compare/v5.1.0...v5.1.1
229257 [5.1.0]: https://github.com/nuspell/nuspell/compare/v5.0.1...v5.1.0
230258 [5.0.1]: https://github.com/nuspell/nuspell/compare/v5.0.0...v5.0.1
231259 [5.0.0]: https://github.com/nuspell/nuspell/compare/v4.2.0...v5.0.0
00 cmake_minimum_required(VERSION 3.8)
1 project(nuspell VERSION 5.1.0)
1 project(nuspell VERSION 5.1.2)
22 set(PROJECT_HOMEPAGE_URL "https://nuspell.github.io/")
33
44 option(BUILD_SHARED_LIBS "Build as shared library" ON)
5 option(BUILD_TESTING "Build the testing tree." ON)
6 option(BUILD_TOOLS "Build the CLI tool." ON)
57
68 include(GNUInstallDirs)
79 include(CMakePackageConfigHelpers)
10 find_package(ICU 60 REQUIRED COMPONENTS uc data)
11 get_directory_property(subproject PARENT_DIRECTORY)
12 add_subdirectory(src/nuspell)
813
9 find_package(ICU 60 REQUIRED COMPONENTS uc data)
10
11 get_directory_property(subproject PARENT_DIRECTORY)
12
13 add_subdirectory(src/nuspell)
14 add_subdirectory(src/tools)
15
14 if (MSVC AND (BUILD_TOOLS OR BUILD_TESTING))
15 find_path(GETOPT_INCLUDE_DIR getopt.h)
16 if (NOT GETOPT_INCLUDE_DIR)
17 message(FATAL_ERROR "Can not find getopt.h")
18 endif()
19 find_library(GETOPT_LIBRARY getopt)
20 if (NOT GETOPT_LIBRARY)
21 message(FATAL_ERROR "Can not find library getopt")
22 endif()
23 endif()
24 if (BUILD_TOOLS)
25 add_subdirectory(src/tools)
26 endif()
1627 if (subproject)
17 # if added as subproject just build Nuspell
18 # no need to test, build docs or install
19 return()
28 # if added as subproject just build Nuspell
29 # no need to test, build docs or install
30 return()
2031 endif()
2132
2233 function(find_catch2_from_source)
23 set(Catch2_FOUND Catch2-NOTFOUND PARENT_SCOPE)
24 set(catch_cmake_lists ${PROJECT_SOURCE_DIR}/external/Catch2/CMakeLists.txt)
25 if (NOT EXISTS ${catch_cmake_lists})
26 find_package(Git)
27 if (NOT Git_FOUND)
28 return()
29 endif()
30 execute_process(
31 COMMAND ${GIT_EXECUTABLE} submodule update --init -- Catch2
32 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/external
33 RESULT_VARIABLE git_submodule_error
34 ERROR_QUIET)
35 if (git_submodule_error OR NOT EXISTS ${catch_cmake_lists})
36 return()
37 endif()
38 endif()
39 add_subdirectory(external/Catch2)
40 list(APPEND CMAKE_MODULE_PATH
41 ${PROJECT_SOURCE_DIR}/external/Catch2/contrib)
42 set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" PARENT_SCOPE)
43 set(Catch2_FOUND 1 PARENT_SCOPE)
34 set(Catch2_FOUND Catch2-NOTFOUND PARENT_SCOPE)
35 set(catch_cmake_lists
36 ${PROJECT_SOURCE_DIR}/external/Catch2/CMakeLists.txt)
37 if (NOT EXISTS ${catch_cmake_lists})
38 find_package(Git)
39 if (NOT Git_FOUND)
40 return()
41 endif()
42 execute_process(
43 COMMAND ${GIT_EXECUTABLE} submodule update --init Catch2
44 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/external
45 RESULT_VARIABLE git_submodule_error
46 ERROR_QUIET)
47 if (git_submodule_error OR NOT EXISTS ${catch_cmake_lists})
48 return()
49 endif()
50 endif()
51 add_subdirectory(external/Catch2)
52 list(APPEND CMAKE_MODULE_PATH
53 ${PROJECT_SOURCE_DIR}/external/Catch2/contrib)
54 set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" PARENT_SCOPE)
55 set(Catch2_FOUND 1 PARENT_SCOPE)
4456 endfunction()
4557
46 option(BUILD_TESTING "Build the testing tree." ON)
4758 if (BUILD_TESTING)
48 enable_testing()
49 find_package(Catch2 2.3.0 QUIET)
50 if (NOT Catch2_FOUND)
51 find_catch2_from_source()
52 endif()
53 if (Catch2_FOUND)
54 add_subdirectory(external/hunspell/hunspell)
55 add_subdirectory(tests)
56 else()
57 message(WARNING "Can not find Catch2, tests will be disabled")
58 endif()
59 enable_testing()
60 find_package(Catch2 2.3.0 QUIET)
61 if (NOT Catch2_FOUND)
62 find_catch2_from_source()
63 endif()
64 if (Catch2_FOUND)
65 add_subdirectory(external/hunspell/hunspell)
66 add_subdirectory(tests)
67 else()
68 message(WARNING "Can not find Catch2, tests will be disabled")
69 endif()
5970 endif()
6071
6172
6475 configure_file(nuspell.pc.in nuspell.pc @ONLY)
6576 #configure_file(NuspellConfig.cmake NuspellConfig.cmake COPYONLY)
6677 write_basic_package_version_file(NuspellConfigVersion.cmake
67 COMPATIBILITY AnyNewerVersion)
78 COMPATIBILITY AnyNewerVersion)
6879
6980 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/nuspell.pc
70 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
81 DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
7182 install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/NuspellConfig.cmake
72 ${CMAKE_CURRENT_BINARY_DIR}/NuspellConfigVersion.cmake
73 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/nuspell)
83 ${CMAKE_CURRENT_BINARY_DIR}/NuspellConfigVersion.cmake
84 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/nuspell)
7485 install(FILES README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
2424
2525 Build-only dependencies:
2626
27 - C++ 17 compiler, GCC >= v8, Clang >= v7, MSVC >= 2017
27 - C++ 17 compiler with support for `std::filesystem`, e.g. GCC >= v9
2828 - CMake >= v3.8
2929 - Catch2 >= v2.3.0 (It is only needed when building the tests. If it is not
3030 available as a system package, the the Git submodule will be used.)
31 - Getopt (It is needed only on Windows + MSVC and only when the CLI tool or
32 the tests are built. It is available in vcpkg. Other platforms provide
33 it out of the box.)
3134
3235 Run-time (and build-time) dependencies:
3336
99102 Visual Studio Build Tools.
100103 2. Install Git for Windows and Cmake.
101104 3. Install vcpkg in some folder, e.g. in `c:\vcpkg`.
102 4. With vcpkg install: icu.
105 4. Run `vcpkg install icu getopt --triplet=x64-windows`.
103106 5. Run the commands bellow.
104107
105108 <!-- end list -->
107110 ```bat
108111 mkdir build
109112 cd build
110 cmake .. -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -A Win32
113 cmake .. -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake -A x64
111114 cmake --build .
112115 ```
113116
0 nuspell (5.1.2-1) unstable; urgency=medium
1
2 * New upstream release. (Closes: #1020967)
3
4 -- Thorsten Alteholz <debian@alteholz.de> Fri, 30 Sep 2022 22:36:33 +0200
5
06 nuspell (5.1.0-1) unstable; urgency=medium
17
28 * New upstream release. (Closes: #1006900)
1313 generate_export_header(nuspell)
1414
1515 set(nuspell_headers aff_data.hxx checker.hxx suggester.hxx dictionary.hxx
16 finder.hxx structures.hxx unicode.hxx
17 ${CMAKE_CURRENT_BINARY_DIR}/nuspell_export.h)
16 finder.hxx structures.hxx unicode.hxx
17 ${CMAKE_CURRENT_BINARY_DIR}/nuspell_export.h)
1818 set_target_properties(nuspell PROPERTIES
19 PUBLIC_HEADER "${nuspell_headers}"
20 VERSION ${PROJECT_VERSION}
21 SOVERSION ${PROJECT_VERSION_MAJOR}
22 CXX_VISIBILITY_PRESET hidden)
19 PUBLIC_HEADER "${nuspell_headers}"
20 VERSION ${PROJECT_VERSION}
21 SOVERSION ${PROJECT_VERSION_MAJOR}
22 CXX_VISIBILITY_PRESET hidden)
2323
2424 target_compile_features(nuspell PUBLIC cxx_std_17)
2525
2626 target_include_directories(nuspell
27 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
28 INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
29 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
27 PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
28 INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
29 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
3030
3131 target_link_libraries(nuspell PUBLIC ICU::uc ICU::data)
3232
33 if (NOT subproject)
34 install(TARGETS nuspell
35 EXPORT NuspellTargets
36 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
37 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
38 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
39 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nuspell)
40 install(EXPORT NuspellTargets
41 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/nuspell
42 NAMESPACE Nuspell::)
33 if (subproject)
34 return()
4335 endif()
36
37 install(TARGETS nuspell
38 EXPORT NuspellTargets
39 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
40 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
41 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
42 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nuspell)
43 install(EXPORT NuspellTargets
44 DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/nuspell
45 NAMESPACE Nuspell::)
1818 #include "aff_data.hxx"
1919 #include "utils.hxx"
2020
21 #include <cassert>
2122 #include <charconv>
22 #include <iostream>
2323 #include <locale>
2424 #include <sstream>
2525 #include <unordered_map>
5757 }
5858
5959 enum class Parsing_Error_Code {
60 NO_FLAGS_AFTER_SLASH_WARNING = -2,
61 NONUTF8_FLAGS_ABOVE_127_WARNING = -1,
60 NO_FLAGS_AFTER_SLASH_WARNING = -16,
61 NONUTF8_FLAGS_ABOVE_127_WARNING,
62 ARRAY_COMMAND_EXTRA_ENTRIES_WARNING,
63 MULTIPLE_ENTRIES_WARNING,
6264 NO_ERROR = 0,
65 ISTREAM_READING_ERROR,
66 INVALID_ENCODING_IDENTIFIER,
67 ENCODING_CONVERSION_ERROR,
68 INVALID_FLAG_TYPE,
69 INVALID_LANG_IDENTIFIER,
6370 MISSING_FLAGS,
6471 UNPAIRED_LONG_FLAG,
6572 INVALID_NUMERIC_FLAG,
6774 INVALID_UTF8,
6875 FLAG_ABOVE_65535,
6976 INVALID_NUMERIC_ALIAS,
77 AFX_CROSS_CHAR_INVALID,
7078 AFX_CONDITION_INVALID_FORMAT,
71 COMPOUND_RULE_INVALID_FORMAT
79 COMPOUND_RULE_INVALID_FORMAT,
80 ARRAY_COMMAND_NO_COUNT
7281 };
7382
7483 auto decode_flags(string_view s, Flag_Type t, const Encoding& enc,
167176 return Parsing_Error_Code::INVALID_NUMERIC_ALIAS;
168177 }
169178
170 auto report_parsing_error(Parsing_Error_Code err, size_t line_num)
179 auto get_parsing_error_message(Parsing_Error_Code err)
171180 {
172181 using Err = Parsing_Error_Code;
173182 switch (err) {
174183 case Err::NO_FLAGS_AFTER_SLASH_WARNING:
175 cerr << "Nuspell warning: no flags after slash in line "
176 << line_num << '\n';
177 break;
184 return "Nuspell warning: no flags after slash.";
178185 case Err::NONUTF8_FLAGS_ABOVE_127_WARNING:
179 cerr << "Nuspell warning: bytes above 127 in flags in UTF-8 "
180 "file are treated as lone bytes for backward "
181 "compatibility. That means if in the flags you have "
182 "ONE character above ASCII, it may be interpreted as "
183 "2, 3, or 4 flags. Please update dictionary and affix "
184 "files to use FLAG UTF-8 and make the file valid "
185 "UTF-8 if it is not already. Warning in line "
186 << line_num << '\n';
187 break;
186 return "Nuspell warning: bytes above 127 in flags in UTF-8 "
187 "file are treated as lone bytes for backward "
188 "compatibility. That means if in the flags you have "
189 "ONE character above ASCII, it may be interpreted as "
190 "2, 3, or 4 flags. Please update dictionary and affix "
191 "files to use FLAG UTF-8 and make the file valid "
192 "UTF-8 if it is not already.";
193 case Err::ARRAY_COMMAND_EXTRA_ENTRIES_WARNING:
194 return "Nuspell warning: extra entries of array command.";
195 case Err::MULTIPLE_ENTRIES_WARNING:
196 return "Nuspell warning: multiple entries the same command.";
188197 case Err::NO_ERROR:
189 break;
198 return "";
199 case Err::ISTREAM_READING_ERROR:
200 return "Nuspell error: problem reading number or string from "
201 "istream.";
202 case Err::INVALID_ENCODING_IDENTIFIER:
203 return "Nuspell error: Invalid identifier of encoding.";
204 case Err::ENCODING_CONVERSION_ERROR:
205 return "Nuspell error: encoding conversion error.";
206 case Err::INVALID_FLAG_TYPE:
207 return "Nuspell error: invalid identifier for the type of the "
208 "flags.";
209 case Err::INVALID_LANG_IDENTIFIER:
210 return "Nuspell error: invalid language code.";
190211 case Err::MISSING_FLAGS:
191 cerr << "Nuspell error: missing flags in line " << line_num
192 << '\n';
193 break;
212 return "Nuspell error: missing flags.";
194213 case Err::UNPAIRED_LONG_FLAG:
195 cerr << "Nuspell error: the number of chars in string of long "
196 "flags is odd, should be even. Error in line "
197 << line_num << '\n';
198 break;
214 return "Nuspell error: the number of chars in string of long "
215 "flags is odd, should be even.";
199216 case Err::INVALID_NUMERIC_FLAG:
200 cerr << "Nuspell error: invalid numerical flag in line"
201 << line_num << '\n';
202 break;
217 return "Nuspell error: invalid numerical flag.";
203218 // case Err::FLAGS_ARE_UTF8_BUT_FILE_NOT:
204 // cerr << "Nuspell error: flags are UTF-8 but file is not\n";
205 // break;
219 // return "Nuspell error: flags are UTF-8 but file is not\n";
206220 case Err::INVALID_UTF8:
207 cerr << "Nuspell error: Invalid UTF-8 in flags in line "
208 << line_num << '\n';
209 break;
221 return "Nuspell error: Invalid UTF-8 in flags";
210222 case Err::FLAG_ABOVE_65535:
211 cerr << "Nuspell error: Flag above 65535 in line " << line_num
212 << '\n';
213 break;
223 return "Nuspell error: Flag above 65535 in line";
214224 case Err::INVALID_NUMERIC_ALIAS:
215 cerr << "Nuspell error: Flag alias is invalid in line"
216 << line_num << '\n';
217 break;
225 return "Nuspell error: Flag alias is invalid.";
226 case Err::AFX_CROSS_CHAR_INVALID:
227 return "Nuspell error: Invalid cross char in affix entry. It "
228 "must be Y or N.";
218229 case Err::AFX_CONDITION_INVALID_FORMAT:
219 cerr << "Nuspell error: Affix condition is invalid in line "
220 << line_num << '\n';
221 break;
230 return "Nuspell error: Affix condition is invalid.";
222231 case Err::COMPOUND_RULE_INVALID_FORMAT:
223 cerr << "Nuspell error: Compound rule is in invalid format in "
224 "line "
225 << line_num << '\n';
226 break;
227 }
232 return "Nuspell error: Compound rule is in invalid format.";
233 case Err::ARRAY_COMMAND_NO_COUNT:
234 return "Nuspell error: The first line of array command (series "
235 "of similar commands) has no count. Ignoring all of "
236 "them.";
237 }
238 return "Unknown error";
228239 }
229240
230241 auto decode_compound_rule(string_view s, Flag_Type t, const Encoding& enc,
313324 return {r};
314325 }
315326
316 class Aff_Line_IO_Manip;
317
318 template <class T>
319 struct Ref_Wrapper_1 {
320 Aff_Line_IO_Manip& manip;
321 T& data;
322 };
323
324 struct Ref_Wrapper_1_Cpd_Rule {
325 Aff_Line_IO_Manip& manip;
326 Compound_Rule_Ref_Wrapper data;
327 };
328
329 template <class T, class U>
330 struct Ref_Wrapper_2 {
331 Aff_Line_IO_Manip& manip;
332 T& data1;
333 U& data2;
334 };
335
336 class Aff_Line_IO_Manip {
327 class Aff_Line_Parser {
337328 std::string str_buf;
338329 std::u16string flag_buffer;
339330
340331 const Aff_Data* aff_data = nullptr;
341332 Encoding_Converter cvt;
342333
334 using Err = Parsing_Error_Code;
335
343336 public:
344337 Parsing_Error_Code err = {};
345338
346 Aff_Line_IO_Manip() = default;
347 Aff_Line_IO_Manip(Aff_Data& a)
339 Aff_Line_Parser() = default;
340 Aff_Line_Parser(Aff_Data& a)
348341 : aff_data(&a), cvt(a.encoding.value_or_default())
349342 {
350343 }
352345 auto& parse(istream& in, Encoding& enc)
353346 {
354347 in >> str_buf;
355 if (in.fail())
356 return in;
348 if (in.fail()) {
349 err = Err::ISTREAM_READING_ERROR;
350 return in;
351 }
357352 enc = str_buf;
358353 cvt = Encoding_Converter(enc.value_or_default());
359 if (!cvt.valid())
360 in.setstate(in.failbit);
354 if (!cvt.valid()) {
355 err = Err::INVALID_ENCODING_IDENTIFIER;
356 in.setstate(in.failbit);
357 }
361358 return in;
362359 }
363360
364361 auto& parse(istream& in, std::string& str)
365362 {
366363 in >> str_buf;
367 if (in.fail()) // str_buf is unmodified on fail
368 return in;
364 if (in.fail()) { // str_buf is unmodified on fail
365 err = Err::ISTREAM_READING_ERROR;
366 return in;
367 }
369368 auto ok = cvt.to_utf8(str_buf, str);
370 if (!ok)
371 in.setstate(in.failbit);
369 if (!ok) {
370 err = Err::INVALID_ENCODING_IDENTIFIER;
371 in.setstate(in.failbit);
372 }
372373 return in;
373374 }
374375
377378 using Ft = Flag_Type;
378379 flag_type = {};
379380 in >> str_buf;
380 if (in.fail())
381 return in;
381 if (in.fail()) {
382 err = Err::ISTREAM_READING_ERROR;
383 return in;
384 }
382385 to_upper_ascii(str_buf);
383386 if (str_buf == "LONG")
384387 flag_type = Ft::DOUBLE_CHAR;
386389 flag_type = Ft::NUMBER;
387390 else if (str_buf == "UTF-8")
388391 flag_type = Ft::UTF8;
389 else
390 in.setstate(in.failbit);
392 else {
393 err = Err::INVALID_FLAG_TYPE;
394 in.setstate(in.failbit);
395 }
391396 return in;
392397 }
393398
394399 auto& parse(istream& in, icu::Locale& loc)
395400 {
396401 in >> str_buf;
397 if (in.fail())
398 return in;
402 if (in.fail()) {
403 err = Err::ISTREAM_READING_ERROR;
404 return in;
405 }
399406 loc = icu::Locale(str_buf.c_str());
400 if (loc.isBogus())
401 in.setstate(in.failbit);
407 if (loc.isBogus()) {
408 err = Err::INVALID_LANG_IDENTIFIER;
409 in.setstate(in.failbit);
410 }
402411 return in;
403412 }
404413
406415 auto& parse_flags(istream& in, std::u16string& flags)
407416 {
408417 in >> str_buf;
409 if (in.fail())
410 return in;
418 if (in.fail()) {
419 err = Err::ISTREAM_READING_ERROR;
420 return in;
421 }
411422 err = decode_flags(str_buf, aff_data->flag_type,
412423 aff_data->encoding, flags);
413424 if (static_cast<int>(err) > 0)
435446
436447 auto& parse_word_slash_flags(istream& in, string& word, Flag_Set& flags)
437448 {
438 using Err = Parsing_Error_Code;
439449 in >> str_buf;
440 if (in.fail())
441 return in;
450 if (in.fail()) {
451 err = Err::ISTREAM_READING_ERROR;
452 return in;
453 }
442454 // err = {};
443455 auto slash_pos = str_buf.find('/');
444456 if (slash_pos != str_buf.npos) {
452464 err = Err::NO_FLAGS_AFTER_SLASH_WARNING;
453465 flags = flag_buffer;
454466 }
467 if (static_cast<int>(err) > 0) {
468 in.setstate(in.failbit);
469 return in;
470 }
455471 auto ok = cvt.to_utf8(str_buf, word);
456 if (!ok)
457 in.setstate(in.failbit);
458 if (static_cast<int>(err) > 0)
459 in.setstate(in.failbit);
472 if (!ok) {
473 err = Err::ENCODING_CONVERSION_ERROR;
474 in.setstate(in.failbit);
475 }
460476 return in;
461477 }
462478
464480 char16_t& flag) -> istream&
465481 {
466482 in >> str_buf;
467 if (in.fail())
468 return in;
483 if (in.fail()) {
484 err = Err::ISTREAM_READING_ERROR;
485 return in;
486 }
469487 // err = {};
470488 auto slash_pos = str_buf.find('/');
471489 if (slash_pos != str_buf.npos) {
477495 if (!flag_buffer.empty())
478496 flag = flag_buffer[0];
479497 }
498 if (static_cast<int>(err) > 0) {
499 in.setstate(in.failbit);
500 return in;
501 }
480502 auto ok = cvt.to_utf8(str_buf, word);
481 if (!ok)
482 in.setstate(in.failbit);
483 if (static_cast<int>(err) > 0)
484 in.setstate(in.failbit);
503 if (!ok) {
504 err = Err::ENCODING_CONVERSION_ERROR;
505 in.setstate(in.failbit);
506 }
485507 return in;
486508 }
487509
488510 auto& parse_compound_rule(istream& in, u16string& out)
489511 {
490512 in >> str_buf;
491 if (in.fail())
492 return in;
513 if (in.fail()) {
514 err = Err::ISTREAM_READING_ERROR;
515 return in;
516 }
493517 err = decode_compound_rule(str_buf, aff_data->flag_type,
494518 aff_data->encoding, out);
495519 if (static_cast<int>(err) > 0)
497521 return in;
498522 }
499523
500 template <class T>
501 auto operator()(T& x) -> Ref_Wrapper_1<T>
502 {
503 return {*this, x};
504 }
505
506 auto operator()(Compound_Rule_Ref_Wrapper x) -> Ref_Wrapper_1_Cpd_Rule
507 {
508 return {*this, x};
509 }
510
511 template <class T, class U>
512 auto operator()(T& x, U& y) -> Ref_Wrapper_2<T, U>
513 {
514 return {*this, x, y};
524 auto& parse(istream& in, pair<string, string>& out)
525 {
526 parse(in, out.first);
527 parse(in, out.second);
528 return in;
529 }
530
531 auto& parse(istream& in, Condition& x)
532 {
533 auto str = string();
534 parse(in, str);
535 if (in.fail())
536 return in;
537 try {
538 x = std::move(str);
539 }
540 catch (const Condition_Exception& ex) {
541 err = Parsing_Error_Code::AFX_CONDITION_INVALID_FORMAT;
542 in.setstate(in.failbit);
543 }
544 return in;
545 }
546
547 auto& parse(istream& in, Compound_Rule_Ref_Wrapper x)
548 {
549 return parse_compound_rule(in, x.rule);
550 }
551
552 auto& parse(istream& in, string& word, Flag_Set& flags)
553 {
554 return parse_word_slash_flags(in, word, flags);
555 }
556
557 auto& parse(istream& in, string& word, char16_t& flag)
558 {
559 return parse_word_slash_single_flag(in, word, flag);
560 }
561
562 auto& parse(istream& in, Compound_Pattern& p)
563 {
564 auto first_word_end = string();
565 auto second_word_begin = string();
566 p.match_first_only_unaffixed_or_zero_affixed = false;
567 parse(in, first_word_end, p.first_word_flag);
568 parse(in, second_word_begin, p.second_word_flag);
569 if (in.fail())
570 return in;
571 if (first_word_end == "0") {
572 first_word_end.clear();
573 p.match_first_only_unaffixed_or_zero_affixed = true;
574 }
575 p.begin_end_chars = {first_word_end, second_word_begin};
576 parse(in, p.replacement); // optional
577 if (in.fail() && in.eof() && !in.bad()) {
578 err = {};
579 reset_failbit_istream(in);
580 p.replacement.clear();
581 }
582 return in;
515583 }
516584 };
517585
518 template <class T, class = decltype(declval<Aff_Line_IO_Manip&>().parse(
519 declval<istream&>(), declval<T&>()))>
520 auto& operator>>(istream& in, Ref_Wrapper_1<T> x)
521 {
522 return x.manip.parse(in, x.data);
523 }
524
525 auto& operator>>(istream& in, Ref_Wrapper_1<pair<string, string>> x)
526 {
527 return in >> x.manip(x.data.first) >> x.manip(x.data.second);
528 }
529
530 auto& operator>>(istream& in, Ref_Wrapper_1<Condition> x)
531 {
532 auto str = string();
533 in >> x.manip(str);
534 if (in.fail())
535 return in;
536 try {
537 x.data = std::move(str);
538 }
539 catch (const Condition_Exception& ex) {
540 x.manip.err = Parsing_Error_Code::AFX_CONDITION_INVALID_FORMAT;
541 in.setstate(in.failbit);
542 }
543 return in;
544 }
545
546 auto& operator>>(istream& in, Ref_Wrapper_1_Cpd_Rule x)
547 {
548 return x.manip.parse_compound_rule(in, x.data.rule);
549 }
550
551 auto& operator>>(istream& in, Ref_Wrapper_2<string, Flag_Set> x)
552 {
553 return x.manip.parse_word_slash_flags(in, x.data1, x.data2);
554 }
555
556 auto& operator>>(istream& in, Ref_Wrapper_2<string, char16_t> x)
557 {
558 return x.manip.parse_word_slash_single_flag(in, x.data1, x.data2);
559 }
560
561 auto& operator>>(istream& in, Ref_Wrapper_1<Compound_Pattern> x)
562 {
563 auto [manip, p] = x;
564 auto first_word_end = string();
565 auto second_word_begin = string();
566 p.match_first_only_unaffixed_or_zero_affixed = false;
567 in >> manip(first_word_end, p.first_word_flag);
568 in >> manip(second_word_begin, p.second_word_flag);
569 if (in.fail())
570 return in;
571 if (first_word_end == "0") {
572 first_word_end.clear();
573 p.match_first_only_unaffixed_or_zero_affixed = true;
574 }
575 p.begin_end_chars = {first_word_end, second_word_begin};
576 auto old_mask = in.exceptions();
577 in.exceptions(in.goodbit); // disable exceptions
578 in >> manip(p.replacement); // optional
579 if (in.fail() && in.eof() && !in.bad()) {
580 reset_failbit_istream(in);
581 p.replacement.clear();
582 }
583 in.exceptions(old_mask);
584 return in;
585 }
586
587586 template <class T, class Func = identity>
588 auto parse_vector_of_T(istream& in, Aff_Line_IO_Manip& p, const string& command,
587 auto parse_vector_of_T(istream& in, Aff_Line_Parser& p, const string& command,
589588 unordered_map<string, size_t>& counts, vector<T>& vec,
590589 Func modifier_wrapper = Func()) -> void
591590 {
597596 in >> a;
598597 if (in)
599598 cnt = a;
600 else
601 cerr << "Nuspell error: a vector command (series of "
602 "of similar commands) has no count. Ignoring "
603 "all of them.\n";
599 else {
600 // cnt aka counts[command] remains 0.
601 p.err = Parsing_Error_Code::ARRAY_COMMAND_NO_COUNT;
602 in.setstate(in.failbit);
603 }
604604 }
605605 else if (dat->second != 0) {
606606 dat->second--;
607 vec.emplace_back();
608 in >> p(modifier_wrapper(vec.back()));
609 if (in.fail())
610 cerr << "Nuspell error: single entry of a vector "
611 "command (series of "
612 "of similar commands) is invalid.\n";
607 auto& elem = vec.emplace_back();
608 p.parse(in, modifier_wrapper(elem));
613609 }
614610 else {
615 cerr << "Nuspell warning: extra entries of " << command << "\n";
616 // cerr << "Nuspell warning in line " << line_num << endl;
611 p.err = Parsing_Error_Code::ARRAY_COMMAND_EXTRA_ENTRIES_WARNING;
617612 }
618613 }
619614
620615 template <class AffixT>
621 auto parse_affix(istream& in, Aff_Line_IO_Manip& p, string& command,
616 auto parse_affix(istream& in, Aff_Line_Parser& p, string& command,
622617 vector<AffixT>& vec,
623618 unordered_map<string, pair<bool, size_t>>& cmd_affix) -> void
624619 {
620 using Err = Parsing_Error_Code;
625621 char16_t f;
626 in >> p(f);
622 p.parse(in, f);
627623 if (in.fail())
628624 return;
629625 command.append(reinterpret_cast<char*>(&f), sizeof(f));
630626 auto dat = cmd_affix.find(command);
631627 // note: the current affix parser does not allow the same flag
632 // to be used once with cross product and again witohut
628 // to be used once with cross product and again without
633629 // one flag is tied to one cross product value
634630 if (dat == cmd_affix.end()) {
635631 char cross_char; // 'Y' or 'N'
636632 size_t cnt;
637633 auto& cross_and_cnt = cmd_affix[command]; // == false, 0
638634 in >> cross_char >> cnt;
639 if (in.fail())
635 if (in.fail()) {
636 p.err = Parsing_Error_Code::ISTREAM_READING_ERROR;
640637 return;
638 }
641639 if (cross_char != 'Y' && cross_char != 'N') {
640 p.err = Err::AFX_CROSS_CHAR_INVALID;
642641 in.setstate(in.failbit);
643642 return;
644643 }
647646 }
648647 else if (dat->second.second) {
649648 dat->second.second--;
650 vec.emplace_back();
651 auto& elem = vec.back();
649 auto& elem = vec.emplace_back();
652650 elem.flag = f;
653651 elem.cross_product = dat->second.first;
654 in >> p(elem.stripping);
652 p.parse(in, elem.stripping);
655653 if (elem.stripping == "0")
656654 elem.stripping.clear();
657 in >> p(elem.appending, elem.cont_flags);
655 p.parse(in, elem.appending, elem.cont_flags);
658656 if (elem.appending == "0")
659657 elem.appending.clear();
660658 if (in.fail())
661659 return;
662 auto old_mask = in.exceptions();
663 in.exceptions(in.goodbit);
664 in >> p(elem.condition); // optional
660 p.parse(in, elem.condition); // optional
665661 if (in.fail() && in.eof() && !in.bad()) {
666662 elem.condition = ".";
663 p.err = {};
667664 reset_failbit_istream(in);
668665 }
669 in.exceptions(old_mask);
670666
671667 // in >> elem.morphological_fields;
672668 }
673669 else {
674 cerr << "Nuspell warning: extra entries of "
675 << command.substr(0, 3) << "\n";
670 p.err = Parsing_Error_Code::ARRAY_COMMAND_EXTRA_ENTRIES_WARNING;
676671 }
677672 }
678673
679674 } // namespace
680675
681 auto Aff_Data::parse_aff(istream& in) -> bool
676 auto Aff_Data::parse_aff(istream& in, ostream& err_msg) -> bool
682677 {
683678 auto prefixes = vector<Prefix>();
684679 auto suffixes = vector<Suffix>();
763758 auto command = string();
764759 auto line_num = size_t(0);
765760 auto ss = istringstream();
766 auto p = Aff_Line_IO_Manip(*this);
761 auto p = Aff_Line_Parser(*this);
767762 auto error_happened = false;
768763 // while parsing, the streams must have plain ascii locale without
769764 // any special number separator otherwise istream >> int might fail
778773 ss.clear();
779774 p.err = {};
780775 ss >> ws;
781 if (ss.eof() || ss.peek() == '#') {
776 if (ss.eof() || ss.peek() == '#')
782777 continue; // skip comment or empty lines
783 }
784778 ss >> command;
785779 to_upper_ascii(command);
786780 if (command == "SFX") {
792786 else if (command_strings.count(command)) {
793787 auto& str = *command_strings[command];
794788 if (str.empty())
795 ss >> p(str);
789 p.parse(ss, str);
796790 else
797 cerr << "Nuspell warning: "
798 "setting "
799 << command << " more than once, ignoring\n"
800 << "Nuspell warning in line " << line_num
801 << endl;
791 p.err = Parsing_Error_Code::
792 MULTIPLE_ENTRIES_WARNING;
802793 }
803794 else if (command_bools.count(command)) {
804795 *command_bools[command] = true;
812803 max_diff_factor = 5;
813804 }
814805 else if (command_flag.count(command)) {
815 ss >> p(*command_flag[command]);
806 p.parse(ss, *command_flag[command]);
816807 }
817808 else if (command == "MAP") {
818809 parse_vector_of_T(ss, p, command, cmd_with_vec_cnt,
824815 vec);
825816 }
826817 else if (command == "SET") {
827 if (encoding.empty()) {
828 ss >> p(encoding);
829 }
830 else {
831 cerr << "Nuspell warning: "
832 "setting "
833 << command << " more than once, ignoring\n"
834 << "Nuspell warning in line " << line_num
835 << endl;
836 }
818 if (encoding.empty())
819 p.parse(ss, encoding);
820 else
821 p.err = Parsing_Error_Code::
822 MULTIPLE_ENTRIES_WARNING;
837823 }
838824 else if (command == "FLAG") {
839 ss >> p(flag_type);
825 p.parse(ss, flag_type);
840826 }
841827 else if (command == "LANG") {
842 ss >> p(icu_locale);
828 p.parse(ss, icu_locale);
843829 }
844830 else if (command == "AF") {
845831 parse_vector_of_T(ss, p, command, cmd_with_vec_cnt,
864850 }
865851 else if (command == "COMPOUNDSYLLABLE") {
866852 ss >> compound_syllable_max;
867 ss >> p(compound_syllable_vowels);
853 p.parse(ss, compound_syllable_vowels);
868854 }
869855 else if (command == "WORDCHARS") {
870 ss >> wordchars;
856 p.parse(ss, wordchars);
871857 }
872858 if (ss.fail()) {
859 assert(static_cast<int>(p.err) > 0);
873860 error_happened = true;
874 cerr
875 << "Nuspell error: could not parse affix file line "
876 << line_num << ": " << line << endl;
877 report_parsing_error(p.err, line_num);
861 err_msg << "Nuspell error: could not parse affix file. "
862 << line_num << ": " << line << '\n'
863 << get_parsing_error_message(p.err) << endl;
878864 }
879865 else if (p.err != Parsing_Error_Code::NO_ERROR) {
880 cerr
881 << "Nuspell warning: while parsing affix file line "
882 << line_num << ": " << line << endl;
883 report_parsing_error(p.err, line_num);
866 assert(static_cast<int>(p.err) < 0);
867 err_msg << "Nuspell warning: while parsing affix file. "
868 << line_num << ": " << line << '\n'
869 << get_parsing_error_message(p.err) << endl;
884870 }
885871 }
886872 // default BREAK definition
909895 this->prefixes = std::move(prefixes);
910896 this->suffixes = std::move(suffixes);
911897
912 cerr.flush();
913898 return in.eof() && !error_happened; // true for success
914899 }
915900
916 auto Aff_Data::parse_dic(istream& in) -> bool
901 auto Aff_Data::parse_dic(istream& in, ostream& err_msg) -> bool
917902 {
918903 size_t line_number = 1;
919904 size_t approximate_size;
930915 in.imbue(locale::classic());
931916
932917 strip_utf8_bom(in);
933 if (in >> approximate_size)
934 words.reserve(approximate_size);
935 else
918 in >> approximate_size;
919 if (in.fail()) {
920 err_msg << "Nuspell error: while parsing first line of .dic "
921 "file. There is no number."
922 << endl;
936923 return false;
924 }
925 words.reserve(approximate_size);
937926 getline(in, line);
938927
939928 while (getline(in, line)) {
997986 flags_str == "None"))
998987 err = Parsing_Error_Code::
999988 NO_FLAGS_AFTER_SLASH_WARNING;
1000 report_parsing_error(err, line_number);
1001989 if (static_cast<int>(err) > 0) {
990 err_msg << "Nuspell error: while parsing "
991 ".dic file. "
992 << line_number << ": " << line << '\n'
993 << get_parsing_error_message(err)
994 << endl;
1002995 success = false;
1003996 continue;
997 }
998 else if (static_cast<int>(err) < 0) {
999 err_msg << "Nuspell warning: while parsing "
1000 ".dic file. "
1001 << line_number << ": " << line << '\n'
1002 << get_parsing_error_message(err)
1003 << endl;
10041004 }
10051005 }
10061006 if (empty(word))
158158 std::vector<Flag_Set> flag_aliases;
159159 std::string wordchars; // deprecated?
160160
161 auto parse_aff(std::istream& in) -> bool;
162 auto parse_dic(std::istream& in) -> bool;
163 auto parse_aff_dic(std::istream& aff, std::istream& dic)
161 auto parse_aff(std::istream& in, std::ostream& err_msg) -> bool;
162 auto parse_dic(std::istream& in, std::ostream& err_msg) -> bool;
163 auto parse_aff_dic(std::istream& aff, std::istream& dic,
164 std::ostream& err_msg)
164165 {
165 if (parse_aff(aff))
166 return parse_dic(dic);
166 if (parse_aff(aff, err_msg))
167 return parse_dic(dic, err_msg);
167168 return false;
168169 }
169170 };
1919 #include "utils.hxx"
2020
2121 #include <fstream>
22 #include <iostream>
22 #include <sstream>
2323 #include <stdexcept>
2424
2525 using namespace std;
4444 */
4545 auto Dictionary::load_aff_dic(std::istream& aff, std::istream& dic) -> void
4646 {
47 if (!parse_aff_dic(aff, dic))
48 throw Dictionary_Loading_Error("error parsing");
47 auto err_msg = ostringstream();
48 if (!parse_aff_dic(aff, dic, err_msg))
49 throw Dictionary_Loading_Error(std::move(err_msg).str());
50 }
51
52 static auto open_aff_dic(const filesystem::path& aff_path)
53 -> pair<ifstream, ifstream>
54 {
55 auto aff_file = ifstream(aff_path);
56 if (aff_file.fail()) {
57 auto err = "Aff file " + aff_path.string() + " not found.";
58 throw Dictionary_Loading_Error(err);
59 }
60 auto dic_path = aff_path;
61 dic_path.replace_extension(".dic");
62 auto dic_file = ifstream(dic_path);
63 if (dic_file.fail()) {
64 auto err = "Dic file " + dic_path.string() + " not found.";
65 throw Dictionary_Loading_Error(err);
66 }
67 return {move(aff_file), move(dic_file)};
4968 }
5069
5170 /**
5776 */
5877 auto Dictionary::load_aff_dic(const std::filesystem::path& aff_path) -> void
5978 {
60 auto aff_file = ifstream(aff_path);
61 if (aff_file.fail()) {
62 auto err = "Aff file " + aff_path.string() + " not found";
63 throw Dictionary_Loading_Error(err);
64 }
65 auto dic_path = aff_path;
66 dic_path.replace_extension(".dic");
67 auto dic_file = ifstream(dic_path);
68 if (dic_file.fail()) {
69 auto err = "Dic file " + dic_path.string() + " not found";
70 throw Dictionary_Loading_Error(err);
71 }
72 load_aff_dic(aff_file, dic_file);
79 auto [aff, dic] = open_aff_dic(aff_path);
80 load_aff_dic(aff, dic);
81 }
82
83 auto Dictionary::load_aff_dic_internal(const std::filesystem::path& aff_path,
84 std::ostream& err_msg) -> void
85 {
86 auto [aff, dic] = open_aff_dic(aff_path);
87 if (!parse_aff_dic(aff, dic, err_msg))
88 throw Dictionary_Loading_Error("Parsing error.");
7389 }
7490
7591 /**
88104 auto Dictionary::load_from_aff_dic(std::istream& aff, std::istream& dic)
89105 -> Dictionary
90106 {
91 return Dictionary(aff, dic);
107 auto d = Dictionary();
108 d.load_aff_dic(aff, dic);
109 return d;
92110 }
93111
94112 /**
4242 * @brief The only important public class
4343 */
4444 class NUSPELL_EXPORT Dictionary : private Suggester {
45 Dictionary(std::istream& aff, std::istream& dic);
45 [[deprecated]] Dictionary(std::istream& aff, std::istream& dic);
4646
4747 public:
4848 Dictionary();
4949 auto load_aff_dic(std::istream& aff, std::istream& dic) -> void;
5050 auto load_aff_dic(const std::filesystem::path& aff_path) -> void;
51
52 /**
53 * @internal
54 * @brief Do not use, only for Nuspell's CLI tool
55 */
56 auto load_aff_dic_internal(const std::filesystem::path& aff_path,
57 std::ostream& err_msg) -> void;
58
5159 [[deprecated]] auto static load_from_aff_dic(std::istream& aff,
5260 std::istream& dic)
5361 -> Dictionary;
348348 [](const fs::path& p) { return p.string(); });
349349 }
350350
351 auto search_dir_for_dicts(const string& dir_path,
352 vector<pair<string, string>>& dict_list) -> void
353 {
354 auto out = vector<fs::path>();
355 search_dir_for_dicts(dir_path, out);
356 transform(begin(out), end(out), back_inserter(dict_list),
357 [](const fs::path& p) {
351 static auto new_to_old_dict_list(vector<fs::path>& new_aff_paths,
352 vector<pair<string, string>>& dict_list)
353 -> void
354 {
355 transform(begin(new_aff_paths), end(new_aff_paths),
356 back_inserter(dict_list), [](const fs::path& p) {
358357 return pair{p.stem().string(),
359358 fs::path(p).replace_extension().string()};
360359 });
361360 }
362361
362 auto search_dir_for_dicts(const string& dir_path,
363 vector<pair<string, string>>& dict_list) -> void
364 {
365 auto new_dict_list = vector<fs::path>();
366 search_dir_for_dicts(dir_path, new_dict_list);
367 new_to_old_dict_list(new_dict_list, dict_list);
368 }
369
363370 auto search_dirs_for_dicts(const std::vector<string>& dir_paths,
364371 std::vector<std::pair<string, string>>& dict_list)
365372 -> void
366373 {
374 auto new_dict_list = vector<fs::path>();
367375 for (auto& p : dir_paths)
368 search_dir_for_dicts(p, dict_list);
376 search_dir_for_dicts(p, new_dict_list);
377 new_to_old_dict_list(new_dict_list, dict_list);
369378 }
370379
371380 auto search_default_dirs_for_dicts(
372381 std::vector<std::pair<std::string, std::string>>& dict_list) -> void
373382 {
374 auto dir_paths = vector<string>();
375 append_default_dir_paths(dir_paths);
376 search_dirs_for_dicts(dir_paths, dict_list);
383 auto new_dir_paths = vector<fs::path>();
384 auto new_dict_list = vector<fs::path>();
385 append_default_dir_paths(new_dir_paths);
386 search_dirs_for_dicts(new_dir_paths, new_dict_list);
387 new_to_old_dict_list(new_dict_list, dict_list);
377388 }
378389
379390 auto find_dictionary(
385396 [&](auto& e) { return e.first == dict_name; });
386397 }
387398
388 Dict_Finder_For_CLI_Tool::Dict_Finder_For_CLI_Tool()
389 {
390 }
399 Dict_Finder_For_CLI_Tool::Dict_Finder_For_CLI_Tool() {}
391400 auto Dict_Finder_For_CLI_Tool::get_dictionary_path(const std::string&) const
392401 -> std::string
393402 {
877877 class Prefix_Multiset {
878878 public:
879879 using Value_Type = T;
880 using Key_Type = std::remove_reference_t<decltype(
881 std::declval<Key_Extr>()(std::declval<T>()))>;
880 using Key_Type =
881 std::remove_reference_t<decltype(std::declval<Key_Extr>()(
882 std::declval<T>()))>;
882883 using Char_Type = typename Key_Type::value_type;
883884 using Traits = typename Key_Type::traits_type;
884885 using Vector_Type = std::vector<T>;
885886 using Iterator = typename Vector_Type::const_iterator;
886887
887888 private:
888 struct Ebo_Key_Extr : public Key_Extr {
889 };
890 struct Ebo_Key_Transf : public Key_Transform {
891 };
889 struct Ebo_Key_Extr : public Key_Extr {};
890 struct Ebo_Key_Transf : public Key_Transform {};
892891 struct Ebo : public Ebo_Key_Extr, Ebo_Key_Transf {
893892 Vector_Type table;
894893 } ebo;
12591258 }
12601259 auto begin() const { return table.data().begin(); }
12611260 auto end() const { return table.data().end(); }
1261 auto size() const { return table.data().size(); }
12621262
12631263 auto has_continuation_flags() const
12641264 {
13101310 }
13111311 auto begin() const { return table.data().begin(); }
13121312 auto end() const { return table.data().end(); }
1313 auto size() const { return table.data().size(); }
13131314
13141315 auto has_continuation_flags() const
13151316 {
219219 auto Suggester::suggest_low(std::string& word, List_Strings& out) const
220220 -> High_Quality_Sugs
221221 {
222 auto ret = ALL_LOW_QUALITY_SUGS;
223222 auto old_size = out.size();
224223 uppercase_suggest(word, out);
225224 rep_suggest(word, out);
226225 map_suggest(word, out);
227 ret = High_Quality_Sugs(old_size != out.size());
226 auto high_quality_sugs =
227 old_size != out.size() ||
228
229 // If the word is already correct, set high_quality_sugs as true,
230 // which then disables the expensive ngram sugs and makes the
231 // benchmarks happy. In Hunspell, its map_suggest() adds the word as
232 // suggestion if it's already correct and achieves the same.
233 (!empty(similarities) &&
234 check_word(word, FORBID_BAD_FORCEUCASE, SKIP_HIDDEN_HOMONYM));
228235 adjacent_swap_suggest(word, out);
229236 distant_swap_suggest(word, out);
230237 keyboard_suggest(word, out);
234241 bad_char_suggest(word, out);
235242 doubled_two_chars_suggest(word, out);
236243 two_words_suggest(word, out);
237 return ret;
244 return High_Quality_Sugs(high_quality_sugs);
238245 }
239246
240247 auto Suggester::add_sug_if_correct(std::string& word, List_Strings& out) const
377384
378385 auto Suggester::max_attempts_for_long_alogs(string_view word) const -> size_t
379386 {
380 auto ret = 10'000'000 / size(word);
387 unsigned long long p = size(prefixes) / 20;
388 unsigned long long s = size(suffixes) / 20;
389 auto cost = 1 + p + s + p * s;
390 if (!complex_prefixes)
391 cost += s * s + 2 * p * s * s;
392 else
393 cost += p * p + 2 * s * p * p;
394 cost = clamp(cost, 250'000ull, 25'000'000'000ull);
395 auto ret = 25'000'000'000 / cost;
381396 if (compound_flag || compound_begin_flag || compound_last_flag ||
382397 compound_middle_flag)
383398 ret /= size(word);
324324 {
325325 if (cnv)
326326 ucnv_close(cnv);
327 }
328
329 Encoding_Converter::Encoding_Converter(const Encoding_Converter& other)
330 {
331 auto err = UErrorCode();
332 cnv = ucnv_safeClone(other.cnv, nullptr, nullptr, &err);
333 }
334
335 auto Encoding_Converter::operator=(const Encoding_Converter& other)
336 -> Encoding_Converter&
337 {
338 this->~Encoding_Converter();
339 auto err = UErrorCode();
340 cnv = ucnv_safeClone(other.cnv, nullptr, nullptr, &err);
341 return *this;
342327 }
343328
344329 auto Encoding_Converter::to_utf8(string_view in, string& out) -> bool
117117 {
118118 }
119119 ~Encoding_Converter();
120 Encoding_Converter(const Encoding_Converter& other);
120 Encoding_Converter(const Encoding_Converter& other) = delete;
121121 Encoding_Converter(Encoding_Converter&& other) noexcept
122122 {
123123 cnv = other.cnv;
124124 cnv = nullptr;
125125 }
126 auto operator=(const Encoding_Converter& other) -> Encoding_Converter&;
126 auto operator=(const Encoding_Converter& other)
127 -> Encoding_Converter& = delete;
127128 auto operator=(Encoding_Converter&& other) noexcept
128129 -> Encoding_Converter&
129130 {
00 add_executable(nuspell-exe nuspell.cxx)
11 set_target_properties(nuspell-exe PROPERTIES RUNTIME_OUTPUT_NAME nuspell)
22 target_compile_definitions(nuspell-exe PRIVATE
3 PROJECT_VERSION=\"${PROJECT_VERSION}\")
4 target_link_libraries(nuspell-exe Nuspell::nuspell)
3 PROJECT_VERSION=\"${PROJECT_VERSION}\")
4 target_link_libraries(nuspell-exe PRIVATE Nuspell::nuspell)
5 if (MSVC)
6 target_include_directories(nuspell-exe PRIVATE ${GETOPT_INCLUDE_DIR})
7 target_link_libraries(nuspell-exe PRIVATE ${GETOPT_LIBRARY})
8 endif()
59 if (BUILD_SHARED_LIBS AND WIN32)
6 # This should be PRE_LINK (or PRE_BUILD), so Vcpkg's POST_BUILD
7 # step (see VCPKG_APPLOCAL_DEPS) that copies dll can pick up nuspell.dll
8 # inside the folder ../tools and copy its transitive dependencies.
9 add_custom_command(TARGET nuspell-exe PRE_LINK
10 COMMAND ${CMAKE_COMMAND} -E copy_if_different
11 $<TARGET_FILE:nuspell> $<TARGET_FILE_DIR:nuspell-exe>)
10 # This should be PRE_LINK (or PRE_BUILD), so Vcpkg's POST_BUILD
11 # step (see VCPKG_APPLOCAL_DEPS) that copies dll can pick up nuspell.dll
12 # inside the folder ../tools and copy its transitive dependencies.
13 add_custom_command(TARGET nuspell-exe PRE_LINK
14 COMMAND ${CMAKE_COMMAND} -E copy_if_different
15 $<TARGET_FILE:nuspell> $<TARGET_FILE_DIR:nuspell-exe>)
1216 endif()
1317 if (NOT subproject)
14 install(TARGETS nuspell-exe DESTINATION ${CMAKE_INSTALL_BINDIR})
18 install(TARGETS nuspell-exe DESTINATION ${CMAKE_INSTALL_BINDIR})
1519 endif()
2626 #include <unicode/brkiter.h>
2727 #include <unicode/ucnv.h>
2828
29 #if __has_include(<getopt.h>)
30 #define HAVE_GETOPT_H 1
3129 #include <getopt.h>
32 #endif
30
3331 #if __has_include(<unistd.h>)
3432 #include <unistd.h> // defines _POSIX_VERSION
3533 #endif
335333 auto dictionary = string();
336334 auto input_enc = string();
337335 auto output_enc = string();
338 const char* const* files_first = nullptr;
339 const char* const* files_last = nullptr;
340336
341337 if (argc > 0 && argv[0])
342338 program_name = argv[0];
343339
344340 ios_base::sync_with_stdio(false);
345341
346 #if HAVE_GETOPT_H
347342 auto optstring = "d:D";
348343 option longopts[] = {
349344 {"help", no_argument, &mode_int, Mode::HELP},
382377 return EXIT_FAILURE;
383378 }
384379 }
385 files_first = &argv[optind];
386 files_last = &argv[argc];
387 #endif
388380 auto mode = static_cast<Mode>(mode_int);
389381 if (mode == Mode::VERSION) {
390382 print_version();
436428 if (output_enc.empty())
437429 output_enc = enc_str;
438430 #elif _WIN32
439 if (_isatty(_fileno(stdin)))
431 if (optind == argc && _isatty(_fileno(stdin)))
440432 input_enc = "cp" + to_string(GetConsoleCP());
441433 else if (input_enc.empty())
442434 input_enc = "UTF-8";
448440 auto loc_str_sv = string_view(loc_str);
449441 clog << "INFO: Locale LC_CTYPE=" << loc_str_sv
450442 << ", Input encoding=" << input_enc
451 << ", Output encoding=" << output_enc << '\n';
443 << ", Output encoding=" << output_enc << endl;
452444
453445 if (dictionary.empty()) {
454446 auto denv = getenv("DICTIONARY");
461453 dictionary = loc_str_sv.substr(0, idx);
462454 }
463455 if (dictionary.empty()) {
464 cerr << "No dictionary provided and can not infer from OS "
465 "locale\n";
456 clog << "ERROR: No dictionary provided and can not infer from "
457 "OS locale\n";
466458 return EXIT_FAILURE;
467459 }
468460 auto filename = f.get_dictionary_path(dictionary);
469461 if (filename.empty()) {
470 cerr << "Dictionary " << dictionary << " not found\n";
462 clog << "ERROR: Dictionary " << dictionary << " not found\n";
471463 return EXIT_FAILURE;
472464 }
473 clog << "INFO: Pointed dictionary " << filename.string() << '\n';
465 clog << "INFO: Pointed dictionary " << filename.string() << endl;
474466 auto dic = Dictionary();
475467 try {
476 dic.load_aff_dic(filename);
468 dic.load_aff_dic_internal(filename, clog);
477469 }
478470 catch (const Dictionary_Loading_Error& e) {
479 cerr << e.what() << '\n';
471 clog << "ERROR: " << e.what() << '\n';
480472 return EXIT_FAILURE;
481473 }
482474 // ICU reports all types of errors, logic errors and runtime errors
497489 auto in_ucnv =
498490 icu::LocalUConverterPointer(ucnv_open(inp_enc_cstr, &uerr));
499491 if (U_FAILURE(uerr)) {
500 cerr << "ERROR: Invalid encoding " << input_enc << ".\n";
492 clog << "ERROR: Invalid encoding " << input_enc << ".\n";
501493 return EXIT_FAILURE;
502494 }
503495
504 auto out_enc_cstr = output_enc.c_str();
505 if (output_enc.empty()) {
506 out_enc_cstr = nullptr;
507 clog << "WARNING: using default ICU encoding converter for IO"
508 << endl;
509 }
510 auto out_ucnv =
511 icu::LocalUConverterPointer(ucnv_open(out_enc_cstr, &uerr));
512 if (U_FAILURE(uerr)) {
513 cerr << "ERROR: Invalid encoding " << output_enc << ".\n";
514 return EXIT_FAILURE;
515 }
516
517 if (files_first == files_last) {
518 process_text(dic, cin, in_ucnv.getAlias(), cout,
519 out_ucnv.getAlias(), uerr);
496 auto out_ucnv_smart_ptr = icu::LocalUConverterPointer();
497 auto out_ucnv = in_ucnv.getAlias(); // often output_enc is same as input
498 if (output_enc != input_enc) {
499 auto output_enc_cstr = output_enc.c_str();
500 if (output_enc.empty()) {
501 output_enc_cstr = nullptr;
502 clog << "WARNING: using default ICU encoding converter "
503 "for IO"
504 << endl;
505 }
506 out_ucnv = ucnv_open(output_enc_cstr, &uerr);
507 out_ucnv_smart_ptr.adoptInstead(out_ucnv);
508 if (U_FAILURE(uerr)) {
509 clog << "ERROR: Invalid encoding " << output_enc
510 << ".\n";
511 return EXIT_FAILURE;
512 }
513 }
514
515 if (optind == argc) {
516 process_text(dic, cin, in_ucnv.getAlias(), cout, out_ucnv,
517 uerr);
520518 }
521519 else {
522 for (auto it = files_first; it != files_last; ++it) {
523 auto file_name = *it;
520 for (; optind != argc; ++optind) {
521 auto file_name = argv[optind];
524522 ifstream in(file_name);
525523 if (!in.is_open()) {
526 cerr << "Can't open " << file_name << '\n';
524 clog << "ERROR: Can't open " << file_name
525 << '\n';
527526 return EXIT_FAILURE;
528527 }
529528 process_text(dic, in, in_ucnv.getAlias(), cout,
530 out_ucnv.getAlias(), uerr);
531 }
532 }
533 }
529 out_ucnv, uerr);
530 }
531 }
532 }
00 add_executable(unit_test unit_test.cxx catch_main.cxx)
1 target_link_libraries(unit_test nuspell Catch2::Catch2)
1 target_link_libraries(unit_test PRIVATE nuspell Catch2::Catch2)
22 if (MSVC)
3 target_compile_options(unit_test PRIVATE "/utf-8")
4 # Consider doing this for all the other targets by setting this flag
5 # globally for MSVC. ATM we use unicode string literals only in the tests.
3 target_compile_options(unit_test PRIVATE "/utf-8")
4 # Consider doing this for all the other targets by setting this flag
5 # globally for MSVC. ATM we use unicode string literals only here.
66 endif()
77
88 add_executable(legacy_test legacy_test.cxx)
9 target_link_libraries(legacy_test nuspell)
9 target_link_libraries(legacy_test PRIVATE nuspell)
1010
1111 add_executable(verify verify.cxx)
12 target_link_libraries(verify nuspell hunspell)
12 target_link_libraries(verify PRIVATE nuspell hunspell)
13 if (MSVC)
14 target_include_directories(verify PRIVATE ${GETOPT_INCLUDE_DIR})
15 target_link_libraries(verify PRIVATE ${GETOPT_LIBRARY})
16 endif()
1317
1418 if (BUILD_SHARED_LIBS AND WIN32)
15 add_custom_command(TARGET verify PRE_LINK
16 COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:nuspell>
17 $<TARGET_FILE:hunspell> $<TARGET_FILE_DIR:unit_test>)
19 add_custom_command(TARGET verify PRE_LINK
20 COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:nuspell>
21 $<TARGET_FILE:hunspell> $<TARGET_FILE_DIR:unit_test>)
1822 endif()
1923
2024 add_test(NAME unit_test COMMAND unit_test)
2125
2226 file(GLOB v1tests
23 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/v1cmdline
24 "v1cmdline/*.dic"
25 "v1cmdline/*.sug")
27 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/v1cmdline
28 "v1cmdline/*.dic"
29 "v1cmdline/*.sug")
2630 foreach(t ${v1tests})
27 add_test(
28 NAME ${t}
29 COMMAND legacy_test ${CMAKE_CURRENT_SOURCE_DIR}/v1cmdline/${t})
31 add_test(
32 NAME ${t}
33 COMMAND legacy_test ${CMAKE_CURRENT_SOURCE_DIR}/v1cmdline/${t})
3034 endforeach()
3135
3236 set_tests_properties(
0 # source: http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
1 # released under the Creative Commons Attribution-Share-Alike License 3.0
2 # http://creativecommons.org/licenses/by-sa/3.0/
3
4 abandonned abandoned
5 aberation aberration
6 abilties abilities
7 abilty ability
8 abondon abandon
9 abondoned abandoned
10 abondoning abandoning
11 abondons abandons
12 aborigene aborigine
13 abortificant abortifacient
14 abreviated abbreviated
15 abreviation abbreviation
16 abritrary arbitrary
17 absense absence
18 absolutly absolutely
19 absorbsion absorption
20 absorbtion absorption
21 abundacies abundances
22 abundancies abundances
23 abundunt abundant
24 abutts abuts
25 acadamy academy
26 acadmic academic
27 accademic academic
28 accademy academy
29 acccused accused
30 accelleration acceleration
31 accension accession, ascension
32 acceptence acceptance
33 acceptible acceptable
34 accessable accessible
35 accidentaly accidentally
36 accidently accidentally
37 acclimitization acclimatization
38 acommodate accommodate
39 accomadate accommodate
40 accomadated accommodated
41 accomadates accommodates
42 accomadating accommodating
43 accomadation accommodation
44 accomadations accommodations
45 accomdate accommodate
46 accomodate accommodate
47 accomodated accommodated
48 accomodates accommodates
49 accomodating accommodating
50 accomodation accommodation
51 accomodations accommodations
52 accompanyed accompanied
53 accordeon accordion
54 accordian accordion
55 accoring according
56 accoustic acoustic
57 accquainted acquainted
58 accross across
59 accussed accused
60 acedemic academic
61 acheive achieve
62 acheived achieved
63 acheivement achievement
64 acheivements achievements
65 acheives achieves
66 acheiving achieving
67 acheivment achievement
68 acheivments achievements
69 achievment achievement
70 achievments achievements
71 achive achieve, archive
72 achived achieved, archived
73 achivement achievement
74 achivements achievements
75 acknowldeged acknowledged
76 acknowledgeing acknowledging
77 ackward awkward, backward
78 acomplish accomplish
79 acomplished accomplished
80 acomplishment accomplishment
81 acomplishments accomplishments
82 acording according
83 acordingly accordingly
84 acquaintence acquaintance
85 acquaintences acquaintances
86 acquiantence acquaintance
87 acquiantences acquaintances
88 acquited acquitted
89 activites activities
90 activly actively
91 actualy actually
92 acuracy accuracy
93 acused accused
94 acustom accustom
95 acustommed accustomed
96 adavanced advanced
97 adbandon abandon
98 additinally additionally
99 additionaly additionally
100 addmission admission
101 addopt adopt
102 addopted adopted
103 addoptive adoptive
104 addres address, adders
105 addresable addressable
106 addresed addressed
107 addresing addressing
108 addressess addresses
109 addtion addition
110 addtional additional
111 adecuate adequate
112 adhearing adhering
113 adherance adherence
114 admendment amendment
115 admininistrative administrative
116 adminstered administered
117 adminstrate administrate
118 adminstration administration
119 adminstrative administrative
120 adminstrator administrator
121 admissability admissibility
122 admissable admissible
123 admited admitted
124 admitedly admittedly
125 adn and
126 adolecent adolescent
127 adquire acquire
128 adquired acquired
129 adquires acquires
130 adquiring acquiring
131 adres address
132 adresable addressable
133 adresing addressing
134 adress address
135 adressable addressable
136 adressed addressed
137 adressing addressing, dressing
138 adventrous adventurous
139 advertisment advertisement
140 advertisments advertisements
141 advesary adversary
142 adviced advised
143 aeriel aerial
144 aeriels aerials
145 afair affair
146 afficianados aficionados
147 afficionado aficionado
148 afficionados aficionados
149 affilate affiliate
150 affilliate affiliate
151 affort afford, effort
152 aforememtioned aforementioned
153 againnst against
154 agains against
155 agaisnt against
156 aganist against
157 aggaravates aggravates
158 aggreed agreed
159 aggreement agreement
160 aggregious egregious
161 aggresive aggressive
162 agian again
163 agianst against
164 agin again
165 agina again, angina
166 aginst against
167 agravate aggravate
168 agre agree
169 agred agreed
170 agreeement agreement
171 agreemnt agreement
172 agregate aggregate
173 agregates aggregates
174 agreing agreeing
175 agression aggression
176 agressive aggressive
177 agressively aggressively
178 agressor aggressor
179 agricuture agriculture
180 agrieved aggrieved
181 ahev have
182 ahppen happen
183 ahve have
184 aicraft aircraft
185 aiport airport
186 airbourne airborne
187 aircaft aircraft
188 aircrafts aircraft
189 airporta airports
190 airrcraft aircraft
191 aisian asian
192 albiet albeit
193 alchohol alcohol
194 alchoholic alcoholic
195 alchol alcohol
196 alcholic alcoholic
197 alcohal alcohol
198 alcoholical alcoholic
199 aledge allege
200 aledged alleged
201 aledges alleges
202 alege allege
203 aleged alleged
204 alegience allegiance
205 algebraical algebraic
206 algorhitms algorithms
207 algoritm algorithm
208 algoritms algorithms
209 alientating alienating
210 alledge allege
211 alledged alleged
212 alledgedly allegedly
213 alledges alleges
214 allegedely allegedly
215 allegedy allegedly
216 allegely allegedly
217 allegence allegiance
218 allegience allegiance
219 allign align
220 alligned aligned
221 alliviate alleviate
222 allopone allophone
223 allopones allophones
224 allready already
225 allthough although
226 alltime all-time
227 alltogether altogether
228 almsot almost
229 alochol alcohol
230 alomst almost
231 alot a lot, allot
232 alotted allotted
233 alowed allowed
234 alowing allowing
235 alreayd already
236 alse else
237 alsot also
238 alternitives alternatives
239 altho although
240 althought although
241 altough although
242 alusion allusion, illusion
243 alwasy always
244 alwyas always
245 amalgomated amalgamated
246 amatuer amateur
247 amature armature, amateur
248 amendmant amendment
249 amerliorate ameliorate
250 amke make
251 amking making
252 ammend amend
253 ammended amended
254 ammendment amendment
255 ammendments amendments
256 ammount amount
257 ammused amused
258 amoung among
259 amoungst amongst
260 amung among
261 analagous analogous
262 analitic analytic
263 analogeous analogous
264 anarchim anarchism
265 anarchistm anarchism
266 anbd and
267 ancestory ancestry
268 ancilliary ancillary
269 androgenous androgynous
270 androgeny androgyny
271 anihilation annihilation
272 aniversary anniversary
273 annoint anoint
274 annointed anointed
275 annointing anointing
276 annoints anoints
277 annouced announced
278 annualy annually
279 annuled annulled
280 anohter another
281 anomolies anomalies
282 anomolous anomalous
283 anomoly anomaly
284 anonimity anonymity
285 anounced announced
286 ansalisation nasalisation
287 ansalization nasalization
288 ansestors ancestors
289 antartic antarctic
290 anthromorphization anthropomorphization
291 anual annual, anal
292 anulled annulled
293 anwsered answered
294 anyhwere anywhere
295 anyother any other
296 anytying anything
297 aparent apparent
298 aparment apartment
299 apenines apennines, Apennines
300 aplication application
301 aplied applied
302 apolegetics apologetics
303 apon upon, apron
304 apparant apparent
305 apparantly apparently
306 appart apart
307 appartment apartment
308 appartments apartments
309 appealling appealing, appalling
310 appeareance appearance
311 appearence appearance
312 appearences appearances
313 appenines apennines, Apennines
314 apperance appearance
315 apperances appearances
316 applicaiton application
317 applicaitons applications
318 appologies apologies
319 appology apology
320 apprearance appearance
321 apprieciate appreciate
322 approachs approaches
323 appropiate appropriate
324 appropraite appropriate
325 appropropiate appropriate
326 approproximate approximate
327 approxamately approximately
328 approxiately approximately
329 approximitely approximately
330 aprehensive apprehensive
331 apropriate appropriate
332 aproximate approximate
333 aproximately approximately
334 aquaintance acquaintance
335 aquainted acquainted
336 aquiantance acquaintance
337 aquire acquire
338 aquired acquired
339 aquiring acquiring
340 aquisition acquisition
341 aquitted acquitted
342 aranged arranged
343 arangement arrangement
344 arbitarily arbitrarily
345 arbitary arbitrary
346 archaelogists archaeologists
347 archaelogy archaeology
348 archaoelogy archeology, archaeology
349 archaology archeology, archaeology
350 archeaologist archeologist, archaeologist
351 archeaologists archeologists, archaeologists
352 archetect architect
353 archetects architects
354 archetectural architectural
355 archetecturally architecturally
356 archetecture architecture
357 archiac archaic
358 archictect architect
359 archimedian archimedean
360 architechturally architecturally
361 architechture architecture
362 architechtures architectures
363 architectual architectural
364 archtype archetype
365 archtypes archetypes
366 aready already
367 areodynamics aerodynamics
368 argubly arguably
369 arguement argument
370 arguements arguments
371 arised arose
372 arival arrival
373 armamant armament
374 armistace armistice
375 aroud around
376 arrangment arrangement
377 arrangments arrangements
378 arround around
379 artical article
380 artice article
381 articel article
382 artifical artificial
383 artifically artificially
384 artillary artillery
385 arund around
386 asetic ascetic
387 asign assign
388 aslo also
389 asociated associated
390 asorbed absorbed
391 asphyxation asphyxiation
392 assasin assassin
393 assasinate assassinate
394 assasinated assassinated
395 assasinates assassinates
396 assasination assassination
397 assasinations assassinations
398 assasined assassinated
399 assasins assassins
400 assassintation assassination
401 assemple assemble
402 assertation assertion
403 asside aside
404 assisnate assassinate
405 assit assist
406 assitant assistant
407 assocation association
408 assoicate associate
409 assoicated associated
410 assoicates associates
411 assosication assassination
412 asssassans assassins
413 assualt assault
414 assualted assaulted
415 assymetric asymmetric
416 assymetrical asymmetrical
417 asteriod asteroid
418 asthetic aesthetic
419 asthetical aesthetical
420 asthetically aesthetically
421 asume assume
422 aswell as well
423 atain attain
424 atempting attempting
425 atheistical atheistic
426 athenean athenian
427 atheneans athenians
428 athiesm atheism
429 athiest atheist
430 atorney attorney
431 atribute attribute
432 atributed attributed
433 atributes attributes
434 attaindre attainder, attained
435 attemp attempt
436 attemped attempted
437 attemt attempt
438 attemted attempted
439 attemting attempting
440 attemts attempts
441 attendence attendance
442 attendent attendant
443 attendents attendants
444 attened attended
445 attension attention
446 attitide attitude
447 attributred attributed
448 attrocities atrocities
449 audeince audience
450 auromated automated
451 austrailia Australia
452 austrailian Australian
453 auther author
454 authobiographic autobiographic
455 authobiography autobiography
456 authorative authoritative
457 authorites authorities
458 authorithy authority
459 authoritiers authorities
460 authoritive authoritative
461 authrorities authorities
462 autochtonous autochthonous
463 autoctonous autochthonous
464 automaticly automatically
465 automibile automobile
466 automonomous autonomous
467 autor author
468 autority authority
469 auxilary auxiliary
470 auxillaries auxiliaries
471 auxillary auxiliary
472 auxilliaries auxiliaries
473 auxilliary auxiliary
474 availablity availability
475 availaible available
476 availble available
477 availiable available
478 availible available
479 avalable available
480 avalance avalanche
481 avaliable available
482 avation aviation
483 avengence a vengeance
484 averageed averaged
485 avilable available
486 awared awarded
487 awya away
488 baceause because
489 backgorund background
490 backrounds backgrounds
491 bakc back
492 banannas bananas
493 bandwith bandwidth
494 bankrupcy bankruptcy
495 banruptcy bankruptcy
496 baout about, bout
497 basicaly basically
498 basicly basically
499 bcak back
500 beachead beachhead
501 beacuse because
502 beastiality bestiality
503 beatiful beautiful
504 beaurocracy bureaucracy
505 beaurocratic bureaucratic
506 beautyfull beautiful
507 becamae became
508 becasue because
509 beccause because
510 becomeing becoming
511 becomming becoming
512 becouse because
513 becuase because
514 bedore before
515 befoer before
516 beggin begin, begging
517 begginer beginner
518 begginers beginners
519 beggining beginning
520 begginings beginnings
521 beggins begins
522 begining beginning
523 beginnig beginning
524 behavour behavior, behaviour
525 beleagured beleaguered
526 beleif belief
527 beleive believe
528 beleived believed
529 beleives believes
530 beleiving believing
531 beligum belgium
532 belive believe
533 belived believed
534 belives believes, beliefs
535 belligerant belligerent
536 bellweather bellwether
537 bemusemnt bemusement
538 beneficary beneficiary
539 beng being
540 benificial beneficial
541 benifit benefit
542 benifits benefits
543 bergamont bergamot
544 Bernouilli Bernoulli
545 beseige besiege
546 beseiged besieged
547 beseiging besieging
548 betwen between
549 beween between
550 bewteen between
551 bilateraly bilaterally
552 billingualism bilingualism
553 binominal binomial
554 bizzare bizarre
555 blaim blame
556 blaimed blamed
557 blessure blessing
558 Blitzkreig Blitzkrieg
559 boaut bout, boat, about
560 bodydbuilder bodybuilder
561 bombardement bombardment
562 bombarment bombardment
563 bondary boundary
564 Bonnano Bonanno
565 borke broke
566 boundry boundary
567 bouyancy buoyancy
568 bouyant buoyant
569 boyant buoyant
570 Brasillian Brazilian
571 breakthough breakthrough
572 breakthroughts breakthroughs
573 breif brief
574 breifly briefly
575 brethen brethren
576 bretheren brethren
577 briliant brilliant
578 brillant brilliant
579 brimestone brimstone
580 Britian Britain
581 Brittish British
582 broacasted broadcast
583 broadacasting broadcasting
584 broady broadly
585 Buddah Buddha
586 buisness business
587 buisnessman businessman
588 buoancy buoyancy
589 buring burying, burning, burin, during
590 burried buried
591 busineses business, businesses
592 busness business
593 bussiness business
594 cacuses caucuses
595 cahracters characters
596 calaber caliber
597 calander calendar, calender, colander
598 calculs calculus
599 calenders calendars
600 caligraphy calligraphy
601 caluclate calculate
602 caluclated calculated
603 caluculate calculate
604 caluculated calculated
605 calulate calculate
606 calulated calculated
607 Cambrige Cambridge
608 camoflage camouflage
609 campain campaign
610 campains campaigns
611 candadate candidate
612 candiate candidate
613 candidiate candidate
614 cannister canister
615 cannisters canisters
616 cannnot cannot
617 cannonical canonical
618 cannotation connotation
619 cannotations connotations
620 cant cannot, can not, can't
621 caost coast
622 caperbility capability
623 Capetown Cape Town
624 capible capable
625 captial capital
626 captued captured
627 capturd captured
628 carachter character
629 caracterized characterized
630 carcas carcass, Caracas
631 carefull careful
632 careing caring
633 carismatic charismatic
634 Carmalite Carmelite
635 carmel caramel, carmel-by-the-sea
636 carniverous carnivorous
637 carreer career
638 carrers careers
639 Carribbean Caribbean
640 Carribean Caribbean
641 cartdridge cartridge
642 Carthagian Carthaginian
643 carthographer cartographer
644 cartilege cartilage
645 cartilidge cartilage
646 cartrige cartridge
647 casette cassette
648 casion caisson
649 cassawory cassowary
650 cassowarry cassowary
651 casulaties casualties
652 casulaty casualty
653 catagories categories
654 catagorized categorized
655 catagory category
656 catergorize categorize
657 catergorized categorized
658 Cataline Catiline, Catalina
659 cathlic catholic
660 catholocism catholicism
661 catterpilar caterpillar
662 catterpilars caterpillars
663 cattleship battleship
664 causalities casualties
665 Ceasar Caesar
666 Celcius Celsius
667 cellpading cellpadding
668 cementary cemetery
669 cemetarey cemetery
670 cemetaries cemeteries
671 cemetary cemetery
672 cencus census
673 censur censor, censure
674 cententenial centennial
675 centruies centuries
676 centruy century
677 ceratin certain, keratin
678 cerimonial ceremonial
679 cerimonies ceremonies
680 cerimonious ceremonious
681 cerimony ceremony
682 ceromony ceremony
683 certainity certainty
684 certian certain
685 cervial cervical, servile, serval
686 chalenging challenging
687 challange challenge
688 challanged challenged
689 challege challenge
690 Champange Champagne
691 changable changeable
692 charachter character
693 charactor character
694 charachters characters
695 charactersistic characteristic
696 charactors characters
697 charasmatic charismatic
698 charaterized characterized
699 chariman chairman
700 charistics characteristics
701 chasr chaser, chase
702 cheif chief
703 chemcial chemical
704 chemcially chemically
705 chemestry chemistry
706 chemicaly chemically
707 childbird childbirth
708 childen children
709 choosen chosen
710 chracter character
711 chuch church
712 churchs churches
713 Cincinatti Cincinnati
714 Cincinnatti Cincinnati
715 circulaton circulation
716 circumsicion circumcision
717 circut circuit
718 ciricuit circuit
719 ciriculum curriculum
720 civillian civilian
721 claer clear
722 claerer clearer
723 claerly clearly
724 claimes claims
725 clas class
726 clasic classic
727 clasical classical
728 clasically classically
729 cleareance clearance
730 clera clear, sclera
731 clincial clinical
732 clinicaly clinically
733 cmo com
734 cmoputer computer
735 co-incided coincided
736 coctail cocktail
737 coform conform
738 cognizent cognizant
739 coincedentally coincidentally
740 colaborations collaborations
741 colateral collateral
742 colelctive collective
743 collaberative collaborative
744 collecton collection
745 collegue colleague
746 collegues colleagues
747 collonade colonnade
748 collonies colonies
749 collony colony
750 collosal colossal
751 colonizators colonizers
752 comander commander, commandeer
753 comando commando
754 comandos commandos
755 comany company
756 comapany company
757 comback comeback
758 combanations combinations
759 combinatins combinations
760 combusion combustion
761 comdemnation condemnation
762 comemmorates commemorates
763 comemoretion commemoration
764 comision commission
765 comisioned commissioned
766 comisioner commissioner
767 comisioning commissioning
768 comisions commissions
769 comission commission
770 comissioned commissioned
771 comissioner commissioner
772 comissioning commissioning
773 comissions commissions
774 comited committed
775 comiting committing
776 comitted committed
777 comittee committee
778 comitting committing
779 commandoes commandos
780 commedic comedic
781 commemerative commemorative
782 commemmorate commemorate
783 commemmorating commemorating
784 commerical commercial
785 commerically commercially
786 commericial commercial
787 commericially commercially
788 commerorative commemorative
789 comming coming
790 comminication communication
791 commision commission
792 commisioned commissioned
793 commisioner commissioner
794 commisioning commissioning
795 commisions commissions
796 commited committed
797 commitee committee
798 commiting committing
799 committe committee
800 committment commitment
801 committments commitments
802 commmemorated commemorated
803 commongly commonly
804 commonweath commonwealth
805 commuications communications
806 commuinications communications
807 communciation communication
808 communiation communication
809 communites communities
810 compability compatibility
811 comparision comparison
812 comparisions comparisons
813 comparitive comparative
814 comparitively comparatively
815 compatabilities compatibilities
816 compatability compatibility
817 compatable compatible
818 compatablities compatibilities
819 compatablity compatibility
820 compatiable compatible
821 compatiblities compatibilities
822 compatiblity compatibility
823 compeitions competitions
824 compensantion compensation
825 competance competence
826 competant competent
827 competative competitive
828 competion competition, completion
829 competitiion competition
830 competive competitive
831 competiveness competitiveness
832 comphrehensive comprehensive
833 compitent competent
834 completedthe completed the
835 completelyl completely
836 completetion completion
837 complier compiler
838 componant component
839 comprable comparable
840 comprimise compromise
841 compulsary compulsory
842 compulsery compulsory
843 computarized computerized
844 concensus consensus
845 concider consider
846 concidered considered
847 concidering considering
848 conciders considers
849 concieted conceited
850 concieved conceived
851 concious conscious
852 conciously consciously
853 conciousness consciousness
854 condamned condemned
855 condemmed condemned
856 condidtion condition
857 condidtions conditions
858 conditionsof conditions of
859 conected connected
860 conection connection
861 conesencus consensus
862 confidental confidential
863 confidentally confidentially
864 confids confides
865 configureable configurable
866 confortable comfortable
867 congradulations congratulations
868 congresional congressional
869 conived connived
870 conjecutre conjecture
871 conjuction conjunction
872 Conneticut Connecticut
873 conotations connotations
874 conquerd conquered
875 conquerer conqueror
876 conquerers conquerors
877 conqured conquered
878 conscent consent
879 consciouness consciousness
880 consdider consider
881 consdidered considered
882 consdiered considered
883 consectutive consecutive
884 consenquently consequently
885 consentrate concentrate
886 consentrated concentrated
887 consentrates concentrates
888 consept concept
889 consequentually consequently
890 consequeseces consequences
891 consern concern
892 conserned concerned
893 conserning concerning
894 conservitive conservative
895 consiciousness consciousness
896 consicousness consciousness
897 considerd considered
898 consideres considered
899 consious conscious
900 consistant consistent
901 consistantly consistently
902 consituencies constituencies
903 consituency constituency
904 consituted constituted
905 consitution constitution
906 consitutional constitutional
907 consolodate consolidate
908 consolodated consolidated
909 consonent consonant
910 consonents consonants
911 consorcium consortium
912 conspiracys conspiracies
913 conspiriator conspirator
914 constaints constraints
915 constanly constantly
916 constarnation consternation
917 constatn constant
918 constinually continually
919 constituant constituent
920 constituants constituents
921 constituion constitution
922 constituional constitutional
923 consttruction construction
924 constuction construction
925 consulant consultant
926 consumate consummate
927 consumated consummated
928 contaiminate contaminate
929 containes contains
930 contamporaries contemporaries
931 contamporary contemporary
932 contempoary contemporary
933 contemporaneus contemporaneous
934 contempory contemporary
935 contendor contender
936 contined continued
937 continous continuous
938 continously continuously
939 continueing continuing
940 contravercial controversial
941 contraversy controversy
942 contributer contributor
943 contributers contributors
944 contritutions contributions
945 controled controlled
946 controling controlling
947 controll control
948 controlls controls
949 controvercial controversial
950 controvercy controversy
951 controveries controversies
952 controversal controversial
953 controversey controversy
954 controvertial controversial
955 controvery controversy
956 contruction construction
957 conveinent convenient
958 convenant covenant
959 convential conventional
960 convertables convertibles
961 convertion conversion
962 conveyer conveyor
963 conviced convinced
964 convienient convenient
965 coordiantion coordination
966 coorperation cooperation, corporation
967 coorperations corporations
968 copmetitors competitors
969 coputer computer
970 copywrite copyright
971 coridal cordial
972 cornmitted committed
973 corosion corrosion
974 corparate corporate
975 corperations corporations
976 correcters correctors
977 correponding corresponding
978 correposding corresponding
979 correspondant correspondent
980 correspondants correspondents
981 corridoors corridors
982 corrispond correspond
983 corrispondant correspondent
984 corrispondants correspondents
985 corrisponded corresponded
986 corrisponding corresponding
987 corrisponds corresponds
988 costitution constitution
989 coucil council
990 coudl could, cloud
991 councellor councillor, counselor, councilor
992 councellors councillors, counselors, councilors
993 counries countries
994 countains contains
995 countires countries
996 coururier courier, couturier
997 coverted converted, covered, coveted
998 cpoy coy, copy
999 creaeted created
1000 creedence credence
1001 critereon criterion
1002 criterias criteria
1003 criticists critics
1004 critising criticising, criticizing
1005 critisising criticising
1006 critisism criticism
1007 critisisms criticisms
1008 critisize criticise, criticize
1009 critisized criticised, criticized
1010 critisizes criticises, criticizes
1011 critisizing criticising, criticizing
1012 critized criticized
1013 critizing criticizing
1014 crockodiles crocodiles
1015 crowm crown
1016 crtical critical
1017 crticised criticised
1018 crucifiction crucifixion
1019 crusies cruises
1020 crystalisation crystallisation
1021 culiminating culminating
1022 cumulatative cumulative
1023 curch church
1024 curcuit circuit
1025 currenly currently
1026 curriculem curriculum
1027 cxan cyan
1028 cyclinder cylinder
1029 dael deal, dial, dahl
1030 dalmation dalmatian
1031 damenor demeanor
1032 Dardenelles Dardanelles
1033 dacquiri daiquiri
1034 debateable debatable
1035 decendant descendant
1036 decendants descendants
1037 decendent descendant
1038 decendents descendants
1039 decideable decidable
1040 decidely decidedly
1041 decieved deceived
1042 decison decision
1043 decomissioned decommissioned
1044 decomposit decompose
1045 decomposited decomposed
1046 decompositing decomposing
1047 decomposits decomposes
1048 decress decrees
1049 decribe describe
1050 decribed described
1051 decribes describes
1052 decribing describing
1053 dectect detect
1054 defendent defendant
1055 defendents defendants
1056 deffensively defensively
1057 deffine define
1058 deffined defined
1059 definance defiance
1060 definate definite
1061 definately definitely
1062 definatly definitely
1063 definetly definitely
1064 definining defining
1065 definit definite
1066 definitly definitely
1067 definiton definition
1068 defintion definition
1069 degrate degrade
1070 delagates delegates
1071 delapidated dilapidated
1072 delerious delirious
1073 delevopment development
1074 deliberatly deliberately
1075 delusionally delusively
1076 demenor demeanor
1077 demographical demographic
1078 demolision demolition
1079 demorcracy democracy
1080 demostration demonstration
1081 denegrating denigrating
1082 densly densely
1083 deparment department
1084 deparments departments
1085 deparmental departmental
1086 dependance dependence
1087 dependancy dependency
1088 dependant dependent
1089 deram dram, dream
1090 deriviated derived
1091 derivitive derivative
1092 derogitory derogatory
1093 descendands descendants
1094 descibed described
1095 descision decision
1096 descisions decisions
1097 descriibes describes
1098 descripters descriptors
1099 descripton description
1100 desctruction destruction
1101 descuss discuss
1102 desgined designed
1103 deside decide
1104 desigining designing
1105 desinations destinations
1106 desintegrated disintegrated
1107 desintegration disintegration
1108 desireable desirable
1109 desitned destined
1110 desktiop desktop
1111 desorder disorder
1112 desoriented disoriented
1113 desparate desperate, disparate
1114 despatched dispatched
1115 despict depict
1116 despiration desperation
1117 dessicated desiccated
1118 dessigned designed
1119 destablized destabilized
1120 destory destroy
1121 detailled detailed
1122 detatched detached
1123 deteoriated deteriorated
1124 deteriate deteriorate
1125 deterioriating deteriorating
1126 determinining determining
1127 detremental detrimental
1128 devasted devastated
1129 develope develop
1130 developement development
1131 developped developed
1132 develpment development
1133 devels delves
1134 devestated devastated
1135 devestating devastating
1136 devide divide
1137 devided divided
1138 devistating devastating
1139 devolopement development
1140 diablical diabolical
1141 diamons diamonds
1142 diaster disaster
1143 dichtomy dichotomy
1144 diconnects disconnects
1145 dicover discover
1146 dicovered discovered
1147 dicovering discovering
1148 dicovers discovers
1149 dicovery discovery
1150 dicussed discussed
1151 didnt didn't
1152 diea idea, die
1153 dieing dying, dyeing
1154 dieties deities
1155 diety deity
1156 diferent different
1157 diferrent different
1158 differentiatiations differentiations
1159 differnt different
1160 difficulity difficulty
1161 diffrent different
1162 dificulties difficulties
1163 dificulty difficulty
1164 dimenions dimensions
1165 dimention dimension
1166 dimentional dimensional
1167 dimentions dimensions
1168 dimesnional dimensional
1169 diminuitive diminutive
1170 diosese diocese
1171 diphtong diphthong
1172 diphtongs diphthongs
1173 diplomancy diplomacy
1174 dipthong diphthong
1175 dipthongs diphthongs
1176 dirived derived
1177 disagreeed disagreed
1178 disapeared disappeared
1179 disapointing disappointing
1180 disappearred disappeared
1181 disaproval disapproval
1182 disasterous disastrous
1183 disatisfaction dissatisfaction
1184 disatisfied dissatisfied
1185 disatrous disastrous
1186 discontentment discontent
1187 discribe describe
1188 discribed described
1189 discribes describes
1190 discribing describing
1191 disctinction distinction
1192 disctinctive distinctive
1193 disemination dissemination
1194 disenchanged disenchanted
1195 disiplined disciplined
1196 disobediance disobedience
1197 disobediant disobedient
1198 disolved dissolved
1199 disover discover
1200 dispair despair
1201 disparingly disparagingly
1202 dispence dispense
1203 dispenced dispensed
1204 dispencing dispensing
1205 dispicable despicable
1206 dispite despite
1207 dispostion disposition
1208 disproportiate disproportionate
1209 disputandem disputandum
1210 disricts districts
1211 dissagreement disagreement
1212 dissapear disappear
1213 dissapearance disappearance
1214 dissapeared disappeared
1215 dissapearing disappearing
1216 dissapears disappears
1217 dissappear disappear
1218 dissappears disappears
1219 dissappointed disappointed
1220 dissarray disarray
1221 dissobediance disobedience
1222 dissobediant disobedient
1223 dissobedience disobedience
1224 dissobedient disobedient
1225 distiction distinction
1226 distingish distinguish
1227 distingished distinguished
1228 distingishes distinguishes
1229 distingishing distinguishing
1230 distingquished distinguished
1231 distrubution distribution
1232 distruction destruction
1233 distructive destructive
1234 ditributed distributed
1235 diversed diverse, diverged
1236 divice device
1237 divison division
1238 divisons divisions
1239 doccument document
1240 doccumented documented
1241 doccuments documents
1242 docrines doctrines
1243 doctines doctrines
1244 documenatry documentary
1245 doens does
1246 doesnt doesn't
1247 doign doing
1248 dominaton domination
1249 dominent dominant
1250 dominiant dominant
1251 donig doing
1252 dosen't doesn't
1253 doub doubt, daub
1254 doulbe double
1255 dowloads downloads
1256 dramtic dramatic
1257 draughtman draughtsman
1258 Dravadian Dravidian
1259 dreasm dreams
1260 driectly directly
1261 drnik drink
1262 druming drumming
1263 drummless drumless
1264 dupicate duplicate
1265 durig during
1266 durring during
1267 duting during
1268 dyas dryas
1269 eahc each
1270 ealier earlier
1271 earlies earliest
1272 earnt earned
1273 ecclectic eclectic
1274 eceonomy economy
1275 ecidious deciduous
1276 eclispe eclipse
1277 ecomonic economic
1278 ect etc
1279 eearly early
1280 efel evil
1281 effeciency efficiency
1282 effecient efficient
1283 effeciently efficiently
1284 efficency efficiency
1285 efficent efficient
1286 efficently efficiently
1287 efford effort, afford
1288 effords efforts, affords
1289 effulence effluence
1290 eigth eighth, eight
1291 eiter either
1292 elction election
1293 electic eclectic, electric
1294 electon election, electron
1295 electrial electrical
1296 electricly electrically
1297 electricty electricity
1298 elementay elementary
1299 eleminated eliminated
1300 eleminating eliminating
1301 eles eels
1302 eletricity electricity
1303 elicided elicited
1304 eligable eligible
1305 elimentary elementary
1306 ellected elected
1307 elphant elephant
1308 embarass embarrass
1309 embarassed embarrassed
1310 embarassing embarrassing
1311 embarassment embarrassment
1312 embargos embargoes
1313 embarras embarrass
1314 embarrased embarrassed
1315 embarrasing embarrassing
1316 embarrasment embarrassment
1317 embezelled embezzled
1318 emblamatic emblematic
1319 eminate emanate
1320 eminated emanated
1321 emision emission
1322 emited emitted
1323 emiting emitting
1324 emition emission, emotion
1325 emmediately immediately
1326 emmigrated emigrated
1327 emminent eminent, imminent
1328 emminently eminently
1329 emmisaries emissaries
1330 emmisarries emissaries
1331 emmisarry emissary
1332 emmisary emissary
1333 emmision emission
1334 emmisions emissions
1335 emmited emitted
1336 emmiting emitting
1337 emmitted emitted
1338 emmitting emitting
1339 emnity enmity
1340 emperical empirical
1341 emphaised emphasised
1342 emphsis emphasis
1343 emphysyma emphysema
1344 empirial empirical, imperial
1345 emprisoned imprisoned
1346 enameld enameled
1347 enchancement enhancement
1348 encouraing encouraging
1349 encryptiion encryption
1350 encylopedia encyclopedia
1351 endevors endeavors
1352 endevour endeavour
1353 endig ending
1354 endolithes endoliths
1355 enduce induce
1356 ened need
1357 enflamed inflamed
1358 enforceing enforcing
1359 engagment engagement
1360 engeneer engineer
1361 engeneering engineering
1362 engieneer engineer
1363 engieneers engineers
1364 enlargment enlargement
1365 enlargments enlargements
1366 Enlish English, enlist
1367 enourmous enormous
1368 enourmously enormously
1369 ensconsed ensconced
1370 entaglements entanglements
1371 enteratinment entertainment
1372 entitity entity
1373 entitlied entitled
1374 entrepeneur entrepreneur
1375 entrepeneurs entrepreneurs
1376 enviorment environment
1377 enviormental environmental
1378 enviormentally environmentally
1379 enviorments environments
1380 enviornment environment
1381 enviornmental environmental
1382 enviornmentalist environmentalist
1383 enviornmentally environmentally
1384 enviornments environments
1385 enviroment environment
1386 enviromental environmental
1387 enviromentalist environmentalist
1388 enviromentally environmentally
1389 enviroments environments
1390 envolutionary evolutionary
1391 envrionments environments
1392 enxt next
1393 epidsodes episodes
1394 epsiode episode
1395 equialent equivalent
1396 equilibium equilibrium
1397 equilibrum equilibrium
1398 equiped equipped
1399 equippment equipment
1400 equitorial equatorial
1401 equivelant equivalent
1402 equivelent equivalent
1403 equivilant equivalent
1404 equivilent equivalent
1405 equivlalent equivalent
1406 erally orally, really
1407 eratic erratic
1408 eratically erratically
1409 eraticly erratically
1410 erested arrested, erected
1411 errupted erupted
1412 esential essential
1413 esitmated estimated
1414 esle else
1415 especialy especially
1416 essencial essential
1417 essense essence
1418 essentail essential
1419 essentialy essentially
1420 essentual essential
1421 essesital essential
1422 estabishes establishes
1423 establising establishing
1424 ethnocentricm ethnocentrism
1425 ethose those, ethos
1426 Europian European
1427 Europians Europeans
1428 Eurpean European
1429 Eurpoean European
1430 evenhtually eventually
1431 eventally eventually
1432 eventially eventually
1433 eventualy eventually
1434 everthing everything
1435 everytime every time
1436 everyting everything
1437 eveyr every
1438 evidentally evidently
1439 exagerate exaggerate
1440 exagerated exaggerated
1441 exagerates exaggerates
1442 exagerating exaggerating
1443 exagerrate exaggerate
1444 exagerrated exaggerated
1445 exagerrates exaggerates
1446 exagerrating exaggerating
1447 examinated examined
1448 exampt exempt
1449 exapansion expansion
1450 excact exact
1451 excange exchange
1452 excecute execute
1453 excecuted executed
1454 excecutes executes
1455 excecuting executing
1456 excecution execution
1457 excedded exceeded
1458 excelent excellent
1459 excell excel
1460 excellance excellence
1461 excellant excellent
1462 excells excels
1463 excercise exercise
1464 exchanching exchanging
1465 excisted existed
1466 exculsivly exclusively
1467 execising exercising
1468 exection execution
1469 exectued executed
1470 exeedingly exceedingly
1471 exelent excellent
1472 exellent excellent
1473 exemple example
1474 exept except
1475 exeptional exceptional
1476 exerbate exacerbate
1477 exerbated exacerbated
1478 exerciese exercises
1479 exerpt excerpt
1480 exerpts excerpts
1481 exersize exercise
1482 exerternal external
1483 exhalted exalted
1484 exhibtion exhibition
1485 exibition exhibition
1486 exibitions exhibitions
1487 exicting exciting
1488 exinct extinct
1489 existance existence
1490 existant existent
1491 existince existence
1492 exliled exiled
1493 exludes excludes
1494 exmaple example
1495 exonorate exonerate
1496 exoskelaton exoskeleton
1497 expalin explain
1498 expeced expected
1499 expecially especially
1500 expeditonary expeditionary
1501 expeiments experiments
1502 expell expel
1503 expells expels
1504 experiance experience
1505 experianced experienced
1506 expiditions expeditions
1507 expierence experience
1508 explaination explanation
1509 explaning explaining
1510 explictly explicitly
1511 exploititive exploitative
1512 explotation exploitation
1513 expropiated expropriated
1514 expropiation expropriation
1515 exressed expressed
1516 extemely extremely
1517 extention extension
1518 extentions extensions
1519 extered exerted
1520 extermist extremist
1521 extint extinct, extant
1522 extradiction extradition
1523 extraterrestial extraterrestrial
1524 extraterrestials extraterrestrials
1525 extravagent extravagant
1526 extrememly extremely
1527 extremeophile extremophile
1528 extremly extremely
1529 extrordinarily extraordinarily
1530 extrordinary extraordinary
1531 eyar year, eyas
1532 eyars years, eyas
1533 eyasr years, eyas
1534 faciliate facilitate
1535 faciliated facilitated
1536 faciliates facilitates
1537 facilites facilities
1538 facillitate facilitate
1539 facinated fascinated
1540 facist fascist
1541 familes families
1542 familliar familiar
1543 famoust famous
1544 fanatism fanaticism
1545 Farenheit Fahrenheit
1546 fatc fact
1547 faught fought
1548 favoutrable favourable
1549 feasable feasible
1550 Febuary February
1551 fedreally federally
1552 feromone pheromone
1553 fertily fertility
1554 fianite finite
1555 fianlly finally
1556 ficticious fictitious
1557 fictious fictitious
1558 fidn find
1559 fiel feel, field, file, phial
1560 fiels feels, fields, files, phials
1561 fiercly fiercely
1562 fightings fighting
1563 filiament filament
1564 fimilies families
1565 finacial financial
1566 finaly finally
1567 financialy financially
1568 firends friends
1569 firts flirts, first
1570 fisionable fissionable
1571 flamable flammable
1572 flawess flawless
1573 fleed fled, freed
1574 Flemmish Flemish
1575 florescent fluorescent
1576 flourescent fluorescent
1577 fluorish flourish
1578 follwoing following
1579 folowing following
1580 fomed formed
1581 fomr from, form
1582 fonetic phonetic
1583 fontrier fontier
1584 foootball football
1585 forbad forbade
1586 forbiden forbidden
1587 foreward foreword
1588 forfiet forfeit
1589 forhead forehead
1590 foriegn foreign
1591 Formalhaut Fomalhaut
1592 formallize formalize
1593 formallized formalized
1594 formaly formally
1595 formelly formerly
1596 formidible formidable
1597 formost foremost
1598 forsaw foresaw
1599 forseeable foreseeable
1600 fortelling foretelling
1601 forunner forerunner
1602 foucs focus
1603 foudn found
1604 fougth fought
1605 foundaries foundries
1606 foundary foundry
1607 Foundland Newfoundland
1608 fourties forties
1609 fourty forty
1610 fouth fourth
1611 foward forward
1612 fucntion function
1613 fucntioning functioning
1614 Fransiscan Franciscan
1615 Fransiscans Franciscans
1616 freind friend
1617 freindly friendly
1618 frequentily frequently
1619 frome from
1620 fromed formed
1621 froniter frontier
1622 fufill fulfill
1623 fufilled fulfilled
1624 fulfiled fulfilled
1625 fundametal fundamental
1626 fundametals fundamentals
1627 funguses fungi
1628 funtion function
1629 furuther further
1630 futher further
1631 futhermore furthermore
1632 futhroc futhark, futhorc
1633 gae game, Gael, gale
1634 galatic galactic
1635 Galations Galatians
1636 gallaxies galaxies
1637 galvinized galvanized
1638 Gameboy Game Boy
1639 ganerate generate
1640 ganes games
1641 ganster gangster
1642 garantee guarantee
1643 garanteed guaranteed
1644 garantees guarantees
1645 garnison garrison
1646 gauarana guaraná
1647 gaurantee guarantee
1648 gauranteed guaranteed
1649 gaurantees guarantees
1650 gaurd guard, gourd
1651 gaurentee guarantee
1652 gaurenteed guaranteed
1653 gaurentees guarantees
1654 geneological genealogical
1655 geneologies genealogies
1656 geneology genealogy
1657 generaly generally
1658 generatting generating
1659 genialia genitalia
1660 geographicial geographical
1661 geometrician geometer
1662 geometricians geometers
1663 gerat great
1664 Ghandi Gandhi
1665 glight flight
1666 gnawwed gnawed
1667 godess goddess
1668 godesses goddesses
1669 Godounov Godunov
1670 gogin going, Gauguin
1671 goign going
1672 gonig going
1673 Gothenberg Gothenburg
1674 Gottleib Gottlieb
1675 gouvener governor
1676 govement government
1677 govenment government
1678 govenrment government
1679 goverance governance
1680 goverment government
1681 govermental governmental
1682 governer governor
1683 governmnet government
1684 govorment government
1685 govormental governmental
1686 govornment government
1687 gracefull graceful
1688 graet great
1689 grafitti graffiti
1690 gramatically grammatically
1691 grammaticaly grammatically
1692 grammer grammar
1693 grat great
1694 gratuitious gratuitous
1695 greatful grateful
1696 greatfully gratefully
1697 greif grief
1698 gridles griddles
1699 gropu group
1700 grwo grow
1701 Guaduloupe Guadalupe, Guadeloupe
1702 Guadulupe Guadalupe, Guadeloupe
1703 guage gauge
1704 guarentee guarantee
1705 guarenteed guaranteed
1706 guarentees guarantees
1707 Guatamala Guatemala
1708 Guatamalan Guatemalan
1709 guerilla guerrilla
1710 guerillas guerrillas
1711 guerrila guerrilla
1712 guerrilas guerrillas
1713 guidence guidance
1714 Guilia Giulia
1715 Guilio Giulio
1716 Guiness Guinness
1717 Guiseppe Giuseppe
1718 gunanine guanine
1719 gurantee guarantee
1720 guranteed guaranteed
1721 gurantees guarantees
1722 guttaral guttural
1723 gutteral guttural
1724 habaeus habeas
1725 habeus habeas
1726 Habsbourg Habsburg
1727 haemorrage haemorrhage
1728 haev have, heave
1729 Hallowean Hallowe'en, Halloween
1730 halp help
1731 hapen happen
1732 hapened happened
1733 hapening happening
1734 happend happened
1735 happended happened
1736 happenned happened
1737 harased harassed
1738 harases harasses
1739 harasment harassment
1740 harasments harassments
1741 harassement harassment
1742 harras harass
1743 harrased harassed
1744 harrases harasses
1745 harrasing harassing
1746 harrasment harassment
1747 harrasments harassments
1748 harrassed harassed
1749 harrasses harassed
1750 harrassing harassing
1751 harrassment harassment
1752 harrassments harassments
1753 hasnt hasn't
1754 haviest heaviest
1755 headquater headquarter
1756 headquarer headquarter
1757 headquatered headquartered
1758 headquaters headquarters
1759 healthercare healthcare
1760 heared heard
1761 heathy healthy
1762 Heidelburg Heidelberg
1763 heigher higher
1764 heirarchy hierarchy
1765 heiroglyphics hieroglyphics
1766 helment helmet
1767 helpfull helpful
1768 helpped helped
1769 hemmorhage hemorrhage
1770 herad heard, Hera
1771 heridity heredity
1772 heroe hero
1773 heros heroes
1774 hertzs hertz
1775 hesistant hesitant
1776 heterogenous heterogeneous
1777 hieght height
1778 hierachical hierarchical
1779 hierachies hierarchies
1780 hierachy hierarchy
1781 hierarcical hierarchical
1782 hierarcy hierarchy
1783 hieroglph hieroglyph
1784 hieroglphs hieroglyphs
1785 higer higher
1786 higest highest
1787 higway highway
1788 hillarious hilarious
1789 himselv himself
1790 hinderance hindrance
1791 hinderence hindrance
1792 hindrence hindrance
1793 hipopotamus hippopotamus
1794 hismelf himself
1795 histocompatability histocompatibility
1796 historicians historians
1797 hitsingles hit singles
1798 holliday holiday
1799 homestate home state
1800 homogeneize homogenize
1801 homogeneized homogenized
1802 honory honorary
1803 horrifing horrifying
1804 hosited hoisted
1805 hospitible hospitable
1806 hounour honour
1807 housr hours, house
1808 howver however
1809 hsitorians historians
1810 hstory history
1811 hten then, hen, the
1812 htere there, here
1813 htey they
1814 htikn think
1815 hting thing
1816 htink think
1817 htis this
1818 humer humor, humour
1819 humerous humorous, humerus
1820 huminoid humanoid
1821 humoural humoral
1822 humurous humorous
1823 husban husband
1824 hvae have
1825 hvaing having
1826 hvea have, heave
1827 hwihc which
1828 hwile while
1829 hwole whole
1830 hydogen hydrogen
1831 hydropile hydrophile
1832 hydropilic hydrophilic
1833 hydropobe hydrophobe
1834 hydropobic hydrophobic
1835 hygeine hygiene
1836 hypocracy hypocrisy
1837 hypocrasy hypocrisy
1838 hypocricy hypocrisy
1839 hypocrit hypocrite
1840 hypocrits hypocrites
1841 iconclastic iconoclastic
1842 idaeidae idea
1843 idaes ideas
1844 idealogies ideologies
1845 idealogy ideology
1846 identicial identical
1847 identifers identifiers
1848 ideosyncratic idiosyncratic
1849 idesa ideas, ides
1850 idiosyncracy idiosyncrasy
1851 Ihaca Ithaca
1852 illegimacy illegitimacy
1853 illegitmate illegitimate
1854 illess illness
1855 illiegal illegal
1856 illution illusion
1857 ilness illness
1858 ilogical illogical
1859 imagenary imaginary
1860 imagin imagine
1861 imaginery imaginary, imagery
1862 imanent eminent, imminent
1863 imcomplete incomplete
1864 imediately immediately
1865 imense immense
1866 imigrant emigrant, immigrant
1867 imigrated emigrated, immigrated
1868 imigration emigration, immigration
1869 iminent eminent, imminent, immanent
1870 immediatley immediately
1871 immediatly immediately
1872 immidately immediately
1873 immidiately immediately
1874 immitate imitate
1875 immitated imitated
1876 immitating imitating
1877 immitator imitator
1878 immunosupressant immunosuppressant
1879 impecabbly impeccably
1880 impedence impedance
1881 implamenting implementing
1882 impliment implement
1883 implimented implemented
1884 imploys employs
1885 importamt important
1886 imprioned imprisoned
1887 imprisonned imprisoned
1888 improvision improvisation
1889 improvments improvements
1890 inablility inability
1891 inaccessable inaccessible
1892 inadiquate inadequate
1893 inadquate inadequate
1894 inadvertant inadvertent
1895 inadvertantly inadvertently
1896 inagurated inaugurated
1897 inaguration inauguration
1898 inappropiate inappropriate
1899 inaugures inaugurates
1900 inbalance imbalance
1901 inbalanced imbalanced
1902 inbetween between
1903 incarcirated incarcerated
1904 incidentially incidentally
1905 incidently incidentally
1906 inclreased increased
1907 includ include
1908 includng including
1909 incompatabilities incompatibilities
1910 incompatability incompatibility
1911 incompatable incompatible
1912 incompatablities incompatibilities
1913 incompatablity incompatibility
1914 incompatiblities incompatibilities
1915 incompatiblity incompatibility
1916 incompetance incompetence
1917 incompetant incompetent
1918 incomptable incompatible
1919 incomptetent incompetent
1920 inconsistant inconsistent
1921 incorperation incorporation
1922 incorportaed incorporated
1923 incorprates incorporates
1924 incorruptable incorruptible
1925 incramentally incrementally
1926 increadible incredible
1927 incredable incredible
1928 inctroduce introduce
1929 inctroduced introduced
1930 incuding including
1931 incunabla incunabula
1932 indefinately indefinitely
1933 indefineable undefinable
1934 indefinitly indefinitely
1935 indentical identical
1936 indepedantly independently
1937 indepedence independence
1938 independance independence
1939 independant independent
1940 independantly independently
1941 independece independence
1942 independendet independent
1943 indictement indictment
1944 indigineous indigenous
1945 indipendence independence
1946 indipendent independent
1947 indipendently independently
1948 indespensible indispensable
1949 indespensable indispensable
1950 indispensible indispensable
1951 indisputible indisputable
1952 indisputibly indisputably
1953 indite indict
1954 individualy individually
1955 indpendent independent
1956 indpendently independently
1957 indulgue indulge
1958 indutrial industrial
1959 indviduals individuals
1960 inefficienty inefficiently
1961 inevatible inevitable
1962 inevitible inevitable
1963 inevititably inevitably
1964 infalability infallibility
1965 infallable infallible
1966 infectuous infectious
1967 infered inferred
1968 infilitrate infiltrate
1969 infilitrated infiltrated
1970 infilitration infiltration
1971 infinit infinite
1972 inflamation inflammation
1973 influencial influential
1974 influented influenced
1975 infomation information
1976 informtion information
1977 infrantryman infantryman
1978 infrigement infringement
1979 ingenius ingenious
1980 ingreediants ingredients
1981 inhabitans inhabitants
1982 inherantly inherently
1983 inheritage heritage, inheritance
1984 inheritence inheritance
1985 inital initial
1986 initally initially
1987 initation initiation
1988 initiaitive initiative
1989 inlcuding including
1990 inmigrant immigrant
1991 inmigrants immigrants
1992 innoculated inoculated
1993 inocence innocence
1994 inofficial unofficial
1995 inot into
1996 inpeach impeach
1997 inpolite impolite
1998 inprisonment imprisonment
1999 inproving improving
2000 insectiverous insectivorous
2001 insensative insensitive
2002 inseperable inseparable
2003 insistance insistence
2004 insitution institution
2005 insitutions institutions
2006 inspite in spite, inspire
2007 instade instead
2008 instatance instance
2009 institue institute
2010 instuction instruction
2011 instuments instruments
2012 instutionalized institutionalized
2013 instutions intuitions
2014 insurence insurance
2015 intelectual intellectual
2016 inteligence intelligence
2017 inteligent intelligent
2018 intenational international
2019 intepretation interpretation
2020 intepretator interpretor
2021 interational international
2022 interbread interbreed, interbred
2023 interchangable interchangeable
2024 interchangably interchangeably
2025 intercontinetal intercontinental
2026 intered interred, interned
2027 interelated interrelated
2028 interferance interference
2029 interfereing interfering
2030 intergrated integrated
2031 intergration integration
2032 interm interim
2033 internation international
2034 interpet interpret
2035 interrim interim
2036 interrugum interregnum
2037 intertaining entertaining
2038 interupt interrupt
2039 intervines intervenes
2040 intevene intervene
2041 intial initial
2042 intially initially
2043 intrduced introduced
2044 intrest interest
2045 introdued introduced
2046 intruduced introduced
2047 intrusted entrusted
2048 intutive intuitive
2049 intutively intuitively
2050 inudstry industry
2051 inumerable enumerable, innumerable
2052 inventer inventor
2053 invertibrates invertebrates
2054 investingate investigate
2055 involvment involvement
2056 irelevent irrelevant
2057 iresistable irresistible
2058 iresistably irresistibly
2059 iresistible irresistible
2060 iresistibly irresistibly
2061 iritable irritable
2062 iritated irritated
2063 ironicly ironically
2064 irregardless regardless
2065 irrelevent irrelevant
2066 irreplacable irreplaceable
2067 irresistable irresistible
2068 irresistably irresistibly
2069 isnt isn't
2070 Israelies Israelis
2071 issueing issuing
2072 itnroduced introduced
2073 iunior junior
2074 iwll will
2075 iwth with
2076 Japanes Japanese
2077 jaques jacques
2078 jeapardy jeopardy
2079 jewllery jewellery
2080 Johanine Johannine
2081 Jospeh Joseph
2082 jouney journey
2083 journied journeyed
2084 journies journeys
2085 jstu just
2086 jsut just
2087 Juadaism Judaism
2088 Juadism Judaism
2089 judical judicial
2090 judisuary judiciary
2091 juducial judicial
2092 juristiction jurisdiction
2093 juristictions jurisdictions
2094 kindergarden kindergarten
2095 klenex kleenex
2096 knifes knives
2097 knive knife
2098 knowlege knowledge
2099 knowlegeable knowledgeable
2100 knwo know
2101 knwos knows
2102 konw know
2103 konws knows
2104 kwno know
2105 labatory lavatory, laboratory
2106 labled labelled, labeled
2107 labratory laboratory
2108 laguage language
2109 laguages languages
2110 larg large
2111 largst largest
2112 larrry larry
2113 lastr last
2114 lattitude latitude
2115 launchs launch
2116 launhed launched
2117 lavae larvae
2118 layed laid
2119 lazyness laziness
2120 leaded led
2121 leage league
2122 leanr lean, learn, leaner
2123 leathal lethal
2124 lefted left
2125 legitamate legitimate
2126 legitmate legitimate
2127 leibnitz leibniz
2128 lenght length
2129 leran learn
2130 lerans learns
2131 lieuenant lieutenant
2132 leutenant lieutenant
2133 levetate levitate
2134 levetated levitated
2135 levetates levitates
2136 levetating levitating
2137 levle level
2138 liasion liaison
2139 liason liaison
2140 liasons liaisons
2141 libary library
2142 libell libel
2143 libguistic linguistic
2144 libguistics linguistics
2145 libitarianisn libertarianism
2146 lible libel, liable
2147 lieing lying
2148 liek like
2149 liekd liked
2150 liesure leisure
2151 lieved lived
2152 liftime lifetime
2153 lightyear light year
2154 lightyears light years
2155 likelyhood likelihood
2156 linnaena linnaean
2157 lippizaner lipizzaner
2158 liquify liquefy
2159 liscense license, licence
2160 lisence license, licence
2161 lisense license, licence
2162 listners listeners
2163 litature literature
2164 literture literature
2165 littel little
2166 litterally literally
2167 liuke like
2168 livley lively
2169 lmits limits
2170 loev love
2171 lonelyness loneliness
2172 longitudonal longitudinal
2173 lonley lonely
2174 lonly lonely, only
2175 loosing losing
2176 lotharingen lothringen
2177 lsat last
2178 lukid likud
2179 lveo love
2180 lvoe love
2181 Lybia Libya
2182 mackeral mackerel
2183 magasine magazine
2184 magincian magician
2185 magnificient magnificent
2186 magolia magnolia
2187 mailny mainly
2188 maintainance maintenance
2189 maintainence maintenance
2190 maintance maintenance
2191 maintenence maintenance
2192 maintinaing maintaining
2193 maintioned mentioned
2194 majoroty majority
2195 maked marked, made
2196 makse makes
2197 Malcom Malcolm
2198 maltesian Maltese
2199 mamal mammal
2200 mamalian mammalian
2201 managable manageable, manageably
2202 managment management
2203 manisfestations manifestations
2204 manoeuverability maneuverability
2205 manouver maneuver, manoeuvre
2206 manouverability maneuverability, manoeuvrability, manoeuverability
2207 manouverable maneuverable, manoeuvrable
2208 manouvers maneuvers, manoeuvres
2209 mantained maintained
2210 manuever maneuver, manoeuvre
2211 manuevers maneuvers, manoeuvres
2212 manufacturedd manufactured
2213 manufature manufacture
2214 manufatured manufactured
2215 manufaturing manufacturing
2216 manuver maneuver
2217 mariage marriage
2218 marjority majority
2219 markes marks
2220 marketting marketing
2221 marmelade marmalade
2222 marrage marriage
2223 marraige marriage
2224 marrtyred martyred
2225 marryied married
2226 Massachussets Massachusetts
2227 Massachussetts Massachusetts
2228 massmedia mass media
2229 masterbation masturbation
2230 mataphysical metaphysical
2231 materalists materialist
2232 mathamatics mathematics
2233 mathematican mathematician
2234 mathematicas mathematics
2235 matheticians mathematicians
2236 mathmatically mathematically
2237 mathmatician mathematician
2238 mathmaticians mathematicians
2239 mccarthyst mccarthyist
2240 mchanics mechanics
2241 meaninng meaning
2242 mear wear, mere, mare
2243 mechandise merchandise
2244 medacine medicine
2245 medeival medieval
2246 medevial medieval
2247 mediciney mediciny
2248 medievel medieval
2249 mediterainnean mediterranean
2250 Mediteranean Mediterranean
2251 meerkrat meerkat
2252 melieux milieux
2253 membranaphone membranophone
2254 memeber member
2255 menally mentally
2256 meranda veranda, Miranda
2257 mercentile mercantile
2258 messanger messenger
2259 messenging messaging
2260 metalic metallic
2261 metalurgic metallurgic
2262 metalurgical metallurgical
2263 metalurgy metallurgy
2264 metamorphysis metamorphosis
2265 metaphoricial metaphorical
2266 meterologist meteorologist
2267 meterology meteorology
2268 methaphor metaphor
2269 methaphors metaphors
2270 Michagan Michigan
2271 micoscopy microscopy
2272 midwifes midwives
2273 mileau milieu
2274 milennia millennia
2275 milennium millennium
2276 mileu milieu
2277 miliary military
2278 milion million
2279 miliraty military
2280 millenia millennia
2281 millenial millennial
2282 millenialism millennialism
2283 millenium millennium
2284 millepede millipede
2285 millioniare millionaire
2286 millitary military
2287 millon million
2288 miltary military
2289 minature miniature
2290 minerial mineral
2291 miniscule minuscule
2292 ministery ministry
2293 minstries ministries
2294 minstry ministry
2295 minumum minimum
2296 mirrorred mirrored
2297 miscelaneous miscellaneous
2298 miscellanious miscellaneous
2299 miscellanous miscellaneous
2300 mischeivous mischievous
2301 mischevious mischievous
2302 mischievious mischievous
2303 misdameanor misdemeanor
2304 misdameanors misdemeanors
2305 misdemenor misdemeanor
2306 misdemenors misdemeanors
2307 misfourtunes misfortunes
2308 misile missile
2309 Misouri Missouri
2310 mispell misspell
2311 mispelled misspelled
2312 mispelling misspelling
2313 missen mizzen
2314 Missisipi Mississippi
2315 Missisippi Mississippi
2316 missle missile
2317 missonary missionary
2318 misterious mysterious
2319 mistery mystery
2320 misteryous mysterious
2321 mkae make
2322 mkaes makes
2323 mkaing making
2324 mkea make
2325 moderm modem
2326 modle model
2327 moent moment
2328 moeny money
2329 mohammedans muslims
2330 moil mohel
2331 moleclues molecules
2332 momento memento
2333 monestaries monasteries
2334 monestary monastery, monetary
2335 monickers monikers
2336 monolite monolithic
2337 Monserrat Montserrat
2338 montains mountains
2339 montanous mountainous
2340 monts months
2341 montypic monotypic
2342 moreso more, more so
2343 morgage mortgage
2344 Morisette Morissette
2345 Morrisette Morissette
2346 morroccan moroccan
2347 morrocco morocco
2348 morroco morocco
2349 mosture moisture
2350 motiviated motivated
2351 mounth month
2352 movei movie
2353 movment movement
2354 mroe more
2355 mucuous mucous
2356 muder murder
2357 mudering murdering
2358 muhammadan muslim
2359 multicultralism multiculturalism
2360 multipled multiplied
2361 multiplers multipliers
2362 munbers numbers
2363 muncipalities municipalities
2364 muncipality municipality
2365 munnicipality municipality
2366 muscels mussels, muscles
2367 muscial musical
2368 muscician musician
2369 muscicians musicians
2370 mutiliated mutilated
2371 myraid myriad
2372 mysef myself
2373 mysogynist misogynist
2374 mysogyny misogyny
2375 mysterous mysterious
2376 Mythraic Mithraic
2377 naieve naive
2378 Napoleonian Napoleonic
2379 naturaly naturally
2380 naturely naturally
2381 naturual natural
2382 naturually naturally
2383 Nazereth Nazareth
2384 neccesarily necessarily
2385 neccesary necessary
2386 neccessarily necessarily
2387 neccessary necessary
2388 neccessities necessities
2389 necesarily necessarily
2390 necesary necessary
2391 necessiate necessitate
2392 neglible negligible
2393 negligable negligible
2394 negociate negotiate
2395 negociation negotiation
2396 negociations negotiations
2397 negotation negotiation
2398 neice niece, nice
2399 neigborhood neighborhood
2400 neigbour neighbour, neighbor
2401 neigbourhood neighbourhood
2402 neigbouring neighbouring, neighboring
2403 neigbours neighbours, neighbors
2404 neolitic neolithic
2405 nessasarily necessarily
2406 nessecary necessary
2407 nestin nesting
2408 neverthless nevertheless
2409 newletters newsletters
2410 Newyorker New Yorker
2411 nickle nickel
2412 nightfa;; nightfall
2413 nightime nighttime
2414 nineth ninth
2415 ninteenth nineteenth
2416 ninties 1990s
2417 ninty ninety
2418 nkow know
2419 nkwo know
2420 nmae name
2421 noncombatents noncombatants
2422 nonsence nonsense
2423 nontheless nonetheless
2424 noone no one
2425 norhern northern
2426 northen northern
2427 northereastern northeastern
2428 notabley notably
2429 noteable notable
2430 noteably notably
2431 noteriety notoriety
2432 noth north
2433 nothern northern
2434 noticable noticeable
2435 noticably noticeably
2436 noticeing noticing
2437 noticible noticeable
2438 notwhithstanding notwithstanding
2439 noveau nouveau
2440 nowdays nowadays
2441 nowe now
2442 nto not
2443 nucular nuclear
2444 nuculear nuclear
2445 nuisanse nuisance
2446 Nullabour Nullarbor
2447 numberous numerous
2448 Nuremburg Nuremberg
2449 nusance nuisance
2450 nutritent nutrient
2451 nutritents nutrients
2452 nuturing nurturing
2453 obediance obedience
2454 obediant obedient
2455 obession obsession
2456 obssessed obsessed
2457 obstacal obstacle
2458 obstancles obstacles
2459 obstruced obstructed
2460 ocasion occasion
2461 ocasional occasional
2462 ocasionally occasionally
2463 ocasionaly occasionally
2464 ocasioned occasioned
2465 ocasions occasions
2466 ocassion occasion
2467 ocassional occasional
2468 ocassionally occasionally
2469 ocassionaly occasionally
2470 ocassioned occasioned
2471 ocassions occasions
2472 occaison occasion
2473 occassion occasion
2474 occassional occasional
2475 occassionally occasionally
2476 occassionaly occasionally
2477 occassioned occasioned
2478 occassions occasions
2479 occationally occasionally
2480 occour occur
2481 occurance occurrence
2482 occurances occurrences
2483 occured occurred
2484 occurence occurrence
2485 occurences occurrences
2486 occuring occurring
2487 occurr occur
2488 occurrance occurrence
2489 occurrances occurrences
2490 octohedra octahedra
2491 octohedral octahedral
2492 octohedron octahedron
2493 ocuntries countries
2494 ocuntry country
2495 ocurr occur
2496 ocurrance occurrence
2497 ocurred occurred
2498 ocurrence occurrence
2499 offcers officers
2500 offcially officially
2501 offereings offerings
2502 offical official
2503 officals officials
2504 offically officially
2505 officaly officially
2506 officialy officially
2507 offred offered
2508 oftenly often
2509 oging going, ogling
2510 omision omission
2511 omited omitted
2512 omiting omitting
2513 omlette omelette
2514 ommision omission
2515 ommited omitted
2516 ommiting omitting
2517 ommitted omitted
2518 ommitting omitting
2519 omniverous omnivorous
2520 omniverously omnivorously
2521 omre more
2522 onot note, not
2523 onyl only
2524 openess openness
2525 oponent opponent
2526 oportunity opportunity
2527 opose oppose
2528 oposite opposite
2529 oposition opposition
2530 oppenly openly
2531 oppinion opinion
2532 opponant opponent
2533 oppononent opponent
2534 oppositition opposition
2535 oppossed opposed
2536 opprotunity opportunity
2537 opression oppression
2538 opressive oppressive
2539 opthalmic ophthalmic
2540 opthalmologist ophthalmologist
2541 opthalmology ophthalmology
2542 opthamologist ophthalmologist
2543 optmizations optimizations
2544 optomism optimism
2545 orded ordered
2546 organim organism
2547 organiztion organization
2548 orgin origin, organ
2549 orginal original
2550 orginally originally
2551 orginize organise
2552 oridinarily ordinarily
2553 origanaly originally
2554 originall original, originally
2555 originaly originally
2556 originially originally
2557 originnally originally
2558 origional original
2559 orignally originally
2560 orignially originally
2561 otehr other
2562 ouevre oeuvre
2563 overshaddowed overshadowed
2564 overthere over there
2565 overwelming overwhelming
2566 overwheliming overwhelming
2567 owrk work
2568 owudl would
2569 oxigen oxygen
2570 oximoron oxymoron
2571 paide paid
2572 paitience patience
2573 palce place, palace
2574 paleolitic paleolithic
2575 paliamentarian parliamentarian
2576 Palistian Palestinian
2577 Palistinian Palestinian
2578 Palistinians Palestinians
2579 pallete palette
2580 pamflet pamphlet
2581 pamplet pamphlet
2582 pantomine pantomime
2583 Papanicalou Papanicolaou
2584 paralel parallel
2585 paralell parallel
2586 paralelly parallelly
2587 paralely parallelly
2588 parallely parallelly
2589 paranthesis parenthesis
2590 paraphenalia paraphernalia
2591 parellels parallels
2592 parituclar particular
2593 parliment parliament
2594 parrakeets parakeets
2595 parralel parallel
2596 parrallel parallel
2597 parrallell parallel
2598 parrallelly parallelly
2599 parrallely parallelly
2600 partialy partially
2601 particually particularly
2602 particualr particular
2603 particuarly particularly
2604 particularily particularly
2605 particulary particularly
2606 pary party
2607 pased passed
2608 pasengers passengers
2609 passerbys passersby
2610 pasttime pastime
2611 pastural pastoral
2612 paticular particular
2613 pattented patented
2614 pavillion pavilion
2615 payed paid
2616 peacefuland peaceful and
2617 peageant pageant
2618 peculure peculiar
2619 pedestrain pedestrian
2620 peice piece
2621 Peloponnes Peloponnesus
2622 penatly penalty
2623 penerator penetrator
2624 penisula peninsula
2625 penisular peninsular
2626 penninsula peninsula
2627 penninsular peninsular
2628 pennisula peninsula
2629 pensinula peninsula
2630 peom poem
2631 peoms poems
2632 peopel people
2633 peotry poetry
2634 perade parade
2635 percepted perceived
2636 percieve perceive
2637 percieved perceived
2638 perenially perennially
2639 perfomers performers
2640 performence performance
2641 performes performed, performs
2642 perhasp perhaps
2643 perheaps perhaps
2644 perhpas perhaps
2645 peripathetic peripatetic
2646 peristent persistent
2647 perjery perjury
2648 perjorative pejorative
2649 permanant permanent
2650 permenant permanent
2651 permenantly permanently
2652 permissable permissible
2653 perogative prerogative
2654 peronal personal
2655 perosnality personality
2656 perphas perhaps
2657 perpindicular perpendicular
2658 perseverence perseverance
2659 persistance persistence
2660 persistant persistent
2661 personel personnel, personal
2662 personell personnel
2663 personnell personnel
2664 persuded persuaded
2665 persue pursue
2666 persued pursued
2667 persuing pursuing
2668 persuit pursuit
2669 persuits pursuits
2670 pertubation perturbation
2671 pertubations perturbations
2672 pessiary pessary
2673 petetion petition
2674 Pharoah Pharaoh
2675 phenomenom phenomenon
2676 phenomenonal phenomenal
2677 phenomenonly phenomenally
2678 phenomonenon phenomenon
2679 phenomonon phenomenon
2680 phenonmena phenomena
2681 Philipines Philippines
2682 philisopher philosopher
2683 philisophical philosophical
2684 philisophy philosophy
2685 Phillipine Philippine
2686 Phillipines Philippines
2687 Phillippines Philippines
2688 phillosophically philosophically
2689 philospher philosopher
2690 philosphies philosophies
2691 philosphy philosophy
2692 Phonecian Phoenecian
2693 phongraph phonograph
2694 phylosophical philosophical
2695 physicaly physically
2696 pich pitch
2697 pilgrimmage pilgrimage
2698 pilgrimmages pilgrimages
2699 pinapple pineapple
2700 pinnaple pineapple
2701 pinoneered pioneered
2702 plagarism plagiarism
2703 planation plantation
2704 planed planned
2705 plantiff plaintiff
2706 plateu plateau
2707 plausable plausible
2708 playright playwright
2709 playwrite playwright
2710 playwrites playwrights
2711 pleasent pleasant
2712 plebicite plebiscite
2713 plesant pleasant
2714 poeoples peoples
2715 poety poetry
2716 poisin poison
2717 polical political
2718 polinator pollinator
2719 polinators pollinators
2720 politican politician
2721 politicans politicians
2722 poltical political
2723 polute pollute
2724 poluted polluted
2725 polutes pollutes
2726 poluting polluting
2727 polution pollution
2728 polyphonyic polyphonic
2729 polysaccaride polysaccharide
2730 polysaccharid polysaccharide
2731 pomegranite pomegranate
2732 pomotion promotion
2733 poportional proportional
2734 popoulation population
2735 popularaty popularity
2736 populare popular
2737 populer popular
2738 portayed portrayed
2739 portraing portraying
2740 Portugese Portuguese
2741 portuguease portuguese
2742 posess possess
2743 posessed possessed
2744 posesses possesses
2745 posessing possessing
2746 posession possession
2747 posessions possessions
2748 posion poison
2749 positon position, positron
2750 possable possible
2751 possably possibly
2752 posseses possesses
2753 possesing possessing
2754 possesion possession
2755 possessess possesses
2756 possibile possible
2757 possibilty possibility
2758 possiblility possibility
2759 possiblilty possibility
2760 possiblities possibilities
2761 possiblity possibility
2762 possition position
2763 Postdam Potsdam
2764 posthomous posthumous
2765 postion position
2766 postive positive
2767 potatos potatoes
2768 portait portrait
2769 potrait portrait
2770 potrayed portrayed
2771 poulations populations
2772 poverful powerful
2773 poweful powerful
2774 powerfull powerful
2775 practial practical
2776 practially practically
2777 practicaly practically
2778 practicioner practitioner
2779 practicioners practitioners
2780 practicly practically
2781 practioner practitioner
2782 practioners practitioners
2783 prairy prairie
2784 prarie prairie
2785 praries prairies
2786 pratice practice
2787 preample preamble
2788 precedessor predecessor
2789 preceed precede
2790 preceeded preceded
2791 preceeding preceding
2792 preceeds precedes
2793 precentage percentage
2794 precice precise
2795 precisly precisely
2796 precurser precursor
2797 predecesors predecessors
2798 predicatble predictable
2799 predicitons predictions
2800 predomiantly predominately
2801 prefered preferred
2802 prefering preferring
2803 preferrably preferably
2804 pregancies pregnancies
2805 preiod period
2806 preliferation proliferation
2807 premeire premiere
2808 premeired premiered
2809 premillenial premillennial
2810 preminence preeminence
2811 premission permission
2812 Premonasterians Premonstratensians
2813 preocupation preoccupation
2814 prepair prepare
2815 prepartion preparation
2816 prepatory preparatory
2817 preperation preparation
2818 preperations preparations
2819 preriod period
2820 presedential presidential
2821 presense presence
2822 presidenital presidential
2823 presidental presidential
2824 presitgious prestigious
2825 prespective perspective
2826 prestigeous prestigious
2827 prestigous prestigious
2828 presumabely presumably
2829 presumibly presumably
2830 pretection protection
2831 prevelant prevalent
2832 preverse perverse
2833 previvous previous
2834 pricipal principal
2835 priciple principle
2836 priestood priesthood
2837 primarly primarily
2838 primative primitive
2839 primatively primitively
2840 primatives primitives
2841 primordal primordial
2842 priveledges privileges
2843 privelege privilege
2844 priveleged privileged
2845 priveleges privileges
2846 privelige privilege
2847 priveliged privileged
2848 priveliges privileges
2849 privelleges privileges
2850 privilage privilege
2851 priviledge privilege
2852 priviledges privileges
2853 privledge privilege
2854 privte private
2855 probabilaty probability
2856 probablistic probabilistic
2857 probablly probably
2858 probalibity probability
2859 probaly probably
2860 probelm problem
2861 proccess process
2862 proccessing processing
2863 procede proceed, precede
2864 proceded proceeded, preceded
2865 procedes proceeds, precedes
2866 procedger procedure
2867 proceding proceeding, preceding
2868 procedings proceedings
2869 proceedure procedure
2870 proces process
2871 processer processor
2872 proclaimation proclamation
2873 proclamed proclaimed
2874 proclaming proclaiming
2875 proclomation proclamation
2876 profesion profusion, profession
2877 profesor professor
2878 professer professor
2879 proffesed professed
2880 proffesion profession
2881 proffesional professional
2882 proffesor professor
2883 profilic prolific
2884 progessed progressed
2885 programable programmable
2886 progrom pogrom, program
2887 progroms pogroms, programs
2888 prohabition prohibition
2889 prologomena prolegomena
2890 prominance prominence
2891 prominant prominent
2892 prominantly prominently
2893 prominately prominently, predominately
2894 promiscous promiscuous
2895 promotted promoted
2896 pronomial pronominal
2897 pronouced pronounced
2898 pronounched pronounced
2899 pronounciation pronunciation
2900 proove prove
2901 prooved proved
2902 prophacy prophecy
2903 propietary proprietary
2904 propmted prompted
2905 propoganda propaganda
2906 propogate propagate
2907 propogates propagates
2908 propogation propagation
2909 propostion proposition
2910 propotions proportions
2911 propper proper
2912 propperly properly
2913 proprietory proprietary
2914 proseletyzing proselytizing
2915 protaganist protagonist
2916 protaganists protagonists
2917 protocal protocol
2918 protoganist protagonist
2919 protrayed portrayed
2920 protruberance protuberance
2921 protruberances protuberances
2922 prouncements pronouncements
2923 provacative provocative
2924 provded provided
2925 provicial provincial
2926 provinicial provincial
2927 provisonal provisional
2928 provisiosn provision
2929 proximty proximity
2930 pseudononymous pseudonymous
2931 pseudonyn pseudonym
2932 psuedo pseudo
2933 psycology psychology
2934 psyhic psychic
2935 publicaly publicly
2936 puchasing purchasing
2937 Pucini Puccini
2938 Puertorrican Puerto Rican
2939 Puertorricans Puerto Ricans
2940 pumkin pumpkin
2941 puritannical puritanical
2942 purposedly purposely
2943 purpotedly purportedly
2944 pursuade persuade
2945 pursuaded persuaded
2946 pursuades persuades
2947 pususading persuading
2948 puting putting
2949 pwoer power
2950 pyscic psychic
2951 qtuie quite, quiet
2952 quantaty quantity
2953 quantitiy quantity
2954 quarantaine quarantine
2955 Queenland Queensland
2956 questonable questionable
2957 quicklyu quickly
2958 quinessential quintessential
2959 quitted quit
2960 quizes quizzes
2961 qutie quite, quiet
2962 rabinnical rabbinical
2963 racaus raucous
2964 radiactive radioactive
2965 radify ratify
2966 raelly really
2967 rarified rarefied
2968 reaccurring recurring
2969 reacing reaching
2970 reacll recall
2971 readmition readmission
2972 realitvely relatively
2973 realsitic realistic
2974 realtions relations
2975 realy really
2976 realyl really
2977 reasearch research
2978 rebiulding rebuilding
2979 rebllions rebellions
2980 rebounce rebound
2981 reccomend recommend
2982 reccomendations recommendations
2983 reccomended recommended
2984 reccomending recommending
2985 reccommend recommend
2986 reccommended recommended
2987 reccommending recommending
2988 reccuring recurring
2989 receeded receded
2990 receeding receding
2991 receivedfrom received from
2992 recepient recipient
2993 recepients recipients
2994 receving receiving
2995 rechargable rechargeable
2996 reched reached
2997 recide reside
2998 recided resided
2999 recident resident
3000 recidents residents
3001 reciding residing
3002 reciepents recipients
3003 reciept receipt
3004 recieve receive
3005 recieved received
3006 reciever receiver
3007 recievers receivers
3008 recieves receives
3009 recieving receiving
3010 recipiant recipient
3011 recipiants recipients
3012 recived received
3013 recivership receivership
3014 recogise recognise
3015 recogize recognize
3016 recomend recommend
3017 recomended recommended
3018 recomending recommending
3019 recomends recommends
3020 recommedations recommendations
3021 reconaissance reconnaissance
3022 reconcilation reconciliation
3023 reconized recognized
3024 reconnaissence reconnaissance
3025 recontructed reconstructed
3026 recordproducer record producer
3027 recquired required
3028 recrational recreational
3029 recrod record
3030 recuiting recruiting
3031 recuring recurring
3032 recurrance recurrence
3033 rediculous ridiculous
3034 reedeming redeeming
3035 reenforced reinforced
3036 refect reflect
3037 refedendum referendum
3038 referal referral
3039 refered referred
3040 referiang referring
3041 refering referring
3042 refernces references
3043 referrence reference
3044 referrs refers
3045 reffered referred
3046 refference reference
3047 refrence reference
3048 refrences references
3049 refrers refers
3050 refridgeration refrigeration
3051 refridgerator refrigerator
3052 refromist reformist
3053 refusla refusal
3054 regardes regards
3055 regluar regular
3056 reguarly regularly
3057 regulaion regulation
3058 regulaotrs regulators
3059 regularily regularly
3060 rehersal rehearsal
3061 reicarnation reincarnation
3062 reigining reigning
3063 reknown renown
3064 reknowned renowned
3065 rela real
3066 relaly really
3067 relatiopnship relationship
3068 relativly relatively
3069 relected reelected
3070 releive relieve
3071 releived relieved
3072 releiver reliever
3073 releses releases
3074 relevence relevance
3075 relevent relevant
3076 reliablity reliability
3077 relient reliant
3078 religeous religious
3079 religous religious
3080 religously religiously
3081 relinqushment relinquishment
3082 relitavely relatively
3083 relized realised, realized
3084 relpacement replacement
3085 remaing remaining
3086 remeber remember
3087 rememberable memorable
3088 rememberance remembrance
3089 remembrence remembrance
3090 remenant remnant
3091 remenicent reminiscent
3092 reminent remnant
3093 reminescent reminiscent
3094 reminscent reminiscent
3095 reminsicent reminiscent
3096 rendevous rendezvous
3097 rendezous rendezvous
3098 renedered rende
3099 renewl renewal
3100 rentors renters
3101 reoccurrence recurrence
3102 reorganision reorganisation
3103 repatition repetition, repartition
3104 repentence repentance
3105 repentent repentant
3106 repeteadly repeatedly
3107 repetion repetition
3108 repid rapid
3109 reponse response
3110 reponsible responsible
3111 reportadly reportedly
3112 represantative representative
3113 representive representative
3114 representives representatives
3115 reproducable reproducible
3116 reprtoire repertoire
3117 repsectively respectively
3118 reptition repetition
3119 requirment requirement
3120 requred required
3121 resaurant restaurant
3122 resembelance resemblance
3123 resembes resembles
3124 resemblence resemblance
3125 resevoir reservoir
3126 resignement resignment
3127 resistable resistible
3128 resistence resistance
3129 resistent resistant
3130 respectivly respectively
3131 responce response
3132 responibilities responsibilities
3133 responisble responsible
3134 responnsibilty responsibility
3135 responsability responsibility
3136 responsibile responsible
3137 responsibilites responsibilities
3138 responsiblity responsibility
3139 ressemblance resemblance
3140 ressemble resemble
3141 ressembled resembled
3142 ressemblence resemblance
3143 ressembling resembling
3144 resssurecting resurrecting
3145 ressurect resurrect
3146 ressurected resurrected
3147 ressurection resurrection
3148 ressurrection resurrection
3149 restaraunt restaurant
3150 restaraunteur restaurateur
3151 restaraunteurs restaurateurs
3152 restaraunts restaurants
3153 restauranteurs restaurateurs
3154 restauration restoration
3155 restauraunt restaurant
3156 resteraunt restaurant
3157 resteraunts restaurants
3158 resticted restricted
3159 restraunt restraint, restaurant
3160 resturant restaurant
3161 resturaunt restaurant
3162 resurecting resurrecting
3163 retalitated retaliated
3164 retalitation retaliation
3165 retreive retrieve
3166 returnd returned
3167 revaluated reevaluated
3168 reveral reversal
3169 reversable reversible
3170 revolutionar revolutionary
3171 rewitten rewritten
3172 rewriet rewrite
3173 rhymme rhyme
3174 rhythem rhythm
3175 rhythim rhythm
3176 rhytmic rhythmic
3177 rigeur rigueur, rigour, rigor
3178 rigourous rigorous
3179 rininging ringing
3180 rised rose
3181 Rockerfeller Rockefeller
3182 rococco rococo
3183 rocord record
3184 roomate roommate
3185 rougly roughly
3186 rucuperate recuperate
3187 rudimentatry rudimentary
3188 rulle rule
3189 runing running
3190 runnung running
3191 russina Russian
3192 Russion Russian
3193 rwite write
3194 rythem rhythm
3195 rythim rhythm
3196 rythm rhythm
3197 rythmic rhythmic
3198 rythyms rhythms
3199 sacrafice sacrifice
3200 sacreligious sacrilegious
3201 sacrifical sacrificial
3202 saftey safety
3203 safty safety
3204 salery salary
3205 sanctionning sanctioning
3206 sandwhich sandwich
3207 Sanhedrim Sanhedrin
3208 santioned sanctioned
3209 sargant sergeant
3210 sargeant sergeant
3211 sasy says, sassy
3212 satelite satellite
3213 satelites satellites
3214 Saterday Saturday
3215 Saterdays Saturdays
3216 satisfactority satisfactorily
3217 satric satiric
3218 satrical satirical
3219 satrically satirically
3220 sattelite satellite
3221 sattelites satellites
3222 saught sought
3223 saveing saving
3224 saxaphone saxophone
3225 scaleable scalable
3226 scandanavia Scandinavia
3227 scaricity scarcity
3228 scavanged scavenged
3229 schedual schedule
3230 scholarhip scholarship
3231 scholarstic scholastic, scholarly
3232 scientfic scientific
3233 scientifc scientific
3234 scientis scientist
3235 scince science
3236 scinece science
3237 scirpt script
3238 scoll scroll
3239 screenwrighter screenwriter
3240 scrutinity scrutiny
3241 scuptures sculptures
3242 seach search
3243 seached searched
3244 seaches searches
3245 secceeded seceded, succeeded
3246 seceed succeed, secede
3247 seceeded succeeded, seceded
3248 secratary secretary
3249 secretery secretary
3250 sedereal sidereal
3251 seeked sought
3252 segementation segmentation
3253 seguoys segues
3254 seige siege
3255 seing seeing
3256 seinor senior
3257 seldomly seldom
3258 senarios scenarios
3259 sence sense
3260 senstive sensitive
3261 sensure censure
3262 seperate separate
3263 seperated separated
3264 seperately separately
3265 seperates separates
3266 seperating separating
3267 seperation separation
3268 seperatism separatism
3269 seperatist separatist
3270 sepina subpoena
3271 sepulchure sepulchre, sepulcher
3272 sepulcre sepulchre, sepulcher
3273 sergent sergeant
3274 settelement settlement
3275 settlment settlement
3276 severeal several
3277 severley severely
3278 severly severely
3279 sevice service
3280 shaddow shadow
3281 shamen shaman, shamans
3282 sheat sheath, sheet, cheat
3283 sheild shield
3284 sherif sheriff
3285 shineing shining
3286 shiped shipped
3287 shiping shipping
3288 shopkeeepers shopkeepers
3289 shorly shortly
3290 shortwhile short while
3291 shoudl should
3292 shoudln should, shouldn't
3293 shouldnt shouldn't
3294 shreak shriek
3295 shrinked shrunk
3296 sicne since
3297 sideral sidereal
3298 sieze seize, size
3299 siezed seized, sized
3300 siezing seizing, sizing
3301 siezure seizure
3302 siezures seizures
3303 siginificant significant
3304 signficant significant
3305 signficiant significant
3306 signfies signifies
3307 signifantly significantly
3308 significently significantly
3309 signifigant significant
3310 signifigantly significantly
3311 signitories signatories
3312 signitory signatory
3313 similarily similarly
3314 similiar similar
3315 similiarity similarity
3316 similiarly similarly
3317 simmilar similar
3318 simpley simply
3319 simplier simpler
3320 simultanous simultaneous
3321 simultanously simultaneously
3322 sincerley sincerely
3323 singsog singsong
3324 sinse sines, since
3325 Sionist Zionist
3326 Sionists Zionists
3327 Sixtin Sistine
3328 Skagerak Skagerrak
3329 skateing skating
3330 slaugterhouses slaughterhouses
3331 slowy slowly
3332 smae same
3333 smealting smelting
3334 smoe some
3335 sneeks sneaks
3336 snese sneeze
3337 socalism socialism
3338 socities societies
3339 soem some
3340 sofware software
3341 sohw show
3342 soilders soldiers
3343 solatary solitary
3344 soley solely
3345 soliders soldiers
3346 soliliquy soliloquy
3347 soluable soluble
3348 somene someone
3349 somtimes sometimes
3350 somwhere somewhere
3351 sophicated sophisticated
3352 sorceror sorcerer
3353 sorrounding surrounding
3354 sotry story
3355 sotyr satyr, story
3356 soudn sound
3357 soudns sounds
3358 sould could, should, sold
3359 sountrack soundtrack
3360 sourth south
3361 sourthern southern
3362 souvenier souvenir
3363 souveniers souvenirs
3364 soveits soviets
3365 sovereignity sovereignty
3366 soverign sovereign
3367 soverignity sovereignty
3368 soverignty sovereignty
3369 spainish Spanish
3370 speach speech
3371 specfic specific
3372 speciallized specialised, specialized
3373 specif specific, specify
3374 specifiying specifying
3375 speciman specimen
3376 spectauclar spectacular
3377 spectaulars spectaculars
3378 spects aspects, expects
3379 spectum spectrum
3380 speices species
3381 spendour splendour
3382 spermatozoan spermatozoon
3383 spoace space
3384 sponser sponsor
3385 sponsered sponsored
3386 spontanous spontaneous
3387 sponzored sponsored
3388 spoonfulls spoonfuls
3389 sppeches speeches
3390 spreaded spread
3391 sprech speech
3392 spred spread
3393 spriritual spiritual
3394 spritual spiritual
3395 sqaure square
3396 stablility stability
3397 stainlees stainless
3398 staion station
3399 standars standards
3400 stange strange
3401 startegic strategic
3402 startegies strategies
3403 startegy strategy
3404 stateman statesman
3405 statememts statements
3406 statment statement
3407 steriods steroids
3408 sterotypes stereotypes
3409 stilus stylus
3410 stingent stringent
3411 stiring stirring
3412 stirrs stirs
3413 stlye style
3414 stong strong
3415 stopry story
3416 storeis stories
3417 storise stories
3418 stornegst strongest
3419 stoyr story
3420 stpo stop
3421 stradegies strategies
3422 stradegy strategy
3423 strat start, strata
3424 stratagically strategically
3425 streemlining streamlining
3426 stregth strength
3427 strenghen strengthen
3428 strenghened strengthened
3429 strenghening strengthening
3430 strenght strength
3431 strenghten strengthen
3432 strenghtened strengthened
3433 strenghtening strengthening
3434 strengtened strengthened
3435 strenous strenuous
3436 strictist strictest
3437 strikely strikingly
3438 strnad strand
3439 stroy story, destroy
3440 structual structural
3441 stubborness stubbornness
3442 stucture structure
3443 stuctured structured
3444 studdy study
3445 studing studying
3446 stuggling struggling
3447 sturcture structure
3448 subcatagories subcategories
3449 subcatagory subcategory
3450 subconsiously subconsciously
3451 subjudgation subjugation
3452 submachne submachine
3453 subpecies subspecies
3454 subsidary subsidiary
3455 subsiduary subsidiary
3456 subsquent subsequent
3457 subsquently subsequently
3458 substace substance
3459 substancial substantial
3460 substatial substantial
3461 substituded substituted
3462 substract subtract
3463 substracted subtracted
3464 substracting subtracting
3465 substraction subtraction
3466 substracts subtracts
3467 subtances substances
3468 subterranian subterranean
3469 suburburban suburban
3470 succceeded succeeded
3471 succcesses successes
3472 succedded succeeded
3473 succeded succeeded
3474 succeds succeeds
3475 succesful successful
3476 succesfully successfully
3477 succesfuly successfully
3478 succesion succession
3479 succesive successive
3480 successfull successful
3481 successully successfully
3482 succsess success
3483 succsessfull successful
3484 suceed succeed
3485 suceeded succeeded
3486 suceeding succeeding
3487 suceeds succeeds
3488 sucesful successful
3489 sucesfully successfully
3490 sucesfuly successfully
3491 sucesion succession
3492 sucess success
3493 sucesses successes
3494 sucessful successful
3495 sucessfull successful
3496 sucessfully successfully
3497 sucessfuly successfully
3498 sucession succession
3499 sucessive successive
3500 sucessor successor
3501 sucessot successor
3502 sucide suicide
3503 sucidial suicidal
3504 sufferage suffrage
3505 sufferred suffered
3506 sufferring suffering
3507 sufficent sufficient
3508 sufficently sufficiently
3509 sumary summary
3510 sunglases sunglasses
3511 suop soup
3512 superceeded superseded
3513 superintendant superintendent
3514 suphisticated sophisticated
3515 suplimented supplemented
3516 supose suppose
3517 suposed supposed
3518 suposedly supposedly
3519 suposes supposes
3520 suposing supposing
3521 supplamented supplemented
3522 suppliementing supplementing
3523 suppoed supposed
3524 supposingly supposedly
3525 suppy supply
3526 supress suppress
3527 supressed suppressed
3528 supresses suppresses
3529 supressing suppressing
3530 suprise surprise
3531 suprised surprised
3532 suprising surprising
3533 suprisingly surprisingly
3534 suprize surprise
3535 suprized surprised
3536 suprizing surprising
3537 suprizingly surprisingly
3538 surfce surface
3539 surley surly, surely
3540 suround surround
3541 surounded surrounded
3542 surounding surrounding
3543 suroundings surroundings
3544 surounds surrounds
3545 surplanted supplanted
3546 surpress suppress
3547 surpressed suppressed
3548 surprize surprise
3549 surprized surprised
3550 surprizing surprising
3551 surprizingly surprisingly
3552 surrended surrounded, surrendered
3553 surrepetitious surreptitious
3554 surrepetitiously surreptitiously
3555 surreptious surreptitious
3556 surreptiously surreptitiously
3557 surronded surrounded
3558 surrouded surrounded
3559 surrouding surrounding
3560 surrundering surrendering
3561 surveilence surveillance
3562 surveill surveil
3563 surveyer surveyor
3564 surviver survivor
3565 survivers survivors
3566 survivied survived
3567 suseptable susceptible
3568 suseptible susceptible
3569 suspention suspension
3570 swaer swear
3571 swaers swears
3572 swepth swept
3573 swiming swimming
3574 syas says
3575 symetrical symmetrical
3576 symetrically symmetrically
3577 symetry symmetry
3578 symettric symmetric
3579 symmetral symmetric
3580 symmetricaly symmetrically
3581 synagouge synagogue
3582 syncronization synchronization
3583 synonomous synonymous
3584 synonymns synonyms
3585 synphony symphony
3586 syphyllis syphilis
3587 sypmtoms symptoms
3588 syrap syrup
3589 sysmatically systematically
3590 sytem system
3591 sytle style
3592 tabacco tobacco
3593 tahn than
3594 taht that
3595 talekd talked
3596 targetted targeted
3597 targetting targeting
3598 tast taste
3599 tath that
3600 tattooes tattoos
3601 taxanomic taxonomic
3602 taxanomy taxonomy
3603 teached taught
3604 techician technician
3605 techicians technicians
3606 techiniques techniques
3607 technitian technician
3608 technnology technology
3609 technolgy technology
3610 teh the
3611 tehy they
3612 telelevision television
3613 televsion television
3614 telphony telephony
3615 temerature temperature
3616 temparate temperate
3617 temperarily temporarily
3618 temperment temperament
3619 tempertaure temperature
3620 temperture temperature
3621 temprary temporary
3622 tenacle tentacle
3623 tenacles tentacles
3624 tendacy tendency
3625 tendancies tendencies
3626 tendancy tendency
3627 tennisplayer tennis player
3628 tepmorarily temporarily
3629 terrestial terrestrial
3630 terriories territories
3631 terriory territory
3632 territorist terrorist
3633 territoy territory
3634 terroist terrorist
3635 testiclular testicular
3636 tghe the
3637 thast that, that's
3638 theather theater, theatre
3639 theese these
3640 theif thief
3641 theives thieves
3642 themselfs themselves
3643 themslves themselves
3644 ther there, their, the
3645 therafter thereafter
3646 therby thereby
3647 theri their
3648 thgat that
3649 thge the
3650 thier their
3651 thign thing
3652 thigns things
3653 thigsn things
3654 thikn think
3655 thikning thinking, thickening
3656 thikns thinks
3657 thiunk think
3658 thn then
3659 thna than
3660 thne then
3661 thnig thing
3662 thnigs things
3663 thoughout throughout
3664 threatend threatened
3665 threatning threatening
3666 threee three
3667 threshhold threshold
3668 thrid third
3669 throrough thorough
3670 throughly thoroughly
3671 throught thought, through, throughout
3672 througout throughout
3673 thru through
3674 thsi this
3675 thsoe those
3676 thta that
3677 thyat that
3678 tiem time, Tim
3679 tihkn think
3680 tihs this
3681 timne time
3682 tiome time, tome
3683 tje the
3684 tjhe the
3685 tjpanishad upanishad
3686 tkae take
3687 tkaes takes
3688 tkaing taking
3689 tlaking talking
3690 tobbaco tobacco
3691 todays today's
3692 todya today
3693 toghether together
3694 tolerence tolerance
3695 Tolkein Tolkien
3696 tomatos tomatoes
3697 tommorow tomorrow
3698 tommorrow tomorrow
3699 tongiht tonight
3700 toriodal toroidal
3701 tormenters tormentors
3702 torpeados torpedoes
3703 torpedos torpedoes
3704 tothe to the
3705 toubles troubles
3706 tounge tongue
3707 tourch torch, touch
3708 towords towards
3709 towrad toward
3710 tradionally traditionally
3711 traditionaly traditionally
3712 traditionnal traditional
3713 traditition tradition
3714 tradtionally traditionally
3715 trafficed trafficked
3716 trafficing trafficking
3717 trafic traffic
3718 trancendent transcendent
3719 trancending transcending
3720 tranform transform
3721 tranformed transformed
3722 transcendance transcendence
3723 transcendant transcendent
3724 transcendentational transcendental
3725 transcripting transcribing, transcription
3726 transending transcending
3727 transesxuals transsexuals
3728 transfered transferred
3729 transfering transferring
3730 transformaton transformation
3731 transistion transition
3732 translater translator
3733 translaters translators
3734 transmissable transmissible
3735 transporation transportation
3736 tremelo tremolo
3737 tremelos tremolos
3738 triguered triggered
3739 triology trilogy
3740 troling trolling
3741 troup troupe
3742 troups troupes, troops
3743 truely truly
3744 trustworthyness trustworthiness
3745 turnk turnkey, trunk
3746 Tuscon Tucson
3747 tust trust
3748 twelth twelfth
3749 twon town
3750 twpo two
3751 tyhat that
3752 tyhe they
3753 typcial typical
3754 typicaly typically
3755 tyranies tyrannies
3756 tyrany tyranny
3757 tyrranies tyrannies
3758 tyrrany tyranny
3759 ubiquitious ubiquitous
3760 uise use
3761 Ukranian Ukrainian
3762 ultimely ultimately
3763 unacompanied unaccompanied
3764 unahppy unhappy
3765 unanymous unanimous
3766 unathorised unauthorised
3767 unavailible unavailable
3768 unballance unbalance
3769 unbeleivable unbelievable
3770 uncertainity uncertainty
3771 unchallengable unchallengeable
3772 unchangable unchangeable
3773 uncompetive uncompetitive
3774 unconcious unconscious
3775 unconciousness unconsciousness
3776 unconfortability discomfort
3777 uncontitutional unconstitutional
3778 unconvential unconventional
3779 undecideable undecidable
3780 understoon understood
3781 undesireable undesirable
3782 undetecable undetectable
3783 undoubtely undoubtedly
3784 undreground underground
3785 uneccesary unnecessary
3786 unecessary unnecessary
3787 unequalities inequalities
3788 unforetunately unfortunately
3789 unforgetable unforgettable
3790 unforgiveable unforgivable
3791 unfortunatley unfortunately
3792 unfortunatly unfortunately
3793 unfourtunately unfortunately
3794 unihabited uninhabited
3795 unilateraly unilaterally
3796 unilatreal unilateral
3797 unilatreally unilaterally
3798 uninterruped uninterrupted
3799 uninterupted uninterrupted
3800 UnitesStates UnitedStates
3801 univeral universal
3802 univeristies universities
3803 univeristy university
3804 universtiy university
3805 univesities universities
3806 univesity university
3807 unkown unknown
3808 unlikey unlikely
3809 unmanouverable unmaneuverable, unmanoeuvrable
3810 unmistakeably unmistakably
3811 unneccesarily unnecessarily
3812 unneccesary unnecessary
3813 unneccessarily unnecessarily
3814 unneccessary unnecessary
3815 unnecesarily unnecessarily
3816 unnecesary unnecessary
3817 unoffical unofficial
3818 unoperational nonoperational
3819 unoticeable unnoticeable
3820 unplease displease
3821 unplesant unpleasant
3822 unprecendented unprecedented
3823 unprecidented unprecedented
3824 unrepentent unrepentant
3825 unrepetant unrepentant
3826 unrepetent unrepentant
3827 unsed used, unused, unsaid
3828 unsubstanciated unsubstantiated
3829 unsuccesful unsuccessful
3830 unsuccesfully unsuccessfully
3831 unsuccessfull unsuccessful
3832 unsucesful unsuccessful
3833 unsucesfuly unsuccessfully
3834 unsucessful unsuccessful
3835 unsucessfull unsuccessful
3836 unsucessfully unsuccessfully
3837 unsuprised unsurprised
3838 unsuprising unsurprising
3839 unsuprisingly unsurprisingly
3840 unsuprized unsurprised
3841 unsuprizing unsurprising
3842 unsuprizingly unsurprisingly
3843 unsurprized unsurprised
3844 unsurprizing unsurprising
3845 unsurprizingly unsurprisingly
3846 untill until
3847 untranslateable untranslatable
3848 unuseable unusable
3849 unusuable unusable
3850 unviersity university
3851 unwarrented unwarranted
3852 unweildly unwieldy
3853 unwieldly unwieldy
3854 upcomming upcoming
3855 upgradded upgraded
3856 usally usually
3857 useage usage
3858 usefull useful
3859 usefuly usefully
3860 useing using
3861 usualy usually
3862 ususally usually
3863 vaccum vacuum
3864 vaccume vacuum
3865 vacinity vicinity
3866 vaguaries vagaries
3867 vaieties varieties
3868 vailidty validity
3869 valetta valletta
3870 valuble valuable
3871 valueable valuable
3872 varations variations
3873 varient variant
3874 variey variety
3875 varing varying
3876 varities varieties
3877 varity variety
3878 vasall vassal
3879 vasalls vassals
3880 vegatarian vegetarian
3881 vegitable vegetable
3882 vegitables vegetables
3883 vegtable vegetable
3884 vehicule vehicle
3885 vell well
3886 venemous venomous
3887 vengance vengeance
3888 vengence vengeance
3889 verfication verification
3890 verison version
3891 verisons versions
3892 vermillion vermilion
3893 versitilaty versatility
3894 versitlity versatility
3895 vetween between
3896 veyr very
3897 vigeur vigueur, vigour, vigor
3898 vigilence vigilance
3899 vigourous vigorous
3900 villian villain
3901 villification vilification
3902 villify vilify
3903 villin villi, villain, villein
3904 vincinity vicinity
3905 violentce violence
3906 virutal virtual
3907 virtualy virtually
3908 virutally virtually
3909 visable visible
3910 visably visibly
3911 visting visiting
3912 vistors visitors
3913 vitories victories
3914 volcanoe volcano
3915 voleyball volleyball
3916 volontary voluntary
3917 volonteer volunteer
3918 volonteered volunteered
3919 volonteering volunteering
3920 volonteers volunteers
3921 volounteer volunteer
3922 volounteered volunteered
3923 volounteering volunteering
3924 volounteers volunteers
3925 vreity variety
3926 vrey very
3927 vriety variety
3928 vulnerablility vulnerability
3929 vyer very
3930 vyre very
3931 waht what
3932 wanna want to
3933 warantee warranty
3934 wardobe wardrobe
3935 warrent warrant
3936 warrriors warriors
3937 wasnt wasn't
3938 wass was
3939 watn want
3940 wayword wayward
3941 weaponary weaponry
3942 weas was
3943 wehn when
3944 weild wield, wild
3945 weilded wielded
3946 wendsay Wednesday
3947 wensday Wednesday
3948 wereabouts whereabouts
3949 whant want
3950 whants wants
3951 whcih which
3952 wheras whereas
3953 wherease whereas
3954 whereever wherever
3955 whic which
3956 whihc which
3957 whith with
3958 whlch which
3959 whn when
3960 wholey wholly
3961 wholy wholly, holy
3962 whta what
3963 whther whether
3964 wich which, witch
3965 widesread widespread
3966 wief wife
3967 wierd weird
3968 wiew view
3969 wih with
3970 wiht with
3971 wille will
3972 willingless willingness
3973 wirting writing
3974 withdrawl withdrawal, withdraw
3975 witheld withheld
3976 withing within
3977 withold withhold
3978 witht with
3979 witn with
3980 wiull will
3981 wnat want
3982 wnated wanted
3983 wnats wants
3984 wohle whole
3985 wokr work
3986 wokring working
3987 wonderfull wonderful
3988 workststion workstation
3989 worls world
3990 wordlwide worldwide
3991 worshipper worshiper
3992 worshipping worshiping
3993 worstened worsened
3994 woudl would
3995 wresters wrestlers
3996 wriet write
3997 writen written
3998 wroet wrote
3999 wrok work
4000 wroking working
4001 ws was
4002 wtih with
4003 wupport support
4004 xenophoby xenophobia
4005 yaching yachting
4006 yatch yacht
4007 yeasr years
4008 yeild yield
4009 yeilding yielding
4010 Yementite Yemenite, Yemeni
4011 yearm year
4012 yera year
4013 yeras years
4014 yersa years
4015 youseff yousef
4016 youself yourself
4017 ytou you
4018 yuo you
4019 joo you
4020 zeebra zebra
4021
4022 [[Category:Wikipedia tools]]
+0
-4
tests/suggestiontest/.gitignore less more
0 result.aspell
1 result.hunspell
2 List_of_common_misspellings.txt.*
3 x.*
+0
-4023
tests/suggestiontest/List_of_common_misspellings.txt less more
0 # source: http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
1 # released under the Creative Commons Attribution-Share-Alike License 3.0
2 # http://creativecommons.org/licenses/by-sa/3.0/
3
4 abandonned abandoned
5 aberation aberration
6 abilties abilities
7 abilty ability
8 abondon abandon
9 abondoned abandoned
10 abondoning abandoning
11 abondons abandons
12 aborigene aborigine
13 abortificant abortifacient
14 abreviated abbreviated
15 abreviation abbreviation
16 abritrary arbitrary
17 absense absence
18 absolutly absolutely
19 absorbsion absorption
20 absorbtion absorption
21 abundacies abundances
22 abundancies abundances
23 abundunt abundant
24 abutts abuts
25 acadamy academy
26 acadmic academic
27 accademic academic
28 accademy academy
29 acccused accused
30 accelleration acceleration
31 accension accession, ascension
32 acceptence acceptance
33 acceptible acceptable
34 accessable accessible
35 accidentaly accidentally
36 accidently accidentally
37 acclimitization acclimatization
38 acommodate accommodate
39 accomadate accommodate
40 accomadated accommodated
41 accomadates accommodates
42 accomadating accommodating
43 accomadation accommodation
44 accomadations accommodations
45 accomdate accommodate
46 accomodate accommodate
47 accomodated accommodated
48 accomodates accommodates
49 accomodating accommodating
50 accomodation accommodation
51 accomodations accommodations
52 accompanyed accompanied
53 accordeon accordion
54 accordian accordion
55 accoring according
56 accoustic acoustic
57 accquainted acquainted
58 accross across
59 accussed accused
60 acedemic academic
61 acheive achieve
62 acheived achieved
63 acheivement achievement
64 acheivements achievements
65 acheives achieves
66 acheiving achieving
67 acheivment achievement
68 acheivments achievements
69 achievment achievement
70 achievments achievements
71 achive achieve, archive
72 achived achieved, archived
73 achivement achievement
74 achivements achievements
75 acknowldeged acknowledged
76 acknowledgeing acknowledging
77 ackward awkward, backward
78 acomplish accomplish
79 acomplished accomplished
80 acomplishment accomplishment
81 acomplishments accomplishments
82 acording according
83 acordingly accordingly
84 acquaintence acquaintance
85 acquaintences acquaintances
86 acquiantence acquaintance
87 acquiantences acquaintances
88 acquited acquitted
89 activites activities
90 activly actively
91 actualy actually
92 acuracy accuracy
93 acused accused
94 acustom accustom
95 acustommed accustomed
96 adavanced advanced
97 adbandon abandon
98 additinally additionally
99 additionaly additionally
100 addmission admission
101 addopt adopt
102 addopted adopted
103 addoptive adoptive
104 addres address, adders
105 addresable addressable
106 addresed addressed
107 addresing addressing
108 addressess addresses
109 addtion addition
110 addtional additional
111 adecuate adequate
112 adhearing adhering
113 adherance adherence
114 admendment amendment
115 admininistrative administrative
116 adminstered administered
117 adminstrate administrate
118 adminstration administration
119 adminstrative administrative
120 adminstrator administrator
121 admissability admissibility
122 admissable admissible
123 admited admitted
124 admitedly admittedly
125 adn and
126 adolecent adolescent
127 adquire acquire
128 adquired acquired
129 adquires acquires
130 adquiring acquiring
131 adres address
132 adresable addressable
133 adresing addressing
134 adress address
135 adressable addressable
136 adressed addressed
137 adressing addressing, dressing
138 adventrous adventurous
139 advertisment advertisement
140 advertisments advertisements
141 advesary adversary
142 adviced advised
143 aeriel aerial
144 aeriels aerials
145 afair affair
146 afficianados aficionados
147 afficionado aficionado
148 afficionados aficionados
149 affilate affiliate
150 affilliate affiliate
151 affort afford, effort
152 aforememtioned aforementioned
153 againnst against
154 agains against
155 agaisnt against
156 aganist against
157 aggaravates aggravates
158 aggreed agreed
159 aggreement agreement
160 aggregious egregious
161 aggresive aggressive
162 agian again
163 agianst against
164 agin again
165 agina again, angina
166 aginst against
167 agravate aggravate
168 agre agree
169 agred agreed
170 agreeement agreement
171 agreemnt agreement
172 agregate aggregate
173 agregates aggregates
174 agreing agreeing
175 agression aggression
176 agressive aggressive
177 agressively aggressively
178 agressor aggressor
179 agricuture agriculture
180 agrieved aggrieved
181 ahev have
182 ahppen happen
183 ahve have
184 aicraft aircraft
185 aiport airport
186 airbourne airborne
187 aircaft aircraft
188 aircrafts aircraft
189 airporta airports
190 airrcraft aircraft
191 aisian asian
192 albiet albeit
193 alchohol alcohol
194 alchoholic alcoholic
195 alchol alcohol
196 alcholic alcoholic
197 alcohal alcohol
198 alcoholical alcoholic
199 aledge allege
200 aledged alleged
201 aledges alleges
202 alege allege
203 aleged alleged
204 alegience allegiance
205 algebraical algebraic
206 algorhitms algorithms
207 algoritm algorithm
208 algoritms algorithms
209 alientating alienating
210 alledge allege
211 alledged alleged
212 alledgedly allegedly
213 alledges alleges
214 allegedely allegedly
215 allegedy allegedly
216 allegely allegedly
217 allegence allegiance
218 allegience allegiance
219 allign align
220 alligned aligned
221 alliviate alleviate
222 allopone allophone
223 allopones allophones
224 allready already
225 allthough although
226 alltime all-time
227 alltogether altogether
228 almsot almost
229 alochol alcohol
230 alomst almost
231 alot a lot, allot
232 alotted allotted
233 alowed allowed
234 alowing allowing
235 alreayd already
236 alse else
237 alsot also
238 alternitives alternatives
239 altho although
240 althought although
241 altough although
242 alusion allusion, illusion
243 alwasy always
244 alwyas always
245 amalgomated amalgamated
246 amatuer amateur
247 amature armature, amateur
248 amendmant amendment
249 amerliorate ameliorate
250 amke make
251 amking making
252 ammend amend
253 ammended amended
254 ammendment amendment
255 ammendments amendments
256 ammount amount
257 ammused amused
258 amoung among
259 amoungst amongst
260 amung among
261 analagous analogous
262 analitic analytic
263 analogeous analogous
264 anarchim anarchism
265 anarchistm anarchism
266 anbd and
267 ancestory ancestry
268 ancilliary ancillary
269 androgenous androgynous
270 androgeny androgyny
271 anihilation annihilation
272 aniversary anniversary
273 annoint anoint
274 annointed anointed
275 annointing anointing
276 annoints anoints
277 annouced announced
278 annualy annually
279 annuled annulled
280 anohter another
281 anomolies anomalies
282 anomolous anomalous
283 anomoly anomaly
284 anonimity anonymity
285 anounced announced
286 ansalisation nasalisation
287 ansalization nasalization
288 ansestors ancestors
289 antartic antarctic
290 anthromorphization anthropomorphization
291 anual annual, anal
292 anulled annulled
293 anwsered answered
294 anyhwere anywhere
295 anyother any other
296 anytying anything
297 aparent apparent
298 aparment apartment
299 apenines apennines, Apennines
300 aplication application
301 aplied applied
302 apolegetics apologetics
303 apon upon, apron
304 apparant apparent
305 apparantly apparently
306 appart apart
307 appartment apartment
308 appartments apartments
309 appealling appealing, appalling
310 appeareance appearance
311 appearence appearance
312 appearences appearances
313 appenines apennines, Apennines
314 apperance appearance
315 apperances appearances
316 applicaiton application
317 applicaitons applications
318 appologies apologies
319 appology apology
320 apprearance appearance
321 apprieciate appreciate
322 approachs approaches
323 appropiate appropriate
324 appropraite appropriate
325 appropropiate appropriate
326 approproximate approximate
327 approxamately approximately
328 approxiately approximately
329 approximitely approximately
330 aprehensive apprehensive
331 apropriate appropriate
332 aproximate approximate
333 aproximately approximately
334 aquaintance acquaintance
335 aquainted acquainted
336 aquiantance acquaintance
337 aquire acquire
338 aquired acquired
339 aquiring acquiring
340 aquisition acquisition
341 aquitted acquitted
342 aranged arranged
343 arangement arrangement
344 arbitarily arbitrarily
345 arbitary arbitrary
346 archaelogists archaeologists
347 archaelogy archaeology
348 archaoelogy archeology, archaeology
349 archaology archeology, archaeology
350 archeaologist archeologist, archaeologist
351 archeaologists archeologists, archaeologists
352 archetect architect
353 archetects architects
354 archetectural architectural
355 archetecturally architecturally
356 archetecture architecture
357 archiac archaic
358 archictect architect
359 archimedian archimedean
360 architechturally architecturally
361 architechture architecture
362 architechtures architectures
363 architectual architectural
364 archtype archetype
365 archtypes archetypes
366 aready already
367 areodynamics aerodynamics
368 argubly arguably
369 arguement argument
370 arguements arguments
371 arised arose
372 arival arrival
373 armamant armament
374 armistace armistice
375 aroud around
376 arrangment arrangement
377 arrangments arrangements
378 arround around
379 artical article
380 artice article
381 articel article
382 artifical artificial
383 artifically artificially
384 artillary artillery
385 arund around
386 asetic ascetic
387 asign assign
388 aslo also
389 asociated associated
390 asorbed absorbed
391 asphyxation asphyxiation
392 assasin assassin
393 assasinate assassinate
394 assasinated assassinated
395 assasinates assassinates
396 assasination assassination
397 assasinations assassinations
398 assasined assassinated
399 assasins assassins
400 assassintation assassination
401 assemple assemble
402 assertation assertion
403 asside aside
404 assisnate assassinate
405 assit assist
406 assitant assistant
407 assocation association
408 assoicate associate
409 assoicated associated
410 assoicates associates
411 assosication assassination
412 asssassans assassins
413 assualt assault
414 assualted assaulted
415 assymetric asymmetric
416 assymetrical asymmetrical
417 asteriod asteroid
418 asthetic aesthetic
419 asthetical aesthetical
420 asthetically aesthetically
421 asume assume
422 aswell as well
423 atain attain
424 atempting attempting
425 atheistical atheistic
426 athenean athenian
427 atheneans athenians
428 athiesm atheism
429 athiest atheist
430 atorney attorney
431 atribute attribute
432 atributed attributed
433 atributes attributes
434 attaindre attainder, attained
435 attemp attempt
436 attemped attempted
437 attemt attempt
438 attemted attempted
439 attemting attempting
440 attemts attempts
441 attendence attendance
442 attendent attendant
443 attendents attendants
444 attened attended
445 attension attention
446 attitide attitude
447 attributred attributed
448 attrocities atrocities
449 audeince audience
450 auromated automated
451 austrailia Australia
452 austrailian Australian
453 auther author
454 authobiographic autobiographic
455 authobiography autobiography
456 authorative authoritative
457 authorites authorities
458 authorithy authority
459 authoritiers authorities
460 authoritive authoritative
461 authrorities authorities
462 autochtonous autochthonous
463 autoctonous autochthonous
464 automaticly automatically
465 automibile automobile
466 automonomous autonomous
467 autor author
468 autority authority
469 auxilary auxiliary
470 auxillaries auxiliaries
471 auxillary auxiliary
472 auxilliaries auxiliaries
473 auxilliary auxiliary
474 availablity availability
475 availaible available
476 availble available
477 availiable available
478 availible available
479 avalable available
480 avalance avalanche
481 avaliable available
482 avation aviation
483 avengence a vengeance
484 averageed averaged
485 avilable available
486 awared awarded
487 awya away
488 baceause because
489 backgorund background
490 backrounds backgrounds
491 bakc back
492 banannas bananas
493 bandwith bandwidth
494 bankrupcy bankruptcy
495 banruptcy bankruptcy
496 baout about, bout
497 basicaly basically
498 basicly basically
499 bcak back
500 beachead beachhead
501 beacuse because
502 beastiality bestiality
503 beatiful beautiful
504 beaurocracy bureaucracy
505 beaurocratic bureaucratic
506 beautyfull beautiful
507 becamae became
508 becasue because
509 beccause because
510 becomeing becoming
511 becomming becoming
512 becouse because
513 becuase because
514 bedore before
515 befoer before
516 beggin begin, begging
517 begginer beginner
518 begginers beginners
519 beggining beginning
520 begginings beginnings
521 beggins begins
522 begining beginning
523 beginnig beginning
524 behavour behavior, behaviour
525 beleagured beleaguered
526 beleif belief
527 beleive believe
528 beleived believed
529 beleives believes
530 beleiving believing
531 beligum belgium
532 belive believe
533 belived believed
534 belives believes, beliefs
535 belligerant belligerent
536 bellweather bellwether
537 bemusemnt bemusement
538 beneficary beneficiary
539 beng being
540 benificial beneficial
541 benifit benefit
542 benifits benefits
543 bergamont bergamot
544 Bernouilli Bernoulli
545 beseige besiege
546 beseiged besieged
547 beseiging besieging
548 betwen between
549 beween between
550 bewteen between
551 bilateraly bilaterally
552 billingualism bilingualism
553 binominal binomial
554 bizzare bizarre
555 blaim blame
556 blaimed blamed
557 blessure blessing
558 Blitzkreig Blitzkrieg
559 boaut bout, boat, about
560 bodydbuilder bodybuilder
561 bombardement bombardment
562 bombarment bombardment
563 bondary boundary
564 Bonnano Bonanno
565 borke broke
566 boundry boundary
567 bouyancy buoyancy
568 bouyant buoyant
569 boyant buoyant
570 Brasillian Brazilian
571 breakthough breakthrough
572 breakthroughts breakthroughs
573 breif brief
574 breifly briefly
575 brethen brethren
576 bretheren brethren
577 briliant brilliant
578 brillant brilliant
579 brimestone brimstone
580 Britian Britain
581 Brittish British
582 broacasted broadcast
583 broadacasting broadcasting
584 broady broadly
585 Buddah Buddha
586 buisness business
587 buisnessman businessman
588 buoancy buoyancy
589 buring burying, burning, burin, during
590 burried buried
591 busineses business, businesses
592 busness business
593 bussiness business
594 cacuses caucuses
595 cahracters characters
596 calaber caliber
597 calander calendar, calender, colander
598 calculs calculus
599 calenders calendars
600 caligraphy calligraphy
601 caluclate calculate
602 caluclated calculated
603 caluculate calculate
604 caluculated calculated
605 calulate calculate
606 calulated calculated
607 Cambrige Cambridge
608 camoflage camouflage
609 campain campaign
610 campains campaigns
611 candadate candidate
612 candiate candidate
613 candidiate candidate
614 cannister canister
615 cannisters canisters
616 cannnot cannot
617 cannonical canonical
618 cannotation connotation
619 cannotations connotations
620 cant cannot, can not, can't
621 caost coast
622 caperbility capability
623 Capetown Cape Town
624 capible capable
625 captial capital
626 captued captured
627 capturd captured
628 carachter character
629 caracterized characterized
630 carcas carcass, Caracas
631 carefull careful
632 careing caring
633 carismatic charismatic
634 Carmalite Carmelite
635 carmel caramel, carmel-by-the-sea
636 carniverous carnivorous
637 carreer career
638 carrers careers
639 Carribbean Caribbean
640 Carribean Caribbean
641 cartdridge cartridge
642 Carthagian Carthaginian
643 carthographer cartographer
644 cartilege cartilage
645 cartilidge cartilage
646 cartrige cartridge
647 casette cassette
648 casion caisson
649 cassawory cassowary
650 cassowarry cassowary
651 casulaties casualties
652 casulaty casualty
653 catagories categories
654 catagorized categorized
655 catagory category
656 catergorize categorize
657 catergorized categorized
658 Cataline Catiline, Catalina
659 cathlic catholic
660 catholocism catholicism
661 catterpilar caterpillar
662 catterpilars caterpillars
663 cattleship battleship
664 causalities casualties
665 Ceasar Caesar
666 Celcius Celsius
667 cellpading cellpadding
668 cementary cemetery
669 cemetarey cemetery
670 cemetaries cemeteries
671 cemetary cemetery
672 cencus census
673 censur censor, censure
674 cententenial centennial
675 centruies centuries
676 centruy century
677 ceratin certain, keratin
678 cerimonial ceremonial
679 cerimonies ceremonies
680 cerimonious ceremonious
681 cerimony ceremony
682 ceromony ceremony
683 certainity certainty
684 certian certain
685 cervial cervical, servile, serval
686 chalenging challenging
687 challange challenge
688 challanged challenged
689 challege challenge
690 Champange Champagne
691 changable changeable
692 charachter character
693 charactor character
694 charachters characters
695 charactersistic characteristic
696 charactors characters
697 charasmatic charismatic
698 charaterized characterized
699 chariman chairman
700 charistics characteristics
701 chasr chaser, chase
702 cheif chief
703 chemcial chemical
704 chemcially chemically
705 chemestry chemistry
706 chemicaly chemically
707 childbird childbirth
708 childen children
709 choosen chosen
710 chracter character
711 chuch church
712 churchs churches
713 Cincinatti Cincinnati
714 Cincinnatti Cincinnati
715 circulaton circulation
716 circumsicion circumcision
717 circut circuit
718 ciricuit circuit
719 ciriculum curriculum
720 civillian civilian
721 claer clear
722 claerer clearer
723 claerly clearly
724 claimes claims
725 clas class
726 clasic classic
727 clasical classical
728 clasically classically
729 cleareance clearance
730 clera clear, sclera
731 clincial clinical
732 clinicaly clinically
733 cmo com
734 cmoputer computer
735 co-incided coincided
736 coctail cocktail
737 coform conform
738 cognizent cognizant
739 coincedentally coincidentally
740 colaborations collaborations
741 colateral collateral
742 colelctive collective
743 collaberative collaborative
744 collecton collection
745 collegue colleague
746 collegues colleagues
747 collonade colonnade
748 collonies colonies
749 collony colony
750 collosal colossal
751 colonizators colonizers
752 comander commander, commandeer
753 comando commando
754 comandos commandos
755 comany company
756 comapany company
757 comback comeback
758 combanations combinations
759 combinatins combinations
760 combusion combustion
761 comdemnation condemnation
762 comemmorates commemorates
763 comemoretion commemoration
764 comision commission
765 comisioned commissioned
766 comisioner commissioner
767 comisioning commissioning
768 comisions commissions
769 comission commission
770 comissioned commissioned
771 comissioner commissioner
772 comissioning commissioning
773 comissions commissions
774 comited committed
775 comiting committing
776 comitted committed
777 comittee committee
778 comitting committing
779 commandoes commandos
780 commedic comedic
781 commemerative commemorative
782 commemmorate commemorate
783 commemmorating commemorating
784 commerical commercial
785 commerically commercially
786 commericial commercial
787 commericially commercially
788 commerorative commemorative
789 comming coming
790 comminication communication
791 commision commission
792 commisioned commissioned
793 commisioner commissioner
794 commisioning commissioning
795 commisions commissions
796 commited committed
797 commitee committee
798 commiting committing
799 committe committee
800 committment commitment
801 committments commitments
802 commmemorated commemorated
803 commongly commonly
804 commonweath commonwealth
805 commuications communications
806 commuinications communications
807 communciation communication
808 communiation communication
809 communites communities
810 compability compatibility
811 comparision comparison
812 comparisions comparisons
813 comparitive comparative
814 comparitively comparatively
815 compatabilities compatibilities
816 compatability compatibility
817 compatable compatible
818 compatablities compatibilities
819 compatablity compatibility
820 compatiable compatible
821 compatiblities compatibilities
822 compatiblity compatibility
823 compeitions competitions
824 compensantion compensation
825 competance competence
826 competant competent
827 competative competitive
828 competion competition, completion
829 competitiion competition
830 competive competitive
831 competiveness competitiveness
832 comphrehensive comprehensive
833 compitent competent
834 completedthe completed the
835 completelyl completely
836 completetion completion
837 complier compiler
838 componant component
839 comprable comparable
840 comprimise compromise
841 compulsary compulsory
842 compulsery compulsory
843 computarized computerized
844 concensus consensus
845 concider consider
846 concidered considered
847 concidering considering
848 conciders considers
849 concieted conceited
850 concieved conceived
851 concious conscious
852 conciously consciously
853 conciousness consciousness
854 condamned condemned
855 condemmed condemned
856 condidtion condition
857 condidtions conditions
858 conditionsof conditions of
859 conected connected
860 conection connection
861 conesencus consensus
862 confidental confidential
863 confidentally confidentially
864 confids confides
865 configureable configurable
866 confortable comfortable
867 congradulations congratulations
868 congresional congressional
869 conived connived
870 conjecutre conjecture
871 conjuction conjunction
872 Conneticut Connecticut
873 conotations connotations
874 conquerd conquered
875 conquerer conqueror
876 conquerers conquerors
877 conqured conquered
878 conscent consent
879 consciouness consciousness
880 consdider consider
881 consdidered considered
882 consdiered considered
883 consectutive consecutive
884 consenquently consequently
885 consentrate concentrate
886 consentrated concentrated
887 consentrates concentrates
888 consept concept
889 consequentually consequently
890 consequeseces consequences
891 consern concern
892 conserned concerned
893 conserning concerning
894 conservitive conservative
895 consiciousness consciousness
896 consicousness consciousness
897 considerd considered
898 consideres considered
899 consious conscious
900 consistant consistent
901 consistantly consistently
902 consituencies constituencies
903 consituency constituency
904 consituted constituted
905 consitution constitution
906 consitutional constitutional
907 consolodate consolidate
908 consolodated consolidated
909 consonent consonant
910 consonents consonants
911 consorcium consortium
912 conspiracys conspiracies
913 conspiriator conspirator
914 constaints constraints
915 constanly constantly
916 constarnation consternation
917 constatn constant
918 constinually continually
919 constituant constituent
920 constituants constituents
921 constituion constitution
922 constituional constitutional
923 consttruction construction
924 constuction construction
925 consulant consultant
926 consumate consummate
927 consumated consummated
928 contaiminate contaminate
929 containes contains
930 contamporaries contemporaries
931 contamporary contemporary
932 contempoary contemporary
933 contemporaneus contemporaneous
934 contempory contemporary
935 contendor contender
936 contined continued
937 continous continuous
938 continously continuously
939 continueing continuing
940 contravercial controversial
941 contraversy controversy
942 contributer contributor
943 contributers contributors
944 contritutions contributions
945 controled controlled
946 controling controlling
947 controll control
948 controlls controls
949 controvercial controversial
950 controvercy controversy
951 controveries controversies
952 controversal controversial
953 controversey controversy
954 controvertial controversial
955 controvery controversy
956 contruction construction
957 conveinent convenient
958 convenant covenant
959 convential conventional
960 convertables convertibles
961 convertion conversion
962 conveyer conveyor
963 conviced convinced
964 convienient convenient
965 coordiantion coordination
966 coorperation cooperation, corporation
967 coorperations corporations
968 copmetitors competitors
969 coputer computer
970 copywrite copyright
971 coridal cordial
972 cornmitted committed
973 corosion corrosion
974 corparate corporate
975 corperations corporations
976 correcters correctors
977 correponding corresponding
978 correposding corresponding
979 correspondant correspondent
980 correspondants correspondents
981 corridoors corridors
982 corrispond correspond
983 corrispondant correspondent
984 corrispondants correspondents
985 corrisponded corresponded
986 corrisponding corresponding
987 corrisponds corresponds
988 costitution constitution
989 coucil council
990 coudl could, cloud
991 councellor councillor, counselor, councilor
992 councellors councillors, counselors, councilors
993 counries countries
994 countains contains
995 countires countries
996 coururier courier, couturier
997 coverted converted, covered, coveted
998 cpoy coy, copy
999 creaeted created
1000 creedence credence
1001 critereon criterion
1002 criterias criteria
1003 criticists critics
1004 critising criticising, criticizing
1005 critisising criticising
1006 critisism criticism
1007 critisisms criticisms
1008 critisize criticise, criticize
1009 critisized criticised, criticized
1010 critisizes criticises, criticizes
1011 critisizing criticising, criticizing
1012 critized criticized
1013 critizing criticizing
1014 crockodiles crocodiles
1015 crowm crown
1016 crtical critical
1017 crticised criticised
1018 crucifiction crucifixion
1019 crusies cruises
1020 crystalisation crystallisation
1021 culiminating culminating
1022 cumulatative cumulative
1023 curch church
1024 curcuit circuit
1025 currenly currently
1026 curriculem curriculum
1027 cxan cyan
1028 cyclinder cylinder
1029 dael deal, dial, dahl
1030 dalmation dalmatian
1031 damenor demeanor
1032 Dardenelles Dardanelles
1033 dacquiri daiquiri
1034 debateable debatable
1035 decendant descendant
1036 decendants descendants
1037 decendent descendant
1038 decendents descendants
1039 decideable decidable
1040 decidely decidedly
1041 decieved deceived
1042 decison decision
1043 decomissioned decommissioned
1044 decomposit decompose
1045 decomposited decomposed
1046 decompositing decomposing
1047 decomposits decomposes
1048 decress decrees
1049 decribe describe
1050 decribed described
1051 decribes describes
1052 decribing describing
1053 dectect detect
1054 defendent defendant
1055 defendents defendants
1056 deffensively defensively
1057 deffine define
1058 deffined defined
1059 definance defiance
1060 definate definite
1061 definately definitely
1062 definatly definitely
1063 definetly definitely
1064 definining defining
1065 definit definite
1066 definitly definitely
1067 definiton definition
1068 defintion definition
1069 degrate degrade
1070 delagates delegates
1071 delapidated dilapidated
1072 delerious delirious
1073 delevopment development
1074 deliberatly deliberately
1075 delusionally delusively
1076 demenor demeanor
1077 demographical demographic
1078 demolision demolition
1079 demorcracy democracy
1080 demostration demonstration
1081 denegrating denigrating
1082 densly densely
1083 deparment department
1084 deparments departments
1085 deparmental departmental
1086 dependance dependence
1087 dependancy dependency
1088 dependant dependent
1089 deram dram, dream
1090 deriviated derived
1091 derivitive derivative
1092 derogitory derogatory
1093 descendands descendants
1094 descibed described
1095 descision decision
1096 descisions decisions
1097 descriibes describes
1098 descripters descriptors
1099 descripton description
1100 desctruction destruction
1101 descuss discuss
1102 desgined designed
1103 deside decide
1104 desigining designing
1105 desinations destinations
1106 desintegrated disintegrated
1107 desintegration disintegration
1108 desireable desirable
1109 desitned destined
1110 desktiop desktop
1111 desorder disorder
1112 desoriented disoriented
1113 desparate desperate, disparate
1114 despatched dispatched
1115 despict depict
1116 despiration desperation
1117 dessicated desiccated
1118 dessigned designed
1119 destablized destabilized
1120 destory destroy
1121 detailled detailed
1122 detatched detached
1123 deteoriated deteriorated
1124 deteriate deteriorate
1125 deterioriating deteriorating
1126 determinining determining
1127 detremental detrimental
1128 devasted devastated
1129 develope develop
1130 developement development
1131 developped developed
1132 develpment development
1133 devels delves
1134 devestated devastated
1135 devestating devastating
1136 devide divide
1137 devided divided
1138 devistating devastating
1139 devolopement development
1140 diablical diabolical
1141 diamons diamonds
1142 diaster disaster
1143 dichtomy dichotomy
1144 diconnects disconnects
1145 dicover discover
1146 dicovered discovered
1147 dicovering discovering
1148 dicovers discovers
1149 dicovery discovery
1150 dicussed discussed
1151 didnt didn't
1152 diea idea, die
1153 dieing dying, dyeing
1154 dieties deities
1155 diety deity
1156 diferent different
1157 diferrent different
1158 differentiatiations differentiations
1159 differnt different
1160 difficulity difficulty
1161 diffrent different
1162 dificulties difficulties
1163 dificulty difficulty
1164 dimenions dimensions
1165 dimention dimension
1166 dimentional dimensional
1167 dimentions dimensions
1168 dimesnional dimensional
1169 diminuitive diminutive
1170 diosese diocese
1171 diphtong diphthong
1172 diphtongs diphthongs
1173 diplomancy diplomacy
1174 dipthong diphthong
1175 dipthongs diphthongs
1176 dirived derived
1177 disagreeed disagreed
1178 disapeared disappeared
1179 disapointing disappointing
1180 disappearred disappeared
1181 disaproval disapproval
1182 disasterous disastrous
1183 disatisfaction dissatisfaction
1184 disatisfied dissatisfied
1185 disatrous disastrous
1186 discontentment discontent
1187 discribe describe
1188 discribed described
1189 discribes describes
1190 discribing describing
1191 disctinction distinction
1192 disctinctive distinctive
1193 disemination dissemination
1194 disenchanged disenchanted
1195 disiplined disciplined
1196 disobediance disobedience
1197 disobediant disobedient
1198 disolved dissolved
1199 disover discover
1200 dispair despair
1201 disparingly disparagingly
1202 dispence dispense
1203 dispenced dispensed
1204 dispencing dispensing
1205 dispicable despicable
1206 dispite despite
1207 dispostion disposition
1208 disproportiate disproportionate
1209 disputandem disputandum
1210 disricts districts
1211 dissagreement disagreement
1212 dissapear disappear
1213 dissapearance disappearance
1214 dissapeared disappeared
1215 dissapearing disappearing
1216 dissapears disappears
1217 dissappear disappear
1218 dissappears disappears
1219 dissappointed disappointed
1220 dissarray disarray
1221 dissobediance disobedience
1222 dissobediant disobedient
1223 dissobedience disobedience
1224 dissobedient disobedient
1225 distiction distinction
1226 distingish distinguish
1227 distingished distinguished
1228 distingishes distinguishes
1229 distingishing distinguishing
1230 distingquished distinguished
1231 distrubution distribution
1232 distruction destruction
1233 distructive destructive
1234 ditributed distributed
1235 diversed diverse, diverged
1236 divice device
1237 divison division
1238 divisons divisions
1239 doccument document
1240 doccumented documented
1241 doccuments documents
1242 docrines doctrines
1243 doctines doctrines
1244 documenatry documentary
1245 doens does
1246 doesnt doesn't
1247 doign doing
1248 dominaton domination
1249 dominent dominant
1250 dominiant dominant
1251 donig doing
1252 dosen't doesn't
1253 doub doubt, daub
1254 doulbe double
1255 dowloads downloads
1256 dramtic dramatic
1257 draughtman draughtsman
1258 Dravadian Dravidian
1259 dreasm dreams
1260 driectly directly
1261 drnik drink
1262 druming drumming
1263 drummless drumless
1264 dupicate duplicate
1265 durig during
1266 durring during
1267 duting during
1268 dyas dryas
1269 eahc each
1270 ealier earlier
1271 earlies earliest
1272 earnt earned
1273 ecclectic eclectic
1274 eceonomy economy
1275 ecidious deciduous
1276 eclispe eclipse
1277 ecomonic economic
1278 ect etc
1279 eearly early
1280 efel evil
1281 effeciency efficiency
1282 effecient efficient
1283 effeciently efficiently
1284 efficency efficiency
1285 efficent efficient
1286 efficently efficiently
1287 efford effort, afford
1288 effords efforts, affords
1289 effulence effluence
1290 eigth eighth, eight
1291 eiter either
1292 elction election
1293 electic eclectic, electric
1294 electon election, electron
1295 electrial electrical
1296 electricly electrically
1297 electricty electricity
1298 elementay elementary
1299 eleminated eliminated
1300 eleminating eliminating
1301 eles eels
1302 eletricity electricity
1303 elicided elicited
1304 eligable eligible
1305 elimentary elementary
1306 ellected elected
1307 elphant elephant
1308 embarass embarrass
1309 embarassed embarrassed
1310 embarassing embarrassing
1311 embarassment embarrassment
1312 embargos embargoes
1313 embarras embarrass
1314 embarrased embarrassed
1315 embarrasing embarrassing
1316 embarrasment embarrassment
1317 embezelled embezzled
1318 emblamatic emblematic
1319 eminate emanate
1320 eminated emanated
1321 emision emission
1322 emited emitted
1323 emiting emitting
1324 emition emission, emotion
1325 emmediately immediately
1326 emmigrated emigrated
1327 emminent eminent, imminent
1328 emminently eminently
1329 emmisaries emissaries
1330 emmisarries emissaries
1331 emmisarry emissary
1332 emmisary emissary
1333 emmision emission
1334 emmisions emissions
1335 emmited emitted
1336 emmiting emitting
1337 emmitted emitted
1338 emmitting emitting
1339 emnity enmity
1340 emperical empirical
1341 emphaised emphasised
1342 emphsis emphasis
1343 emphysyma emphysema
1344 empirial empirical, imperial
1345 emprisoned imprisoned
1346 enameld enameled
1347 enchancement enhancement
1348 encouraing encouraging
1349 encryptiion encryption
1350 encylopedia encyclopedia
1351 endevors endeavors
1352 endevour endeavour
1353 endig ending
1354 endolithes endoliths
1355 enduce induce
1356 ened need
1357 enflamed inflamed
1358 enforceing enforcing
1359 engagment engagement
1360 engeneer engineer
1361 engeneering engineering
1362 engieneer engineer
1363 engieneers engineers
1364 enlargment enlargement
1365 enlargments enlargements
1366 Enlish English, enlist
1367 enourmous enormous
1368 enourmously enormously
1369 ensconsed ensconced
1370 entaglements entanglements
1371 enteratinment entertainment
1372 entitity entity
1373 entitlied entitled
1374 entrepeneur entrepreneur
1375 entrepeneurs entrepreneurs
1376 enviorment environment
1377 enviormental environmental
1378 enviormentally environmentally
1379 enviorments environments
1380 enviornment environment
1381 enviornmental environmental
1382 enviornmentalist environmentalist
1383 enviornmentally environmentally
1384 enviornments environments
1385 enviroment environment
1386 enviromental environmental
1387 enviromentalist environmentalist
1388 enviromentally environmentally
1389 enviroments environments
1390 envolutionary evolutionary
1391 envrionments environments
1392 enxt next
1393 epidsodes episodes
1394 epsiode episode
1395 equialent equivalent
1396 equilibium equilibrium
1397 equilibrum equilibrium
1398 equiped equipped
1399 equippment equipment
1400 equitorial equatorial
1401 equivelant equivalent
1402 equivelent equivalent
1403 equivilant equivalent
1404 equivilent equivalent
1405 equivlalent equivalent
1406 erally orally, really
1407 eratic erratic
1408 eratically erratically
1409 eraticly erratically
1410 erested arrested, erected
1411 errupted erupted
1412 esential essential
1413 esitmated estimated
1414 esle else
1415 especialy especially
1416 essencial essential
1417 essense essence
1418 essentail essential
1419 essentialy essentially
1420 essentual essential
1421 essesital essential
1422 estabishes establishes
1423 establising establishing
1424 ethnocentricm ethnocentrism
1425 ethose those, ethos
1426 Europian European
1427 Europians Europeans
1428 Eurpean European
1429 Eurpoean European
1430 evenhtually eventually
1431 eventally eventually
1432 eventially eventually
1433 eventualy eventually
1434 everthing everything
1435 everytime every time
1436 everyting everything
1437 eveyr every
1438 evidentally evidently
1439 exagerate exaggerate
1440 exagerated exaggerated
1441 exagerates exaggerates
1442 exagerating exaggerating
1443 exagerrate exaggerate
1444 exagerrated exaggerated
1445 exagerrates exaggerates
1446 exagerrating exaggerating
1447 examinated examined
1448 exampt exempt
1449 exapansion expansion
1450 excact exact
1451 excange exchange
1452 excecute execute
1453 excecuted executed
1454 excecutes executes
1455 excecuting executing
1456 excecution execution
1457 excedded exceeded
1458 excelent excellent
1459 excell excel
1460 excellance excellence
1461 excellant excellent
1462 excells excels
1463 excercise exercise
1464 exchanching exchanging
1465 excisted existed
1466 exculsivly exclusively
1467 execising exercising
1468 exection execution
1469 exectued executed
1470 exeedingly exceedingly
1471 exelent excellent
1472 exellent excellent
1473 exemple example
1474 exept except
1475 exeptional exceptional
1476 exerbate exacerbate
1477 exerbated exacerbated
1478 exerciese exercises
1479 exerpt excerpt
1480 exerpts excerpts
1481 exersize exercise
1482 exerternal external
1483 exhalted exalted
1484 exhibtion exhibition
1485 exibition exhibition
1486 exibitions exhibitions
1487 exicting exciting
1488 exinct extinct
1489 existance existence
1490 existant existent
1491 existince existence
1492 exliled exiled
1493 exludes excludes
1494 exmaple example
1495 exonorate exonerate
1496 exoskelaton exoskeleton
1497 expalin explain
1498 expeced expected
1499 expecially especially
1500 expeditonary expeditionary
1501 expeiments experiments
1502 expell expel
1503 expells expels
1504 experiance experience
1505 experianced experienced
1506 expiditions expeditions
1507 expierence experience
1508 explaination explanation
1509 explaning explaining
1510 explictly explicitly
1511 exploititive exploitative
1512 explotation exploitation
1513 expropiated expropriated
1514 expropiation expropriation
1515 exressed expressed
1516 extemely extremely
1517 extention extension
1518 extentions extensions
1519 extered exerted
1520 extermist extremist
1521 extint extinct, extant
1522 extradiction extradition
1523 extraterrestial extraterrestrial
1524 extraterrestials extraterrestrials
1525 extravagent extravagant
1526 extrememly extremely
1527 extremeophile extremophile
1528 extremly extremely
1529 extrordinarily extraordinarily
1530 extrordinary extraordinary
1531 eyar year, eyas
1532 eyars years, eyas
1533 eyasr years, eyas
1534 faciliate facilitate
1535 faciliated facilitated
1536 faciliates facilitates
1537 facilites facilities
1538 facillitate facilitate
1539 facinated fascinated
1540 facist fascist
1541 familes families
1542 familliar familiar
1543 famoust famous
1544 fanatism fanaticism
1545 Farenheit Fahrenheit
1546 fatc fact
1547 faught fought
1548 favoutrable favourable
1549 feasable feasible
1550 Febuary February
1551 fedreally federally
1552 feromone pheromone
1553 fertily fertility
1554 fianite finite
1555 fianlly finally
1556 ficticious fictitious
1557 fictious fictitious
1558 fidn find
1559 fiel feel, field, file, phial
1560 fiels feels, fields, files, phials
1561 fiercly fiercely
1562 fightings fighting
1563 filiament filament
1564 fimilies families
1565 finacial financial
1566 finaly finally
1567 financialy financially
1568 firends friends
1569 firts flirts, first
1570 fisionable fissionable
1571 flamable flammable
1572 flawess flawless
1573 fleed fled, freed
1574 Flemmish Flemish
1575 florescent fluorescent
1576 flourescent fluorescent
1577 fluorish flourish
1578 follwoing following
1579 folowing following
1580 fomed formed
1581 fomr from, form
1582 fonetic phonetic
1583 fontrier fontier
1584 foootball football
1585 forbad forbade
1586 forbiden forbidden
1587 foreward foreword
1588 forfiet forfeit
1589 forhead forehead
1590 foriegn foreign
1591 Formalhaut Fomalhaut
1592 formallize formalize
1593 formallized formalized
1594 formaly formally
1595 formelly formerly
1596 formidible formidable
1597 formost foremost
1598 forsaw foresaw
1599 forseeable foreseeable
1600 fortelling foretelling
1601 forunner forerunner
1602 foucs focus
1603 foudn found
1604 fougth fought
1605 foundaries foundries
1606 foundary foundry
1607 Foundland Newfoundland
1608 fourties forties
1609 fourty forty
1610 fouth fourth
1611 foward forward
1612 fucntion function
1613 fucntioning functioning
1614 Fransiscan Franciscan
1615 Fransiscans Franciscans
1616 freind friend
1617 freindly friendly
1618 frequentily frequently
1619 frome from
1620 fromed formed
1621 froniter frontier
1622 fufill fulfill
1623 fufilled fulfilled
1624 fulfiled fulfilled
1625 fundametal fundamental
1626 fundametals fundamentals
1627 funguses fungi
1628 funtion function
1629 furuther further
1630 futher further
1631 futhermore furthermore
1632 futhroc futhark, futhorc
1633 gae game, Gael, gale
1634 galatic galactic
1635 Galations Galatians
1636 gallaxies galaxies
1637 galvinized galvanized
1638 Gameboy Game Boy
1639 ganerate generate
1640 ganes games
1641 ganster gangster
1642 garantee guarantee
1643 garanteed guaranteed
1644 garantees guarantees
1645 garnison garrison
1646 gauarana guaraná
1647 gaurantee guarantee
1648 gauranteed guaranteed
1649 gaurantees guarantees
1650 gaurd guard, gourd
1651 gaurentee guarantee
1652 gaurenteed guaranteed
1653 gaurentees guarantees
1654 geneological genealogical
1655 geneologies genealogies
1656 geneology genealogy
1657 generaly generally
1658 generatting generating
1659 genialia genitalia
1660 geographicial geographical
1661 geometrician geometer
1662 geometricians geometers
1663 gerat great
1664 Ghandi Gandhi
1665 glight flight
1666 gnawwed gnawed
1667 godess goddess
1668 godesses goddesses
1669 Godounov Godunov
1670 gogin going, Gauguin
1671 goign going
1672 gonig going
1673 Gothenberg Gothenburg
1674 Gottleib Gottlieb
1675 gouvener governor
1676 govement government
1677 govenment government
1678 govenrment government
1679 goverance governance
1680 goverment government
1681 govermental governmental
1682 governer governor
1683 governmnet government
1684 govorment government
1685 govormental governmental
1686 govornment government
1687 gracefull graceful
1688 graet great
1689 grafitti graffiti
1690 gramatically grammatically
1691 grammaticaly grammatically
1692 grammer grammar
1693 grat great
1694 gratuitious gratuitous
1695 greatful grateful
1696 greatfully gratefully
1697 greif grief
1698 gridles griddles
1699 gropu group
1700 grwo grow
1701 Guaduloupe Guadalupe, Guadeloupe
1702 Guadulupe Guadalupe, Guadeloupe
1703 guage gauge
1704 guarentee guarantee
1705 guarenteed guaranteed
1706 guarentees guarantees
1707 Guatamala Guatemala
1708 Guatamalan Guatemalan
1709 guerilla guerrilla
1710 guerillas guerrillas
1711 guerrila guerrilla
1712 guerrilas guerrillas
1713 guidence guidance
1714 Guilia Giulia
1715 Guilio Giulio
1716 Guiness Guinness
1717 Guiseppe Giuseppe
1718 gunanine guanine
1719 gurantee guarantee
1720 guranteed guaranteed
1721 gurantees guarantees
1722 guttaral guttural
1723 gutteral guttural
1724 habaeus habeas
1725 habeus habeas
1726 Habsbourg Habsburg
1727 haemorrage haemorrhage
1728 haev have, heave
1729 Hallowean Hallowe'en, Halloween
1730 halp help
1731 hapen happen
1732 hapened happened
1733 hapening happening
1734 happend happened
1735 happended happened
1736 happenned happened
1737 harased harassed
1738 harases harasses
1739 harasment harassment
1740 harasments harassments
1741 harassement harassment
1742 harras harass
1743 harrased harassed
1744 harrases harasses
1745 harrasing harassing
1746 harrasment harassment
1747 harrasments harassments
1748 harrassed harassed
1749 harrasses harassed
1750 harrassing harassing
1751 harrassment harassment
1752 harrassments harassments
1753 hasnt hasn't
1754 haviest heaviest
1755 headquater headquarter
1756 headquarer headquarter
1757 headquatered headquartered
1758 headquaters headquarters
1759 healthercare healthcare
1760 heared heard
1761 heathy healthy
1762 Heidelburg Heidelberg
1763 heigher higher
1764 heirarchy hierarchy
1765 heiroglyphics hieroglyphics
1766 helment helmet
1767 helpfull helpful
1768 helpped helped
1769 hemmorhage hemorrhage
1770 herad heard, Hera
1771 heridity heredity
1772 heroe hero
1773 heros heroes
1774 hertzs hertz
1775 hesistant hesitant
1776 heterogenous heterogeneous
1777 hieght height
1778 hierachical hierarchical
1779 hierachies hierarchies
1780 hierachy hierarchy
1781 hierarcical hierarchical
1782 hierarcy hierarchy
1783 hieroglph hieroglyph
1784 hieroglphs hieroglyphs
1785 higer higher
1786 higest highest
1787 higway highway
1788 hillarious hilarious
1789 himselv himself
1790 hinderance hindrance
1791 hinderence hindrance
1792 hindrence hindrance
1793 hipopotamus hippopotamus
1794 hismelf himself
1795 histocompatability histocompatibility
1796 historicians historians
1797 hitsingles hit singles
1798 holliday holiday
1799 homestate home state
1800 homogeneize homogenize
1801 homogeneized homogenized
1802 honory honorary
1803 horrifing horrifying
1804 hosited hoisted
1805 hospitible hospitable
1806 hounour honour
1807 housr hours, house
1808 howver however
1809 hsitorians historians
1810 hstory history
1811 hten then, hen, the
1812 htere there, here
1813 htey they
1814 htikn think
1815 hting thing
1816 htink think
1817 htis this
1818 humer humor, humour
1819 humerous humorous, humerus
1820 huminoid humanoid
1821 humoural humoral
1822 humurous humorous
1823 husban husband
1824 hvae have
1825 hvaing having
1826 hvea have, heave
1827 hwihc which
1828 hwile while
1829 hwole whole
1830 hydogen hydrogen
1831 hydropile hydrophile
1832 hydropilic hydrophilic
1833 hydropobe hydrophobe
1834 hydropobic hydrophobic
1835 hygeine hygiene
1836 hypocracy hypocrisy
1837 hypocrasy hypocrisy
1838 hypocricy hypocrisy
1839 hypocrit hypocrite
1840 hypocrits hypocrites
1841 iconclastic iconoclastic
1842 idaeidae idea
1843 idaes ideas
1844 idealogies ideologies
1845 idealogy ideology
1846 identicial identical
1847 identifers identifiers
1848 ideosyncratic idiosyncratic
1849 idesa ideas, ides
1850 idiosyncracy idiosyncrasy
1851 Ihaca Ithaca
1852 illegimacy illegitimacy
1853 illegitmate illegitimate
1854 illess illness
1855 illiegal illegal
1856 illution illusion
1857 ilness illness
1858 ilogical illogical
1859 imagenary imaginary
1860 imagin imagine
1861 imaginery imaginary, imagery
1862 imanent eminent, imminent
1863 imcomplete incomplete
1864 imediately immediately
1865 imense immense
1866 imigrant emigrant, immigrant
1867 imigrated emigrated, immigrated
1868 imigration emigration, immigration
1869 iminent eminent, imminent, immanent
1870 immediatley immediately
1871 immediatly immediately
1872 immidately immediately
1873 immidiately immediately
1874 immitate imitate
1875 immitated imitated
1876 immitating imitating
1877 immitator imitator
1878 immunosupressant immunosuppressant
1879 impecabbly impeccably
1880 impedence impedance
1881 implamenting implementing
1882 impliment implement
1883 implimented implemented
1884 imploys employs
1885 importamt important
1886 imprioned imprisoned
1887 imprisonned imprisoned
1888 improvision improvisation
1889 improvments improvements
1890 inablility inability
1891 inaccessable inaccessible
1892 inadiquate inadequate
1893 inadquate inadequate
1894 inadvertant inadvertent
1895 inadvertantly inadvertently
1896 inagurated inaugurated
1897 inaguration inauguration
1898 inappropiate inappropriate
1899 inaugures inaugurates
1900 inbalance imbalance
1901 inbalanced imbalanced
1902 inbetween between
1903 incarcirated incarcerated
1904 incidentially incidentally
1905 incidently incidentally
1906 inclreased increased
1907 includ include
1908 includng including
1909 incompatabilities incompatibilities
1910 incompatability incompatibility
1911 incompatable incompatible
1912 incompatablities incompatibilities
1913 incompatablity incompatibility
1914 incompatiblities incompatibilities
1915 incompatiblity incompatibility
1916 incompetance incompetence
1917 incompetant incompetent
1918 incomptable incompatible
1919 incomptetent incompetent
1920 inconsistant inconsistent
1921 incorperation incorporation
1922 incorportaed incorporated
1923 incorprates incorporates
1924 incorruptable incorruptible
1925 incramentally incrementally
1926 increadible incredible
1927 incredable incredible
1928 inctroduce introduce
1929 inctroduced introduced
1930 incuding including
1931 incunabla incunabula
1932 indefinately indefinitely
1933 indefineable undefinable
1934 indefinitly indefinitely
1935 indentical identical
1936 indepedantly independently
1937 indepedence independence
1938 independance independence
1939 independant independent
1940 independantly independently
1941 independece independence
1942 independendet independent
1943 indictement indictment
1944 indigineous indigenous
1945 indipendence independence
1946 indipendent independent
1947 indipendently independently
1948 indespensible indispensable
1949 indespensable indispensable
1950 indispensible indispensable
1951 indisputible indisputable
1952 indisputibly indisputably
1953 indite indict
1954 individualy individually
1955 indpendent independent
1956 indpendently independently
1957 indulgue indulge
1958 indutrial industrial
1959 indviduals individuals
1960 inefficienty inefficiently
1961 inevatible inevitable
1962 inevitible inevitable
1963 inevititably inevitably
1964 infalability infallibility
1965 infallable infallible
1966 infectuous infectious
1967 infered inferred
1968 infilitrate infiltrate
1969 infilitrated infiltrated
1970 infilitration infiltration
1971 infinit infinite
1972 inflamation inflammation
1973 influencial influential
1974 influented influenced
1975 infomation information
1976 informtion information
1977 infrantryman infantryman
1978 infrigement infringement
1979 ingenius ingenious
1980 ingreediants ingredients
1981 inhabitans inhabitants
1982 inherantly inherently
1983 inheritage heritage, inheritance
1984 inheritence inheritance
1985 inital initial
1986 initally initially
1987 initation initiation
1988 initiaitive initiative
1989 inlcuding including
1990 inmigrant immigrant
1991 inmigrants immigrants
1992 innoculated inoculated
1993 inocence innocence
1994 inofficial unofficial
1995 inot into
1996 inpeach impeach
1997 inpolite impolite
1998 inprisonment imprisonment
1999 inproving improving
2000 insectiverous insectivorous
2001 insensative insensitive
2002 inseperable inseparable
2003 insistance insistence
2004 insitution institution
2005 insitutions institutions
2006 inspite in spite, inspire
2007 instade instead
2008 instatance instance
2009 institue institute
2010 instuction instruction
2011 instuments instruments
2012 instutionalized institutionalized
2013 instutions intuitions
2014 insurence insurance
2015 intelectual intellectual
2016 inteligence intelligence
2017 inteligent intelligent
2018 intenational international
2019 intepretation interpretation
2020 intepretator interpretor
2021 interational international
2022 interbread interbreed, interbred
2023 interchangable interchangeable
2024 interchangably interchangeably
2025 intercontinetal intercontinental
2026 intered interred, interned
2027 interelated interrelated
2028 interferance interference
2029 interfereing interfering
2030 intergrated integrated
2031 intergration integration
2032 interm interim
2033 internation international
2034 interpet interpret
2035 interrim interim
2036 interrugum interregnum
2037 intertaining entertaining
2038 interupt interrupt
2039 intervines intervenes
2040 intevene intervene
2041 intial initial
2042 intially initially
2043 intrduced introduced
2044 intrest interest
2045 introdued introduced
2046 intruduced introduced
2047 intrusted entrusted
2048 intutive intuitive
2049 intutively intuitively
2050 inudstry industry
2051 inumerable enumerable, innumerable
2052 inventer inventor
2053 invertibrates invertebrates
2054 investingate investigate
2055 involvment involvement
2056 irelevent irrelevant
2057 iresistable irresistible
2058 iresistably irresistibly
2059 iresistible irresistible
2060 iresistibly irresistibly
2061 iritable irritable
2062 iritated irritated
2063 ironicly ironically
2064 irregardless regardless
2065 irrelevent irrelevant
2066 irreplacable irreplaceable
2067 irresistable irresistible
2068 irresistably irresistibly
2069 isnt isn't
2070 Israelies Israelis
2071 issueing issuing
2072 itnroduced introduced
2073 iunior junior
2074 iwll will
2075 iwth with
2076 Japanes Japanese
2077 jaques jacques
2078 jeapardy jeopardy
2079 jewllery jewellery
2080 Johanine Johannine
2081 Jospeh Joseph
2082 jouney journey
2083 journied journeyed
2084 journies journeys
2085 jstu just
2086 jsut just
2087 Juadaism Judaism
2088 Juadism Judaism
2089 judical judicial
2090 judisuary judiciary
2091 juducial judicial
2092 juristiction jurisdiction
2093 juristictions jurisdictions
2094 kindergarden kindergarten
2095 klenex kleenex
2096 knifes knives
2097 knive knife
2098 knowlege knowledge
2099 knowlegeable knowledgeable
2100 knwo know
2101 knwos knows
2102 konw know
2103 konws knows
2104 kwno know
2105 labatory lavatory, laboratory
2106 labled labelled, labeled
2107 labratory laboratory
2108 laguage language
2109 laguages languages
2110 larg large
2111 largst largest
2112 larrry larry
2113 lastr last
2114 lattitude latitude
2115 launchs launch
2116 launhed launched
2117 lavae larvae
2118 layed laid
2119 lazyness laziness
2120 leaded led
2121 leage league
2122 leanr lean, learn, leaner
2123 leathal lethal
2124 lefted left
2125 legitamate legitimate
2126 legitmate legitimate
2127 leibnitz leibniz
2128 lenght length
2129 leran learn
2130 lerans learns
2131 lieuenant lieutenant
2132 leutenant lieutenant
2133 levetate levitate
2134 levetated levitated
2135 levetates levitates
2136 levetating levitating
2137 levle level
2138 liasion liaison
2139 liason liaison
2140 liasons liaisons
2141 libary library
2142 libell libel
2143 libguistic linguistic
2144 libguistics linguistics
2145 libitarianisn libertarianism
2146 lible libel, liable
2147 lieing lying
2148 liek like
2149 liekd liked
2150 liesure leisure
2151 lieved lived
2152 liftime lifetime
2153 lightyear light year
2154 lightyears light years
2155 likelyhood likelihood
2156 linnaena linnaean
2157 lippizaner lipizzaner
2158 liquify liquefy
2159 liscense license, licence
2160 lisence license, licence
2161 lisense license, licence
2162 listners listeners
2163 litature literature
2164 literture literature
2165 littel little
2166 litterally literally
2167 liuke like
2168 livley lively
2169 lmits limits
2170 loev love
2171 lonelyness loneliness
2172 longitudonal longitudinal
2173 lonley lonely
2174 lonly lonely, only
2175 loosing losing
2176 lotharingen lothringen
2177 lsat last
2178 lukid likud
2179 lveo love
2180 lvoe love
2181 Lybia Libya
2182 mackeral mackerel
2183 magasine magazine
2184 magincian magician
2185 magnificient magnificent
2186 magolia magnolia
2187 mailny mainly
2188 maintainance maintenance
2189 maintainence maintenance
2190 maintance maintenance
2191 maintenence maintenance
2192 maintinaing maintaining
2193 maintioned mentioned
2194 majoroty majority
2195 maked marked, made
2196 makse makes
2197 Malcom Malcolm
2198 maltesian Maltese
2199 mamal mammal
2200 mamalian mammalian
2201 managable manageable, manageably
2202 managment management
2203 manisfestations manifestations
2204 manoeuverability maneuverability
2205 manouver maneuver, manoeuvre
2206 manouverability maneuverability, manoeuvrability, manoeuverability
2207 manouverable maneuverable, manoeuvrable
2208 manouvers maneuvers, manoeuvres
2209 mantained maintained
2210 manuever maneuver, manoeuvre
2211 manuevers maneuvers, manoeuvres
2212 manufacturedd manufactured
2213 manufature manufacture
2214 manufatured manufactured
2215 manufaturing manufacturing
2216 manuver maneuver
2217 mariage marriage
2218 marjority majority
2219 markes marks
2220 marketting marketing
2221 marmelade marmalade
2222 marrage marriage
2223 marraige marriage
2224 marrtyred martyred
2225 marryied married
2226 Massachussets Massachusetts
2227 Massachussetts Massachusetts
2228 massmedia mass media
2229 masterbation masturbation
2230 mataphysical metaphysical
2231 materalists materialist
2232 mathamatics mathematics
2233 mathematican mathematician
2234 mathematicas mathematics
2235 matheticians mathematicians
2236 mathmatically mathematically
2237 mathmatician mathematician
2238 mathmaticians mathematicians
2239 mccarthyst mccarthyist
2240 mchanics mechanics
2241 meaninng meaning
2242 mear wear, mere, mare
2243 mechandise merchandise
2244 medacine medicine
2245 medeival medieval
2246 medevial medieval
2247 mediciney mediciny
2248 medievel medieval
2249 mediterainnean mediterranean
2250 Mediteranean Mediterranean
2251 meerkrat meerkat
2252 melieux milieux
2253 membranaphone membranophone
2254 memeber member
2255 menally mentally
2256 meranda veranda, Miranda
2257 mercentile mercantile
2258 messanger messenger
2259 messenging messaging
2260 metalic metallic
2261 metalurgic metallurgic
2262 metalurgical metallurgical
2263 metalurgy metallurgy
2264 metamorphysis metamorphosis
2265 metaphoricial metaphorical
2266 meterologist meteorologist
2267 meterology meteorology
2268 methaphor metaphor
2269 methaphors metaphors
2270 Michagan Michigan
2271 micoscopy microscopy
2272 midwifes midwives
2273 mileau milieu
2274 milennia millennia
2275 milennium millennium
2276 mileu milieu
2277 miliary military
2278 milion million
2279 miliraty military
2280 millenia millennia
2281 millenial millennial
2282 millenialism millennialism
2283 millenium millennium
2284 millepede millipede
2285 millioniare millionaire
2286 millitary military
2287 millon million
2288 miltary military
2289 minature miniature
2290 minerial mineral
2291 miniscule minuscule
2292 ministery ministry
2293 minstries ministries
2294 minstry ministry
2295 minumum minimum
2296 mirrorred mirrored
2297 miscelaneous miscellaneous
2298 miscellanious miscellaneous
2299 miscellanous miscellaneous
2300 mischeivous mischievous
2301 mischevious mischievous
2302 mischievious mischievous
2303 misdameanor misdemeanor
2304 misdameanors misdemeanors
2305 misdemenor misdemeanor
2306 misdemenors misdemeanors
2307 misfourtunes misfortunes
2308 misile missile
2309 Misouri Missouri
2310 mispell misspell
2311 mispelled misspelled
2312 mispelling misspelling
2313 missen mizzen
2314 Missisipi Mississippi
2315 Missisippi Mississippi
2316 missle missile
2317 missonary missionary
2318 misterious mysterious
2319 mistery mystery
2320 misteryous mysterious
2321 mkae make
2322 mkaes makes
2323 mkaing making
2324 mkea make
2325 moderm modem
2326 modle model
2327 moent moment
2328 moeny money
2329 mohammedans muslims
2330 moil mohel
2331 moleclues molecules
2332 momento memento
2333 monestaries monasteries
2334 monestary monastery, monetary
2335 monickers monikers
2336 monolite monolithic
2337 Monserrat Montserrat
2338 montains mountains
2339 montanous mountainous
2340 monts months
2341 montypic monotypic
2342 moreso more, more so
2343 morgage mortgage
2344 Morisette Morissette
2345 Morrisette Morissette
2346 morroccan moroccan
2347 morrocco morocco
2348 morroco morocco
2349 mosture moisture
2350 motiviated motivated
2351 mounth month
2352 movei movie
2353 movment movement
2354 mroe more
2355 mucuous mucous
2356 muder murder
2357 mudering murdering
2358 muhammadan muslim
2359 multicultralism multiculturalism
2360 multipled multiplied
2361 multiplers multipliers
2362 munbers numbers
2363 muncipalities municipalities
2364 muncipality municipality
2365 munnicipality municipality
2366 muscels mussels, muscles
2367 muscial musical
2368 muscician musician
2369 muscicians musicians
2370 mutiliated mutilated
2371 myraid myriad
2372 mysef myself
2373 mysogynist misogynist
2374 mysogyny misogyny
2375 mysterous mysterious
2376 Mythraic Mithraic
2377 naieve naive
2378 Napoleonian Napoleonic
2379 naturaly naturally
2380 naturely naturally
2381 naturual natural
2382 naturually naturally
2383 Nazereth Nazareth
2384 neccesarily necessarily
2385 neccesary necessary
2386 neccessarily necessarily
2387 neccessary necessary
2388 neccessities necessities
2389 necesarily necessarily
2390 necesary necessary
2391 necessiate necessitate
2392 neglible negligible
2393 negligable negligible
2394 negociate negotiate
2395 negociation negotiation
2396 negociations negotiations
2397 negotation negotiation
2398 neice niece, nice
2399 neigborhood neighborhood
2400 neigbour neighbour, neighbor
2401 neigbourhood neighbourhood
2402 neigbouring neighbouring, neighboring
2403 neigbours neighbours, neighbors
2404 neolitic neolithic
2405 nessasarily necessarily
2406 nessecary necessary
2407 nestin nesting
2408 neverthless nevertheless
2409 newletters newsletters
2410 Newyorker New Yorker
2411 nickle nickel
2412 nightfa;; nightfall
2413 nightime nighttime
2414 nineth ninth
2415 ninteenth nineteenth
2416 ninties 1990s
2417 ninty ninety
2418 nkow know
2419 nkwo know
2420 nmae name
2421 noncombatents noncombatants
2422 nonsence nonsense
2423 nontheless nonetheless
2424 noone no one
2425 norhern northern
2426 northen northern
2427 northereastern northeastern
2428 notabley notably
2429 noteable notable
2430 noteably notably
2431 noteriety notoriety
2432 noth north
2433 nothern northern
2434 noticable noticeable
2435 noticably noticeably
2436 noticeing noticing
2437 noticible noticeable
2438 notwhithstanding notwithstanding
2439 noveau nouveau
2440 nowdays nowadays
2441 nowe now
2442 nto not
2443 nucular nuclear
2444 nuculear nuclear
2445 nuisanse nuisance
2446 Nullabour Nullarbor
2447 numberous numerous
2448 Nuremburg Nuremberg
2449 nusance nuisance
2450 nutritent nutrient
2451 nutritents nutrients
2452 nuturing nurturing
2453 obediance obedience
2454 obediant obedient
2455 obession obsession
2456 obssessed obsessed
2457 obstacal obstacle
2458 obstancles obstacles
2459 obstruced obstructed
2460 ocasion occasion
2461 ocasional occasional
2462 ocasionally occasionally
2463 ocasionaly occasionally
2464 ocasioned occasioned
2465 ocasions occasions
2466 ocassion occasion
2467 ocassional occasional
2468 ocassionally occasionally
2469 ocassionaly occasionally
2470 ocassioned occasioned
2471 ocassions occasions
2472 occaison occasion
2473 occassion occasion
2474 occassional occasional
2475 occassionally occasionally
2476 occassionaly occasionally
2477 occassioned occasioned
2478 occassions occasions
2479 occationally occasionally
2480 occour occur
2481 occurance occurrence
2482 occurances occurrences
2483 occured occurred
2484 occurence occurrence
2485 occurences occurrences
2486 occuring occurring
2487 occurr occur
2488 occurrance occurrence
2489 occurrances occurrences
2490 octohedra octahedra
2491 octohedral octahedral
2492 octohedron octahedron
2493 ocuntries countries
2494 ocuntry country
2495 ocurr occur
2496 ocurrance occurrence
2497 ocurred occurred
2498 ocurrence occurrence
2499 offcers officers
2500 offcially officially
2501 offereings offerings
2502 offical official
2503 officals officials
2504 offically officially
2505 officaly officially
2506 officialy officially
2507 offred offered
2508 oftenly often
2509 oging going, ogling
2510 omision omission
2511 omited omitted
2512 omiting omitting
2513 omlette omelette
2514 ommision omission
2515 ommited omitted
2516 ommiting omitting
2517 ommitted omitted
2518 ommitting omitting
2519 omniverous omnivorous
2520 omniverously omnivorously
2521 omre more
2522 onot note, not
2523 onyl only
2524 openess openness
2525 oponent opponent
2526 oportunity opportunity
2527 opose oppose
2528 oposite opposite
2529 oposition opposition
2530 oppenly openly
2531 oppinion opinion
2532 opponant opponent
2533 oppononent opponent
2534 oppositition opposition
2535 oppossed opposed
2536 opprotunity opportunity
2537 opression oppression
2538 opressive oppressive
2539 opthalmic ophthalmic
2540 opthalmologist ophthalmologist
2541 opthalmology ophthalmology
2542 opthamologist ophthalmologist
2543 optmizations optimizations
2544 optomism optimism
2545 orded ordered
2546 organim organism
2547 organiztion organization
2548 orgin origin, organ
2549 orginal original
2550 orginally originally
2551 orginize organise
2552 oridinarily ordinarily
2553 origanaly originally
2554 originall original, originally
2555 originaly originally
2556 originially originally
2557 originnally originally
2558 origional original
2559 orignally originally
2560 orignially originally
2561 otehr other
2562 ouevre oeuvre
2563 overshaddowed overshadowed
2564 overthere over there
2565 overwelming overwhelming
2566 overwheliming overwhelming
2567 owrk work
2568 owudl would
2569 oxigen oxygen
2570 oximoron oxymoron
2571 paide paid
2572 paitience patience
2573 palce place, palace
2574 paleolitic paleolithic
2575 paliamentarian parliamentarian
2576 Palistian Palestinian
2577 Palistinian Palestinian
2578 Palistinians Palestinians
2579 pallete palette
2580 pamflet pamphlet
2581 pamplet pamphlet
2582 pantomine pantomime
2583 Papanicalou Papanicolaou
2584 paralel parallel
2585 paralell parallel
2586 paralelly parallelly
2587 paralely parallelly
2588 parallely parallelly
2589 paranthesis parenthesis
2590 paraphenalia paraphernalia
2591 parellels parallels
2592 parituclar particular
2593 parliment parliament
2594 parrakeets parakeets
2595 parralel parallel
2596 parrallel parallel
2597 parrallell parallel
2598 parrallelly parallelly
2599 parrallely parallelly
2600 partialy partially
2601 particually particularly
2602 particualr particular
2603 particuarly particularly
2604 particularily particularly
2605 particulary particularly
2606 pary party
2607 pased passed
2608 pasengers passengers
2609 passerbys passersby
2610 pasttime pastime
2611 pastural pastoral
2612 paticular particular
2613 pattented patented
2614 pavillion pavilion
2615 payed paid
2616 peacefuland peaceful and
2617 peageant pageant
2618 peculure peculiar
2619 pedestrain pedestrian
2620 peice piece
2621 Peloponnes Peloponnesus
2622 penatly penalty
2623 penerator penetrator
2624 penisula peninsula
2625 penisular peninsular
2626 penninsula peninsula
2627 penninsular peninsular
2628 pennisula peninsula
2629 pensinula peninsula
2630 peom poem
2631 peoms poems
2632 peopel people
2633 peotry poetry
2634 perade parade
2635 percepted perceived
2636 percieve perceive
2637 percieved perceived
2638 perenially perennially
2639 perfomers performers
2640 performence performance
2641 performes performed, performs
2642 perhasp perhaps
2643 perheaps perhaps
2644 perhpas perhaps
2645 peripathetic peripatetic
2646 peristent persistent
2647 perjery perjury
2648 perjorative pejorative
2649 permanant permanent
2650 permenant permanent
2651 permenantly permanently
2652 permissable permissible
2653 perogative prerogative
2654 peronal personal
2655 perosnality personality
2656 perphas perhaps
2657 perpindicular perpendicular
2658 perseverence perseverance
2659 persistance persistence
2660 persistant persistent
2661 personel personnel, personal
2662 personell personnel
2663 personnell personnel
2664 persuded persuaded
2665 persue pursue
2666 persued pursued
2667 persuing pursuing
2668 persuit pursuit
2669 persuits pursuits
2670 pertubation perturbation
2671 pertubations perturbations
2672 pessiary pessary
2673 petetion petition
2674 Pharoah Pharaoh
2675 phenomenom phenomenon
2676 phenomenonal phenomenal
2677 phenomenonly phenomenally
2678 phenomonenon phenomenon
2679 phenomonon phenomenon
2680 phenonmena phenomena
2681 Philipines Philippines
2682 philisopher philosopher
2683 philisophical philosophical
2684 philisophy philosophy
2685 Phillipine Philippine
2686 Phillipines Philippines
2687 Phillippines Philippines
2688 phillosophically philosophically
2689 philospher philosopher
2690 philosphies philosophies
2691 philosphy philosophy
2692 Phonecian Phoenecian
2693 phongraph phonograph
2694 phylosophical philosophical
2695 physicaly physically
2696 pich pitch
2697 pilgrimmage pilgrimage
2698 pilgrimmages pilgrimages
2699 pinapple pineapple
2700 pinnaple pineapple
2701 pinoneered pioneered
2702 plagarism plagiarism
2703 planation plantation
2704 planed planned
2705 plantiff plaintiff
2706 plateu plateau
2707 plausable plausible
2708 playright playwright
2709 playwrite playwright
2710 playwrites playwrights
2711 pleasent pleasant
2712 plebicite plebiscite
2713 plesant pleasant
2714 poeoples peoples
2715 poety poetry
2716 poisin poison
2717 polical political
2718 polinator pollinator
2719 polinators pollinators
2720 politican politician
2721 politicans politicians
2722 poltical political
2723 polute pollute
2724 poluted polluted
2725 polutes pollutes
2726 poluting polluting
2727 polution pollution
2728 polyphonyic polyphonic
2729 polysaccaride polysaccharide
2730 polysaccharid polysaccharide
2731 pomegranite pomegranate
2732 pomotion promotion
2733 poportional proportional
2734 popoulation population
2735 popularaty popularity
2736 populare popular
2737 populer popular
2738 portayed portrayed
2739 portraing portraying
2740 Portugese Portuguese
2741 portuguease portuguese
2742 posess possess
2743 posessed possessed
2744 posesses possesses
2745 posessing possessing
2746 posession possession
2747 posessions possessions
2748 posion poison
2749 positon position, positron
2750 possable possible
2751 possably possibly
2752 posseses possesses
2753 possesing possessing
2754 possesion possession
2755 possessess possesses
2756 possibile possible
2757 possibilty possibility
2758 possiblility possibility
2759 possiblilty possibility
2760 possiblities possibilities
2761 possiblity possibility
2762 possition position
2763 Postdam Potsdam
2764 posthomous posthumous
2765 postion position
2766 postive positive
2767 potatos potatoes
2768 portait portrait
2769 potrait portrait
2770 potrayed portrayed
2771 poulations populations
2772 poverful powerful
2773 poweful powerful
2774 powerfull powerful
2775 practial practical
2776 practially practically
2777 practicaly practically
2778 practicioner practitioner
2779 practicioners practitioners
2780 practicly practically
2781 practioner practitioner
2782 practioners practitioners
2783 prairy prairie
2784 prarie prairie
2785 praries prairies
2786 pratice practice
2787 preample preamble
2788 precedessor predecessor
2789 preceed precede
2790 preceeded preceded
2791 preceeding preceding
2792 preceeds precedes
2793 precentage percentage
2794 precice precise
2795 precisly precisely
2796 precurser precursor
2797 predecesors predecessors
2798 predicatble predictable
2799 predicitons predictions
2800 predomiantly predominately
2801 prefered preferred
2802 prefering preferring
2803 preferrably preferably
2804 pregancies pregnancies
2805 preiod period
2806 preliferation proliferation
2807 premeire premiere
2808 premeired premiered
2809 premillenial premillennial
2810 preminence preeminence
2811 premission permission
2812 Premonasterians Premonstratensians
2813 preocupation preoccupation
2814 prepair prepare
2815 prepartion preparation
2816 prepatory preparatory
2817 preperation preparation
2818 preperations preparations
2819 preriod period
2820 presedential presidential
2821 presense presence
2822 presidenital presidential
2823 presidental presidential
2824 presitgious prestigious
2825 prespective perspective
2826 prestigeous prestigious
2827 prestigous prestigious
2828 presumabely presumably
2829 presumibly presumably
2830 pretection protection
2831 prevelant prevalent
2832 preverse perverse
2833 previvous previous
2834 pricipal principal
2835 priciple principle
2836 priestood priesthood
2837 primarly primarily
2838 primative primitive
2839 primatively primitively
2840 primatives primitives
2841 primordal primordial
2842 priveledges privileges
2843 privelege privilege
2844 priveleged privileged
2845 priveleges privileges
2846 privelige privilege
2847 priveliged privileged
2848 priveliges privileges
2849 privelleges privileges
2850 privilage privilege
2851 priviledge privilege
2852 priviledges privileges
2853 privledge privilege
2854 privte private
2855 probabilaty probability
2856 probablistic probabilistic
2857 probablly probably
2858 probalibity probability
2859 probaly probably
2860 probelm problem
2861 proccess process
2862 proccessing processing
2863 procede proceed, precede
2864 proceded proceeded, preceded
2865 procedes proceeds, precedes
2866 procedger procedure
2867 proceding proceeding, preceding
2868 procedings proceedings
2869 proceedure procedure
2870 proces process
2871 processer processor
2872 proclaimation proclamation
2873 proclamed proclaimed
2874 proclaming proclaiming
2875 proclomation proclamation
2876 profesion profusion, profession
2877 profesor professor
2878 professer professor
2879 proffesed professed
2880 proffesion profession
2881 proffesional professional
2882 proffesor professor
2883 profilic prolific
2884 progessed progressed
2885 programable programmable
2886 progrom pogrom, program
2887 progroms pogroms, programs
2888 prohabition prohibition
2889 prologomena prolegomena
2890 prominance prominence
2891 prominant prominent
2892 prominantly prominently
2893 prominately prominently, predominately
2894 promiscous promiscuous
2895 promotted promoted
2896 pronomial pronominal
2897 pronouced pronounced
2898 pronounched pronounced
2899 pronounciation pronunciation
2900 proove prove
2901 prooved proved
2902 prophacy prophecy
2903 propietary proprietary
2904 propmted prompted
2905 propoganda propaganda
2906 propogate propagate
2907 propogates propagates
2908 propogation propagation
2909 propostion proposition
2910 propotions proportions
2911 propper proper
2912 propperly properly
2913 proprietory proprietary
2914 proseletyzing proselytizing
2915 protaganist protagonist
2916 protaganists protagonists
2917 protocal protocol
2918 protoganist protagonist
2919 protrayed portrayed
2920 protruberance protuberance
2921 protruberances protuberances
2922 prouncements pronouncements
2923 provacative provocative
2924 provded provided
2925 provicial provincial
2926 provinicial provincial
2927 provisonal provisional
2928 provisiosn provision
2929 proximty proximity
2930 pseudononymous pseudonymous
2931 pseudonyn pseudonym
2932 psuedo pseudo
2933 psycology psychology
2934 psyhic psychic
2935 publicaly publicly
2936 puchasing purchasing
2937 Pucini Puccini
2938 Puertorrican Puerto Rican
2939 Puertorricans Puerto Ricans
2940 pumkin pumpkin
2941 puritannical puritanical
2942 purposedly purposely
2943 purpotedly purportedly
2944 pursuade persuade
2945 pursuaded persuaded
2946 pursuades persuades
2947 pususading persuading
2948 puting putting
2949 pwoer power
2950 pyscic psychic
2951 qtuie quite, quiet
2952 quantaty quantity
2953 quantitiy quantity
2954 quarantaine quarantine
2955 Queenland Queensland
2956 questonable questionable
2957 quicklyu quickly
2958 quinessential quintessential
2959 quitted quit
2960 quizes quizzes
2961 qutie quite, quiet
2962 rabinnical rabbinical
2963 racaus raucous
2964 radiactive radioactive
2965 radify ratify
2966 raelly really
2967 rarified rarefied
2968 reaccurring recurring
2969 reacing reaching
2970 reacll recall
2971 readmition readmission
2972 realitvely relatively
2973 realsitic realistic
2974 realtions relations
2975 realy really
2976 realyl really
2977 reasearch research
2978 rebiulding rebuilding
2979 rebllions rebellions
2980 rebounce rebound
2981 reccomend recommend
2982 reccomendations recommendations
2983 reccomended recommended
2984 reccomending recommending
2985 reccommend recommend
2986 reccommended recommended
2987 reccommending recommending
2988 reccuring recurring
2989 receeded receded
2990 receeding receding
2991 receivedfrom received from
2992 recepient recipient
2993 recepients recipients
2994 receving receiving
2995 rechargable rechargeable
2996 reched reached
2997 recide reside
2998 recided resided
2999 recident resident
3000 recidents residents
3001 reciding residing
3002 reciepents recipients
3003 reciept receipt
3004 recieve receive
3005 recieved received
3006 reciever receiver
3007 recievers receivers
3008 recieves receives
3009 recieving receiving
3010 recipiant recipient
3011 recipiants recipients
3012 recived received
3013 recivership receivership
3014 recogise recognise
3015 recogize recognize
3016 recomend recommend
3017 recomended recommended
3018 recomending recommending
3019 recomends recommends
3020 recommedations recommendations
3021 reconaissance reconnaissance
3022 reconcilation reconciliation
3023 reconized recognized
3024 reconnaissence reconnaissance
3025 recontructed reconstructed
3026 recordproducer record producer
3027 recquired required
3028 recrational recreational
3029 recrod record
3030 recuiting recruiting
3031 recuring recurring
3032 recurrance recurrence
3033 rediculous ridiculous
3034 reedeming redeeming
3035 reenforced reinforced
3036 refect reflect
3037 refedendum referendum
3038 referal referral
3039 refered referred
3040 referiang referring
3041 refering referring
3042 refernces references
3043 referrence reference
3044 referrs refers
3045 reffered referred
3046 refference reference
3047 refrence reference
3048 refrences references
3049 refrers refers
3050 refridgeration refrigeration
3051 refridgerator refrigerator
3052 refromist reformist
3053 refusla refusal
3054 regardes regards
3055 regluar regular
3056 reguarly regularly
3057 regulaion regulation
3058 regulaotrs regulators
3059 regularily regularly
3060 rehersal rehearsal
3061 reicarnation reincarnation
3062 reigining reigning
3063 reknown renown
3064 reknowned renowned
3065 rela real
3066 relaly really
3067 relatiopnship relationship
3068 relativly relatively
3069 relected reelected
3070 releive relieve
3071 releived relieved
3072 releiver reliever
3073 releses releases
3074 relevence relevance
3075 relevent relevant
3076 reliablity reliability
3077 relient reliant
3078 religeous religious
3079 religous religious
3080 religously religiously
3081 relinqushment relinquishment
3082 relitavely relatively
3083 relized realised, realized
3084 relpacement replacement
3085 remaing remaining
3086 remeber remember
3087 rememberable memorable
3088 rememberance remembrance
3089 remembrence remembrance
3090 remenant remnant
3091 remenicent reminiscent
3092 reminent remnant
3093 reminescent reminiscent
3094 reminscent reminiscent
3095 reminsicent reminiscent
3096 rendevous rendezvous
3097 rendezous rendezvous
3098 renedered rende
3099 renewl renewal
3100 rentors renters
3101 reoccurrence recurrence
3102 reorganision reorganisation
3103 repatition repetition, repartition
3104 repentence repentance
3105 repentent repentant
3106 repeteadly repeatedly
3107 repetion repetition
3108 repid rapid
3109 reponse response
3110 reponsible responsible
3111 reportadly reportedly
3112 represantative representative
3113 representive representative
3114 representives representatives
3115 reproducable reproducible
3116 reprtoire repertoire
3117 repsectively respectively
3118 reptition repetition
3119 requirment requirement
3120 requred required
3121 resaurant restaurant
3122 resembelance resemblance
3123 resembes resembles
3124 resemblence resemblance
3125 resevoir reservoir
3126 resignement resignment
3127 resistable resistible
3128 resistence resistance
3129 resistent resistant
3130 respectivly respectively
3131 responce response
3132 responibilities responsibilities
3133 responisble responsible
3134 responnsibilty responsibility
3135 responsability responsibility
3136 responsibile responsible
3137 responsibilites responsibilities
3138 responsiblity responsibility
3139 ressemblance resemblance
3140 ressemble resemble
3141 ressembled resembled
3142 ressemblence resemblance
3143 ressembling resembling
3144 resssurecting resurrecting
3145 ressurect resurrect
3146 ressurected resurrected
3147 ressurection resurrection
3148 ressurrection resurrection
3149 restaraunt restaurant
3150 restaraunteur restaurateur
3151 restaraunteurs restaurateurs
3152 restaraunts restaurants
3153 restauranteurs restaurateurs
3154 restauration restoration
3155 restauraunt restaurant
3156 resteraunt restaurant
3157 resteraunts restaurants
3158 resticted restricted
3159 restraunt restraint, restaurant
3160 resturant restaurant
3161 resturaunt restaurant
3162 resurecting resurrecting
3163 retalitated retaliated
3164 retalitation retaliation
3165 retreive retrieve
3166 returnd returned
3167 revaluated reevaluated
3168 reveral reversal
3169 reversable reversible
3170 revolutionar revolutionary
3171 rewitten rewritten
3172 rewriet rewrite
3173 rhymme rhyme
3174 rhythem rhythm
3175 rhythim rhythm
3176 rhytmic rhythmic
3177 rigeur rigueur, rigour, rigor
3178 rigourous rigorous
3179 rininging ringing
3180 rised rose
3181 Rockerfeller Rockefeller
3182 rococco rococo
3183 rocord record
3184 roomate roommate
3185 rougly roughly
3186 rucuperate recuperate
3187 rudimentatry rudimentary
3188 rulle rule
3189 runing running
3190 runnung running
3191 russina Russian
3192 Russion Russian
3193 rwite write
3194 rythem rhythm
3195 rythim rhythm
3196 rythm rhythm
3197 rythmic rhythmic
3198 rythyms rhythms
3199 sacrafice sacrifice
3200 sacreligious sacrilegious
3201 sacrifical sacrificial
3202 saftey safety
3203 safty safety
3204 salery salary
3205 sanctionning sanctioning
3206 sandwhich sandwich
3207 Sanhedrim Sanhedrin
3208 santioned sanctioned
3209 sargant sergeant
3210 sargeant sergeant
3211 sasy says, sassy
3212 satelite satellite
3213 satelites satellites
3214 Saterday Saturday
3215 Saterdays Saturdays
3216 satisfactority satisfactorily
3217 satric satiric
3218 satrical satirical
3219 satrically satirically
3220 sattelite satellite
3221 sattelites satellites
3222 saught sought
3223 saveing saving
3224 saxaphone saxophone
3225 scaleable scalable
3226 scandanavia Scandinavia
3227 scaricity scarcity
3228 scavanged scavenged
3229 schedual schedule
3230 scholarhip scholarship
3231 scholarstic scholastic, scholarly
3232 scientfic scientific
3233 scientifc scientific
3234 scientis scientist
3235 scince science
3236 scinece science
3237 scirpt script
3238 scoll scroll
3239 screenwrighter screenwriter
3240 scrutinity scrutiny
3241 scuptures sculptures
3242 seach search
3243 seached searched
3244 seaches searches
3245 secceeded seceded, succeeded
3246 seceed succeed, secede
3247 seceeded succeeded, seceded
3248 secratary secretary
3249 secretery secretary
3250 sedereal sidereal
3251 seeked sought
3252 segementation segmentation
3253 seguoys segues
3254 seige siege
3255 seing seeing
3256 seinor senior
3257 seldomly seldom
3258 senarios scenarios
3259 sence sense
3260 senstive sensitive
3261 sensure censure
3262 seperate separate
3263 seperated separated
3264 seperately separately
3265 seperates separates
3266 seperating separating
3267 seperation separation
3268 seperatism separatism
3269 seperatist separatist
3270 sepina subpoena
3271 sepulchure sepulchre, sepulcher
3272 sepulcre sepulchre, sepulcher
3273 sergent sergeant
3274 settelement settlement
3275 settlment settlement
3276 severeal several
3277 severley severely
3278 severly severely
3279 sevice service
3280 shaddow shadow
3281 shamen shaman, shamans
3282 sheat sheath, sheet, cheat
3283 sheild shield
3284 sherif sheriff
3285 shineing shining
3286 shiped shipped
3287 shiping shipping
3288 shopkeeepers shopkeepers
3289 shorly shortly
3290 shortwhile short while
3291 shoudl should
3292 shoudln should, shouldn't
3293 shouldnt shouldn't
3294 shreak shriek
3295 shrinked shrunk
3296 sicne since
3297 sideral sidereal
3298 sieze seize, size
3299 siezed seized, sized
3300 siezing seizing, sizing
3301 siezure seizure
3302 siezures seizures
3303 siginificant significant
3304 signficant significant
3305 signficiant significant
3306 signfies signifies
3307 signifantly significantly
3308 significently significantly
3309 signifigant significant
3310 signifigantly significantly
3311 signitories signatories
3312 signitory signatory
3313 similarily similarly
3314 similiar similar
3315 similiarity similarity
3316 similiarly similarly
3317 simmilar similar
3318 simpley simply
3319 simplier simpler
3320 simultanous simultaneous
3321 simultanously simultaneously
3322 sincerley sincerely
3323 singsog singsong
3324 sinse sines, since
3325 Sionist Zionist
3326 Sionists Zionists
3327 Sixtin Sistine
3328 Skagerak Skagerrak
3329 skateing skating
3330 slaugterhouses slaughterhouses
3331 slowy slowly
3332 smae same
3333 smealting smelting
3334 smoe some
3335 sneeks sneaks
3336 snese sneeze
3337 socalism socialism
3338 socities societies
3339 soem some
3340 sofware software
3341 sohw show
3342 soilders soldiers
3343 solatary solitary
3344 soley solely
3345 soliders soldiers
3346 soliliquy soliloquy
3347 soluable soluble
3348 somene someone
3349 somtimes sometimes
3350 somwhere somewhere
3351 sophicated sophisticated
3352 sorceror sorcerer
3353 sorrounding surrounding
3354 sotry story
3355 sotyr satyr, story
3356 soudn sound
3357 soudns sounds
3358 sould could, should, sold
3359 sountrack soundtrack
3360 sourth south
3361 sourthern southern
3362 souvenier souvenir
3363 souveniers souvenirs
3364 soveits soviets
3365 sovereignity sovereignty
3366 soverign sovereign
3367 soverignity sovereignty
3368 soverignty sovereignty
3369 spainish Spanish
3370 speach speech
3371 specfic specific
3372 speciallized specialised, specialized
3373 specif specific, specify
3374 specifiying specifying
3375 speciman specimen
3376 spectauclar spectacular
3377 spectaulars spectaculars
3378 spects aspects, expects
3379 spectum spectrum
3380 speices species
3381 spendour splendour
3382 spermatozoan spermatozoon
3383 spoace space
3384 sponser sponsor
3385 sponsered sponsored
3386 spontanous spontaneous
3387 sponzored sponsored
3388 spoonfulls spoonfuls
3389 sppeches speeches
3390 spreaded spread
3391 sprech speech
3392 spred spread
3393 spriritual spiritual
3394 spritual spiritual
3395 sqaure square
3396 stablility stability
3397 stainlees stainless
3398 staion station
3399 standars standards
3400 stange strange
3401 startegic strategic
3402 startegies strategies
3403 startegy strategy
3404 stateman statesman
3405 statememts statements
3406 statment statement
3407 steriods steroids
3408 sterotypes stereotypes
3409 stilus stylus
3410 stingent stringent
3411 stiring stirring
3412 stirrs stirs
3413 stlye style
3414 stong strong
3415 stopry story
3416 storeis stories
3417 storise stories
3418 stornegst strongest
3419 stoyr story
3420 stpo stop
3421 stradegies strategies
3422 stradegy strategy
3423 strat start, strata
3424 stratagically strategically
3425 streemlining streamlining
3426 stregth strength
3427 strenghen strengthen
3428 strenghened strengthened
3429 strenghening strengthening
3430 strenght strength
3431 strenghten strengthen
3432 strenghtened strengthened
3433 strenghtening strengthening
3434 strengtened strengthened
3435 strenous strenuous
3436 strictist strictest
3437 strikely strikingly
3438 strnad strand
3439 stroy story, destroy
3440 structual structural
3441 stubborness stubbornness
3442 stucture structure
3443 stuctured structured
3444 studdy study
3445 studing studying
3446 stuggling struggling
3447 sturcture structure
3448 subcatagories subcategories
3449 subcatagory subcategory
3450 subconsiously subconsciously
3451 subjudgation subjugation
3452 submachne submachine
3453 subpecies subspecies
3454 subsidary subsidiary
3455 subsiduary subsidiary
3456 subsquent subsequent
3457 subsquently subsequently
3458 substace substance
3459 substancial substantial
3460 substatial substantial
3461 substituded substituted
3462 substract subtract
3463 substracted subtracted
3464 substracting subtracting
3465 substraction subtraction
3466 substracts subtracts
3467 subtances substances
3468 subterranian subterranean
3469 suburburban suburban
3470 succceeded succeeded
3471 succcesses successes
3472 succedded succeeded
3473 succeded succeeded
3474 succeds succeeds
3475 succesful successful
3476 succesfully successfully
3477 succesfuly successfully
3478 succesion succession
3479 succesive successive
3480 successfull successful
3481 successully successfully
3482 succsess success
3483 succsessfull successful
3484 suceed succeed
3485 suceeded succeeded
3486 suceeding succeeding
3487 suceeds succeeds
3488 sucesful successful
3489 sucesfully successfully
3490 sucesfuly successfully
3491 sucesion succession
3492 sucess success
3493 sucesses successes
3494 sucessful successful
3495 sucessfull successful
3496 sucessfully successfully
3497 sucessfuly successfully
3498 sucession succession
3499 sucessive successive
3500 sucessor successor
3501 sucessot successor
3502 sucide suicide
3503 sucidial suicidal
3504 sufferage suffrage
3505 sufferred suffered
3506 sufferring suffering
3507 sufficent sufficient
3508 sufficently sufficiently
3509 sumary summary
3510 sunglases sunglasses
3511 suop soup
3512 superceeded superseded
3513 superintendant superintendent
3514 suphisticated sophisticated
3515 suplimented supplemented
3516 supose suppose
3517 suposed supposed
3518 suposedly supposedly
3519 suposes supposes
3520 suposing supposing
3521 supplamented supplemented
3522 suppliementing supplementing
3523 suppoed supposed
3524 supposingly supposedly
3525 suppy supply
3526 supress suppress
3527 supressed suppressed
3528 supresses suppresses
3529 supressing suppressing
3530 suprise surprise
3531 suprised surprised
3532 suprising surprising
3533 suprisingly surprisingly
3534 suprize surprise
3535 suprized surprised
3536 suprizing surprising
3537 suprizingly surprisingly
3538 surfce surface
3539 surley surly, surely
3540 suround surround
3541 surounded surrounded
3542 surounding surrounding
3543 suroundings surroundings
3544 surounds surrounds
3545 surplanted supplanted
3546 surpress suppress
3547 surpressed suppressed
3548 surprize surprise
3549 surprized surprised
3550 surprizing surprising
3551 surprizingly surprisingly
3552 surrended surrounded, surrendered
3553 surrepetitious surreptitious
3554 surrepetitiously surreptitiously
3555 surreptious surreptitious
3556 surreptiously surreptitiously
3557 surronded surrounded
3558 surrouded surrounded
3559 surrouding surrounding
3560 surrundering surrendering
3561 surveilence surveillance
3562 surveill surveil
3563 surveyer surveyor
3564 surviver survivor
3565 survivers survivors
3566 survivied survived
3567 suseptable susceptible
3568 suseptible susceptible
3569 suspention suspension
3570 swaer swear
3571 swaers swears
3572 swepth swept
3573 swiming swimming
3574 syas says
3575 symetrical symmetrical
3576 symetrically symmetrically
3577 symetry symmetry
3578 symettric symmetric
3579 symmetral symmetric
3580 symmetricaly symmetrically
3581 synagouge synagogue
3582 syncronization synchronization
3583 synonomous synonymous
3584 synonymns synonyms
3585 synphony symphony
3586 syphyllis syphilis
3587 sypmtoms symptoms
3588 syrap syrup
3589 sysmatically systematically
3590 sytem system
3591 sytle style
3592 tabacco tobacco
3593 tahn than
3594 taht that
3595 talekd talked
3596 targetted targeted
3597 targetting targeting
3598 tast taste
3599 tath that
3600 tattooes tattoos
3601 taxanomic taxonomic
3602 taxanomy taxonomy
3603 teached taught
3604 techician technician
3605 techicians technicians
3606 techiniques techniques
3607 technitian technician
3608 technnology technology
3609 technolgy technology
3610 teh the
3611 tehy they
3612 telelevision television
3613 televsion television
3614 telphony telephony
3615 temerature temperature
3616 temparate temperate
3617 temperarily temporarily
3618 temperment temperament
3619 tempertaure temperature
3620 temperture temperature
3621 temprary temporary
3622 tenacle tentacle
3623 tenacles tentacles
3624 tendacy tendency
3625 tendancies tendencies
3626 tendancy tendency
3627 tennisplayer tennis player
3628 tepmorarily temporarily
3629 terrestial terrestrial
3630 terriories territories
3631 terriory territory
3632 territorist terrorist
3633 territoy territory
3634 terroist terrorist
3635 testiclular testicular
3636 tghe the
3637 thast that, that's
3638 theather theater, theatre
3639 theese these
3640 theif thief
3641 theives thieves
3642 themselfs themselves
3643 themslves themselves
3644 ther there, their, the
3645 therafter thereafter
3646 therby thereby
3647 theri their
3648 thgat that
3649 thge the
3650 thier their
3651 thign thing
3652 thigns things
3653 thigsn things
3654 thikn think
3655 thikning thinking, thickening
3656 thikns thinks
3657 thiunk think
3658 thn then
3659 thna than
3660 thne then
3661 thnig thing
3662 thnigs things
3663 thoughout throughout
3664 threatend threatened
3665 threatning threatening
3666 threee three
3667 threshhold threshold
3668 thrid third
3669 throrough thorough
3670 throughly thoroughly
3671 throught thought, through, throughout
3672 througout throughout
3673 thru through
3674 thsi this
3675 thsoe those
3676 thta that
3677 thyat that
3678 tiem time, Tim
3679 tihkn think
3680 tihs this
3681 timne time
3682 tiome time, tome
3683 tje the
3684 tjhe the
3685 tjpanishad upanishad
3686 tkae take
3687 tkaes takes
3688 tkaing taking
3689 tlaking talking
3690 tobbaco tobacco
3691 todays today's
3692 todya today
3693 toghether together
3694 tolerence tolerance
3695 Tolkein Tolkien
3696 tomatos tomatoes
3697 tommorow tomorrow
3698 tommorrow tomorrow
3699 tongiht tonight
3700 toriodal toroidal
3701 tormenters tormentors
3702 torpeados torpedoes
3703 torpedos torpedoes
3704 tothe to the
3705 toubles troubles
3706 tounge tongue
3707 tourch torch, touch
3708 towords towards
3709 towrad toward
3710 tradionally traditionally
3711 traditionaly traditionally
3712 traditionnal traditional
3713 traditition tradition
3714 tradtionally traditionally
3715 trafficed trafficked
3716 trafficing trafficking
3717 trafic traffic
3718 trancendent transcendent
3719 trancending transcending
3720 tranform transform
3721 tranformed transformed
3722 transcendance transcendence
3723 transcendant transcendent
3724 transcendentational transcendental
3725 transcripting transcribing, transcription
3726 transending transcending
3727 transesxuals transsexuals
3728 transfered transferred
3729 transfering transferring
3730 transformaton transformation
3731 transistion transition
3732 translater translator
3733 translaters translators
3734 transmissable transmissible
3735 transporation transportation
3736 tremelo tremolo
3737 tremelos tremolos
3738 triguered triggered
3739 triology trilogy
3740 troling trolling
3741 troup troupe
3742 troups troupes, troops
3743 truely truly
3744 trustworthyness trustworthiness
3745 turnk turnkey, trunk
3746 Tuscon Tucson
3747 tust trust
3748 twelth twelfth
3749 twon town
3750 twpo two
3751 tyhat that
3752 tyhe they
3753 typcial typical
3754 typicaly typically
3755 tyranies tyrannies
3756 tyrany tyranny
3757 tyrranies tyrannies
3758 tyrrany tyranny
3759 ubiquitious ubiquitous
3760 uise use
3761 Ukranian Ukrainian
3762 ultimely ultimately
3763 unacompanied unaccompanied
3764 unahppy unhappy
3765 unanymous unanimous
3766 unathorised unauthorised
3767 unavailible unavailable
3768 unballance unbalance
3769 unbeleivable unbelievable
3770 uncertainity uncertainty
3771 unchallengable unchallengeable
3772 unchangable unchangeable
3773 uncompetive uncompetitive
3774 unconcious unconscious
3775 unconciousness unconsciousness
3776 unconfortability discomfort
3777 uncontitutional unconstitutional
3778 unconvential unconventional
3779 undecideable undecidable
3780 understoon understood
3781 undesireable undesirable
3782 undetecable undetectable
3783 undoubtely undoubtedly
3784 undreground underground
3785 uneccesary unnecessary
3786 unecessary unnecessary
3787 unequalities inequalities
3788 unforetunately unfortunately
3789 unforgetable unforgettable
3790 unforgiveable unforgivable
3791 unfortunatley unfortunately
3792 unfortunatly unfortunately
3793 unfourtunately unfortunately
3794 unihabited uninhabited
3795 unilateraly unilaterally
3796 unilatreal unilateral
3797 unilatreally unilaterally
3798 uninterruped uninterrupted
3799 uninterupted uninterrupted
3800 UnitesStates UnitedStates
3801 univeral universal
3802 univeristies universities
3803 univeristy university
3804 universtiy university
3805 univesities universities
3806 univesity university
3807 unkown unknown
3808 unlikey unlikely
3809 unmanouverable unmaneuverable, unmanoeuvrable
3810 unmistakeably unmistakably
3811 unneccesarily unnecessarily
3812 unneccesary unnecessary
3813 unneccessarily unnecessarily
3814 unneccessary unnecessary
3815 unnecesarily unnecessarily
3816 unnecesary unnecessary
3817 unoffical unofficial
3818 unoperational nonoperational
3819 unoticeable unnoticeable
3820 unplease displease
3821 unplesant unpleasant
3822 unprecendented unprecedented
3823 unprecidented unprecedented
3824 unrepentent unrepentant
3825 unrepetant unrepentant
3826 unrepetent unrepentant
3827 unsed used, unused, unsaid
3828 unsubstanciated unsubstantiated
3829 unsuccesful unsuccessful
3830 unsuccesfully unsuccessfully
3831 unsuccessfull unsuccessful
3832 unsucesful unsuccessful
3833 unsucesfuly unsuccessfully
3834 unsucessful unsuccessful
3835 unsucessfull unsuccessful
3836 unsucessfully unsuccessfully
3837 unsuprised unsurprised
3838 unsuprising unsurprising
3839 unsuprisingly unsurprisingly
3840 unsuprized unsurprised
3841 unsuprizing unsurprising
3842 unsuprizingly unsurprisingly
3843 unsurprized unsurprised
3844 unsurprizing unsurprising
3845 unsurprizingly unsurprisingly
3846 untill until
3847 untranslateable untranslatable
3848 unuseable unusable
3849 unusuable unusable
3850 unviersity university
3851 unwarrented unwarranted
3852 unweildly unwieldy
3853 unwieldly unwieldy
3854 upcomming upcoming
3855 upgradded upgraded
3856 usally usually
3857 useage usage
3858 usefull useful
3859 usefuly usefully
3860 useing using
3861 usualy usually
3862 ususally usually
3863 vaccum vacuum
3864 vaccume vacuum
3865 vacinity vicinity
3866 vaguaries vagaries
3867 vaieties varieties
3868 vailidty validity
3869 valetta valletta
3870 valuble valuable
3871 valueable valuable
3872 varations variations
3873 varient variant
3874 variey variety
3875 varing varying
3876 varities varieties
3877 varity variety
3878 vasall vassal
3879 vasalls vassals
3880 vegatarian vegetarian
3881 vegitable vegetable
3882 vegitables vegetables
3883 vegtable vegetable
3884 vehicule vehicle
3885 vell well
3886 venemous venomous
3887 vengance vengeance
3888 vengence vengeance
3889 verfication verification
3890 verison version
3891 verisons versions
3892 vermillion vermilion
3893 versitilaty versatility
3894 versitlity versatility
3895 vetween between
3896 veyr very
3897 vigeur vigueur, vigour, vigor
3898 vigilence vigilance
3899 vigourous vigorous
3900 villian villain
3901 villification vilification
3902 villify vilify
3903 villin villi, villain, villein
3904 vincinity vicinity
3905 violentce violence
3906 virutal virtual
3907 virtualy virtually
3908 virutally virtually
3909 visable visible
3910 visably visibly
3911 visting visiting
3912 vistors visitors
3913 vitories victories
3914 volcanoe volcano
3915 voleyball volleyball
3916 volontary voluntary
3917 volonteer volunteer
3918 volonteered volunteered
3919 volonteering volunteering
3920 volonteers volunteers
3921 volounteer volunteer
3922 volounteered volunteered
3923 volounteering volunteering
3924 volounteers volunteers
3925 vreity variety
3926 vrey very
3927 vriety variety
3928 vulnerablility vulnerability
3929 vyer very
3930 vyre very
3931 waht what
3932 wanna want to
3933 warantee warranty
3934 wardobe wardrobe
3935 warrent warrant
3936 warrriors warriors
3937 wasnt wasn't
3938 wass was
3939 watn want
3940 wayword wayward
3941 weaponary weaponry
3942 weas was
3943 wehn when
3944 weild wield, wild
3945 weilded wielded
3946 wendsay Wednesday
3947 wensday Wednesday
3948 wereabouts whereabouts
3949 whant want
3950 whants wants
3951 whcih which
3952 wheras whereas
3953 wherease whereas
3954 whereever wherever
3955 whic which
3956 whihc which
3957 whith with
3958 whlch which
3959 whn when
3960 wholey wholly
3961 wholy wholly, holy
3962 whta what
3963 whther whether
3964 wich which, witch
3965 widesread widespread
3966 wief wife
3967 wierd weird
3968 wiew view
3969 wih with
3970 wiht with
3971 wille will
3972 willingless willingness
3973 wirting writing
3974 withdrawl withdrawal, withdraw
3975 witheld withheld
3976 withing within
3977 withold withhold
3978 witht with
3979 witn with
3980 wiull will
3981 wnat want
3982 wnated wanted
3983 wnats wants
3984 wohle whole
3985 wokr work
3986 wokring working
3987 wonderfull wonderful
3988 workststion workstation
3989 worls world
3990 wordlwide worldwide
3991 worshipper worshiper
3992 worshipping worshiping
3993 worstened worsened
3994 woudl would
3995 wresters wrestlers
3996 wriet write
3997 writen written
3998 wroet wrote
3999 wrok work
4000 wroking working
4001 ws was
4002 wtih with
4003 wupport support
4004 xenophoby xenophobia
4005 yaching yachting
4006 yatch yacht
4007 yeasr years
4008 yeild yield
4009 yeilding yielding
4010 Yementite Yemenite, Yemeni
4011 yearm year
4012 yera year
4013 yeras years
4014 yersa years
4015 youseff yousef
4016 youself yourself
4017 ytou you
4018 yuo you
4019 joo you
4020 zeebra zebra
4021
4022 [[Category:Wikipedia tools]]
+0
-11
tests/suggestiontest/Makefile.orig less more
0 all:
1 ./prepare
2 ./test
3
4 single:
5 ./prepare2
6 ./test
7
8 clean:
9 rm *.[1-5] result.*
10
+0
-16
tests/suggestiontest/README less more
0 source of text data: Wikipedia
1 http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
2
3 For testing Hunspell you need the extended en_US dictionary with phonetic table:
4 http://hunspell.sourceforge.net/en_US.zip
5
6 test:
7 make -f Makefile.orig
8
9 test only with Hunspell:
10
11 make -f Makefile.orig single
12
13 test with different input file and dictionaries:
14
15 INPUT=dutchlist.txt HUNSPELL=nl_NL ASPELL=nl make -f Makefile.orig
+0
-40
tests/suggestiontest/prepare less more
0 #!/bin/bash
1 # Check common misspellings
2 # input file format:
3 # word->word1, ...
4 # Source: http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
5
6 hunspell=../../src/tools/hunspell
7 hlang=${HUNSPELL:-en_US}
8 alang=${ASPELL:-en_US}
9 input=${INPUT:-List_of_common_misspellings.txt}
10
11 # remove bad words recognised by Hunspell as good
12 cat $input | sed 's/[-]>/ /' | $hunspell -d $hlang -1 -L |
13
14 # remove items with dash for Aspell
15 grep '^[^-]* ' |
16
17 # remove spaces from end of lines
18 sed 's/ *$//' >$input.1
19
20 # remove bad words recognised by Aspell as good
21 cut -f 1 -d ' ' $input.1 | aspell -l $alang --list |
22 awk 'FILENAME=="-"{a[$1]=1;next}a[$1]{print$0}' - $input.1 |
23
24 # change commas with tabs
25 sed 's/, */ /g' >$input.2
26
27 # remove lines with unrecognised suggestions (except suggestion with spaces)
28 cut -d ' ' -f 2- $input.2 | tr "\t" "\n" | grep -v ' ' >x.1
29 cat x.1 | $hunspell -l -d $hlang >x.2
30 cat x.1 | aspell -l $alang --list >>x.2
31 cat x.2 | awk 'BEGIN{FS="\t"}
32 FILENAME=="-"{a[$1]=1;next}a[$2]!=1 && a[$3]!=1{print $0}' - $input.2 >$input.3
33
34 cut -f 1 -d ' ' $input.3 | aspell -l $alang -a | grep -v ^$ | sed -n '2,$p' |
35 sed 's/^.*: //;s/, / /g' >$input.4
36
37 cat $input.3 | $hunspell -d $hlang -a -1 | grep -v ^$ | sed -n '2,$p' |
38 sed 's/^.*: //;s/, / /g' >$input.5
39
+0
-30
tests/suggestiontest/prepare2 less more
0 #!/bin/bash
1 # Check common misspellings
2 # input file format:
3 # word->word1, ...
4 # Source: http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
5
6 hunspell=../../src/tools/hunspell
7 hlang=${HUNSPELL:-en_US}
8 input=${INPUT:-List_of_common_misspellings.txt}
9
10 # remove bad words recognised by Hunspell as good
11 cat $input | sed 's/[-]>/ /' | $hunspell -d $hlang -1 -L |
12
13 # remove spaces from end of lines
14 sed 's/ *$//' >$input.1
15
16 # change commas with tabs
17 cat $input.1 | sed 's/, */ /g' >$input.2
18
19 # remove lines with unrecognised suggestions (except suggestion with spaces)
20 cut -d ' ' -f 2- $input.2 | tr "\t" "\n" | grep -v ' ' >x.1
21 cat x.1 | $hunspell -l -d $hlang >x.2
22 cat x.2 | awk 'BEGIN{FS="\t"}
23 FILENAME=="-"{a[$1]=1;next}a[$2]!=1 && a[$3]!=1{print $0}' - $input.2 >$input.3
24
25 test -f $input.4 && rm $input.4
26
27 cat $input.3 | $hunspell -d $hlang -a -1 | grep -v ^$ | sed -n '2,$p' |
28 sed 's/^.*: //;s/, / /g' >$input.5
29
+0
-25
tests/suggestiontest/test less more
0 #!/bin/bash
1 # Check common misspellings
2 # input file format:
3 # word->word1, ...
4 # Source: http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
5
6 input=${INPUT:-List_of_common_misspellings.txt}
7
8 function check() {
9 cat $1 | awk 'BEGIN{maxord=0;FS="\t"}FILENAME=="-"{for (i=1; i<=NF; i++){a[NR,$(i)]=i};max=NR;next}{x1=a[NR-max,$2];x2=a[NR-max,$3];sug++;if($3)sug++;if (!x1&&!x2){mis2++;misrow=misrow"\n"$0};if(!x1||($3 && !x2))mis++;ord+=x1+x2;}END{
10 print "Missed rows", misrow;
11 print "======================================="
12 print maxord, "max. suggestion for a word";
13 print max, "input rows";
14 print mis2, "missing rows";
15 print sug, "expected suggestions";
16 print mis, "missing suggestions";
17 print ord/(sug-mis), "average ranking";
18 }' - $2
19 }
20
21 test -f $input.4 && check $input.4 $input.3 >result.aspell
22 check $input.5 $input.3 >result.hunspell
23 test -f result.aspell && tail -6 result.aspell
24 tail -6 result.hunspell
0 /* Copyright 2018-2022 Dimitrij Mijoski, Sander van Geloven
0 /* Copyright 2016-2022 Dimitrij Mijoski
11 *
22 * This file is part of Nuspell.
33 *
2020 #include <nuspell/finder.hxx>
2121
2222 #include <chrono>
23 #include <clocale>
2324 #include <fstream>
24 #include <iomanip>
2525 #include <iostream>
2626 #include <unicode/ucnv.h>
2727
28 #if defined(__MINGW32__) || defined(__unix__) || defined(__unix) || \
29 (defined(__APPLE__) && defined(__MACH__)) || defined(__HAIKU__)
3028 #include <getopt.h>
31 #include <unistd.h>
29
30 #if __has_include(<unistd.h>)
31 #include <unistd.h> // defines _POSIX_VERSION
3232 #endif
3333 #ifdef _POSIX_VERSION
3434 #include <langinfo.h>
3535 #include <sys/resource.h>
3636 #include <sys/time.h>
3737 #endif
38 #ifdef _WIN32
39 #include <io.h>
40 #ifndef NOMINMAX
41 #define NOMINMAX
42 #endif
43 #define WIN32_LEAN_AND_MEAN
44 #include <windows.h>
45
46 #include <psapi.h>
47 #endif
3848
3949 // manually define if not supplied by the build system
4050 #ifndef PROJECT_VERSION
4151 #define PROJECT_VERSION "unknown.version"
4252 #endif
43 #define PACKAGE_STRING "nuspell " PROJECT_VERSION
4453
4554 using namespace std;
46 using namespace nuspell;
47
48 enum Mode {
49 DEFAULT_MODE /**< verification test */,
50 HELP_MODE /**< printing help information */,
51 VERSION_MODE /**< printing version information */,
52 ERROR_MODE /**< where the arguments used caused an error */
53 };
54
55 struct Args_t {
56 Mode mode = DEFAULT_MODE;
57 string program_name = "verify";
58 string dictionary;
59 string encoding;
60 vector<string> other_dicts;
61 vector<string> files;
62 bool print_false = false;
63 bool sugs = false;
64
65 Args_t() = default;
66 Args_t(int argc, char* argv[]) { parse_args(argc, argv); }
67 auto parse_args(int argc, char* argv[]) -> void;
68 };
69
70 auto Args_t::parse_args(int argc, char* argv[]) -> void
55 using nuspell::Dictionary, nuspell::Dictionary_Loading_Error,
56 nuspell::Dict_Finder_For_CLI_Tool_2;
57 namespace {
58 enum Mode { NORMAL, HELP, VERSION };
59 auto print_help(const char* program_name) -> void
7160 {
72 if (argc != 0 && argv[0] && argv[0][0] != '\0')
73 program_name = argv[0];
74 // See POSIX Utility argument syntax
75 // http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
76 #if defined(_POSIX_VERSION) || defined(__MINGW32__)
77 int c;
78 // The program can run in various modes depending on the
79 // command line options. mode is FSM state, this while loop is FSM.
80 const char* shortopts = ":d:i:fshv";
81 const struct option longopts[] = {
82 {"version", 0, nullptr, 'v'},
83 {"help", 0, nullptr, 'h'},
84 {nullptr, 0, nullptr, 0},
85 };
86 while ((c = getopt_long(argc, argv, shortopts, longopts, nullptr)) !=
87 -1) {
88 switch (c) {
89 case 'd':
90 if (dictionary.empty())
91 dictionary = optarg;
92 else
93 cerr << "WARNING: Detected not yet supported "
94 "other dictionary "
95 << optarg << '\n';
96 other_dicts.emplace_back(optarg);
97
98 break;
99 case 'i':
100 encoding = optarg;
101
102 break;
103 case 'f':
104 print_false = true;
105
106 break;
107 case 's':
108 sugs = true;
109 break;
110 case 'h':
111 if (mode == DEFAULT_MODE)
112 mode = HELP_MODE;
113 else
114 mode = ERROR_MODE;
115
116 break;
117 case 'v':
118 if (mode == DEFAULT_MODE)
119 mode = VERSION_MODE;
120 else
121 mode = ERROR_MODE;
122
123 break;
124 case ':':
125 cerr << "Option -" << static_cast<char>(optopt)
126 << " requires an operand\n";
127 mode = ERROR_MODE;
128
129 break;
130 case '?':
131 cerr << "Unrecognized option: '-"
132 << static_cast<char>(optopt) << "'\n";
133 mode = ERROR_MODE;
134
135 break;
136 }
137 }
138 files.insert(files.end(), argv + optind, argv + argc);
139 #endif
140 }
141
142 /**
143 * @brief Prints help information to standard output.
144 *
145 * @param program_name pass argv[0] here.
146 */
147 auto print_help(const string& program_name) -> void
148 {
149 auto& p = program_name;
61 auto p = string_view(program_name);
15062 auto& o = cout;
15163 o << "Usage:\n"
152 "\n";
153 o << p << " [-d dict_NAME] [-i enc] [-f] [-s] [file_name]...\n";
154 o << p << " -h|--help|-v|--version\n";
155 o << "\n"
156 "Verification testing of Nuspell for each FILE.\n"
157 "Without FILE, check standard input.\n"
158 "\n"
159 " -d di_CT use di_CT dictionary. Only one dictionary is\n"
160 " currently supported\n"
161 " -i enc input encoding, default is active locale\n"
162 " -f print false negative and false positive words\n"
163 " -s also test suggestions (usable only in debugger)\n"
164 " -h, --help print this help and exit\n"
165 " -v, --version print version number and exit\n"
166 "\n";
167 o << "Example: " << p << " -d en_US /usr/share/dict/american-english\n";
168 o << "\n"
169 "The input should contain one word per line. Each word is\n"
170 "checked in Nuspell and Hunspell and the results are compared.\n"
171 "After all words are processed, some statistics are printed like\n"
172 "correctness and speed of Nuspell compared to Hunspell.\n"
173 "\n"
174 "Please note, messages containing:\n"
175 " This UTF-8 encoding can't convert to UTF-16:"
176 "are caused by Hunspell and can be ignored.\n";
64 << p << " [-d dict_NAME] [OPTION]... [FILE...]\n"
65 << p << " --help|--version\n"
66 << R"(
67 Check spelling of each FILE, and measure speed and correctness in regard to
68 other spellchecking libraries. If no FILE is specified, check standard input.
69 The input text should be a simple wordlist with one word per line.
70
71 -d, --dictionary=di_CT use di_CT dictionary (only one is supported)
72 -m, --print-mismatches print mismatches (false positives and negatives)
73 -s, --test-suggestions call suggest function (useful only for debugging)
74 -w, --wikipedia-list input is Wikipedia's list of common misspellings
75 --encoding=enc set both input and output encoding
76 --input-encoding=enc input encoding, default is active locale
77 --output-encoding=enc (UNUSED, always UTF-8) output encoding, default is
78 active locale
79 --help print this help
80 --version print version number
81
82 The following environment variables can have effect:
83
84 DICTIONARY - same as -d,
85 DICPATH - additional directory path to search for dictionaries.
86
87 Example:
88 )"
89 << " " << p << " -d en_US file.txt\n"
90 << " " << p << " -d ../../subdir/di_CT.aff\n";
17791 }
17892
179 /**
180 * @brief Prints the version number to standard output.
181 */
182 auto print_version() -> void
183 {
184 cout << PACKAGE_STRING
185 "\n"
186 "Copyright (C) 2018-2022 Dimitrij Mijoski and Sander van Geloven\n"
187 "License LGPLv3+: GNU LGPL version 3 or later "
188 "<http://gnu.org/licenses/lgpl.html>.\n"
189 "This is free software: you are free to change and "
190 "redistribute it.\n"
191 "There is NO WARRANTY, to the extent permitted by law.\n"
192 "\n"
193 "Written by Dimitrij Mijoski and Sander van Geloven.\n";
194 }
93 auto ver_str = "nuspell " PROJECT_VERSION R"(
94 Copyright (C) 2016-2022 Dimitrij Mijoski
95 License LGPLv3+: GNU LGPL version 3 or later <http://gnu.org/licenses/lgpl.html>.
96 This is free software: you are free to change and redistribute it.
97 There is NO WARRANTY, to the extent permitted by law.
98
99 Written by Dimitrij Mijoski.
100 )";
101
102 auto print_version() -> void { cout << ver_str; }
195103
196104 auto get_peak_ram_usage() -> long
197105 {
198106 #ifdef _POSIX_VERSION
199107 rusage r;
200 getrusage(RUSAGE_SELF, &r);
201 return r.ru_maxrss;
202 #else
108 auto err = getrusage(RUSAGE_SELF, &r);
109 if (!err)
110 return r.ru_maxrss;
111 #elif _WIN32
112 PROCESS_MEMORY_COUNTERS pmc;
113 auto suc = GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
114 if (suc)
115 return pmc.PeakWorkingSetSize >> 10;
116 #endif
203117 return 0;
204 #endif
205118 }
206119
207120 auto to_utf8(string_view source, string& dest, UConverter* ucnv,
233146 }
234147 }
235148
236 auto normal_loop(const Args_t& args, const Dictionary& dic, Hunspell& hun,
237 istream& in, ostream& out)
149 struct Options {
150 bool print_mismatches = false;
151 bool test_suggestions = false;
152 bool wikipedia_list = false;
153 };
154
155 auto process_text(Options opt, const Dictionary& dic, Hunspell& hun,
156 UConverter* hun_cnv, istream& in, UConverter* in_cnv,
157 ostream& out, UErrorCode& uerr)
238158 {
239 auto print_false = args.print_false;
240 auto test_sugs = args.sugs;
241 auto word = string();
242 auto u8_buffer = string();
243 auto hun_word = string();
244 auto total = 0;
245 auto true_pos = 0;
246 auto true_neg = 0;
247 auto false_pos = 0;
248 auto false_neg = 0;
249 auto duration_hun = chrono::high_resolution_clock::duration();
250 auto duration_nu = duration_hun;
251 auto in_loc = in.getloc();
252
159 using Duration = chrono::high_resolution_clock::duration;
160 string word, line, u8_tmp_buf, hun_word;
161 size_t total = 0;
162 size_t true_pos = 0, true_neg = 0, false_pos = 0, false_neg = 0;
163 Duration time_nu_true = {}, time_nu_false = {};
164 Duration time_hun_true = {}, time_hun_false = {};
165
166 auto nus_sugs = vector<string>();
167 Duration time_nu_sugs = {}, time_hun_sugs = {};
168 size_t nus_hits = 0, nus_misses = 0, nus_sum_orders = 0;
169 size_t hun_hits = 0, hun_misses = 0, hun_sum_orders = 0;
170
171 auto hun_enc =
172 nuspell::Encoding(hun.get_dict_encoding()).value_or_default();
173 auto in_is_utf8 = ucnv_getType(in_cnv) == UCNV_UTF8;
174 // auto out_is_utf8 = ucnv_getType(out_cnv) == UCNV_UTF8;
175 auto hun_is_utf8 = ucnv_getType(hun_cnv) == UCNV_UTF8;
176
177 for (;;) {
178 size_t i = 0;
179 if (opt.wikipedia_list) {
180 if (!getline(in, line))
181 break;
182 if (line.empty() || line.front() == '#')
183 continue;
184 auto rtrim_idx = line.find_last_not_of(" \t\r");
185 if (rtrim_idx != line.npos)
186 line.erase(++rtrim_idx);
187 if (!in_is_utf8) {
188 to_utf8(line, u8_tmp_buf, in_cnv, uerr);
189 line = u8_tmp_buf;
190 }
191 if ((i = line.find("->")) != line.npos) {
192 word.assign(line, 0, i);
193 i += 2;
194 }
195 else if ((i = line.find('\t')) != line.npos) {
196 word.assign(line, 0, i);
197 i += 1;
198 }
199 else
200 continue;
201 }
202 else if (in >> word) {
203 if (!in_is_utf8) {
204 to_utf8(word, u8_tmp_buf, in_cnv, uerr);
205 word = u8_tmp_buf;
206 }
207 }
208 else
209 break;
210 auto time_a = chrono::high_resolution_clock::now();
211 auto res_nu = dic.spell(word);
212 auto time_b = chrono::high_resolution_clock::now();
213 if (hun_is_utf8)
214 hun_word = word;
215 else
216 from_utf8(word, hun_word, hun_cnv, uerr);
217 auto res_hun = hun.spell(hun_word);
218 auto time_c = chrono::high_resolution_clock::now();
219 auto time_nu = time_b - time_a;
220 auto time_hun = time_c - time_b;
221 if (res_nu)
222 time_nu_true += time_nu;
223 else
224 time_nu_false += time_nu;
225 if (res_hun)
226 time_hun_true += time_hun;
227 else
228 time_hun_false += time_hun;
229 if (res_hun) {
230 if (res_nu) {
231 ++true_pos;
232 }
233 else {
234 ++false_neg;
235 if (opt.print_mismatches)
236 out << "FN: " << word << '\n';
237 }
238 }
239 else {
240 if (res_nu) {
241 ++false_pos;
242 if (opt.print_mismatches)
243 out << "FP: " << word << '\n';
244 }
245 else {
246 ++true_neg;
247 }
248 }
249 ++total;
250
251 if (!opt.test_suggestions && !opt.wikipedia_list)
252 continue;
253 time_a = chrono::high_resolution_clock::now();
254 dic.suggest(word, nus_sugs);
255 time_b = chrono::high_resolution_clock::now();
256 auto hun_sugs = hun.suggest(hun_word);
257 time_c = chrono::high_resolution_clock::now();
258 time_nu_sugs += time_b - time_a;
259 time_hun_sugs += time_c - time_b;
260 if (!opt.wikipedia_list)
261 continue;
262 if (opt.print_mismatches && (res_nu || res_hun)) {
263 out << "Word " << word << " detected as correct.\n"
264 << "Suggestions from list: " << line.substr(i)
265 << '\n';
266 }
267 if (opt.print_mismatches && res_nu && !empty(nus_sugs)) {
268 out << "Nuspell sugs : ";
269 for (auto it = begin(nus_sugs);;) {
270 out << *it;
271 if (++it == end(nus_sugs))
272 break;
273 out << ", ";
274 }
275 out << '\n';
276 }
277
278 for (auto& hs : hun_sugs) {
279 to_utf8(hs, u8_tmp_buf, hun_cnv, uerr);
280 hs = u8_tmp_buf;
281 }
282 // hun_sugs is now utf8
283
284 if (opt.print_mismatches && res_hun && !empty(hun_sugs)) {
285 out << "Hunspell sugs: ";
286 for (auto it = begin(hun_sugs);;) {
287 out << *it;
288 if (++it == end(hun_sugs))
289 break;
290 out << ", ";
291 }
292 out << '\n';
293 }
294 for (auto needle = ", "sv;;) {
295 auto j = line.find(needle, i);
296 auto wiki_sug = line.substr(i, j - i);
297
298 // process wiki_sug
299 auto it =
300 find(begin(nus_sugs), end(nus_sugs), wiki_sug);
301 if (it != end(nus_sugs)) {
302 ++nus_hits;
303 auto order = distance(begin(nus_sugs), it) + 1;
304 nus_sum_orders += order;
305 }
306 else {
307 ++nus_misses;
308 }
309
310 it = find(begin(hun_sugs), end(hun_sugs), wiki_sug);
311 if (it != end(hun_sugs)) {
312 ++hun_hits;
313 auto order = distance(begin(hun_sugs), it) + 1;
314 hun_sum_orders += order;
315 }
316 else {
317 ++hun_misses;
318 }
319
320 // stop condition
321 if (j == line.npos)
322 break;
323 // increment
324 i = j + size(needle);
325 }
326 if (total % 100 == 0)
327 out << total << " words processed." << endl;
328 }
329 out << "Total Words = " << total << '\n';
330 if (total == 0)
331 return;
332 auto accuracy = (true_pos + true_neg) * 1.0 / total;
333 auto precision = true_pos * 1.0 / (true_pos + false_pos);
334 auto total_hun_time = time_hun_true + time_hun_false;
335 auto total_nu_time = time_nu_true + time_nu_false;
336 auto speedup = total_hun_time.count() * 1.0 / total_nu_time.count();
337 out << "TP = " << true_pos << '\n';
338 out << "TN = " << true_neg << '\n';
339 out << "FP = " << false_pos << '\n';
340 out << "FN = " << false_neg << '\n';
341 out << "Accuracy = " << accuracy << '\n';
342 out << "Precision = " << precision << '\n';
343 out << "Time Nuspell True = " << time_nu_true.count() << '\n';
344 out << "Time Nuspell False = " << time_nu_false.count() << '\n';
345 out << "Time Hunspell True = " << time_hun_true.count() << '\n';
346 out << "Time Hunspell False = " << time_hun_false.count() << '\n';
347 out << "Speedup = " << speedup << '\n';
348 if (!opt.test_suggestions && !opt.wikipedia_list)
349 return;
350 out << '\n';
351 out << "Nus hits = " << nus_hits << '\n';
352 out << "Nus misses = " << nus_misses << '\n';
353 out << "Nus avg order = " << nus_sum_orders * 1.0 / nus_hits << '\n';
354 out << "Hun hits = " << hun_hits << '\n';
355 out << "Hun misses = " << hun_misses << '\n';
356 out << "Hun avg order = " << hun_sum_orders * 1.0 / hun_hits << '\n';
357 out << "Time Nuspell sugs = " << time_nu_sugs.count() << '\n';
358 out << "Time Hunspell sugs = " << time_hun_sugs.count() << '\n';
359 }
360 } // namespace
361 int main(int argc, char* argv[])
362 {
363 auto mode_int = int(Mode::NORMAL);
364 auto program_name = "nuspell";
365 auto dictionary = string();
366 auto input_enc = string();
367 auto output_enc = string();
368 auto options = Options();
369
370 if (argc > 0 && argv[0])
371 program_name = argv[0];
372
373 ios_base::sync_with_stdio(false);
374
375 auto optstring = "d:msw";
376 option longopts[] = {
377 {"help", no_argument, &mode_int, Mode::HELP},
378 {"version", no_argument, &mode_int, Mode::VERSION},
379 {"dictionary", required_argument, nullptr, 'd'},
380 {"print-mismatches", no_argument, nullptr, 'm'},
381 {"test-suggestions", no_argument, nullptr, 's'},
382 {"wikipedia-list", no_argument, nullptr, 'w'},
383 {"encoding", required_argument, nullptr, 'e'},
384 {"input-encoding", required_argument, nullptr, 'i'},
385 {"output-encoding", required_argument, nullptr, 'o'},
386 {}};
387 int longindex;
388 int c;
389 while ((c = getopt_long(argc, argv, optstring, longopts, &longindex)) !=
390 -1) {
391 switch (c) {
392 case 0:
393 // check longopts[longindex] if needed
394 break;
395 case 'd':
396 dictionary = optarg;
397 break;
398 case 'm':
399 options.print_mismatches = true;
400 break;
401 case 's':
402 options.test_suggestions = true;
403 break;
404 case 'w':
405 options.wikipedia_list = true;
406 break;
407 case 'e':
408 input_enc = optarg;
409 output_enc = optarg;
410 break;
411 case 'i':
412 input_enc = optarg;
413 break;
414 case 'o':
415 output_enc = optarg;
416 break;
417 case '?':
418 return EXIT_FAILURE;
419 }
420 }
421 auto mode = static_cast<Mode>(mode_int);
422 if (mode == Mode::VERSION) {
423 print_version();
424 return 0;
425 }
426 else if (mode == Mode::HELP) {
427 print_help(program_name);
428 return 0;
429 }
430 auto f = Dict_Finder_For_CLI_Tool_2();
431
432 char* loc_str = nullptr;
433 #if _WIN32
434 loc_str = setlocale(LC_CTYPE, nullptr); // will return "C"
435 #else
436 loc_str = setlocale(LC_CTYPE, "");
437 if (!loc_str) {
438 clog << "WARNING: Can not set to system locale, fall back to "
439 "\"C\".\n";
440 loc_str = setlocale(LC_CTYPE, nullptr); // will return "C"
441 }
442 #endif
443 #if _POSIX_VERSION
444 auto enc_str = nl_langinfo(CODESET);
445 if (input_enc.empty())
446 input_enc = enc_str;
447 if (output_enc.empty())
448 output_enc = enc_str;
449 #elif _WIN32
450 if (optind == argc && _isatty(_fileno(stdin)))
451 input_enc = "cp" + to_string(GetConsoleCP());
452 else if (input_enc.empty())
453 input_enc = "UTF-8";
454 if (_isatty(_fileno(stdout)))
455 output_enc = "cp" + to_string(GetConsoleOutputCP());
456 else if (output_enc.empty())
457 output_enc = "UTF-8";
458 #endif
459 auto loc_str_sv = string_view(loc_str);
460 clog << "INFO: Locale LC_CTYPE=" << loc_str_sv
461 << ", Input encoding=" << input_enc
462 << ", Output encoding=" << output_enc << endl;
463
464 if (dictionary.empty()) {
465 auto denv = getenv("DICTIONARY");
466 if (denv)
467 dictionary = denv;
468 }
469 if (dictionary.empty()) {
470 // infer dictionary from locale
471 auto idx = min(loc_str_sv.find('.'), loc_str_sv.find('@'));
472 dictionary = loc_str_sv.substr(0, idx);
473 }
474 if (dictionary.empty()) {
475 clog << "ERROR: No dictionary provided and can not infer from "
476 "OS locale\n";
477 return EXIT_FAILURE;
478 }
479 auto filename = f.get_dictionary_path(dictionary);
480 if (filename.empty()) {
481 clog << "ERROR: Dictionary " << dictionary << " not found\n";
482 return EXIT_FAILURE;
483 }
484 clog << "INFO: Pointed dictionary " << filename.string() << endl;
485 auto peak_ram_a = get_peak_ram_usage();
486 auto dic = Dictionary();
487 try {
488 dic.load_aff_dic_internal(filename, clog);
489 }
490 catch (const Dictionary_Loading_Error& e) {
491 clog << "ERROR: " << e.what() << '\n';
492 return EXIT_FAILURE;
493 }
494 auto nuspell_ram = get_peak_ram_usage() - peak_ram_a;
495 auto aff_name = filename.string();
496 auto dic_name = filename.replace_extension(".dic").string();
497 peak_ram_a = get_peak_ram_usage();
498 auto hun = Hunspell(aff_name.c_str(), dic_name.c_str());
499 auto hunspell_ram = get_peak_ram_usage() - peak_ram_a;
500 cout << "Nuspell peak RAM usage: " << nuspell_ram << "KB\n"
501 << "Hunspell peak RAM usage: " << hunspell_ram << "KB\n";
502
503 // ICU reports all types of errors, logic errors and runtime errors
504 // using this enum. We should not check for logic errors, they should
505 // not happened. Optionally, only assert that they are not there can be
506 // used. We should check for runtime errors.
507 // The encoding conversion is a common case where runtime error can
508 // happen, but by default ICU uses Unicode replacement character on
509 // errors and reprots success. This can be changed, but there is no need
510 // for that.
253511 auto uerr = U_ZERO_ERROR;
254 auto io_cnv = icu::LocalUConverterPointer(
255 ucnv_open(args.encoding.c_str(), &uerr));
256 if (U_FAILURE(uerr))
257 throw runtime_error("Invalid io encoding");
512 auto inp_enc_cstr = input_enc.c_str();
513 if (input_enc.empty()) {
514 inp_enc_cstr = nullptr;
515 clog << "WARNING: using default ICU encoding converter for IO"
516 << endl;
517 }
518 auto in_ucnv =
519 icu::LocalUConverterPointer(ucnv_open(inp_enc_cstr, &uerr));
520 if (U_FAILURE(uerr)) {
521 clog << "ERROR: Invalid encoding " << input_enc << ".\n";
522 return EXIT_FAILURE;
523 }
524
258525 auto hun_enc =
259526 nuspell::Encoding(hun.get_dict_encoding()).value_or_default();
260527 auto hun_cnv =
261528 icu::LocalUConverterPointer(ucnv_open(hun_enc.c_str(), &uerr));
262 if (U_FAILURE(uerr))
263 throw runtime_error("Invalid hun encoding");
264 auto io_is_utf8 = ucnv_getType(io_cnv.getAlias()) == UCNV_UTF8;
265 auto hun_is_utf8 = ucnv_getType(hun_cnv.getAlias()) == UCNV_UTF8;
266
267 // need to take entine line here, not `in >> word`
268 while (getline(in, word)) {
269 auto u8_word = string_view();
270 auto tick_a = chrono::high_resolution_clock::now();
271 if (io_is_utf8) {
272 u8_word = word;
273 }
274 else {
275 to_utf8(word, u8_buffer, io_cnv.getAlias(), uerr);
276 u8_word = u8_buffer;
277 }
278 auto res_nu = dic.spell(u8_word);
279 auto tick_b = chrono::high_resolution_clock::now();
280 if (hun_is_utf8)
281 hun_word = u8_word;
282 else
283 from_utf8(u8_word, hun_word, hun_cnv.getAlias(), uerr);
284 auto res_hun = hun.spell(hun_word);
285 auto tick_c = chrono::high_resolution_clock::now();
286 duration_nu += tick_b - tick_a;
287 duration_hun += tick_c - tick_b;
288 if (res_hun) {
289 if (res_nu) {
290 ++true_pos;
291 }
292 else {
293 ++false_neg;
294 if (print_false)
295 out << "FalseNegativeWord " << word
296 << '\n';
297 }
298 }
299 else {
300 if (res_nu) {
301 ++false_pos;
302 if (print_false)
303 out << "FalsePositiveWord " << word
304 << '\n';
305 }
306 else {
307 ++true_neg;
308 }
309 }
310 ++total;
311 if (test_sugs && !res_nu && !res_hun) {
312 auto nus_sugs = vector<string>();
313 auto hun_sugs = vector<string>();
314 dic.suggest(word, nus_sugs);
315 hun.suggest(hun_word);
316 }
317 }
318 out << "Total Words " << total << '\n';
319 // prevent devision by zero
320 if (total == 0)
321 return;
322 auto accuracy = (true_pos + true_neg) * 1.0 / total;
323 auto precision = true_pos * 1.0 / (true_pos + false_pos);
324 auto speedup = duration_hun.count() * 1.0 / duration_nu.count();
325 out << "True Positives " << true_pos << '\n';
326 out << "True Negatives " << true_neg << '\n';
327 out << "False Positives " << false_pos << '\n';
328 out << "False Negatives " << false_neg << '\n';
329 out << "Accuracy " << accuracy << '\n';
330 out << "Precision " << precision << '\n';
331 out << "Duration Nuspell " << duration_nu.count() << '\n';
332 out << "Duration Hunspell " << duration_hun.count() << '\n';
333 out << "Speedup Rate " << speedup << '\n';
334 }
335
336 int main(int argc, char* argv[])
337 {
338 // May speed up I/O. After this, don't use C printf, scanf etc.
339 ios_base::sync_with_stdio(false);
340
341 auto args = Args_t(argc, argv);
342
343 switch (args.mode) {
344 case HELP_MODE:
345 print_help(args.program_name);
346 return 0;
347 case VERSION_MODE:
348 print_version();
349 return 0;
350 case ERROR_MODE:
351 cerr << "Invalid (combination of) arguments, try '"
352 << args.program_name << " --help' for more information\n";
353 return 1;
354 default:
355 break;
356 }
357 auto f = Dict_Finder_For_CLI_Tool_2();
358
359 auto loc_str = setlocale(LC_CTYPE, "");
360 if (!loc_str) {
361 clog << "WARNING: Invalid locale string, fall back to \"C\".\n";
362 loc_str = setlocale(LC_CTYPE, nullptr); // will return "C"
363 }
364 auto loc_str_sv = string_view(loc_str);
365 if (args.encoding.empty()) {
366 #if _POSIX_VERSION
367 auto enc_str = nl_langinfo(CODESET);
368 args.encoding = enc_str;
369 #elif _WIN32
370 #endif
371 }
372 clog << "INFO: Locale LC_CTYPE=" << loc_str_sv
373 << ", Used encoding=" << args.encoding << '\n';
374 if (args.dictionary.empty()) {
375 // infer dictionary from locale
376 auto idx = min(loc_str_sv.find('.'), loc_str_sv.find('@'));
377 args.dictionary = loc_str_sv.substr(0, idx);
378 }
379 if (args.dictionary.empty()) {
380 cerr << "No dictionary provided and can not infer from OS "
381 "locale\n";
382 }
383 auto filename = f.get_dictionary_path(args.dictionary);
384 if (filename.empty()) {
385 cerr << "Dictionary " << args.dictionary << " not found\n";
386 return 1;
387 }
388 clog << "INFO: Pointed dictionary " << filename.string() << '\n';
389 auto peak_ram_a = get_peak_ram_usage();
390 auto dic = Dictionary();
391 try {
392 dic.load_aff_dic(filename);
393 }
394 catch (const Dictionary_Loading_Error& e) {
395 cerr << e.what() << '\n';
396 return 1;
397 }
398 auto nuspell_ram = get_peak_ram_usage() - peak_ram_a;
399 auto aff_name = filename.string();
400 auto dic_name = filename.replace_extension(".dic").string();
401 peak_ram_a = get_peak_ram_usage();
402 Hunspell hun(aff_name.c_str(), dic_name.c_str());
403 auto hunspell_ram = get_peak_ram_usage() - peak_ram_a;
404 cout << "Nuspell peak RAM usage: " << nuspell_ram << "kB\n"
405 << "Hunspell peak RAM usage: " << hunspell_ram << "kB\n";
406 if (args.files.empty()) {
407 normal_loop(args, dic, hun, cin, cout);
529 if (U_FAILURE(uerr)) {
530 clog << "ERROR: Invalid Hun encoding " << hun_enc << ".\n";
531 return EXIT_FAILURE;
532 }
533
534 if (optind == argc) {
535 process_text(options, dic, hun, hun_cnv.getAlias(), cin,
536 in_ucnv.getAlias(), cout, uerr);
408537 }
409538 else {
410 for (auto& file_name : args.files) {
539 for (; optind != argc; ++optind) {
540 auto file_name = argv[optind];
411541 ifstream in(file_name);
412542 if (!in.is_open()) {
413 cerr << "Can't open " << file_name << '\n';
414 return 1;
415 }
416 in.imbue(cin.getloc());
417 normal_loop(args, dic, hun, in, cout);
418 }
419 }
420 return 0;
543 clog << "ERROR: Can't open " << file_name
544 << '\n';
545 return EXIT_FAILURE;
546 }
547 process_text(options, dic, hun, hun_cnv.getAlias(), in,
548 in_ucnv.getAlias(), cout, uerr);
549 }
550 }
421551 }