├── C++ ├── project1.sln ├── project1.v12.suo └── project1 │ ├── data │ ├── beach │ │ └── b1.jpg │ ├── forest │ │ └── f1.jpg │ └── test │ │ ├── t1_b.jpg │ │ └── t5_f.jpg │ ├── exercise5_5.cpp │ ├── project1.vcxproj │ ├── project1.vcxproj.filters │ ├── project1.vcxproj.user │ └── readme.txt ├── LICENSE ├── README.md ├── matlab └── road_detection │ ├── code │ ├── gaborFeatures.m │ ├── gaborFilterBank.m │ ├── get_texture.m │ ├── road_area_detection.m │ ├── test.m │ └── texture_voting.m │ ├── input │ ├── 1.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ └── 8.jpg │ ├── output │ └── output.txt │ └── readme.txt └── python └── EnglishSpellCorrection ├── readme.md └── source ├── Data.py ├── Distance.py ├── SearchTree.py ├── StatisticLog.py ├── en.txt ├── proofreading.py ├── readme.md ├── top3_t2_basic_1.log └── vocab10000.to /C++/project1.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.30723.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "project1", "project1\project1.vcxproj", "{84C34E10-E1B9-4623-9A23-D84D0CD68D35}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Release|Win32 = Release|Win32 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {84C34E10-E1B9-4623-9A23-D84D0CD68D35}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {84C34E10-E1B9-4623-9A23-D84D0CD68D35}.Debug|Win32.Build.0 = Debug|Win32 16 | {84C34E10-E1B9-4623-9A23-D84D0CD68D35}.Release|Win32.ActiveCfg = Release|Win32 17 | {84C34E10-E1B9-4623-9A23-D84D0CD68D35}.Release|Win32.Build.0 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /C++/project1.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/C++/project1.v12.suo -------------------------------------------------------------------------------- /C++/project1/data/beach/b1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/C++/project1/data/beach/b1.jpg -------------------------------------------------------------------------------- /C++/project1/data/forest/f1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/C++/project1/data/forest/f1.jpg -------------------------------------------------------------------------------- /C++/project1/data/test/t1_b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/C++/project1/data/test/t1_b.jpg -------------------------------------------------------------------------------- /C++/project1/data/test/t5_f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/C++/project1/data/test/t5_f.jpg -------------------------------------------------------------------------------- /C++/project1/exercise5_5.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | using namespace cv; 10 | using namespace cv::ml; 11 | using namespace std; 12 | 13 | #define CLASS_NUM 2 14 | const char *g_train_data_path = "./data/"; 15 | const char *g_class_name[CLASS_NUM] = { "beach", "forest" }; 16 | const int g_train_image_num[CLASS_NUM] = { 8, 8 }; 17 | const char *g_test_data_path = "./data/test/"; 18 | const int g_test_image_num = 8; 19 | 20 | vector dir(string path) 21 | { 22 | long hFile = 0; 23 | struct _finddata_t fileInfo; 24 | string pathName, exdName; 25 | vector file_name; 26 | if ((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(), &fileInfo)) == -1) { 27 | return file_name; 28 | } 29 | do { 30 | file_name.push_back(fileInfo.name); 31 | cout << fileInfo.name << (fileInfo.attrib&_A_SUBDIR ? "[folder]" : "[file]") << endl; 32 | } while (_findnext(hFile, &fileInfo) == 0); 33 | _findclose(hFile); 34 | return file_name; 35 | } 36 | bool IsJpgImage(string filename) 37 | { 38 | int idx = filename.find_last_of(".jpg"); 39 | int len = filename.length(); 40 | if (filename.length() > 4 && idx == len-1) 41 | { 42 | return true; 43 | } 44 | else 45 | { 46 | return false; 47 | } 48 | } 49 | MatND HistForRGB(Mat img) 50 | { 51 | Mat hsv; 52 | 53 | cvtColor(img, hsv, COLOR_BGR2HSV); 54 | 55 | // Quantize the hue to 30 levels 56 | // and the saturation to 32 levels 57 | int hbins = 30, sbins = 32; 58 | int histSize[] = { hbins, sbins }; 59 | // hue varies from 0 to 179, see cvtColor 60 | float hranges[] = { 0, 180 }; 61 | // saturation varies from 0 (black-gray-white) to 62 | // 255 (pure spectrum color) 63 | float sranges[] = { 0, 256 }; 64 | const float* ranges[] = { hranges, sranges }; 65 | Mat hist; 66 | // we compute the histogram from the 0-th and 1-st channels 67 | int channels[] = {0,1}; 68 | 69 | calcHist(&hsv, 1, channels, Mat(), // do not use mask 70 | hist, 2, histSize, ranges, 71 | true, // the histogram is uniform 72 | false); 73 | double maxVal = 0; 74 | minMaxLoc(hist, 0, &maxVal, 0, 0); 75 | 76 | int scale = 10; 77 | Mat histImg = Mat::zeros(sbins*scale, hbins * 10, CV_8UC3); 78 | 79 | for (int h = 0; h < hbins; h++) 80 | for (int s = 0; s < sbins; s++) 81 | { 82 | float binVal = hist.at(h, s); 83 | int intensity = cvRound(binVal * 255 / maxVal); 84 | rectangle(histImg, Point(h*scale, s*scale), 85 | Point((h + 1)*scale - 1, (s + 1)*scale - 1), 86 | Scalar::all(intensity), 87 | CV_FILLED); 88 | } 89 | 90 | return hist; 91 | } 92 | int main(int argc, char** argv) 93 | { 94 | 95 | vector images_train; 96 | Mat hists_train; 97 | Mat hists_labels; 98 | vector images_test; 99 | Mat hists_test; 100 | Mat image; 101 | vector filename = dir(string(g_train_data_path) + string(g_class_name[0])); 102 | //read train data 103 | for (int idx_class = 0; idx_class < CLASS_NUM; idx_class++) 104 | { 105 | string class_data_path = string(g_train_data_path) + string(g_class_name[idx_class]) + string("/"); 106 | filename = dir(class_data_path); 107 | for (int idx_file = 2; idx_file < filename.size(); idx_file++) 108 | { 109 | if (IsJpgImage(filename[idx_file])) 110 | { 111 | image = imread(class_data_path + filename[idx_file], CV_LOAD_IMAGE_COLOR); // Read the file 112 | if (image.data) 113 | { 114 | images_train.push_back(image); 115 | } 116 | else 117 | { 118 | cout << "read train image error:" << class_data_path + filename[idx_file] << endl; 119 | } 120 | Mat hist = HistForRGB(image); 121 | //hist.reshape(0,1); 122 | hists_train.push_back(hist.reshape(0, 1)); 123 | hists_labels.push_back(float(idx_class)); 124 | } 125 | } 126 | } 127 | //read test data 128 | { 129 | string class_data_path = string(g_test_data_path)+string("/"); 130 | filename = dir(class_data_path); 131 | for (int idx_file = 2; idx_file < filename.size(); idx_file++) 132 | { 133 | if (IsJpgImage(filename[idx_file])) 134 | { 135 | image = imread(class_data_path + filename[idx_file], CV_LOAD_IMAGE_COLOR); // Read the file 136 | if (image.data) 137 | { 138 | images_test.push_back(image); 139 | } 140 | else 141 | { 142 | cout << "read test image error:" << class_data_path + filename[idx_file] << endl; 143 | } 144 | Mat hist = HistForRGB(image); 145 | 146 | hists_test.push_back(hist.reshape(0, 1)); 147 | } 148 | } 149 | } 150 | //histogram 151 | 152 | 153 | //etcetera code for loading data into Mat variables suppressed 154 | Mat matResults; 155 | Ptr trainingData; 156 | Ptr kclassifier = KNearest::create(); 157 | 158 | trainingData = TrainData::create(hists_train, 159 | SampleTypes::ROW_SAMPLE, hists_labels); 160 | 161 | kclassifier->setIsClassifier(true); 162 | kclassifier->setAlgorithmType(KNearest::Types::BRUTE_FORCE); 163 | kclassifier->setDefaultK(1); 164 | 165 | kclassifier->train(trainingData); 166 | kclassifier->findNearest(hists_test, kclassifier->getDefaultK(), matResults); 167 | 168 | for (int idx_test = 0; idx_test < matResults.rows; idx_test++) 169 | { 170 | cout << matResults.at(idx_test,0) << std::endl; 171 | } 172 | cout << "label:" << endl; 173 | for (int idx_test = 0; idx_test < hists_labels.rows; idx_test++) 174 | { 175 | cout << hists_labels.at(idx_test, 0) << std::endl; 176 | } 177 | 178 | return 0; 179 | } -------------------------------------------------------------------------------- /C++/project1/project1.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {84C34E10-E1B9-4623-9A23-D84D0CD68D35} 15 | Win32Proj 16 | project1 17 | 18 | 19 | 20 | Application 21 | true 22 | v120 23 | Unicode 24 | 25 | 26 | Application 27 | false 28 | v120 29 | true 30 | Unicode 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | true 44 | 45 | 46 | false 47 | 48 | 49 | 50 | 51 | 52 | Level3 53 | Disabled 54 | WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) 55 | true 56 | C:\software\opcv3.0\opencv\build\include;%(AdditionalIncludeDirectories) 57 | 58 | 59 | Console 60 | true 61 | opencv_world300d.lib;%(AdditionalDependencies) 62 | C:\software\opcv3.0\opencv\build\x86\vc12\staticlib;C:\software\opcv3.0\opencv\build\x86\vc12\lib;%(AdditionalLibraryDirectories) 63 | 64 | 65 | 66 | 67 | Level3 68 | 69 | 70 | MaxSpeed 71 | true 72 | true 73 | WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) 74 | true 75 | C:\software\opcv3.0\opencv\build\include;%(AdditionalIncludeDirectories) 76 | 77 | 78 | Console 79 | true 80 | true 81 | true 82 | opencv_world300.lib;%(AdditionalDependencies) 83 | C:\software\opcv3.0\opencv\build\x86\vc12\staticlib;C:\software\opcv3.0\opencv\build\x86\vc12\lib;%(AdditionalLibraryDirectories) 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /C++/project1/project1.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 源文件 20 | 21 | 22 | -------------------------------------------------------------------------------- /C++/project1/project1.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /C++/project1/readme.txt: -------------------------------------------------------------------------------- 1 | KNN for histogram of image based on opecn 3.0 2 | 3 | 4 | lib: opencv 3.0 5 | classifier: KNN 6 | feature: histogram for hue channel 7 | 8 | 9 | 10 | data:20170822 11 | author:lijiguo 12 | email: lijiguo16@mails.ucas.ac.cn -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Jiguo Li 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # projects 2 | some projects for course 3 | 4 | # matlab 5 | ## road detection 6 | matlab codes for road detection baesd on vanishing point. 7 | 8 | # python 9 | ## English Spell Correction 10 | This project is for English Spell Correction based on python 2.7. 11 | 12 | 13 | ---- 14 | author: Jiguo Li 15 | e-mail: jiguo_li@outlook.com 16 | -------------------------------------------------------------------------------- /matlab/road_detection/code/gaborFeatures.m: -------------------------------------------------------------------------------- 1 | function [featureVector, gaborResult] = gaborFeatures(img,gaborArray,d1,d2) 2 | 3 | % GABORFEATURES extracts the Gabor features of an input image. 4 | % It creates a column vector, consisting of the Gabor features of the input 5 | % image. The feature vectors are normalized to zero mean and unit variance. 6 | % 7 | % 8 | % Inputs: 9 | % img : Matrix of the input image 10 | % gaborArray : Gabor filters bank created by the function gaborFilterBank 11 | % d1 : The factor of downsampling along rows. 12 | % d2 : The factor of downsampling along columns. 13 | % 14 | % Output: 15 | % featureVector : A column vector with length (m*n*u*v)/(d1*d2). 16 | % This vector is the Gabor feature vector of an 17 | % m by n image. u is the number of scales and 18 | % v is the number of orientations in 'gaborArray'. 19 | % 20 | % 21 | % Sample use: 22 | % 23 | % img = imread('cameraman.tif'); 24 | % gaborArray = gaborFilterBank(5,8,39,39); % Generates the Gabor filter bank 25 | % featureVector = gaborFeatures(img,gaborArray,4,4); % Extracts Gabor feature vector, 'featureVector', from the image, 'img'. 26 | % 27 | % 28 | % 29 | % Details can be found in: 30 | % 31 | % M. Haghighat, S. Zonouz, M. Abdel-Mottaleb, "CloudID: Trustworthy 32 | % cloud-based and cross-enterprise biometric identification," 33 | % Expert Systems with Applications, vol. 42, no. 21, pp. 7905-7916, 2015. 34 | % 35 | % 36 | % 37 | % (C) Mohammad Haghighat, University of Miami 38 | % haghighat@ieee.org 39 | % PLEASE CITE THE ABOVE PAPER IF YOU USE THIS CODE. 40 | 41 | 42 | if (nargin ~= 4) % Check correct number of arguments 43 | error('Please use the correct number of input arguments!') 44 | end 45 | 46 | if size(img,3) == 3 % Check if the input image is grayscale 47 | warning('The input RGB image is converted to grayscale!') 48 | img = rgb2gray(img); 49 | end 50 | 51 | img = double(img); 52 | 53 | 54 | %% Filter the image using the Gabor filter bank 55 | 56 | % Filter input image by each Gabor filter 57 | [u,v] = size(gaborArray); 58 | gaborResult = cell(u,v); 59 | for i = 1:u 60 | for j = 1:v 61 | gaborResult{i,j} = imfilter(img, gaborArray{i,j}); 62 | end 63 | end 64 | 65 | 66 | %% Create feature vector 67 | 68 | % Extract feature vector from input image 69 | featureVector = []; 70 | for i = 1:u 71 | for j = 1:v 72 | 73 | gaborAbs = abs(gaborResult{i,j}); 74 | gaborAbs = downsample(gaborAbs,d1); 75 | gaborAbs = downsample(gaborAbs.',d2); 76 | gaborAbs = gaborAbs(:); 77 | 78 | % Normalized to zero mean and unit variance. (if not applicable, please comment this line) 79 | gaborAbs = (gaborAbs-mean(gaborAbs))/std(gaborAbs,1); 80 | 81 | featureVector = [featureVector; gaborAbs]; 82 | 83 | end 84 | end 85 | 86 | 87 | %% Show filtered images (Please comment this section if not needed!) 88 | % 89 | % % Show real parts of Gabor-filtered images 90 | % figure('NumberTitle','Off','Name','Real parts of Gabor filters'); 91 | % for i = 1:u 92 | % for j = 1:v 93 | % subplot(u,v,(i-1)*v+j) 94 | % imshow(real(gaborResult{i,j}),[]); 95 | % end 96 | % end 97 | % 98 | % % Show magnitudes of Gabor-filtered images 99 | % figure('NumberTitle','Off','Name','Magnitudes of Gabor filters'); 100 | % for i = 1:u 101 | % for j = 1:v 102 | % subplot(u,v,(i-1)*v+j) 103 | % imshow(abs(gaborResult{i,j}),[]); 104 | % end 105 | % end 106 | -------------------------------------------------------------------------------- /matlab/road_detection/code/gaborFilterBank.m: -------------------------------------------------------------------------------- 1 | function gaborArray = gaborFilterBank(u,v,m,n) 2 | 3 | % GABORFILTERBANK generates a custum Gabor filter bank. 4 | % It creates a u by v cell array, whose elements are m by n matrices; 5 | % each matrix being a 2-D Gabor filter. 6 | % 7 | % 8 | % Inputs: 9 | % u : No. of scales (usually set to 5) 10 | % v : No. of orientations (usually set to 8) 11 | % m : No. of rows in a 2-D Gabor filter (an odd integer number, usually set to 39) 12 | % n : No. of columns in a 2-D Gabor filter (an odd integer number, usually set to 39) 13 | % 14 | % Output: 15 | % gaborArray: A u by v array, element of which are m by n 16 | % matries; each matrix being a 2-D Gabor filter 17 | % 18 | % 19 | % Sample use: 20 | % 21 | % gaborArray = gaborFilterBank(5,8,39,39); 22 | % 23 | % 24 | % 25 | % Details can be found in: 26 | % 27 | % M. Haghighat, S. Zonouz, M. Abdel-Mottaleb, "CloudID: Trustworthy 28 | % cloud-based and cross-enterprise biometric identification," 29 | % Expert Systems with Applications, vol. 42, no. 21, pp. 7905-7916, 2015. 30 | % 31 | % 32 | % 33 | % (C) Mohammad Haghighat, University of Miami 34 | % haghighat@ieee.org 35 | % PLEASE CITE THE ABOVE PAPER IF YOU USE THIS CODE. 36 | 37 | 38 | 39 | if (nargin ~= 4) % Check correct number of arguments 40 | error('There must be four input arguments (Number of scales and orientations and the 2-D size of the filter)!') 41 | end 42 | 43 | 44 | %% Create Gabor filters 45 | % Create u*v gabor filters each being an m by n matrix 46 | m=double(int32(m)); 47 | n=double(int32(n)); 48 | gaborArray = cell(u,v); 49 | fmax = 0.25; 50 | gama = sqrt(2); 51 | eta = sqrt(2); 52 | 53 | for i = 1:u 54 | 55 | fu = fmax/((sqrt(2))^(i-1)); 56 | alpha = fu/gama; 57 | beta = fu/eta; 58 | 59 | for j = 1:v 60 | tetav = ((j-1)/v)*pi; 61 | gFilter = zeros(m,n); 62 | 63 | for x = 1:m 64 | for y = 1:n 65 | xprime = (x-((m+1)/2))*cos(tetav)+(y-((n+1)/2))*sin(tetav); 66 | yprime = -(x-((m+1)/2))*sin(tetav)+(y-((n+1)/2))*cos(tetav); 67 | gFilter(x,y) = (fu^2/(pi*gama*eta))*exp(-((alpha^2)*(xprime^2)+(beta^2)*(yprime^2)))*exp(1i*2*pi*fu*xprime); 68 | end 69 | end 70 | gaborArray{i,j} = gFilter; 71 | 72 | end 73 | end 74 | 75 | 76 | %% Show Gabor filters (Please comment this section if not needed!) 77 | 78 | % Show magnitudes of Gabor filters: 79 | % figure('NumberTitle','Off','Name','Magnitudes of Gabor filters'); 80 | % for i = 1:u 81 | % for j = 1:v 82 | % subplot(u,v,(i-1)*v+j); 83 | % imshow(abs(gaborArray{i,j}),[]); 84 | % end 85 | % end 86 | % 87 | % % Show real parts of Gabor filters: 88 | % figure('NumberTitle','Off','Name','Real parts of Gabor filters'); 89 | % for i = 1:u 90 | % for j = 1:v 91 | % subplot(u,v,(i-1)*v+j); 92 | % imshow(real(gaborArray{i,j}),[]); 93 | % end 94 | % end 95 | -------------------------------------------------------------------------------- /matlab/road_detection/code/get_texture.m: -------------------------------------------------------------------------------- 1 | function img_texture = get_texture(img); 2 | % It gets the magnitute and the direction of the texture of the image, 3 | % using the Gabor Wavelet 4 | % Input: 5 | % img: input image 6 | % Output: 7 | % img_texture: magnitude and direction of the texture 8 | % img_texture(row, col, 1): texture magnitude of pixel at (row, col) 9 | % img_texture(row, col, 2): texture direction of pixel at (row, col) 10 | % img_texture(row, col, 3): if the pixel has a main direction 11 | 12 | if (nargin ~= 1) % Check correct number of arguments 13 | error('Please use the correct number of input arguments!') 14 | end 15 | 16 | img_size = size(img); 17 | gaborArray = gaborFilterBank(5,180,img_size(1)/7.5,img_size(2)/7.5); 18 | [featureVector gaborResult] = gaborFeatures(img,gaborArray,2,2); 19 | 20 | img_texture = zeros(img_size(1),img_size(2),3); 21 | gaborSize = size(gaborResult); 22 | 23 | %get the mean of all scales 24 | img_texture_scale_add = zeros(img_size(1), img_size(2), gaborSize(2)); 25 | for v = 1:gaborSize(2) 26 | for u = 1:gaborSize(1) 27 | img_texture_scale_add(:,:,v) = img_texture_scale_add(:,:,v)+gaborResult{u,v}; 28 | end 29 | end 30 | img_texture_scale_add = img_texture_scale_add./gaborSize(1); 31 | 32 | add_size = size(img_texture_scale_add); 33 | %find max of all directions 34 | [img_texture(:,:,1) img_texture(:,:,2)] = max(img_texture_scale_add,[],3); 35 | img_texture(:,:,1) = abs(img_texture(:,:,1)); 36 | img_texture(:,:,2) = img_texture(:,:,2); 37 | 38 | %get the pixel which has main direction 39 | add_sort = abs(sort(img_texture_scale_add, 3, 'descend')); 40 | conf = 1 - mean(add_sort(:,:,5:15),3)./add_sort(:,:,1); 41 | img_texture(:,:,3) = (conf > (min(conf(:))+0.35*(max(conf(:))-min(conf(:))))); 42 | 43 | % delete the margin 44 | img_texture(1:int32(img_size(1)/20),:,3) = 0; 45 | img_texture(:,1:int32(img_size(2)/20),3) = 0; 46 | img_texture(int32(img_size(1)*19/20):img_size(1),:,3) = 0; 47 | img_texture(:,int32(img_size(2)*19/20):img_size(2),3) = 0; 48 | 49 | % figure; 50 | % img_texture1 = img_texture(:,:,1); 51 | % imshow(img_texture1.*img_texture(:,:,3)./max(img_texture1(:))); 52 | 53 | % %using hough transformation to delete some pixel 54 | % hough_space = hough_transform(img_texture(:,:,3)); 55 | % 56 | % filter_kernel = fspecial('gaussian',[5 5],1); 57 | % 58 | % hough_gaussian = conv2(hough_space, filter_kernel, 'same'); 59 | % 60 | % hough_gaussian_max = (imregionalmax(hough_gaussian,26) .* hough_gaussian); 61 | % 62 | % 63 | % 64 | % [max_1 max_1_idx] = max(hough_gaussian_max(:)); 65 | % [max_1_idx_theta max_1_idx_r] = ind2sub(size(hough_gaussian_max), max_1_idx); 66 | % hough_gaussian_max(max_1_idx_theta, max_1_idx_r) = 0; 67 | % 68 | % max_2 = 0; 69 | % max_2_idx = 0; 70 | % max_2_idx_r = 0; 71 | % max_2_idx_theta = 0; 72 | % while true 73 | % [max_2 max_2_idx] = max(hough_gaussian_max(:)); 74 | % [max_2_idx_theta max_2_idx_r] = ind2sub(size(hough_gaussian_max), max_2_idx); 75 | % diff = max_2_idx_theta - max_1_idx_theta; 76 | % if diff<-90 77 | % diff = diff + 180; 78 | % else if diff <0 79 | % diff = -diff; 80 | % else if diff >90 81 | % diff = 180 - diff; 82 | % end 83 | % end 84 | % end 85 | % 86 | % if diff < 20 87 | % hough_gaussian_max(max_2_idx_theta, max_2_idx_r) = 0; 88 | % continue; 89 | % else 90 | % break; 91 | % end 92 | % end 93 | % %delete the voter above the cross point 94 | % det_0 = det([sind(max_1_idx_theta) -cosd(max_1_idx_theta); sind(max_2_idx_theta) -cosd(max_2_idx_theta)]); 95 | % det_x = det([max_1_idx_r-max(img_size(:)/2) cosd(max_1_idx_theta); max_2_idx_r-max(img_size(:)/2) -cosd(max_2_idx_theta)]); 96 | % det_y = det([sind(max_1_idx_theta) max_1_idx_r-max(img_size(:)/2); sind(max_2_idx_theta) max_2_idx_r-max(img_size(:)/2)]); 97 | % 98 | % cross_point = [ det_x/det_0+img_size(2)/2 det_y/det_0+img_size(1)/2]; 99 | % 100 | % if cross_point(2)img_size(1) || candidate_y<1 || candidate_y>img_size(2) 84 | ; 85 | else 86 | angle_hist = generate_hist(img_texture, [candidate_x; candidate_y], img_gray); 87 | angle_hist(1:angle_start) = 0; 88 | angle_hist(angle_end:181) = 0; 89 | angle_hist(90-dead_aera:90+dead_aera) = 0; 90 | [value angle] = find_other_edge(angle_hist, main_angle, min_edge_angle, para_n); 91 | if max_valueimg_size(1) || candidate_y<1 || candidate_y>img_size(2) 100 | ; 101 | else 102 | angle_hist = generate_hist(img_texture, [candidate_x; candidate_y], img_gray); 103 | angle_hist(1:angle_start) = 0; 104 | angle_hist(angle_end:181) = 0; 105 | angle_hist(90-dead_aera:90+dead_aera) = 0; 106 | [value angle] = find_other_edge(angle_hist, main_angle, min_edge_angle, para_n); 107 | if max_value10 && right_count>10 191 | % left_mean = left_add/left_count; 192 | % right_mean = right_add/right_count; 193 | % if left_mean>right_mean 194 | % angle_hist(angle) = angle_hist(angle)*left_mean/right_mean; 195 | % else 196 | % angle_hist(angle) = angle_hist(angle)*right_mean/left_mean; 197 | % end 198 | % end 199 | % end 200 | end 201 | 202 | function [max_value other_angle] = find_other_edge(angle_hist, main_angle, min_edge_angle, para_n); 203 | %check the input 204 | hist_size = size(angle_hist); 205 | if hist_size(1) ~= 181 206 | disp 'angle hist is not avalible' 207 | end 208 | %angle_hist(1:20) = 0; 209 | %angle_hist(161:181) = 0; 210 | 211 | if main_angle=3 14 | if img_size(3)>=3 15 | img_gray = rgb2gray(img(:,:,1:3)); 16 | else 17 | img_gray = rgb2gray(img); 18 | end 19 | else 20 | img_gray = rgb2gray(img); 21 | end 22 | disp(index); disp(':get texture...'); 23 | tic; 24 | img_texture = get_texture(img_gray); 25 | toc; 26 | 27 | disp(index); disp(':voting...'); 28 | tic; 29 | [vp voting_map] = texture_voting(img_texture); 30 | toc; 31 | 32 | disp(index); disp(':road area detection...'); 33 | tic; 34 | [vp_new road_angle] = road_area_detection(img_texture, vp, img_gray); 35 | toc; 36 | disp(index); disp(':save...'); 37 | tic; 38 | %save to output 39 | line = int32([ vp_new(1)-(img_size(1)-vp_new(2)-1)/tand(double(road_angle(1))) img_size(1) vp_new vp_new(1)-(img_size(1)-vp_new(2)-1)/tand(double(road_angle(2))) img_size(1)]); 40 | if ~isempty(find(line<1)) 41 | if line(1)<0 42 | line(1:2) = [1 vp_new(2)+(vp_new(1)*tand(double(road_angle(1))))]; 43 | end 44 | if line(5)>img_size(2) 45 | line(5:6) = [img_size(2) vp_new(2)-((img_size(2)-vp_new(1))*tand(double(road_angle(2))))]; 46 | end 47 | end 48 | 49 | inserter = vision.ShapeInserter('Shape', 'Lines','BorderColor','Custom', 'CustomBorderColor', [0 255 0]); 50 | img = inserter.step(img, line); 51 | imwrite(img_texture(:,:,3), strcat(out_dir,strcat(num2str(index),'mask.jpg'))); 52 | rect_length = 10; 53 | vp_rect = int32([vp-[rect_length/2 rect_length/2] rect_length+1 rect_length+1]); 54 | vp_new_rect = int32([vp_new-[rect_length/2 rect_length/2] rect_length+1 rect_length+1]); 55 | inserter = vision.ShapeInserter('Shape', 'Rectangles','BorderColor','Custom', 'CustomBorderColor', [0 0 255]); 56 | img = inserter.step(img, vp_rect); 57 | 58 | inserter = vision.ShapeInserter('Shape', 'Rectangles','BorderColor','Custom', 'CustomBorderColor', [255 0 0]); 59 | img = inserter.step(img, vp_new_rect); 60 | 61 | imwrite(img, strcat(out_dir,strcat(num2str(index),'.jpg'))); 62 | 63 | inserter = vision.ShapeInserter('Shape', 'Rectangles'); 64 | imwrite(inserter.step(repmat(voting_map/max(voting_map(:)),[1 1 3]),vp_rect), strcat(out_dir,strcat(num2str(index),'voting_map.jpg'))); 65 | toc; 66 | end 67 | rtn = 0; 68 | end -------------------------------------------------------------------------------- /matlab/road_detection/code/texture_voting.m: -------------------------------------------------------------------------------- 1 | function [canditate voting_map] = texture_voting(img_texture); 2 | % obtain the VP canditate from image texture 3 | % input: 4 | % img_texture: magnitude and direction of the texture 5 | % img_texture(row, col, 1): texture magnitude of pixel at (row, col) 6 | % img_texture(row, col, 2): texture direction of pixel at (row, col) 7 | % img_texture(row, col, 3): if the pixel has a main direction 8 | % output: 9 | % canditate, 1x2, x and y of the VP 10 | 11 | img_size = size(img_texture(:,:,1)); 12 | I = img_texture(:,:,1);%intensity 13 | D = img_texture(:,:,2);%direction 14 | M = img_texture(:,:,3);%mask 15 | 16 | voting_map = zeros(img_size); 17 | for row = img_size(1)-1:-1:1 18 | for col = 1:img_size(2) 19 | if M(row, col)% 1 20 | voting_map = region_vote(voting_map,row,col,I(row, col), D(row, col)); 21 | end 22 | end 23 | end 24 | 25 | [value canditate] = max(voting_map(:)); 26 | [canditate_row canditate_col] = ind2sub(img_size, canditate); 27 | canditate = [ canditate_col canditate_row ]; 28 | % %visualize the result 29 | % subplot(1,2,1); 30 | % %figure 31 | % imshow(voting_map/value); 32 | % hold on; 33 | % plot(canditate(1),canditate(2),'s','color','black'); 34 | % subplot(1,2,2); 35 | % imshow(M); 36 | % hold on; 37 | % plot(canditate(1),canditate(2),'s','color','red'); 38 | 39 | end 40 | 41 | function voting_map = region_vote(voting_map,row,col,I_value, D_value); 42 | 43 | img_size = size(voting_map); 44 | 45 | if D_value>175 || D_value<5 46 | return; 47 | end 48 | %coordinate transformation 49 | PK = 0.4*img_size(1); 50 | PQ = 0.55*img_size(1); 51 | KQ = PQ-PK; 52 | theta = D_value; 53 | sin_theta = sind(theta); 54 | cos_theta = cosd(theta); 55 | tolerance = 5; 56 | P = [col; img_size(1)-row]; 57 | K = [P(1)+PK*cos_theta P(2)+PK*sin_theta]; 58 | Q = [P(1)+PQ*cos_theta P(2)+PQ*sin_theta]; 59 | 60 | PI1_ABC = [ sind(theta+tolerance/2) -cosd(theta+tolerance/2) -(P(1)*sind(theta+tolerance/2)-P(2)*cosd(theta+tolerance/2)) ]; 61 | PJ1_ABC = [ sind(theta-tolerance/2) -cosd(theta-tolerance/2) -(P(1)*sind(theta-tolerance/2)-P(2)*cosd(theta-tolerance/2)) ]; 62 | 63 | PQ_ABC = [ sind(theta) -cosd(theta) -(P(1)*sind(theta)-P(2)*cosd(theta))];%Ax+By+C=0 64 | I1 = [P(1)+PK*sin_theta/tand(theta+tolerance/2) K(2)]; 65 | J1 = [P(1)+PK*sin_theta/tand(theta-tolerance/2) K(2)]; 66 | I2 = [I1(1)+KQ*cos_theta I1(2)+KQ*sin_theta]; 67 | J2 = [J1(1)+KQ*cos_theta J1(2)+KQ*sin_theta]; 68 | I1I2_ABC = [ I2(2)-I1(2) -(I2(1)-I1(1)) -I1(1)*(I2(2)-I1(2))+I1(2)*(I2(1)-I1(1)) ]; 69 | J1J2_ABC = [ J2(2)-J1(2) -(J2(1)-J1(1)) -J1(1)*(J2(2)-J1(2))+J1(2)*(J2(1)-J1(1)) ]; 70 | 71 | for y=P(2):Q(2) 72 | if y>=img_size(1) 73 | break; 74 | end 75 | if y=img_size(2) 92 | continue; 93 | end 94 | %calculate the vote value 95 | lambda = abs(x-x_middle); 96 | gamma = 180; 97 | d = norm([x-P(1); y-P(2)])/norm(img_size); 98 | o_row = img_size(1)-y; 99 | o_col = int16(x); 100 | vote_value = exp(-lambda/gamma)/(1+d*d); 101 | voting_map(o_row, o_col) = voting_map(o_row, o_col) +vote_value; 102 | end 103 | end 104 | 105 | end -------------------------------------------------------------------------------- /matlab/road_detection/input/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/1.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/2.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/3.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/4.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/5.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/6.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/7.jpg -------------------------------------------------------------------------------- /matlab/road_detection/input/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/input/8.jpg -------------------------------------------------------------------------------- /matlab/road_detection/output/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/output/output.txt -------------------------------------------------------------------------------- /matlab/road_detection/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallflyingpig/projects/fc4a35b3227c3cfd67c6b4a62b016d912b828196/matlab/road_detection/readme.txt -------------------------------------------------------------------------------- /python/EnglishSpellCorrection/readme.md: -------------------------------------------------------------------------------- 1 | ### intro 2 | This project is for English Spell Correction based on python 2.7. 3 | 4 | ### dependencies 5 | python 2.7 (3.0 may be not OK) 6 | 7 | import random 8 | import copy 9 | import string 10 | import re 11 | import sys 12 | import numpy as np 13 | 14 | ### how to run 15 | 1. change current fold to 'EnglishTextProfreading' 16 | 2. open 'proofreading.py' 17 | 3. run 'proofreading.py' 18 | 4. by default, it is console test. that is input a word and output the top 3 candidates 19 | 5. change the main function to switch other test mode 20 | 6. when the proofreading is running, it will write the log to file 'test_log.log', you can run 'Statistic.py' to analysis the log. 21 | 22 | ### file 23 | proofreading.py: test the algorothm 24 | Data.py: read the vocabulary 25 | Distance.py: calculate the edit distance and cut-off diatance 26 | searchTree.py: difinitin for class 'SearchTree' 27 | Statistic.py: analysis the log 28 | 29 | ### author 30 | 31 | lijiguo 32 | 33 | ### email 34 | 35 | lijiguo16@mails.ucas.ac.cn 36 | 37 | ### data 38 | 20170713 39 | 40 | ### specific 41 | 42 | CSDN: smallflyingpig 43 | -------------------------------------------------------------------------------- /python/EnglishSpellCorrection/source/Data.py: -------------------------------------------------------------------------------- 1 | # ! /usr/bin/env/ python2 2 | # -*- coding:utf-8 -*- 3 | # prepare data 4 | 5 | 6 | def ReadData(path, filename): 7 | content = '' 8 | with open(path+filename) as data: 9 | content = data.read() 10 | 11 | lines = content.split('\n') 12 | 13 | vocabulary = [] 14 | for word in lines: 15 | if word.encode('utf-8').isalpha(): 16 | vocabulary.append(word) 17 | else: 18 | print(word) 19 | 20 | return vocabulary 21 | -------------------------------------------------------------------------------- /python/EnglishSpellCorrection/source/Distance.py: -------------------------------------------------------------------------------- 1 | # ! /usr/bin/env/ python2 2 | # -*- coding:utf-8 -*- 3 | 4 | import numpy as np 5 | # for more information, please read paper: Error-tolerant Finite-state Recognition with 6 | # Application to Morphological Analysis and Spelling Correction 7 | 8 | g_edit_distance = np.zeros([0,0]) 9 | g_edit_distance_flag = np.zeros([0,0]) 10 | 11 | def EditDistance(reference, str): 12 | global g_edit_distance 13 | global g_edit_distance_flag 14 | 15 | dict_cost = {'deletion':1, 'insertion':1, 'replacement':1, 'transposition':1} 16 | len_str = len(str) 17 | len_refer = len(reference) 18 | 19 | recurrent_flag = False; 20 | distance = 0; 21 | look_up_shape = g_edit_distance_flag.shape; 22 | 23 | if len_str == 0: 24 | distance = dict_cost['insertion']*len_refer 25 | elif len_refer == 0: 26 | distance = dict_cost['deletion']*len_str 27 | elif len_refer=2 and len_refer>=2 and reference[-1] == str[-2] \ 38 | and reference[-2] == str[-1]:#transposition 39 | distance_transposition = dict_cost['transposition'] + EditDistance(reference[:-2], str[:-2]); 40 | distance_deletion = dict_cost['deletion'] + EditDistance(reference, str[:-1]) 41 | distance_insertion = dict_cost['insertion'] + EditDistance(reference[:-1], str) 42 | distance = min(distance_transposition, distance_deletion, distance_insertion); 43 | else: 44 | distance_replacement = dict_cost['replacement'] + EditDistance(reference[:-1], str[:-1]) 45 | distance_deletion = dict_cost['deletion'] + EditDistance(reference, str[:-1]) 46 | distance_insertion = dict_cost['insertion'] + EditDistance(reference[:-1], str) 47 | distance = min(distance_replacement, distance_deletion, distance_insertion) 48 | 49 | g_edit_distance_flag[len_refer][len_str] = 1; 50 | g_edit_distance[len_refer][len_str] = distance; 51 | #print 'edit distance:%d,(%s,%s)'%(distance, reference, str) 52 | 53 | return distance 54 | 55 | def CutOffDistance(reference, str, t=2): 56 | global g_edit_distance 57 | global g_edit_distance_flag 58 | 59 | m = len(reference); 60 | n = len(str) 61 | 62 | g_edit_distance = np.zeros([m+1, n+1]) 63 | g_edit_distance_flag = np.zeros([m+1, n+1]) 64 | 65 | l = max(1, n-t) 66 | u = min(m, n+t) 67 | distance_list = []; 68 | for idx in range(l, u+1): 69 | distance_list.append(EditDistance(reference[:idx], str)) 70 | 71 | #print distance_list 72 | distance = 0 73 | 74 | if len(distance_list)>0: 75 | distance = min(distance_list); 76 | 77 | return distance; 78 | -------------------------------------------------------------------------------- /python/EnglishSpellCorrection/source/SearchTree.py: -------------------------------------------------------------------------------- 1 | # ! /usr/bin/env/ python2 2 | # -*- coding:utf-8 -*- 3 | 4 | import copy 5 | import Distance 6 | START = '' 7 | 8 | class Node: 9 | def __init__(self, key, end_flag = False): 10 | self.m_child = []; 11 | self.m_end_flag = end_flag; 12 | self.m_key = key 13 | 14 | def AddChild(self, node): 15 | if type(node) == 'Node': 16 | self.m_child.appendix(node) 17 | else: 18 | self.m_child.appendix(Node(node)) 19 | 20 | def AddUniqueChild(self, node, change_end_flag = False): 21 | find_flag, find_idx = self.FindChild(node) 22 | 23 | if find_flag: 24 | cur_node = self.m_child[find_idx] 25 | if change_end_flag: 26 | self.m_child[find_idx].m_end_flag = node.m_end_flag 27 | 28 | else: 29 | self.m_child.append(node) 30 | cur_node = self.m_child[-1] 31 | 32 | return cur_node 33 | 34 | 35 | def FindChild(self, node): 36 | find_flag = False; 37 | find_idx = 0 38 | for idx in range(0, len(self.m_child)): 39 | child = self.m_child[idx] 40 | if node.m_key == child.m_key: 41 | find_flag = True; 42 | find_idx = idx 43 | break 44 | 45 | return find_flag, find_idx 46 | 47 | class Pair: 48 | def __init__(self, node, str, dis): 49 | self.m_node = node 50 | self.m_str = str 51 | self.m_dis = dis 52 | 53 | 54 | class SearchTree: 55 | def __init__(self): 56 | self.m_root = Node(START); 57 | 58 | def construct(self, vocabulary): 59 | vocabulary_temp = copy.deepcopy(vocabulary) 60 | vocab_len = len(vocabulary_temp) 61 | if vocab_len == 0: 62 | return 63 | 64 | word_len_list = [] 65 | for word in vocabulary_temp: 66 | word_len_list.append(len(word)) 67 | 68 | word_len_max = max(word_len_list) 69 | 70 | for idx in range(0, word_len_max): 71 | for word in vocabulary_temp: 72 | word_len = len(word) 73 | cur_node = self.m_root; 74 | for word_idx in range(0, word_len-1): 75 | cur_node = cur_node.AddUniqueChild(Node(word[word_idx])) 76 | 77 | cur_node.AddUniqueChild(Node(word[-1],end_flag=True), change_end_flag=True); 78 | 79 | def Trace(self): 80 | self._Trace(self.m_root); 81 | 82 | def _Trace(self, node): 83 | print node.m_key; 84 | 85 | for child in node.m_child: 86 | self._Trace(child) 87 | 88 | def Candidate(self, target, top=3, threshold=2): 89 | candidate_list = []#node string edit_dis 90 | 91 | recoder_list = [] 92 | recoder_list.append([self.m_root, self.m_root.m_key]) 93 | 94 | while True: 95 | if len(recoder_list) == 0: 96 | break 97 | 98 | [cur_node, str] = recoder_list.pop() 99 | 100 | cut_off_distance_list = []#distance, string 101 | for child in cur_node.m_child: 102 | str_temp = str+child.m_key 103 | cut_off_distance = Distance.CutOffDistance(target, str_temp, threshold) 104 | if cut_off_distance<=threshold: 105 | cut_off_distance_list.append([cut_off_distance, str_temp]) 106 | recoder_list.append([child, str_temp]) 107 | 108 | if child.m_end_flag: 109 | edit_distance = Distance.EditDistance(target, str_temp) 110 | candidate_list.append([child, str_temp, edit_distance]); 111 | 112 | 113 | #sort 114 | candidate_list.sort(key=lambda d:d[2]) 115 | 116 | for candidate in candidate_list: 117 | if candidate[2]>threshold: 118 | candidate_list.remove(candidate) 119 | 120 | rtn_len = 0 121 | if len(candidate_list)>top: 122 | rtn_len = top 123 | else: 124 | rtn_len = len(candidate_list) 125 | 126 | rtn_list = [] 127 | for idx in range(0, rtn_len): 128 | if candidate_list[idx][2] len(predict_list): 43 | top = len(predict_list) 44 | 45 | idx = 0 46 | for idx in range(0, top): 47 | if predict_list[idx] == label: 48 | rtn_value[idx] = 1 49 | break 50 | 51 | rtn_value[idx+1:] = [1]*(len(rtn_value)-idx-1) 52 | 53 | return rtn_value 54 | 55 | def rand_misspell_deletion(str): 56 | print('deletion') 57 | str_temp = copy.deepcopy(str) 58 | str_len = len(str) 59 | 60 | delete_pos = random.randint(0, str_len-1) 61 | 62 | str_temp = str_temp[:delete_pos]+str_temp[delete_pos+1:] 63 | 64 | return str_temp 65 | 66 | def rand_misspell_insertion(str): 67 | print('insertion') 68 | str_temp = copy.deepcopy(str) 69 | str_len = len(str) 70 | 71 | insert_pos = random.randint(0, str_len) 72 | 73 | char_insert = random.choice(string.letters).lower(); 74 | 75 | if insert_pos == str_len: 76 | str_temp = str_temp + char_insert 77 | elif insert_pos == 0: 78 | str_temp = char_insert + str_temp 79 | else: 80 | str_temp = str_temp[:insert_pos] + char_insert + str_temp[insert_pos:] 81 | 82 | return str_temp 83 | 84 | def rand_misspell_replacement(str): 85 | print('replacement') 86 | str_temp = copy.deepcopy(str) 87 | str_len = len(str) 88 | 89 | replace_pos = random.randint(0, str_len-1) 90 | 91 | char_replace = random.choice(string.letters).lower(); 92 | 93 | str_temp = str_temp[:replace_pos] + char_replace + str_temp[replace_pos+1:] 94 | 95 | return str_temp 96 | 97 | def rand_misspell_transposition(str): 98 | print('transposition') 99 | str_temp = copy.deepcopy(str) 100 | str_len = len(str) 101 | 102 | if str_len < 2: 103 | return str_temp 104 | 105 | trans_pos = random.randint(0, str_len-2) 106 | 107 | str_temp = str_temp[:trans_pos] + str_temp[trans_pos+1]+str_temp[trans_pos] + str_temp[trans_pos+2:] 108 | 109 | return str_temp 110 | 111 | def rand_misspell(str): 112 | misspell_type_list = ['deletion', 'insertion', 'replacement', 'transposition'] 113 | misspell_func_dict = {'deletion' : rand_misspell_deletion, 'insertion': rand_misspell_insertion, \ 114 | 'replacement': rand_misspell_replacement, 'transposition': rand_misspell_transposition} 115 | misspell_type = misspell_type_list[random.randint(0, len(misspell_type_list)-1)] 116 | 117 | str_misspell_func = misspell_func_dict.get(misspell_type, lambda str: str) 118 | 119 | str_misspell = str_misspell_func(str) 120 | 121 | print('%s -> %s'%(str, str_misspell)) 122 | 123 | return str_misspell, misspell_type 124 | 125 | def test_vocabulary(test_size = 1000): 126 | f_log = open('test_doc.log','wb') 127 | 128 | print('test vocabulary...') 129 | vocabulary = ReadData(DATA_PATH, VOCABULARY_FILENAME) 130 | print('vocabulary size: %d'% len(vocabulary)) 131 | 132 | save_out = sys.stdout; 133 | 134 | sys.stdout = f_log 135 | 136 | if test_size>vocabulary: 137 | test_size = vocabulary 138 | 139 | search_tree = SearchTree() 140 | search_tree.construct(vocabulary) 141 | 142 | top_true_num = [0, 0, 0] 143 | top_true_num_delete = [0,0,0] 144 | test_size_delete = 0; 145 | top_true_num_insert = [0,0,0] 146 | test_size_insert = 0 147 | top_true_num_replace = [0,0,0] 148 | test_size_replace = 0 149 | top_true_num_trans = [0,0,0] 150 | test_size_trans = 0 151 | 152 | for idx in range(0, test_size): 153 | word = random.choice(vocabulary) 154 | word_mis, misspell_type = rand_misspell(word) 155 | predict_pair_list = search_tree.Candidate(word_mis) #[str, edit_dis] 156 | predict_list = [x[0] for x in predict_pair_list] 157 | match = top_n_is_true(word, predict_list, 3) 158 | top_true_num = [a+b for (a, b) in zip(top_true_num, match)] 159 | if misspell_type == 'deletion': 160 | test_size_delete = test_size_delete+1 161 | top_true_num_delete = [a+b for (a, b) in zip(top_true_num_delete, match)] 162 | elif misspell_type == 'insertion': 163 | test_size_insert = test_size_insert + 1 164 | top_true_num_insert = [a+b for (a, b) in zip(top_true_num_insert, match)] 165 | elif misspell_type == 'replacement': 166 | test_size_replace = test_size_replace + 1 167 | top_true_num_replace = [a+b for (a, b) in zip(top_true_num_replace, match)] 168 | elif misspell_type == 'transposition': 169 | test_size_trans = test_size_trans + 1 170 | top_true_num_trans = [a+b for (a, b) in zip(top_true_num_trans, match)] 171 | else: 172 | print('pass') 173 | pass 174 | print('word: %s ->%s'% (word, word_mis)) 175 | print predict_list 176 | print match 177 | 178 | accu = [float(x)/test_size for x in top_true_num] 179 | accu_delete = [float(x)/test_size_delete for x in top_true_num_delete] 180 | accu_insert = [float(x)/test_size_insert for x in top_true_num_insert] 181 | accu_replace = [float(x)/test_size_replace for x in top_true_num_replace] 182 | accu_trans = [float(x)/test_size_trans for x in top_true_num_trans] 183 | 184 | #print('accu:%f \t delete:%f \t insert:%f \t replace:%f \t trans:%f'%(accu, accu_delete, accu_insert, \ 185 | # accu_replace, accu_trans)) 186 | 187 | print accu 188 | print accu_delete 189 | print accu_insert 190 | print accu_replace 191 | print accu_trans 192 | sys.stdout = save_out 193 | 194 | print('test vocabulary end') 195 | 196 | def test_doc(filename, max_word = 10000): 197 | 198 | f_log = open('test_doc.log','wb') 199 | 200 | print('test doc:%s start'%filename) 201 | vocabulary = ReadData(DATA_PATH, VOCABULARY_FILENAME) 202 | print('vocabulary size: %d'% len(vocabulary)) 203 | 204 | save_out = sys.stdout; 205 | 206 | sys.stdout = f_log 207 | 208 | with open(filename, 'rb') as doc: 209 | data = doc.read() 210 | 211 | words = [] 212 | for space_separated_fragment in data.strip().split(): 213 | words.extend(_WORD_SPLIT.split(space_separated_fragment)) 214 | search_tree = SearchTree() 215 | search_tree.construct(vocabulary) 216 | 217 | test_size = 0; 218 | top_true_num = [0, 0, 0] 219 | top_true_num_delete = [0,0,0] 220 | test_size_delete = 0; 221 | top_true_num_insert = [0,0,0] 222 | test_size_insert = 0 223 | top_true_num_replace = [0,0,0] 224 | test_size_replace = 0 225 | top_true_num_trans = [0,0,0] 226 | test_size_trans = 0 227 | 228 | for word in words: 229 | if not word.isalpha(): 230 | continue 231 | if test_size>=max_word: 232 | break 233 | 234 | test_size = test_size + 1 235 | word_mis, misspell_type = rand_misspell(word) 236 | predict_pair_list = search_tree.Candidate(word_mis) #[str, edit_dis] 237 | predict_list = [x[0] for x in predict_pair_list] 238 | match = top_n_is_true(word, predict_list, 3) 239 | top_true_num = [a+b for (a, b) in zip(top_true_num, match)] 240 | if misspell_type == 'deletion': 241 | test_size_delete = test_size_delete + 1 242 | top_true_num_delete = [a+b for (a, b) in zip(top_true_num_delete, match)] 243 | elif misspell_type == 'insertion': 244 | test_size_insert = test_size_insert + 1 245 | top_true_num_insert = [a+b for (a, b) in zip(top_true_num_insert, match)] 246 | elif misspell_type == 'replacement': 247 | test_size_replace = test_size_replace + 1 248 | top_true_num_replace = [a+b for (a, b) in zip(top_true_num_replace, match)] 249 | elif misspell_type == 'transposition': 250 | test_size_trans = test_size_trans + 1 251 | top_true_num_trans = [a+b for (a, b) in zip(top_true_num_trans, match)] 252 | else: 253 | print('pass') 254 | pass 255 | print('word: %s ->%s'% (word, word_mis)) 256 | print predict_list 257 | print match 258 | 259 | accu = [float(x)/test_size for x in top_true_num] 260 | accu_delete = [float(x)/test_size_delete for x in top_true_num_delete] 261 | accu_insert = [float(x)/test_size_insert for x in top_true_num_insert] 262 | accu_replace = [float(x)/test_size_replace for x in top_true_num_replace] 263 | accu_trans = [float(x)/test_size_trans for x in top_true_num_trans] 264 | 265 | #print('accu:%f \t delete:%f \t insert:%f \t replace:%f \t trans:%f'%(accu, accu_delete, accu_insert, \ 266 | # accu_replace, accu_trans)) 267 | 268 | print accu 269 | print accu_delete 270 | print accu_insert 271 | print accu_replace 272 | print accu_trans 273 | sys.stdout = save_out 274 | print('test doc end') 275 | 276 | 277 | if __name__ == '__main__': 278 | 279 | test_console_input() 280 | #test_vocabulary(1000) 281 | #test_doc(DATA_PATH+TEST_DOC_NAME) 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | -------------------------------------------------------------------------------- /python/EnglishSpellCorrection/source/readme.md: -------------------------------------------------------------------------------- 1 | ### intro 2 | This project is for English Spell Correction based on python 2.7. 3 | 4 | ### dependencies 5 | python 2.7 (3.0 may be not OK) 6 | 7 | import random 8 | import copy 9 | import string 10 | import re 11 | import sys 12 | import numpy as np 13 | 14 | ### how to run 15 | 1. change current fold to 'EnglishTextProfreading' 16 | 2. open 'proofreading.py' 17 | 3. run 'proofreading.py' 18 | 4. by default, it is console test. that is input a word and output the top 3 candidates 19 | 5. change the main function to switch other test mode 20 | 6. when the proofreading is running, it will write the log to file 'test_log.log', you can run 'Statistic.py' to analysis the log. 21 | 22 | ### file 23 | proofreading.py: test the algorothm 24 | Data.py: read the vocabulary 25 | Distance.py: calculate the edit distance and cut-off diatance 26 | searchTree.py: difinitin for class 'SearchTree' 27 | Statistic.py: analysis the log 28 | 29 | ### author 30 | 31 | lijiguo 32 | 33 | ### email 34 | 35 | lijiguo16@mails.ucas.ac.cn 36 | 37 | ### data 38 | 20170713 39 | 40 | ### specific 41 | 42 | CSDN: smallflyingpig 43 | -------------------------------------------------------------------------------- /python/EnglishSpellCorrection/source/top3_t2_basic_1.log: -------------------------------------------------------------------------------- 1 | 2 | vocabulary size: 9314 3 | deletion 4 | train -> trin 5 | word: train ->trin 6 | ['trip', 'tran', 'train'] 7 | [0, 0, 1] 8 | deletion 9 | true -> rue 10 | word: true ->rue 11 | ['que', 're', 'run'] 12 | [0, 0, 0] 13 | transposition 14 | opened -> popened 15 | word: opened ->popened 16 | ['opened'] 17 | [1, 1, 1] 18 | deletion 19 | ruining -> ruinin 20 | word: ruining ->ruinin 21 | ['ruining'] 22 | [1, 1, 1] 23 | replacement 24 | bewitchment -> bawitchment 25 | word: bewitchment ->bawitchment 26 | ['bewitchment'] 27 | [1, 1, 1] 28 | insertion 29 | construction -> constructiosn 30 | word: construction ->constructiosn 31 | ['construction', 'constructions'] 32 | [1, 1, 1] 33 | replacement 34 | interpret -> nnterpret 35 | word: interpret ->nnterpret 36 | ['interpret'] 37 | [1, 1, 1] 38 | replacement 39 | cardiovascular -> cardiovascuaar 40 | word: cardiovascular ->cardiovascuaar 41 | ['cardiovascular'] 42 | [1, 1, 1] 43 | insertion 44 | safely -> safelyt 45 | word: safely ->safelyt 46 | ['safely'] 47 | [1, 1, 1] 48 | transposition 49 | ceaselessly -> cesaselessly 50 | word: ceaselessly ->cesaselessly 51 | ['ceaselessly'] 52 | [1, 1, 1] 53 | insertion 54 | punishable -> punishabled 55 | word: punishable ->punishabled 56 | ['punishable'] 57 | [1, 1, 1] 58 | replacement 59 | keep -> ceep 60 | word: keep ->ceep 61 | ['keep', 'deep'] 62 | [1, 1, 1] 63 | insertion 64 | duty -> dujty 65 | word: duty ->dujty 66 | ['dusty', 'duty'] 67 | [0, 1, 1] 68 | transposition 69 | discontinuation -> dsiscontinuation 70 | word: discontinuation ->dsiscontinuation 71 | ['discontinuation'] 72 | [1, 1, 1] 73 | transposition 74 | enlightenment -> enilightenment 75 | word: enlightenment ->enilightenment 76 | ['enlightenment'] 77 | [1, 1, 1] 78 | transposition 79 | uplift -> uplitft 80 | word: uplift ->uplitft 81 | ['uplift'] 82 | [1, 1, 1] 83 | transposition 84 | trained -> trainded 85 | word: trained ->trainded 86 | ['trained'] 87 | [1, 1, 1] 88 | replacement 89 | grown -> grvwn 90 | word: grown ->grvwn 91 | ['grown'] 92 | [1, 1, 1] 93 | transposition 94 | online -> nonline 95 | word: online ->nonline 96 | ['online'] 97 | [1, 1, 1] 98 | deletion 99 | yuan -> yan 100 | word: yuan ->yan 101 | ['yan', 'lan', 'van'] 102 | [0, 0, 0] 103 | deletion 104 | battle -> battl 105 | word: battle ->battl 106 | ['battle'] 107 | [1, 1, 1] 108 | replacement 109 | trying -> tryiyg 110 | word: trying ->tryiyg 111 | ['trying'] 112 | [1, 1, 1] 113 | insertion 114 | commissioned -> commisosioned 115 | word: commissioned ->commisosioned 116 | ['commissioned'] 117 | [1, 1, 1] 118 | insertion 119 | marx -> mharx 120 | word: marx ->mharx 121 | ['marx'] 122 | [1, 1, 1] 123 | deletion 124 | absurd -> asurd 125 | word: absurd ->asurd 126 | ['absurd'] 127 | [1, 1, 1] 128 | insertion 129 | macedia -> mtacedia 130 | word: macedia ->mtacedia 131 | ['macedia'] 132 | [1, 1, 1] 133 | replacement 134 | colorings -> folorings 135 | word: colorings ->folorings 136 | ['colorings'] 137 | [1, 1, 1] 138 | replacement 139 | overnight -> zvernight 140 | word: overnight ->zvernight 141 | ['overnight'] 142 | [1, 1, 1] 143 | transposition 144 | dispute -> dipspute 145 | word: dispute ->dipspute 146 | ['dispute'] 147 | [1, 1, 1] 148 | replacement 149 | calendar -> nalendar 150 | word: calendar ->nalendar 151 | ['calendar'] 152 | [1, 1, 1] 153 | transposition 154 | terminal -> termninal 155 | word: terminal ->termninal 156 | ['terminal'] 157 | [1, 1, 1] 158 | transposition 159 | distance -> idistance 160 | word: distance ->idistance 161 | ['distance'] 162 | [1, 1, 1] 163 | transposition 164 | broadcasts -> broadcsasts 165 | word: broadcasts ->broadcsasts 166 | ['broadcasts'] 167 | [1, 1, 1] 168 | replacement 169 | deng -> deng 170 | word: deng ->deng 171 | ['deng', 'zeng', 'geng'] 172 | [1, 1, 1] 173 | deletion 174 | news -> ews 175 | word: news ->ews 176 | ['news'] 177 | [1, 1, 1] 178 | replacement 179 | dragon -> dragok 180 | word: dragon ->dragok 181 | ['dragon'] 182 | [1, 1, 1] 183 | insertion 184 | expense -> expensae 185 | word: expense ->expensae 186 | ['expense'] 187 | [1, 1, 1] 188 | replacement 189 | software -> softcare 190 | word: software ->softcare 191 | ['software'] 192 | [1, 1, 1] 193 | transposition 194 | raises -> riaises 195 | word: raises ->riaises 196 | ['raises'] 197 | [1, 1, 1] 198 | insertion 199 | kelly -> kellky 200 | word: kelly ->kellky 201 | ['kelly'] 202 | [1, 1, 1] 203 | insertion 204 | forcibly -> forciblyv 205 | word: forcibly ->forciblyv 206 | ['forcibly'] 207 | [1, 1, 1] 208 | deletion 209 | pitak -> ptak 210 | word: pitak ->ptak 211 | ['pitak', 'peak'] 212 | [1, 1, 1] 213 | deletion 214 | tensions -> ensions 215 | word: tensions ->ensions 216 | ['pensions', 'tensions'] 217 | [0, 1, 1] 218 | insertion 219 | election -> electionw 220 | word: election ->electionw 221 | ['election', 'elections'] 222 | [1, 1, 1] 223 | insertion 224 | strongly -> stprongly 225 | word: strongly ->stprongly 226 | ['strongly'] 227 | [1, 1, 1] 228 | insertion 229 | right -> righnt 230 | word: right ->righnt 231 | ['right'] 232 | [1, 1, 1] 233 | insertion 234 | perfect -> perfecta 235 | word: perfect ->perfecta 236 | ['perfect'] 237 | [1, 1, 1] 238 | deletion 239 | grew -> rew 240 | word: grew ->rew 241 | ['grew', 're', 'raw'] 242 | [1, 1, 1] 243 | replacement 244 | make -> vake 245 | word: make ->vake 246 | ['make', 'wake', 'fake'] 247 | [1, 1, 1] 248 | replacement 249 | discuss -> disczss 250 | word: discuss ->disczss 251 | ['discuss'] 252 | [1, 1, 1] 253 | deletion 254 | heavyweight -> eavyweight 255 | word: heavyweight ->eavyweight 256 | ['heavyweight'] 257 | [1, 1, 1] 258 | deletion 259 | spirit -> sprit 260 | word: spirit ->sprit 261 | ['split', 'spit', 'spirit'] 262 | [0, 0, 1] 263 | transposition 264 | sino -> siono 265 | word: sino ->siono 266 | ['sino'] 267 | [1, 1, 1] 268 | insertion 269 | ships -> shaips 270 | word: ships ->shaips 271 | ['ships'] 272 | [1, 1, 1] 273 | insertion 274 | draw -> dpraw 275 | word: draw ->dpraw 276 | ['draw'] 277 | [1, 1, 1] 278 | insertion 279 | contemptible -> contemphtible 280 | word: contemptible ->contemphtible 281 | ['contemptible'] 282 | [1, 1, 1] 283 | replacement 284 | laboratories -> laboratrries 285 | word: laboratories ->laboratrries 286 | ['laboratories'] 287 | [1, 1, 1] 288 | deletion 289 | yugoslav -> yugosav 290 | word: yugoslav ->yugosav 291 | ['yugoslav'] 292 | [1, 1, 1] 293 | insertion 294 | care -> ccare 295 | word: care ->ccare 296 | ['care'] 297 | [1, 1, 1] 298 | deletion 299 | migration -> mgration 300 | word: migration ->mgration 301 | ['migration'] 302 | [1, 1, 1] 303 | transposition 304 | enabling -> nenabling 305 | word: enabling ->nenabling 306 | ['enabling'] 307 | [1, 1, 1] 308 | transposition 309 | publication -> pulblication 310 | word: publication ->pulblication 311 | ['publication'] 312 | [1, 1, 1] 313 | transposition 314 | expansion -> exapansion 315 | word: expansion ->exapansion 316 | ['expansion'] 317 | [1, 1, 1] 318 | deletion 319 | those -> thoe 320 | word: those ->thoe 321 | ['the', 'those'] 322 | [0, 1, 1] 323 | insertion 324 | workers -> workenrs 325 | word: workers ->workenrs 326 | ['workers'] 327 | [1, 1, 1] 328 | transposition 329 | prior -> proior 330 | word: prior ->proior 331 | ['prior'] 332 | [1, 1, 1] 333 | replacement 334 | ensure -> enuure 335 | word: ensure ->enuure 336 | ['ensure', 'endure'] 337 | [1, 1, 1] 338 | transposition 339 | summit -> usummit 340 | word: summit ->usummit 341 | ['summit'] 342 | [1, 1, 1] 343 | replacement 344 | spot -> swot 345 | word: spot ->swot 346 | ['spot', 'shot'] 347 | [1, 1, 1] 348 | transposition 349 | american -> amercican 350 | word: american ->amercican 351 | ['american'] 352 | [1, 1, 1] 353 | replacement 354 | peanuts -> pdanuts 355 | word: peanuts ->pdanuts 356 | ['peanuts'] 357 | [1, 1, 1] 358 | transposition 359 | unremitting -> unremittting 360 | word: unremitting ->unremittting 361 | ['unremitting'] 362 | [1, 1, 1] 363 | replacement 364 | mix -> mgx 365 | word: mix ->mgx 366 | ['mix'] 367 | [1, 1, 1] 368 | deletion 369 | enhancement -> enhanement 370 | word: enhancement ->enhanement 371 | ['enhancement'] 372 | [1, 1, 1] 373 | transposition 374 | accuracy -> accuaracy 375 | word: accuracy ->accuaracy 376 | ['accuracy'] 377 | [1, 1, 1] 378 | replacement 379 | attacks -> attvcks 380 | word: attacks ->attvcks 381 | ['attacks'] 382 | [1, 1, 1] 383 | deletion 384 | concepts -> conceps 385 | word: concepts ->conceps 386 | ['concept', 'concepts'] 387 | [0, 1, 1] 388 | replacement 389 | wenyuan -> fenyuan 390 | word: wenyuan ->fenyuan 391 | ['wenyuan'] 392 | [1, 1, 1] 393 | deletion 394 | exhorted -> exhortd 395 | word: exhorted ->exhortd 396 | ['exhorted'] 397 | [1, 1, 1] 398 | transposition 399 | smashed -> msmashed 400 | word: smashed ->msmashed 401 | ['smashed'] 402 | [1, 1, 1] 403 | deletion 404 | gratina -> graina 405 | word: gratina ->graina 406 | ['gratina', 'grain', 'grains'] 407 | [1, 1, 1] 408 | insertion 409 | pour -> pmour 410 | word: pour ->pmour 411 | ['pour'] 412 | [1, 1, 1] 413 | replacement 414 | troubles -> tboubles 415 | word: troubles ->tboubles 416 | ['troubles'] 417 | [1, 1, 1] 418 | deletion 419 | plenary -> pleary 420 | word: plenary ->pleary 421 | ['plenary'] 422 | [1, 1, 1] 423 | transposition 424 | ezhou -> ehzhou 425 | word: ezhou ->ehzhou 426 | ['ezhou'] 427 | [1, 1, 1] 428 | transposition 429 | failures -> failurses 430 | word: failures ->failurses 431 | ['failures'] 432 | [1, 1, 1] 433 | transposition 434 | innocent -> innoecent 435 | word: innocent ->innoecent 436 | ['innocent'] 437 | [1, 1, 1] 438 | replacement 439 | eagle -> eagee 440 | word: eagle ->eagee 441 | ['eagle'] 442 | [1, 1, 1] 443 | replacement 444 | covering -> coverilg 445 | word: covering ->coverilg 446 | ['covering'] 447 | [1, 1, 1] 448 | replacement 449 | loudly -> losdly 450 | word: loudly ->losdly 451 | ['loudly'] 452 | [1, 1, 1] 453 | transposition 454 | shielding -> hshielding 455 | word: shielding ->hshielding 456 | ['shielding'] 457 | [1, 1, 1] 458 | replacement 459 | ministries -> ministrwes 460 | word: ministries ->ministrwes 461 | ['ministries'] 462 | [1, 1, 1] 463 | insertion 464 | reforms -> refojrms 465 | word: reforms ->refojrms 466 | ['reforms'] 467 | [1, 1, 1] 468 | deletion 469 | accuracy -> ccuracy 470 | word: accuracy ->ccuracy 471 | ['accuracy'] 472 | [1, 1, 1] 473 | replacement 474 | prosecuting -> prcsecuting 475 | word: prosecuting ->prcsecuting 476 | ['prosecuting'] 477 | [1, 1, 1] 478 | transposition 479 | defying -> deyfying 480 | word: defying ->deyfying 481 | ['defying'] 482 | [1, 1, 1] 483 | transposition 484 | voices -> vocices 485 | word: voices ->vocices 486 | ['voices'] 487 | [1, 1, 1] 488 | replacement 489 | released -> remeased 490 | word: released ->remeased 491 | ['released'] 492 | [1, 1, 1] 493 | insertion 494 | zeng -> zenig 495 | word: zeng ->zenig 496 | ['zeng'] 497 | [1, 1, 1] 498 | deletion 499 | awe -> we 500 | word: awe ->we 501 | ['we', 'w', 'le'] 502 | [0, 0, 0] 503 | transposition 504 | tactically -> tatctically 505 | word: tactically ->tatctically 506 | ['tactically'] 507 | [1, 1, 1] 508 | deletion 509 | surrounding -> srrounding 510 | word: surrounding ->srrounding 511 | ['surrounding'] 512 | [1, 1, 1] 513 | insertion 514 | urgent -> urgenct 515 | word: urgent ->urgenct 516 | ['urgent', 'urgency'] 517 | [1, 1, 1] 518 | replacement 519 | addict -> vddict 520 | word: addict ->vddict 521 | ['addict'] 522 | [1, 1, 1] 523 | deletion 524 | marketing -> marketin 525 | word: marketing ->marketin 526 | ['marketing'] 527 | [1, 1, 1] 528 | insertion 529 | uzbekistan -> uzbekisdtan 530 | word: uzbekistan ->uzbekisdtan 531 | ['uzbekistan'] 532 | [1, 1, 1] 533 | transposition 534 | makiko -> mkakiko 535 | word: makiko ->mkakiko 536 | ['makiko'] 537 | [1, 1, 1] 538 | replacement 539 | cheerfully -> cheeffully 540 | word: cheerfully ->cheeffully 541 | ['cheerfully'] 542 | [1, 1, 1] 543 | transposition 544 | xoceco -> oxoceco 545 | word: xoceco ->oxoceco 546 | ['xoceco'] 547 | [1, 1, 1] 548 | transposition 549 | geological -> gelological 550 | word: geological ->gelological 551 | ['geological'] 552 | [1, 1, 1] 553 | replacement 554 | exactly -> exuctly 555 | word: exactly ->exuctly 556 | ['exactly'] 557 | [1, 1, 1] 558 | insertion 559 | resigned -> reusigned 560 | word: resigned ->reusigned 561 | ['resigned'] 562 | [1, 1, 1] 563 | transposition 564 | two -> towo 565 | word: two ->towo 566 | ['two', 'too', 'town'] 567 | [1, 1, 1] 568 | replacement 569 | resettling -> resetyling 570 | word: resettling ->resetyling 571 | ['resettling'] 572 | [1, 1, 1] 573 | replacement 574 | dependants -> dependantn 575 | word: dependants ->dependantn 576 | ['dependants'] 577 | [1, 1, 1] 578 | insertion 579 | civilization -> civimlization 580 | word: civilization ->civimlization 581 | ['civilization'] 582 | [1, 1, 1] 583 | replacement 584 | psychology -> psbchology 585 | word: psychology ->psbchology 586 | ['psychology'] 587 | [1, 1, 1] 588 | transposition 589 | unsafe -> usnsafe 590 | word: unsafe ->usnsafe 591 | ['unsafe'] 592 | [1, 1, 1] 593 | transposition 594 | wentai -> wenatai 595 | word: wentai ->wenatai 596 | ['wentai'] 597 | [1, 1, 1] 598 | deletion 599 | bases -> bses 600 | word: bases ->bses 601 | ['uses', 'bases'] 602 | [0, 1, 1] 603 | replacement 604 | exhibition -> exaibition 605 | word: exhibition ->exaibition 606 | ['exhibition'] 607 | [1, 1, 1] 608 | deletion 609 | zhuoga -> huoga 610 | word: zhuoga ->huoga 611 | ['zhuoga'] 612 | [1, 1, 1] 613 | insertion 614 | interesting -> intyeresting 615 | word: interesting ->intyeresting 616 | ['interesting'] 617 | [1, 1, 1] 618 | deletion 619 | anduo -> nduo 620 | word: anduo ->nduo 621 | ['anduo'] 622 | [1, 1, 1] 623 | deletion 624 | neglect -> neglct 625 | word: neglect ->neglct 626 | ['neglect'] 627 | [1, 1, 1] 628 | transposition 629 | lives -> livses 630 | word: lives ->livses 631 | ['lives'] 632 | [1, 1, 1] 633 | deletion 634 | garrison -> arrison 635 | word: garrison ->arrison 636 | ['garrison'] 637 | [1, 1, 1] 638 | transposition 639 | diocese -> diocsese 640 | word: diocese ->diocsese 641 | ['diocese'] 642 | [1, 1, 1] 643 | replacement 644 | white -> whnte 645 | word: white ->whnte 646 | ['white'] 647 | [1, 1, 1] 648 | deletion 649 | ilya -> ila 650 | word: ilya ->ila 651 | ['la', 'pla', 'ill'] 652 | [0, 0, 0] 653 | transposition 654 | shoulder -> shuoulder 655 | word: shoulder ->shuoulder 656 | ['shoulder'] 657 | [1, 1, 1] 658 | transposition 659 | toured -> tourded 660 | word: toured ->tourded 661 | ['toured'] 662 | [1, 1, 1] 663 | insertion 664 | declarations -> dueclarations 665 | word: declarations ->dueclarations 666 | ['declarations'] 667 | [1, 1, 1] 668 | replacement 669 | goodwill -> goodwilx 670 | word: goodwill ->goodwilx 671 | ['goodwill'] 672 | [1, 1, 1] 673 | deletion 674 | stored -> tored 675 | word: stored ->tored 676 | ['stored', 'toured'] 677 | [1, 1, 1] 678 | replacement 679 | castro -> kastro 680 | word: castro ->kastro 681 | ['castro'] 682 | [1, 1, 1] 683 | replacement 684 | desperate -> despeuate 685 | word: desperate ->despeuate 686 | ['desperate'] 687 | [1, 1, 1] 688 | insertion 689 | pressing -> preossing 690 | word: pressing ->preossing 691 | ['pressing'] 692 | [1, 1, 1] 693 | transposition 694 | ceased -> cesased 695 | word: ceased ->cesased 696 | ['ceased'] 697 | [1, 1, 1] 698 | replacement 699 | wrote -> wrhte 700 | word: wrote ->wrhte 701 | ['wrote', 'write'] 702 | [1, 1, 1] 703 | replacement 704 | absolutely -> absolutedy 705 | word: absolutely ->absolutedy 706 | ['absolutely'] 707 | [1, 1, 1] 708 | insertion 709 | protecting -> protebcting 710 | word: protecting ->protebcting 711 | ['protecting'] 712 | [1, 1, 1] 713 | transposition 714 | reimbursement -> reimbursemnent 715 | word: reimbursement ->reimbursemnent 716 | ['reimbursement'] 717 | [1, 1, 1] 718 | deletion 719 | condemns -> codemns 720 | word: condemns ->codemns 721 | ['condemns'] 722 | [1, 1, 1] 723 | insertion 724 | averaging -> averanging 725 | word: averaging ->averanging 726 | ['averaging'] 727 | [1, 1, 1] 728 | deletion 729 | entity -> entiy 730 | word: entity ->entiy 731 | ['entry', 'entity'] 732 | [0, 1, 1] 733 | transposition 734 | negative -> negtative 735 | word: negative ->negtative 736 | ['negative'] 737 | [1, 1, 1] 738 | transposition 739 | marvelous -> marevelous 740 | word: marvelous ->marevelous 741 | ['marvelous'] 742 | [1, 1, 1] 743 | insertion 744 | shubei -> shubeyi 745 | word: shubei ->shubeyi 746 | ['shubei'] 747 | [1, 1, 1] 748 | insertion 749 | fines -> finesb 750 | word: fines ->finesb 751 | ['fines'] 752 | [1, 1, 1] 753 | deletion 754 | household -> househld 755 | word: household ->househld 756 | ['household'] 757 | [1, 1, 1] 758 | deletion 759 | controlled -> controled 760 | word: controlled ->controled 761 | ['controlled'] 762 | [1, 1, 1] 763 | replacement 764 | afternoon -> gfternoon 765 | word: afternoon ->gfternoon 766 | ['afternoon'] 767 | [1, 1, 1] 768 | insertion 769 | natural -> nateural 770 | word: natural ->nateural 771 | ['natural'] 772 | [1, 1, 1] 773 | replacement 774 | fbi -> fki 775 | word: fbi ->fki 776 | ['fbi', 'fei'] 777 | [1, 1, 1] 778 | replacement 779 | newspapers -> nebspapers 780 | word: newspapers ->nebspapers 781 | ['newspapers'] 782 | [1, 1, 1] 783 | replacement 784 | deeds -> depds 785 | word: deeds ->depds 786 | ['deeds', 'depts'] 787 | [1, 1, 1] 788 | deletion 789 | kangsai -> kangai 790 | word: kangsai ->kangai 791 | ['kangsai'] 792 | [1, 1, 1] 793 | transposition 794 | iis -> isis 795 | word: iis ->isis 796 | ['iis', 'isms'] 797 | [1, 1, 1] 798 | deletion 799 | copyrights -> copyrihts 800 | word: copyrights ->copyrihts 801 | ['copyrights'] 802 | [1, 1, 1] 803 | transposition 804 | vigilance -> vigilanece 805 | word: vigilance ->vigilanece 806 | ['vigilance'] 807 | [1, 1, 1] 808 | insertion 809 | ready -> vready 810 | word: ready ->vready 811 | ['ready'] 812 | [1, 1, 1] 813 | deletion 814 | cautiously -> cauiously 815 | word: cautiously ->cauiously 816 | ['cautiously'] 817 | [1, 1, 1] 818 | transposition 819 | stressed -> stresesed 820 | word: stressed ->stresesed 821 | ['stressed'] 822 | [1, 1, 1] 823 | replacement 824 | becomingly -> bacomingly 825 | word: becomingly ->bacomingly 826 | ['becomingly'] 827 | [1, 1, 1] 828 | deletion 829 | borubayev -> borubaye 830 | word: borubayev ->borubaye 831 | ['borubayev'] 832 | [1, 1, 1] 833 | transposition 834 | errors -> errosrs 835 | word: errors ->errosrs 836 | ['errors'] 837 | [1, 1, 1] 838 | deletion 839 | lanqing -> laqing 840 | word: lanqing ->laqing 841 | ['laying', 'lanqing'] 842 | [0, 1, 1] 843 | insertion 844 | conceptual -> concteptual 845 | word: conceptual ->concteptual 846 | ['conceptual'] 847 | [1, 1, 1] 848 | replacement 849 | xuchu -> xucyu 850 | word: xuchu ->xucyu 851 | ['xuchu'] 852 | [1, 1, 1] 853 | replacement 854 | components -> compocents 855 | word: components ->compocents 856 | ['components'] 857 | [1, 1, 1] 858 | deletion 859 | enterprising -> enterrising 860 | word: enterprising ->enterrising 861 | ['enterprising'] 862 | [1, 1, 1] 863 | insertion 864 | parliament -> parlixament 865 | word: parliament ->parlixament 866 | ['parliament'] 867 | [1, 1, 1] 868 | transposition 869 | consider -> consdider 870 | word: consider ->consdider 871 | ['consider'] 872 | [1, 1, 1] 873 | insertion 874 | existence -> existencre 875 | word: existence ->existencre 876 | ['existence'] 877 | [1, 1, 1] 878 | transposition 879 | acute -> cacute 880 | word: acute ->cacute 881 | ['acute'] 882 | [1, 1, 1] 883 | deletion 884 | decadent -> decadnt 885 | word: decadent ->decadnt 886 | ['decadent'] 887 | [1, 1, 1] 888 | replacement 889 | strict -> striut 890 | word: strict ->striut 891 | ['strict'] 892 | [1, 1, 1] 893 | transposition 894 | decided -> decdided 895 | word: decided ->decdided 896 | ['decided'] 897 | [1, 1, 1] 898 | deletion 899 | swindling -> swindlng 900 | word: swindling ->swindlng 901 | ['swindling'] 902 | [1, 1, 1] 903 | deletion 904 | adviser -> advier 905 | word: adviser ->advier 906 | ['adviser'] 907 | [1, 1, 1] 908 | transposition 909 | tourists -> toursists 910 | word: tourists ->toursists 911 | ['tourists'] 912 | [1, 1, 1] 913 | transposition 914 | quiet -> uquiet 915 | word: quiet ->uquiet 916 | ['quiet'] 917 | [1, 1, 1] 918 | deletion 919 | accompany -> acompany 920 | word: accompany ->acompany 921 | ['company', 'accompany'] 922 | [0, 1, 1] 923 | replacement 924 | stretched -> stretched 925 | word: stretched ->stretched 926 | ['stretched', 'stretches'] 927 | [1, 1, 1] 928 | transposition 929 | amend -> aemend 930 | word: amend ->aemend 931 | ['amend'] 932 | [1, 1, 1] 933 | insertion 934 | athletes -> yathletes 935 | word: athletes ->yathletes 936 | ['athletes'] 937 | [1, 1, 1] 938 | insertion 939 | gangs -> ggangs 940 | word: gangs ->ggangs 941 | ['gangs'] 942 | [1, 1, 1] 943 | replacement 944 | negating -> ntgating 945 | word: negating ->ntgating 946 | ['negating'] 947 | [1, 1, 1] 948 | transposition 949 | aggressors -> agrgressors 950 | word: aggressors ->agrgressors 951 | ['aggressors'] 952 | [1, 1, 1] 953 | replacement 954 | steadfastness -> sthadfastness 955 | word: steadfastness ->sthadfastness 956 | ['steadfastness'] 957 | [1, 1, 1] 958 | deletion 959 | shooting -> shootng 960 | word: shooting ->shootng 961 | ['shooting'] 962 | [1, 1, 1] 963 | replacement 964 | magnificent -> magnjficent 965 | word: magnificent ->magnjficent 966 | ['magnificent'] 967 | [1, 1, 1] 968 | transposition 969 | paid -> padid 970 | word: paid ->padid 971 | ['paid'] 972 | [1, 1, 1] 973 | replacement 974 | extracting -> extractind 975 | word: extracting ->extractind 976 | ['extracting'] 977 | [1, 1, 1] 978 | insertion 979 | emulation -> emulatiosn 980 | word: emulation ->emulatiosn 981 | ['emulation'] 982 | [1, 1, 1] 983 | transposition 984 | oil -> ioil 985 | word: oil ->ioil 986 | ['soil', 'oil'] 987 | [0, 1, 1] 988 | replacement 989 | extraordinarily -> extraordlnarily 990 | word: extraordinarily ->extraordlnarily 991 | ['extraordinarily'] 992 | [1, 1, 1] 993 | transposition 994 | protection -> protcection 995 | word: protection ->protcection 996 | ['protection'] 997 | [1, 1, 1] 998 | deletion 999 | offer -> offe 1000 | word: offer ->offe 1001 | ['off', 'offer'] 1002 | [0, 1, 1] 1003 | transposition 1004 | users -> uesers 1005 | word: users ->uesers 1006 | ['users'] 1007 | [1, 1, 1] 1008 | deletion 1009 | empty -> epty 1010 | word: empty ->epty 1011 | ['empty'] 1012 | [1, 1, 1] 1013 | replacement 1014 | spacecraft -> spacenraft 1015 | word: spacecraft ->spacenraft 1016 | ['spacecraft'] 1017 | [1, 1, 1] 1018 | deletion 1019 | mitterrand -> mtterrand 1020 | word: mitterrand ->mtterrand 1021 | ['mitterrand'] 1022 | [1, 1, 1] 1023 | transposition 1024 | yugoslav -> ygugoslav 1025 | word: yugoslav ->ygugoslav 1026 | ['yugoslav'] 1027 | [1, 1, 1] 1028 | transposition 1029 | strummed -> strmummed 1030 | word: strummed ->strmummed 1031 | ['strummed'] 1032 | [1, 1, 1] 1033 | replacement 1034 | accountable -> accounbable 1035 | word: accountable ->accounbable 1036 | ['accountable'] 1037 | [1, 1, 1] 1038 | replacement 1039 | guarantees -> guavantees 1040 | word: guarantees ->guavantees 1041 | ['guarantees'] 1042 | [1, 1, 1] 1043 | insertion 1044 | proceed -> proceekd 1045 | word: proceed ->proceekd 1046 | ['proceed'] 1047 | [1, 1, 1] 1048 | replacement 1049 | clamor -> clfmor 1050 | word: clamor ->clfmor 1051 | ['clamor'] 1052 | [1, 1, 1] 1053 | replacement 1054 | mistakes -> mhstakes 1055 | word: mistakes ->mhstakes 1056 | ['mistakes'] 1057 | [1, 1, 1] 1058 | insertion 1059 | settlement -> suettlement 1060 | word: settlement ->suettlement 1061 | ['settlement'] 1062 | [1, 1, 1] 1063 | insertion 1064 | snakeheads -> snahkeheads 1065 | word: snakeheads ->snahkeheads 1066 | ['snakeheads'] 1067 | [1, 1, 1] 1068 | replacement 1069 | ourselves -> ozrselves 1070 | word: ourselves ->ozrselves 1071 | ['ourselves'] 1072 | [1, 1, 1] 1073 | replacement 1074 | ruling -> rusing 1075 | word: ruling ->rusing 1076 | ['ruling', 'rising', 'using'] 1077 | [1, 1, 1] 1078 | replacement 1079 | telecom -> tzlecom 1080 | word: telecom ->tzlecom 1081 | ['telecom'] 1082 | [1, 1, 1] 1083 | insertion 1084 | opposition -> iopposition 1085 | word: opposition ->iopposition 1086 | ['opposition'] 1087 | [1, 1, 1] 1088 | replacement 1089 | copyrights -> copyrigpts 1090 | word: copyrights ->copyrigpts 1091 | ['copyrights'] 1092 | [1, 1, 1] 1093 | insertion 1094 | changle -> cjhangle 1095 | word: changle ->cjhangle 1096 | ['changle'] 1097 | [1, 1, 1] 1098 | transposition 1099 | omnipresent -> omnirpresent 1100 | word: omnipresent ->omnirpresent 1101 | ['omnipresent'] 1102 | [1, 1, 1] 1103 | replacement 1104 | divorced -> divorcew 1105 | word: divorced ->divorcew 1106 | ['divorced', 'divorces'] 1107 | [1, 1, 1] 1108 | transposition 1109 | reiterated -> ereiterated 1110 | word: reiterated ->ereiterated 1111 | ['reiterated'] 1112 | [1, 1, 1] 1113 | transposition 1114 | heilongjiang -> heilogngjiang 1115 | word: heilongjiang ->heilogngjiang 1116 | ['heilongjiang'] 1117 | [1, 1, 1] 1118 | transposition 1119 | hulan -> uhulan 1120 | word: hulan ->uhulan 1121 | ['hulan'] 1122 | [1, 1, 1] 1123 | deletion 1124 | confusing -> confuing 1125 | word: confusing ->confuing 1126 | ['confusing'] 1127 | [1, 1, 1] 1128 | transposition 1129 | proclaiming -> proclaimning 1130 | word: proclaiming ->proclaimning 1131 | ['proclaiming'] 1132 | [1, 1, 1] 1133 | transposition 1134 | shipped -> shippped 1135 | word: shipped ->shippped 1136 | ['shipped'] 1137 | [1, 1, 1] 1138 | transposition 1139 | distant -> ditstant 1140 | word: distant ->ditstant 1141 | ['distant'] 1142 | [1, 1, 1] 1143 | insertion 1144 | document -> documenyt 1145 | word: document ->documenyt 1146 | ['document'] 1147 | [1, 1, 1] 1148 | deletion 1149 | acclaim -> acclai 1150 | word: acclaim ->acclai 1151 | ['acclaim'] 1152 | [1, 1, 1] 1153 | deletion 1154 | aiming -> aimng 1155 | word: aiming ->aimng 1156 | ['aiming'] 1157 | [1, 1, 1] 1158 | insertion 1159 | revising -> reavising 1160 | word: revising ->reavising 1161 | ['revising'] 1162 | [1, 1, 1] 1163 | insertion 1164 | sell -> selyl 1165 | word: sell ->selyl 1166 | ['sell'] 1167 | [1, 1, 1] 1168 | deletion 1169 | ice -> ie 1170 | word: ice ->ie 1171 | ['i', 'xie', 'le'] 1172 | [0, 0, 0] 1173 | replacement 1174 | announcement -> announjement 1175 | word: announcement ->announjement 1176 | ['announcement'] 1177 | [1, 1, 1] 1178 | insertion 1179 | reimbursement -> reimbursemtent 1180 | word: reimbursement ->reimbursemtent 1181 | ['reimbursement'] 1182 | [1, 1, 1] 1183 | deletion 1184 | invest -> inves 1185 | word: invest ->inves 1186 | ['invest'] 1187 | [1, 1, 1] 1188 | insertion 1189 | coast -> cotast 1190 | word: coast ->cotast 1191 | ['coast'] 1192 | [1, 1, 1] 1193 | insertion 1194 | bihari -> bzihari 1195 | word: bihari ->bzihari 1196 | ['bihari'] 1197 | [1, 1, 1] 1198 | replacement 1199 | sergeyev -> sergbyev 1200 | word: sergeyev ->sergbyev 1201 | ['sergeyev'] 1202 | [1, 1, 1] 1203 | replacement 1204 | reliable -> oeliable 1205 | word: reliable ->oeliable 1206 | ['reliable'] 1207 | [1, 1, 1] 1208 | insertion 1209 | despicable -> despicablne 1210 | word: despicable ->despicablne 1211 | ['despicable'] 1212 | [1, 1, 1] 1213 | transposition 1214 | policies -> opolicies 1215 | word: policies ->opolicies 1216 | ['policies'] 1217 | [1, 1, 1] 1218 | replacement 1219 | settled -> settles 1220 | word: settled ->settles 1221 | ['settle', 'settled'] 1222 | [0, 1, 1] 1223 | transposition 1224 | confronted -> confrontded 1225 | word: confronted ->confrontded 1226 | ['confronted'] 1227 | [1, 1, 1] 1228 | replacement 1229 | ordered -> orderrd 1230 | word: ordered ->orderrd 1231 | ['ordered'] 1232 | [1, 1, 1] 1233 | transposition 1234 | turn -> uturn 1235 | word: turn ->uturn 1236 | ['turn'] 1237 | [1, 1, 1] 1238 | deletion 1239 | hotbed -> hobed 1240 | word: hotbed ->hobed 1241 | ['hotbed', 'hoped'] 1242 | [1, 1, 1] 1243 | replacement 1244 | chrts -> chrss 1245 | word: chrts ->chrss 1246 | ['chrts', 'chess'] 1247 | [1, 1, 1] 1248 | transposition 1249 | practicable -> practiacable 1250 | word: practicable ->practiacable 1251 | ['practicable'] 1252 | [1, 1, 1] 1253 | deletion 1254 | sentiments -> sentimens 1255 | word: sentiments ->sentimens 1256 | ['sentiments'] 1257 | [1, 1, 1] 1258 | replacement 1259 | gratefully -> gfatefully 1260 | word: gratefully ->gfatefully 1261 | ['gratefully'] 1262 | [1, 1, 1] 1263 | deletion 1264 | offices -> office 1265 | word: offices ->office 1266 | ['office', 'offices'] 1267 | [0, 1, 1] 1268 | deletion 1269 | producer -> prducer 1270 | word: producer ->prducer 1271 | ['producer'] 1272 | [1, 1, 1] 1273 | insertion 1274 | jiafu -> jiaful 1275 | word: jiafu ->jiaful 1276 | ['jiafu'] 1277 | [1, 1, 1] 1278 | insertion 1279 | submarine -> submharine 1280 | word: submarine ->submharine 1281 | ['submarine'] 1282 | [1, 1, 1] 1283 | replacement 1284 | respectfully -> respemtfully 1285 | word: respectfully ->respemtfully 1286 | ['respectfully'] 1287 | [1, 1, 1] 1288 | replacement 1289 | proves -> prkves 1290 | word: proves ->prkves 1291 | ['proves'] 1292 | [1, 1, 1] 1293 | deletion 1294 | sha -> sh 1295 | word: sha ->sh 1296 | ['s', 'ch', 'st'] 1297 | [0, 0, 0] 1298 | insertion 1299 | manifestations -> matnifestations 1300 | word: manifestations ->matnifestations 1301 | ['manifestations'] 1302 | [1, 1, 1] 1303 | insertion 1304 | provocation -> provocatxion 1305 | word: provocation ->provocatxion 1306 | ['provocation'] 1307 | [1, 1, 1] 1308 | deletion 1309 | permeates -> permates 1310 | word: permeates ->permates 1311 | ['permeates'] 1312 | [1, 1, 1] 1313 | deletion 1314 | pledged -> pledge 1315 | word: pledged ->pledge 1316 | ['pledged'] 1317 | [1, 1, 1] 1318 | insertion 1319 | denounced -> denouncedd 1320 | word: denounced ->denouncedd 1321 | ['denounced'] 1322 | [1, 1, 1] 1323 | replacement 1324 | experimental -> experitental 1325 | word: experimental ->experitental 1326 | ['experimental'] 1327 | [1, 1, 1] 1328 | replacement 1329 | alter -> alaer 1330 | word: alter ->alaer 1331 | ['alter'] 1332 | [1, 1, 1] 1333 | deletion 1334 | senior -> senio 1335 | word: senior ->senio 1336 | ['senior'] 1337 | [1, 1, 1] 1338 | deletion 1339 | divorces -> divorcs 1340 | word: divorces ->divorcs 1341 | ['divorces'] 1342 | [1, 1, 1] 1343 | insertion 1344 | container -> containeer 1345 | word: container ->containeer 1346 | ['container'] 1347 | [1, 1, 1] 1348 | replacement 1349 | unrighteous -> unrtghteous 1350 | word: unrighteous ->unrtghteous 1351 | ['unrighteous'] 1352 | [1, 1, 1] 1353 | transposition 1354 | infant -> infatnt 1355 | word: infant ->infatnt 1356 | ['infant'] 1357 | [1, 1, 1] 1358 | replacement 1359 | raging -> rbging 1360 | word: raging ->rbging 1361 | ['raging'] 1362 | [1, 1, 1] 1363 | replacement 1364 | farewell -> farewedl 1365 | word: farewell ->farewedl 1366 | ['farewell'] 1367 | [1, 1, 1] 1368 | transposition 1369 | huaicheng -> huacicheng 1370 | word: huaicheng ->huacicheng 1371 | ['huaicheng'] 1372 | [1, 1, 1] 1373 | replacement 1374 | textbooks -> tzxtbooks 1375 | word: textbooks ->tzxtbooks 1376 | ['textbooks'] 1377 | [1, 1, 1] 1378 | deletion 1379 | ceremony -> cremony 1380 | word: ceremony ->cremony 1381 | ['ceremony'] 1382 | [1, 1, 1] 1383 | replacement 1384 | practitioner -> praptitioner 1385 | word: practitioner ->praptitioner 1386 | ['practitioner'] 1387 | [1, 1, 1] 1388 | deletion 1389 | dashed -> ashed 1390 | word: dashed ->ashed 1391 | ['dashed', 'shed', 'asked'] 1392 | [1, 1, 1] 1393 | replacement 1394 | commentaries -> comuentaries 1395 | word: commentaries ->comuentaries 1396 | ['commentaries'] 1397 | [1, 1, 1] 1398 | insertion 1399 | video -> videom 1400 | word: video ->videom 1401 | ['video'] 1402 | [1, 1, 1] 1403 | transposition 1404 | seat -> eseat 1405 | word: seat ->eseat 1406 | ['seat'] 1407 | [1, 1, 1] 1408 | deletion 1409 | cohesion -> coheion 1410 | word: cohesion ->coheion 1411 | ['cohesion'] 1412 | [1, 1, 1] 1413 | deletion 1414 | uruguay -> urguay 1415 | word: uruguay ->urguay 1416 | ['uruguay'] 1417 | [1, 1, 1] 1418 | replacement 1419 | cao -> caq 1420 | word: cao ->caq 1421 | ['can', 'car', 'cab'] 1422 | [0, 0, 0] 1423 | insertion 1424 | eloquently -> celoquently 1425 | word: eloquently ->celoquently 1426 | ['eloquently'] 1427 | [1, 1, 1] 1428 | replacement 1429 | derives -> lerives 1430 | word: derives ->lerives 1431 | ['derives'] 1432 | [1, 1, 1] 1433 | transposition 1434 | attitude -> attiutude 1435 | word: attitude ->attiutude 1436 | ['attitude'] 1437 | [1, 1, 1] 1438 | deletion 1439 | compilation -> comilation 1440 | word: compilation ->comilation 1441 | ['compilation'] 1442 | [1, 1, 1] 1443 | insertion 1444 | ironclad -> iuronclad 1445 | word: ironclad ->iuronclad 1446 | ['ironclad'] 1447 | [1, 1, 1] 1448 | transposition 1449 | shi -> sihi 1450 | word: shi ->sihi 1451 | ['shi'] 1452 | [1, 1, 1] 1453 | replacement 1454 | material -> materqal 1455 | word: material ->materqal 1456 | ['material'] 1457 | [1, 1, 1] 1458 | replacement 1459 | located -> ltcated 1460 | word: located ->ltcated 1461 | ['located'] 1462 | [1, 1, 1] 1463 | insertion 1464 | minister -> ministerw 1465 | word: minister ->ministerw 1466 | ['minister', 'ministers'] 1467 | [1, 1, 1] 1468 | replacement 1469 | law -> lai 1470 | word: law ->lai 1471 | ['lai', 'li', 'la'] 1472 | [0, 0, 0] 1473 | transposition 1474 | distant -> dsistant 1475 | word: distant ->dsistant 1476 | ['distant'] 1477 | [1, 1, 1] 1478 | deletion 1479 | opportunities -> opportunties 1480 | word: opportunities ->opportunties 1481 | ['opportunities'] 1482 | [1, 1, 1] 1483 | replacement 1484 | textbook -> textxook 1485 | word: textbook ->textxook 1486 | ['textbook'] 1487 | [1, 1, 1] 1488 | replacement 1489 | zhendong -> zhendona 1490 | word: zhendong ->zhendona 1491 | ['zhendong'] 1492 | [1, 1, 1] 1493 | deletion 1494 | stressing -> stessing 1495 | word: stressing ->stessing 1496 | ['stressing'] 1497 | [1, 1, 1] 1498 | deletion 1499 | remains -> remins 1500 | word: remains ->remins 1501 | ['remind', 'remains'] 1502 | [0, 1, 1] 1503 | deletion 1504 | chrts -> crts 1505 | word: chrts ->crts 1506 | ['cuts', 'cats', 'chrts'] 1507 | [0, 0, 1] 1508 | replacement 1509 | dispose -> disdose 1510 | word: dispose ->disdose 1511 | ['dispose'] 1512 | [1, 1, 1] 1513 | replacement 1514 | artillery -> artillewy 1515 | word: artillery ->artillewy 1516 | ['artillery'] 1517 | [1, 1, 1] 1518 | deletion 1519 | summoned -> sumoned 1520 | word: summoned ->sumoned 1521 | ['summoned'] 1522 | [1, 1, 1] 1523 | insertion 1524 | rft -> rfkt 1525 | word: rft ->rfkt 1526 | ['rft'] 1527 | [1, 1, 1] 1528 | transposition 1529 | poll -> ploll 1530 | word: poll ->ploll 1531 | ['poll'] 1532 | [1, 1, 1] 1533 | replacement 1534 | unevenly -> unevynly 1535 | word: unevenly ->unevynly 1536 | ['unevenly'] 1537 | [1, 1, 1] 1538 | replacement 1539 | collapse -> collopse 1540 | word: collapse ->collopse 1541 | ['collapse'] 1542 | [1, 1, 1] 1543 | replacement 1544 | quietest -> quietert 1545 | word: quietest ->quietert 1546 | ['quietest'] 1547 | [1, 1, 1] 1548 | transposition 1549 | ways -> aways 1550 | word: ways ->aways 1551 | ['ways', 'away', 'always'] 1552 | [1, 1, 1] 1553 | deletion 1554 | rushed -> ruhed 1555 | word: rushed ->ruhed 1556 | ['ruled', 'rushed'] 1557 | [0, 1, 1] 1558 | insertion 1559 | protocol -> pgrotocol 1560 | word: protocol ->pgrotocol 1561 | ['protocol'] 1562 | [1, 1, 1] 1563 | transposition 1564 | government -> gvovernment 1565 | word: government ->gvovernment 1566 | ['government'] 1567 | [1, 1, 1] 1568 | deletion 1569 | according -> accrding 1570 | word: according ->accrding 1571 | ['according'] 1572 | [1, 1, 1] 1573 | replacement 1574 | decisions -> xecisions 1575 | word: decisions ->xecisions 1576 | ['decisions'] 1577 | [1, 1, 1] 1578 | replacement 1579 | equipped -> equippeb 1580 | word: equipped ->equippeb 1581 | ['equipped'] 1582 | [1, 1, 1] 1583 | deletion 1584 | lease -> lese 1585 | word: lease ->lese 1586 | ['lose', 'lee', 'less'] 1587 | [0, 0, 0] 1588 | replacement 1589 | her -> hjr 1590 | word: her ->hjr 1591 | ['jr', 'her'] 1592 | [0, 1, 1] 1593 | deletion 1594 | comparing -> comaring 1595 | word: comparing ->comaring 1596 | ['comparing'] 1597 | [1, 1, 1] 1598 | replacement 1599 | prueher -> pruehjr 1600 | word: prueher ->pruehjr 1601 | ['prueher'] 1602 | [1, 1, 1] 1603 | deletion 1604 | fee -> ee 1605 | word: fee ->ee 1606 | ['le', 'lee', 've'] 1607 | [0, 0, 0] 1608 | deletion 1609 | naturally -> naurally 1610 | word: naturally ->naurally 1611 | ['naturally'] 1612 | [1, 1, 1] 1613 | transposition 1614 | book -> boook 1615 | word: book ->boook 1616 | ['brook', 'book'] 1617 | [0, 1, 1] 1618 | insertion 1619 | formidable -> formidablre 1620 | word: formidable ->formidablre 1621 | ['formidable'] 1622 | [1, 1, 1] 1623 | deletion 1624 | load -> loa 1625 | word: load ->loa 1626 | ['la', 'low', 'lot'] 1627 | [0, 0, 0] 1628 | transposition 1629 | telling -> etelling 1630 | word: telling ->etelling 1631 | ['telling'] 1632 | [1, 1, 1] 1633 | replacement 1634 | editorials -> kditorials 1635 | word: editorials ->kditorials 1636 | ['editorials'] 1637 | [1, 1, 1] 1638 | replacement 1639 | ji -> jb 1640 | word: ji ->jb 1641 | ['b', 'ji', 'ju'] 1642 | [0, 1, 1] 1643 | replacement 1644 | narayanan -> navayanan 1645 | word: narayanan ->navayanan 1646 | ['narayanan'] 1647 | [1, 1, 1] 1648 | deletion 1649 | elevate -> eevate 1650 | word: elevate ->eevate 1651 | ['elevate'] 1652 | [1, 1, 1] 1653 | replacement 1654 | homeland -> homelaxd 1655 | word: homeland ->homelaxd 1656 | ['homeland'] 1657 | [1, 1, 1] 1658 | replacement 1659 | lip -> lix 1660 | word: lip ->lix 1661 | ['li', 'lax', 'lin'] 1662 | [0, 0, 0] 1663 | insertion 1664 | theater -> thweater 1665 | word: theater ->thweater 1666 | ['theater'] 1667 | [1, 1, 1] 1668 | replacement 1669 | shape -> shapa 1670 | word: shape ->shapa 1671 | ['shape'] 1672 | [1, 1, 1] 1673 | deletion 1674 | applause -> appause 1675 | word: applause ->appause 1676 | ['applause'] 1677 | [1, 1, 1] 1678 | transposition 1679 | convention -> conventinon 1680 | word: convention ->conventinon 1681 | ['convention'] 1682 | [1, 1, 1] 1683 | transposition 1684 | heroes -> hreroes 1685 | word: heroes ->hreroes 1686 | ['heroes'] 1687 | [1, 1, 1] 1688 | replacement 1689 | constrain -> constrrin 1690 | word: constrain ->constrrin 1691 | ['constrain'] 1692 | [1, 1, 1] 1693 | insertion 1694 | workmanship -> workmaunship 1695 | word: workmanship ->workmaunship 1696 | ['workmanship'] 1697 | [1, 1, 1] 1698 | insertion 1699 | guangqian -> guaangqian 1700 | word: guangqian ->guaangqian 1701 | ['guangqian'] 1702 | [1, 1, 1] 1703 | deletion 1704 | cement -> cemnt 1705 | word: cement ->cemnt 1706 | ['cement', 'cent'] 1707 | [1, 1, 1] 1708 | transposition 1709 | kungkuan -> knungkuan 1710 | word: kungkuan ->knungkuan 1711 | ['kungkuan'] 1712 | [1, 1, 1] 1713 | replacement 1714 | uniformed -> uniformef 1715 | word: uniformed ->uniformef 1716 | ['uniformed'] 1717 | [1, 1, 1] 1718 | replacement 1719 | navigation -> naviyation 1720 | word: navigation ->naviyation 1721 | ['navigation'] 1722 | [1, 1, 1] 1723 | insertion 1724 | liqun -> liquun 1725 | word: liqun ->liquun 1726 | ['liqun'] 1727 | [1, 1, 1] 1728 | replacement 1729 | accomplishment -> accodplishment 1730 | word: accomplishment ->accodplishment 1731 | ['accomplishment'] 1732 | [1, 1, 1] 1733 | replacement 1734 | accused -> bccused 1735 | word: accused ->bccused 1736 | ['accused'] 1737 | [1, 1, 1] 1738 | insertion 1739 | los -> leos 1740 | word: los ->leos 1741 | ['los', 'less', 'laos'] 1742 | [1, 1, 1] 1743 | replacement 1744 | scandal -> scantal 1745 | word: scandal ->scantal 1746 | ['scandal'] 1747 | [1, 1, 1] 1748 | transposition 1749 | windows -> iwindows 1750 | word: windows ->iwindows 1751 | ['windows'] 1752 | [1, 1, 1] 1753 | replacement 1754 | philosophy -> philosoqhy 1755 | word: philosophy ->philosoqhy 1756 | ['philosophy'] 1757 | [1, 1, 1] 1758 | replacement 1759 | assets -> cssets 1760 | word: assets ->cssets 1761 | ['assets'] 1762 | [1, 1, 1] 1763 | insertion 1764 | grain -> gzrain 1765 | word: grain ->gzrain 1766 | ['grain'] 1767 | [1, 1, 1] 1768 | deletion 1769 | recycling -> recyclin 1770 | word: recycling ->recyclin 1771 | ['recycling'] 1772 | [1, 1, 1] 1773 | deletion 1774 | lag -> lg 1775 | word: lag ->lg 1776 | ['kg', 'li', 'la'] 1777 | [0, 0, 0] 1778 | transposition 1779 | paying -> payigng 1780 | word: paying ->payigng 1781 | ['paying'] 1782 | [1, 1, 1] 1783 | replacement 1784 | aren -> ared 1785 | word: aren ->ared 1786 | ['red', 'aired', 'are'] 1787 | [0, 0, 0] 1788 | transposition 1789 | underdeveloped -> undedrdeveloped 1790 | word: underdeveloped ->undedrdeveloped 1791 | ['underdeveloped'] 1792 | [1, 1, 1] 1793 | transposition 1794 | gives -> igives 1795 | word: gives ->igives 1796 | ['gives'] 1797 | [1, 1, 1] 1798 | transposition 1799 | act -> cact 1800 | word: act ->cact 1801 | ['pact', 'fact', 'cast'] 1802 | [0, 0, 0] 1803 | transposition 1804 | respecting -> respeciting 1805 | word: respecting ->respeciting 1806 | ['respecting'] 1807 | [1, 1, 1] 1808 | deletion 1809 | frontiers -> frntiers 1810 | word: frontiers ->frntiers 1811 | ['frontiers'] 1812 | [1, 1, 1] 1813 | insertion 1814 | borne -> mborne 1815 | word: borne ->mborne 1816 | ['borne'] 1817 | [1, 1, 1] 1818 | replacement 1819 | giant -> gisnt 1820 | word: giant ->gisnt 1821 | ['gist', 'giant'] 1822 | [0, 1, 1] 1823 | replacement 1824 | domineering -> dopineering 1825 | word: domineering ->dopineering 1826 | ['domineering'] 1827 | [1, 1, 1] 1828 | deletion 1829 | scum -> sum 1830 | word: scum ->sum 1831 | ['sum', 'su', 'scum'] 1832 | [0, 0, 1] 1833 | replacement 1834 | frictions -> frirtions 1835 | word: frictions ->frirtions 1836 | ['frictions'] 1837 | [1, 1, 1] 1838 | insertion 1839 | lan -> flan 1840 | word: lan ->flan 1841 | ['lan', 'plan', 'fan'] 1842 | [1, 1, 1] 1843 | insertion 1844 | incorporated -> incorporathed 1845 | word: incorporated ->incorporathed 1846 | ['incorporated'] 1847 | [1, 1, 1] 1848 | transposition 1849 | states -> staetes 1850 | word: states ->staetes 1851 | ['states'] 1852 | [1, 1, 1] 1853 | insertion 1854 | unrest -> undrest 1855 | word: unrest ->undrest 1856 | ['unrest'] 1857 | [1, 1, 1] 1858 | transposition 1859 | crystals -> rcrystals 1860 | word: crystals ->rcrystals 1861 | ['crystals'] 1862 | [1, 1, 1] 1863 | deletion 1864 | musical -> muical 1865 | word: musical ->muical 1866 | ['musical'] 1867 | [1, 1, 1] 1868 | transposition 1869 | ironclad -> ironcalad 1870 | word: ironclad ->ironcalad 1871 | ['ironclad'] 1872 | [1, 1, 1] 1873 | deletion 1874 | profit -> rofit 1875 | word: profit ->rofit 1876 | ['profit'] 1877 | [1, 1, 1] 1878 | insertion 1879 | meiji -> meizji 1880 | word: meiji ->meizji 1881 | ['meiji'] 1882 | [1, 1, 1] 1883 | transposition 1884 | pacific -> apacific 1885 | word: pacific ->apacific 1886 | ['pacific'] 1887 | [1, 1, 1] 1888 | insertion 1889 | standards -> standaxrds 1890 | word: standards ->standaxrds 1891 | ['standards'] 1892 | [1, 1, 1] 1893 | deletion 1894 | carriers -> carrier 1895 | word: carriers ->carrier 1896 | ['carrier', 'barrier', 'carried'] 1897 | [0, 0, 0] 1898 | replacement 1899 | wartime -> wabtime 1900 | word: wartime ->wabtime 1901 | ['wartime'] 1902 | [1, 1, 1] 1903 | replacement 1904 | resulting -> reswlting 1905 | word: resulting ->reswlting 1906 | ['resulting'] 1907 | [1, 1, 1] 1908 | transposition 1909 | smashed -> samashed 1910 | word: smashed ->samashed 1911 | ['smashed'] 1912 | [1, 1, 1] 1913 | insertion 1914 | directly -> direuctly 1915 | word: directly ->direuctly 1916 | ['directly'] 1917 | [1, 1, 1] 1918 | transposition 1919 | nepalese -> enepalese 1920 | word: nepalese ->enepalese 1921 | ['nepalese'] 1922 | [1, 1, 1] 1923 | replacement 1924 | quick -> luick 1925 | word: quick ->luick 1926 | ['quick', 'luck'] 1927 | [1, 1, 1] 1928 | replacement 1929 | interfering -> interfergng 1930 | word: interfering ->interfergng 1931 | ['interfering'] 1932 | [1, 1, 1] 1933 | insertion 1934 | call -> coall 1935 | word: call ->coall 1936 | ['call', 'coal'] 1937 | [1, 1, 1] 1938 | deletion 1939 | hutchison -> hutchiso 1940 | word: hutchison ->hutchiso 1941 | ['hutchison'] 1942 | [1, 1, 1] 1943 | deletion 1944 | enterprise -> nterprise 1945 | word: enterprise ->nterprise 1946 | ['enterprise'] 1947 | [1, 1, 1] 1948 | deletion 1949 | presages -> presags 1950 | word: presages ->presags 1951 | ['presages'] 1952 | [1, 1, 1] 1953 | insertion 1954 | interest -> intemrest 1955 | word: interest ->intemrest 1956 | ['interest'] 1957 | [1, 1, 1] 1958 | replacement 1959 | territory -> territrry 1960 | word: territory ->territrry 1961 | ['territory'] 1962 | [1, 1, 1] 1963 | insertion 1964 | indelible -> indelibleh 1965 | word: indelible ->indelibleh 1966 | ['indelible'] 1967 | [1, 1, 1] 1968 | deletion 1969 | painting -> paintig 1970 | word: painting ->paintig 1971 | ['painting'] 1972 | [1, 1, 1] 1973 | deletion 1974 | chancellor -> chancelor 1975 | word: chancellor ->chancelor 1976 | ['chancellor'] 1977 | [1, 1, 1] 1978 | insertion 1979 | ribao -> ribaio 1980 | word: ribao ->ribaio 1981 | ['ribao'] 1982 | [1, 1, 1] 1983 | deletion 1984 | wavering -> waverig 1985 | word: wavering ->waverig 1986 | ['wavering'] 1987 | [1, 1, 1] 1988 | insertion 1989 | cigarettes -> cigarettews 1990 | word: cigarettes ->cigarettews 1991 | ['cigarettes'] 1992 | [1, 1, 1] 1993 | deletion 1994 | limitation -> imitation 1995 | word: limitation ->imitation 1996 | ['limitation'] 1997 | [1, 1, 1] 1998 | insertion 1999 | oceanic -> oceanicm 2000 | word: oceanic ->oceanicm 2001 | ['oceanic'] 2002 | [1, 1, 1] 2003 | transposition 2004 | restricting -> restrictigng 2005 | word: restricting ->restrictigng 2006 | ['restricting'] 2007 | [1, 1, 1] 2008 | insertion 2009 | opportunities -> opportuniteies 2010 | word: opportunities ->opportuniteies 2011 | ['opportunities'] 2012 | [1, 1, 1] 2013 | replacement 2014 | waiting -> waitinh 2015 | word: waiting ->waitinh 2016 | ['waiting'] 2017 | [1, 1, 1] 2018 | transposition 2019 | sure -> suere 2020 | word: sure ->suere 2021 | ['sure'] 2022 | [1, 1, 1] 2023 | insertion 2024 | decisionmaking -> decisionmakixng 2025 | word: decisionmaking ->decisionmakixng 2026 | ['decisionmaking'] 2027 | [1, 1, 1] 2028 | transposition 2029 | attaching -> tattaching 2030 | word: attaching ->tattaching 2031 | ['attaching'] 2032 | [1, 1, 1] 2033 | transposition 2034 | turns -> tursns 2035 | word: turns ->tursns 2036 | ['turns'] 2037 | [1, 1, 1] 2038 | replacement 2039 | unfeasible -> unfeasibla 2040 | word: unfeasible ->unfeasibla 2041 | ['unfeasible'] 2042 | [1, 1, 1] 2043 | replacement 2044 | confine -> confinz 2045 | word: confine ->confinz 2046 | ['confine'] 2047 | [1, 1, 1] 2048 | deletion 2049 | increase -> ncrease 2050 | word: increase ->ncrease 2051 | ['increase'] 2052 | [1, 1, 1] 2053 | deletion 2054 | ying -> ing 2055 | word: ying ->ing 2056 | ['qing', 'king', 'ling'] 2057 | [0, 0, 0] 2058 | transposition 2059 | seems -> seesms 2060 | word: seems ->seesms 2061 | ['seems'] 2062 | [1, 1, 1] 2063 | insertion 2064 | instruction -> insmtruction 2065 | word: instruction ->insmtruction 2066 | ['instruction'] 2067 | [1, 1, 1] 2068 | deletion 2069 | dream -> drem 2070 | word: dream ->drem 2071 | ['drew', 'dream', 'deem'] 2072 | [0, 1, 1] 2073 | replacement 2074 | village -> vilwage 2075 | word: village ->vilwage 2076 | ['village'] 2077 | [1, 1, 1] 2078 | deletion 2079 | morocco -> moroco 2080 | word: morocco ->moroco 2081 | ['morocco'] 2082 | [1, 1, 1] 2083 | transposition 2084 | localized -> localizded 2085 | word: localized ->localizded 2086 | ['localized'] 2087 | [1, 1, 1] 2088 | replacement 2089 | revenge -> revynge 2090 | word: revenge ->revynge 2091 | ['revenge'] 2092 | [1, 1, 1] 2093 | transposition 2094 | declarations -> decalarations 2095 | word: declarations ->decalarations 2096 | ['declarations'] 2097 | [1, 1, 1] 2098 | deletion 2099 | notice -> notic 2100 | word: notice ->notic 2101 | ['notice'] 2102 | [1, 1, 1] 2103 | transposition 2104 | elders -> lelders 2105 | word: elders ->lelders 2106 | ['leaders', 'elders'] 2107 | [0, 1, 1] 2108 | transposition 2109 | treasury -> rtreasury 2110 | word: treasury ->rtreasury 2111 | ['treasury'] 2112 | [1, 1, 1] 2113 | replacement 2114 | microwave -> misrowave 2115 | word: microwave ->misrowave 2116 | ['microwave'] 2117 | [1, 1, 1] 2118 | transposition 2119 | will -> iwill 2120 | word: will ->iwill 2121 | ['will'] 2122 | [1, 1, 1] 2123 | deletion 2124 | assigning -> asigning 2125 | word: assigning ->asigning 2126 | ['signing', 'assigning'] 2127 | [0, 1, 1] 2128 | insertion 2129 | enormously -> enormiously 2130 | word: enormously ->enormiously 2131 | ['enormously'] 2132 | [1, 1, 1] 2133 | deletion 2134 | mr -> m 2135 | word: mr ->m 2136 | ['m', 't', 'a'] 2137 | [0, 0, 0] 2138 | deletion 2139 | jiyun -> jiun 2140 | word: jiyun ->jiun 2141 | ['jun', 'jin', 'jiyun'] 2142 | [0, 0, 1] 2143 | replacement 2144 | report -> repgrt 2145 | word: report ->repgrt 2146 | ['report'] 2147 | [1, 1, 1] 2148 | transposition 2149 | single -> sningle 2150 | word: single ->sningle 2151 | ['single'] 2152 | [1, 1, 1] 2153 | transposition 2154 | notice -> notiece 2155 | word: notice ->notiece 2156 | ['notice'] 2157 | [1, 1, 1] 2158 | replacement 2159 | generations -> gnnerations 2160 | word: generations ->gnnerations 2161 | ['generations'] 2162 | [1, 1, 1] 2163 | insertion 2164 | alternative -> alnternative 2165 | word: alternative ->alnternative 2166 | ['alternative'] 2167 | [1, 1, 1] 2168 | replacement 2169 | immolate -> immolnte 2170 | word: immolate ->immolnte 2171 | ['immolate'] 2172 | [1, 1, 1] 2173 | deletion 2174 | readjustment -> readjustmet 2175 | word: readjustment ->readjustmet 2176 | ['readjustment'] 2177 | [1, 1, 1] 2178 | deletion 2179 | view -> vie 2180 | word: view ->vie 2181 | ['xie', 'lie', 've'] 2182 | [0, 0, 0] 2183 | deletion 2184 | magistrate -> magstrate 2185 | word: magistrate ->magstrate 2186 | ['magistrate'] 2187 | [1, 1, 1] 2188 | transposition 2189 | properly -> prpoperly 2190 | word: properly ->prpoperly 2191 | ['properly'] 2192 | [1, 1, 1] 2193 | replacement 2194 | investing -> investirg 2195 | word: investing ->investirg 2196 | ['investing'] 2197 | [1, 1, 1] 2198 | insertion 2199 | cards -> cardrs 2200 | word: cards ->cardrs 2201 | ['cards'] 2202 | [1, 1, 1] 2203 | replacement 2204 | crossroads -> crossrowds 2205 | word: crossroads ->crossrowds 2206 | ['crossroads'] 2207 | [1, 1, 1] 2208 | insertion 2209 | attributable -> attributablej 2210 | word: attributable ->attributablej 2211 | ['attributable'] 2212 | [1, 1, 1] 2213 | transposition 2214 | speakers -> sepeakers 2215 | word: speakers ->sepeakers 2216 | ['speakers'] 2217 | [1, 1, 1] 2218 | insertion 2219 | another -> anotwher 2220 | word: another ->anotwher 2221 | ['another'] 2222 | [1, 1, 1] 2223 | insertion 2224 | separated -> sepsarated 2225 | word: separated ->sepsarated 2226 | ['separated'] 2227 | [1, 1, 1] 2228 | replacement 2229 | art -> rrt 2230 | word: art ->rrt 2231 | ['rft', 'art'] 2232 | [0, 1, 1] 2233 | deletion 2234 | celebrate -> celbrate 2235 | word: celebrate ->celbrate 2236 | ['celebrate'] 2237 | [1, 1, 1] 2238 | transposition 2239 | gitic -> gitcic 2240 | word: gitic ->gitcic 2241 | ['gitic'] 2242 | [1, 1, 1] 2243 | deletion 2244 | rigging -> riggng 2245 | word: rigging ->riggng 2246 | ['rigging'] 2247 | [1, 1, 1] 2248 | insertion 2249 | political -> polihtical 2250 | word: political ->polihtical 2251 | ['political'] 2252 | [1, 1, 1] 2253 | transposition 2254 | wherein -> whrerein 2255 | word: wherein ->whrerein 2256 | ['wherein'] 2257 | [1, 1, 1] 2258 | insertion 2259 | setup -> setuup 2260 | word: setup ->setuup 2261 | ['setup'] 2262 | [1, 1, 1] 2263 | transposition 2264 | ifs -> fifs 2265 | word: ifs ->fifs 2266 | ['ifs'] 2267 | [1, 1, 1] 2268 | transposition 2269 | megaphones -> emegaphones 2270 | word: megaphones ->emegaphones 2271 | ['megaphones'] 2272 | [1, 1, 1] 2273 | deletion 2274 | liberalization -> liberalizatin 2275 | word: liberalization ->liberalizatin 2276 | ['liberalization'] 2277 | [1, 1, 1] 2278 | transposition 2279 | visas -> vsisas 2280 | word: visas ->vsisas 2281 | ['visas'] 2282 | [1, 1, 1] 2283 | transposition 2284 | often -> foften 2285 | word: often ->foften 2286 | ['often'] 2287 | [1, 1, 1] 2288 | replacement 2289 | jinan -> jinqn 2290 | word: jinan ->jinqn 2291 | ['jinan'] 2292 | [1, 1, 1] 2293 | deletion 2294 | launch -> lanch 2295 | word: launch ->lanch 2296 | ['lunch', 'launch', 'ranch'] 2297 | [0, 1, 1] 2298 | transposition 2299 | hang -> hnang 2300 | word: hang ->hnang 2301 | ['huang', 'hang'] 2302 | [0, 1, 1] 2303 | transposition 2304 | staying -> sataying 2305 | word: staying ->sataying 2306 | ['staying'] 2307 | [1, 1, 1] 2308 | deletion 2309 | members -> mmbers 2310 | word: members ->mmbers 2311 | ['members'] 2312 | [1, 1, 1] 2313 | deletion 2314 | coexistence -> coxistence 2315 | word: coexistence ->coxistence 2316 | ['coexistence'] 2317 | [1, 1, 1] 2318 | replacement 2319 | digitized -> digotized 2320 | word: digitized ->digotized 2321 | ['digitized'] 2322 | [1, 1, 1] 2323 | deletion 2324 | naturally -> natually 2325 | word: naturally ->natually 2326 | ['naturally'] 2327 | [1, 1, 1] 2328 | transposition 2329 | choazhou -> chaoazhou 2330 | word: choazhou ->chaoazhou 2331 | ['choazhou'] 2332 | [1, 1, 1] 2333 | deletion 2334 | officials -> officias 2335 | word: officials ->officias 2336 | ['official', 'officials'] 2337 | [0, 1, 1] 2338 | transposition 2339 | ti -> iti 2340 | word: ti ->iti 2341 | ['it', 'ii', 'iii'] 2342 | [0, 0, 0] 2343 | transposition 2344 | yourself -> yourseflf 2345 | word: yourself ->yourseflf 2346 | ['yourself'] 2347 | [1, 1, 1] 2348 | transposition 2349 | snow -> snwow 2350 | word: snow ->snwow 2351 | ['snow'] 2352 | [1, 1, 1] 2353 | insertion 2354 | amid -> amiwd 2355 | word: amid ->amiwd 2356 | ['amid'] 2357 | [1, 1, 1] 2358 | transposition 2359 | simply -> simpyly 2360 | word: simply ->simpyly 2361 | ['simply'] 2362 | [1, 1, 1] 2363 | deletion 2364 | place -> plce 2365 | word: place ->plce 2366 | ['place', 'pace'] 2367 | [1, 1, 1] 2368 | insertion 2369 | apec -> axpec 2370 | word: apec ->axpec 2371 | ['apec'] 2372 | [1, 1, 1] 2373 | replacement 2374 | microwave -> microwavx 2375 | word: microwave ->microwavx 2376 | ['microwave'] 2377 | [1, 1, 1] 2378 | transposition 2379 | primary -> priamary 2380 | word: primary ->priamary 2381 | ['primary'] 2382 | [1, 1, 1] 2383 | insertion 2384 | cai -> caki 2385 | word: cai ->caki 2386 | ['cai'] 2387 | [1, 1, 1] 2388 | deletion 2389 | definite -> defiite 2390 | word: definite ->defiite 2391 | ['definite'] 2392 | [1, 1, 1] 2393 | replacement 2394 | hearty -> heprty 2395 | word: hearty ->heprty 2396 | ['hearty'] 2397 | [1, 1, 1] 2398 | deletion 2399 | onlooker -> onloker 2400 | word: onlooker ->onloker 2401 | ['onlooker'] 2402 | [1, 1, 1] 2403 | insertion 2404 | fluctuate -> lfluctuate 2405 | word: fluctuate ->lfluctuate 2406 | ['fluctuate'] 2407 | [1, 1, 1] 2408 | deletion 2409 | environment -> envronment 2410 | word: environment ->envronment 2411 | ['environment'] 2412 | [1, 1, 1] 2413 | transposition 2414 | purely -> upurely 2415 | word: purely ->upurely 2416 | ['purely'] 2417 | [1, 1, 1] 2418 | deletion 2419 | multiple -> mltiple 2420 | word: multiple ->mltiple 2421 | ['multiple'] 2422 | [1, 1, 1] 2423 | replacement 2424 | zxs -> zxv 2425 | word: zxs ->zxv 2426 | ['zxs'] 2427 | [1, 1, 1] 2428 | transposition 2429 | commander -> commaneder 2430 | word: commander ->commaneder 2431 | ['commander'] 2432 | [1, 1, 1] 2433 | transposition 2434 | started -> strarted 2435 | word: started ->strarted 2436 | ['started'] 2437 | [1, 1, 1] 2438 | insertion 2439 | holocaust -> holockaust 2440 | word: holocaust ->holockaust 2441 | ['holocaust'] 2442 | [1, 1, 1] 2443 | replacement 2444 | consumers -> cousumers 2445 | word: consumers ->cousumers 2446 | ['consumers'] 2447 | [1, 1, 1] 2448 | replacement 2449 | amount -> wmount 2450 | word: amount ->wmount 2451 | ['amount'] 2452 | [1, 1, 1] 2453 | replacement 2454 | thatcher -> thatnher 2455 | word: thatcher ->thatnher 2456 | ['thatcher'] 2457 | [1, 1, 1] 2458 | deletion 2459 | frontiers -> frontier 2460 | word: frontiers ->frontier 2461 | ['frontier', 'frontiers'] 2462 | [0, 1, 1] 2463 | transposition 2464 | anyway -> anywyay 2465 | word: anyway ->anywyay 2466 | ['anyway'] 2467 | [1, 1, 1] 2468 | transposition 2469 | duncan -> uduncan 2470 | word: duncan ->uduncan 2471 | ['duncan'] 2472 | [1, 1, 1] 2473 | deletion 2474 | convening -> convenng 2475 | word: convening ->convenng 2476 | ['convening'] 2477 | [1, 1, 1] 2478 | replacement 2479 | remaining -> remgining 2480 | word: remaining ->remgining 2481 | ['remaining'] 2482 | [1, 1, 1] 2483 | insertion 2484 | hulan -> uhulan 2485 | word: hulan ->uhulan 2486 | ['hulan'] 2487 | [1, 1, 1] 2488 | deletion 2489 | through -> though 2490 | word: through ->though 2491 | ['though', 'tough', 'thought'] 2492 | [0, 0, 0] 2493 | insertion 2494 | optimization -> optimizationv 2495 | word: optimization ->optimizationv 2496 | ['optimization'] 2497 | [1, 1, 1] 2498 | transposition 2499 | bribed -> briebed 2500 | word: bribed ->briebed 2501 | ['bribed', 'briefed'] 2502 | [1, 1, 1] 2503 | replacement 2504 | appearance -> lppearance 2505 | word: appearance ->lppearance 2506 | ['appearance'] 2507 | [1, 1, 1] 2508 | deletion 2509 | coexistence -> coexistene 2510 | word: coexistence ->coexistene 2511 | ['coexistence'] 2512 | [1, 1, 1] 2513 | insertion 2514 | manual -> manuavl 2515 | word: manual ->manuavl 2516 | ['manual'] 2517 | [1, 1, 1] 2518 | deletion 2519 | investigative -> investigativ 2520 | word: investigative ->investigativ 2521 | ['investigative'] 2522 | [1, 1, 1] 2523 | replacement 2524 | aides -> hides 2525 | word: aides ->hides 2526 | ['sides', 'aides', 'tides'] 2527 | [0, 1, 1] 2528 | replacement 2529 | exploit -> exploil 2530 | word: exploit ->exploil 2531 | ['exploit'] 2532 | [1, 1, 1] 2533 | insertion 2534 | binding -> binfding 2535 | word: binding ->binfding 2536 | ['binding'] 2537 | [1, 1, 1] 2538 | deletion 2539 | midst -> midt 2540 | word: midst ->midt 2541 | ['midst', 'mist'] 2542 | [1, 1, 1] 2543 | transposition 2544 | unsc -> nunsc 2545 | word: unsc ->nunsc 2546 | ['unsc'] 2547 | [1, 1, 1] 2548 | replacement 2549 | cape -> capd 2550 | word: cape ->capd 2551 | ['cape', 'card'] 2552 | [1, 1, 1] 2553 | replacement 2554 | share -> shaee 2555 | word: share ->shaee 2556 | ['shame', 'shake', 'shape'] 2557 | [0, 0, 0] 2558 | insertion 2559 | when -> whehn 2560 | word: when ->whehn 2561 | ['when'] 2562 | [1, 1, 1] 2563 | replacement 2564 | round -> rtund 2565 | word: round ->rtund 2566 | ['round'] 2567 | [1, 1, 1] 2568 | replacement 2569 | gall -> gell 2570 | word: gall ->gell 2571 | ['gall', 'bell', 'well'] 2572 | [1, 1, 1] 2573 | replacement 2574 | reducing -> reducino 2575 | word: reducing ->reducino 2576 | ['reducing'] 2577 | [1, 1, 1] 2578 | insertion 2579 | protesters -> protestersh 2580 | word: protesters ->protestersh 2581 | ['protesters'] 2582 | [1, 1, 1] 2583 | insertion 2584 | proposition -> peroposition 2585 | word: proposition ->peroposition 2586 | ['proposition'] 2587 | [1, 1, 1] 2588 | insertion 2589 | astonishing -> astonishitng 2590 | word: astonishing ->astonishitng 2591 | ['astonishing'] 2592 | [1, 1, 1] 2593 | transposition 2594 | afterstrike -> aftrerstrike 2595 | word: afterstrike ->aftrerstrike 2596 | ['afterstrike'] 2597 | [1, 1, 1] 2598 | replacement 2599 | kindergarten -> qindergarten 2600 | word: kindergarten ->qindergarten 2601 | ['kindergarten'] 2602 | [1, 1, 1] 2603 | transposition 2604 | yet -> ytet 2605 | word: yet ->ytet 2606 | ['yet'] 2607 | [1, 1, 1] 2608 | insertion 2609 | attained -> attahined 2610 | word: attained ->attahined 2611 | ['attained'] 2612 | [1, 1, 1] 2613 | transposition 2614 | underage -> udnderage 2615 | word: underage ->udnderage 2616 | ['underage'] 2617 | [1, 1, 1] 2618 | transposition 2619 | competing -> ocompeting 2620 | word: competing ->ocompeting 2621 | ['competing'] 2622 | [1, 1, 1] 2623 | transposition 2624 | c -> c 2625 | word: c ->c 2626 | ['c', 't', 'a'] 2627 | [1, 1, 1] 2628 | replacement 2629 | filled -> fiiled 2630 | word: filled ->fiiled 2631 | ['failed', 'filed', 'filled'] 2632 | [0, 0, 1] 2633 | replacement 2634 | reported -> reparted 2635 | word: reported ->reparted 2636 | ['reported'] 2637 | [1, 1, 1] 2638 | replacement 2639 | maritime -> maritimh 2640 | word: maritime ->maritimh 2641 | ['maritime'] 2642 | [1, 1, 1] 2643 | transposition 2644 | includes -> inculudes 2645 | word: includes ->inculudes 2646 | ['includes'] 2647 | [1, 1, 1] 2648 | deletion 2649 | quo -> qu 2650 | word: quo ->qu 2651 | ['qu', 'u', 'q'] 2652 | [0, 0, 0] 2653 | transposition 2654 | off -> foff 2655 | word: off ->foff 2656 | ['off'] 2657 | [1, 1, 1] 2658 | replacement 2659 | melodious -> mqlodious 2660 | word: melodious ->mqlodious 2661 | ['melodious'] 2662 | [1, 1, 1] 2663 | insertion 2664 | inundated -> iknundated 2665 | word: inundated ->iknundated 2666 | ['inundated'] 2667 | [1, 1, 1] 2668 | deletion 2669 | socialization -> ocialization 2670 | word: socialization ->ocialization 2671 | ['socialization'] 2672 | [1, 1, 1] 2673 | deletion 2674 | superconductive -> uperconductive 2675 | word: superconductive ->uperconductive 2676 | ['superconductive'] 2677 | [1, 1, 1] 2678 | deletion 2679 | tajikistan -> tajiistan 2680 | word: tajikistan ->tajiistan 2681 | ['tajikstan', 'tajikistan'] 2682 | [0, 1, 1] 2683 | deletion 2684 | grasps -> rasps 2685 | word: grasps ->rasps 2686 | ['grasps'] 2687 | [1, 1, 1] 2688 | transposition 2689 | deepest -> deepsest 2690 | word: deepest ->deepsest 2691 | ['deepest'] 2692 | [1, 1, 1] 2693 | insertion 2694 | extracting -> efxtracting 2695 | word: extracting ->efxtracting 2696 | ['extracting'] 2697 | [1, 1, 1] 2698 | transposition 2699 | secrets -> secerets 2700 | word: secrets ->secerets 2701 | ['secrets'] 2702 | [1, 1, 1] 2703 | transposition 2704 | ceased -> eceased 2705 | word: ceased ->eceased 2706 | ['ceased'] 2707 | [1, 1, 1] 2708 | replacement 2709 | hague -> hygue 2710 | word: hague ->hygue 2711 | ['hague'] 2712 | [1, 1, 1] 2713 | deletion 2714 | tearing -> taring 2715 | word: tearing ->taring 2716 | ['caring', 'tearing', 'taking'] 2717 | [0, 1, 1] 2718 | deletion 2719 | vast -> vat 2720 | word: vast ->vat 2721 | ['van', 'vast', 'eat'] 2722 | [0, 1, 1] 2723 | replacement 2724 | thailand -> thaipand 2725 | word: thailand ->thaipand 2726 | ['thailand'] 2727 | [1, 1, 1] 2728 | replacement 2729 | cycle -> cycbe 2730 | word: cycle ->cycbe 2731 | ['cycle'] 2732 | [1, 1, 1] 2733 | deletion 2734 | ctrl -> trl 2735 | word: ctrl ->trl 2736 | ['ctrl', 'try'] 2737 | [1, 1, 1] 2738 | transposition 2739 | masses -> msasses 2740 | word: masses ->msasses 2741 | ['masses'] 2742 | [1, 1, 1] 2743 | deletion 2744 | platform -> platfor 2745 | word: platform ->platfor 2746 | ['platform'] 2747 | [1, 1, 1] 2748 | replacement 2749 | issue -> ihsue 2750 | word: issue ->ihsue 2751 | ['issue'] 2752 | [1, 1, 1] 2753 | insertion 2754 | tranquil -> tranquail 2755 | word: tranquil ->tranquail 2756 | ['tranquil'] 2757 | [1, 1, 1] 2758 | replacement 2759 | selectively -> selvctively 2760 | word: selectively ->selvctively 2761 | ['selectively'] 2762 | [1, 1, 1] 2763 | deletion 2764 | telegram -> teegram 2765 | word: telegram ->teegram 2766 | ['telegram'] 2767 | [1, 1, 1] 2768 | replacement 2769 | agency -> agenck 2770 | word: agency ->agenck 2771 | ['agency'] 2772 | [1, 1, 1] 2773 | replacement 2774 | excerpted -> excerpteg 2775 | word: excerpted ->excerpteg 2776 | ['excerpted'] 2777 | [1, 1, 1] 2778 | insertion 2779 | expound -> exxpound 2780 | word: expound ->exxpound 2781 | ['expound'] 2782 | [1, 1, 1] 2783 | insertion 2784 | qinyao -> qintyao 2785 | word: qinyao ->qintyao 2786 | ['qinyao'] 2787 | [1, 1, 1] 2788 | insertion 2789 | slavery -> slaveray 2790 | word: slavery ->slaveray 2791 | ['slavery'] 2792 | [1, 1, 1] 2793 | deletion 2794 | detector -> detectr 2795 | word: detector ->detectr 2796 | ['detector'] 2797 | [1, 1, 1] 2798 | insertion 2799 | ouster -> oquster 2800 | word: ouster ->oquster 2801 | ['ouster'] 2802 | [1, 1, 1] 2803 | insertion 2804 | row -> rowg 2805 | word: row ->rowg 2806 | ['row'] 2807 | [1, 1, 1] 2808 | deletion 2809 | emigration -> emigraion 2810 | word: emigration ->emigraion 2811 | ['emigration'] 2812 | [1, 1, 1] 2813 | replacement 2814 | isolated -> xsolated 2815 | word: isolated ->xsolated 2816 | ['isolated'] 2817 | [1, 1, 1] 2818 | transposition 2819 | kindergarten -> kinedergarten 2820 | word: kindergarten ->kinedergarten 2821 | ['kindergarten'] 2822 | [1, 1, 1] 2823 | deletion 2824 | imagined -> imained 2825 | word: imagined ->imained 2826 | ['imagined'] 2827 | [1, 1, 1] 2828 | transposition 2829 | old -> lold 2830 | word: old ->lold 2831 | ['loud', 'load', 'gold'] 2832 | [0, 0, 0] 2833 | insertion 2834 | executive -> gexecutive 2835 | word: executive ->gexecutive 2836 | ['executive'] 2837 | [1, 1, 1] 2838 | transposition 2839 | ends -> ensds 2840 | word: ends ->ensds 2841 | ['ends'] 2842 | [1, 1, 1] 2843 | insertion 2844 | announced -> annournced 2845 | word: announced ->annournced 2846 | ['announced'] 2847 | [1, 1, 1] 2848 | replacement 2849 | caring -> caricg 2850 | word: caring ->caricg 2851 | ['caring'] 2852 | [1, 1, 1] 2853 | insertion 2854 | substantiated -> subnstantiated 2855 | word: substantiated ->subnstantiated 2856 | ['substantiated'] 2857 | [1, 1, 1] 2858 | replacement 2859 | states -> stytes 2860 | word: states ->stytes 2861 | ['styles', 'states'] 2862 | [0, 1, 1] 2863 | transposition 2864 | lixian -> ilixian 2865 | word: lixian ->ilixian 2866 | ['lixian'] 2867 | [1, 1, 1] 2868 | replacement 2869 | drug -> drtg 2870 | word: drug ->drtg 2871 | ['drug', 'drag'] 2872 | [1, 1, 1] 2873 | replacement 2874 | dignity -> dignihy 2875 | word: dignity ->dignihy 2876 | ['dignity'] 2877 | [1, 1, 1] 2878 | insertion 2879 | transgenetic -> transggenetic 2880 | word: transgenetic ->transggenetic 2881 | ['transgenetic'] 2882 | [1, 1, 1] 2883 | insertion 2884 | embarked -> embarkegd 2885 | word: embarked ->embarkegd 2886 | ['embarked'] 2887 | [1, 1, 1] 2888 | insertion 2889 | protection -> protectivon 2890 | word: protection ->protectivon 2891 | ['protection'] 2892 | [1, 1, 1] 2893 | replacement 2894 | worn -> wsrn 2895 | word: worn ->wsrn 2896 | ['worn', 'warn'] 2897 | [1, 1, 1] 2898 | transposition 2899 | strings -> strigngs 2900 | word: strings ->strigngs 2901 | ['strings'] 2902 | [1, 1, 1] 2903 | transposition 2904 | aiwen -> awiwen 2905 | word: aiwen ->awiwen 2906 | ['aiwen'] 2907 | [1, 1, 1] 2908 | transposition 2909 | sailing -> saliling 2910 | word: sailing ->saliling 2911 | ['sailing'] 2912 | [1, 1, 1] 2913 | insertion 2914 | biyang -> biyaing 2915 | word: biyang ->biyaing 2916 | ['biyang'] 2917 | [1, 1, 1] 2918 | transposition 2919 | leaps -> leasps 2920 | word: leaps ->leasps 2921 | ['leaps'] 2922 | [1, 1, 1] 2923 | replacement 2924 | huang -> hurng 2925 | word: huang ->hurng 2926 | ['huang'] 2927 | [1, 1, 1] 2928 | replacement 2929 | me -> ie 2930 | word: me ->ie 2931 | ['i', 'xie', 'le'] 2932 | [0, 0, 0] 2933 | transposition 2934 | few -> fwew 2935 | word: few ->fwew 2936 | ['flew', 'few'] 2937 | [0, 1, 1] 2938 | insertion 2939 | relaxed -> relavxed 2940 | word: relaxed ->relavxed 2941 | ['relaxed'] 2942 | [1, 1, 1] 2943 | transposition 2944 | rabin -> arabin 2945 | word: rabin ->arabin 2946 | ['rabin', 'arabia'] 2947 | [1, 1, 1] 2948 | deletion 2949 | virtual -> virual 2950 | word: virtual ->virual 2951 | ['virtual', 'visual'] 2952 | [1, 1, 1] 2953 | transposition 2954 | straits -> staraits 2955 | word: straits ->staraits 2956 | ['straits'] 2957 | [1, 1, 1] 2958 | transposition 2959 | junior -> juniror 2960 | word: junior ->juniror 2961 | ['junior'] 2962 | [1, 1, 1] 2963 | insertion 2964 | posing -> posinkg 2965 | word: posing ->posinkg 2966 | ['posing'] 2967 | [1, 1, 1] 2968 | replacement 2969 | similarly -> sijilarly 2970 | word: similarly ->sijilarly 2971 | ['similarly'] 2972 | [1, 1, 1] 2973 | insertion 2974 | netherlands -> netherlacnds 2975 | word: netherlands ->netherlacnds 2976 | ['netherlands'] 2977 | [1, 1, 1] 2978 | deletion 2979 | quadrupling -> qadrupling 2980 | word: quadrupling ->qadrupling 2981 | ['quadrupling'] 2982 | [1, 1, 1] 2983 | deletion 2984 | sand -> san 2985 | word: sand ->san 2986 | ['san', 'lan', 'van'] 2987 | [0, 0, 0] 2988 | transposition 2989 | dispositions -> dsispositions 2990 | word: dispositions ->dsispositions 2991 | ['dispositions'] 2992 | [1, 1, 1] 2993 | transposition 2994 | arbitrage -> abrbitrage 2995 | word: arbitrage ->abrbitrage 2996 | ['arbitrage'] 2997 | [1, 1, 1] 2998 | transposition 2999 | driving -> driiving 3000 | word: driving ->driiving 3001 | ['driving'] 3002 | [1, 1, 1] 3003 | replacement 3004 | cheung -> cheunz 3005 | word: cheung ->cheunz 3006 | ['cheung'] 3007 | [1, 1, 1] 3008 | deletion 3009 | markedly -> markdly 3010 | word: markedly ->markdly 3011 | ['markedly'] 3012 | [1, 1, 1] 3013 | transposition 3014 | deteriorating -> detreriorating 3015 | word: deteriorating ->detreriorating 3016 | ['deteriorating'] 3017 | [1, 1, 1] 3018 | transposition 3019 | christian -> chrsistian 3020 | word: christian ->chrsistian 3021 | ['christian'] 3022 | [1, 1, 1] 3023 | transposition 3024 | karmapa -> karamapa 3025 | word: karmapa ->karamapa 3026 | ['karmapa'] 3027 | [1, 1, 1] 3028 | deletion 3029 | interceptions -> inerceptions 3030 | word: interceptions ->inerceptions 3031 | ['interceptions'] 3032 | [1, 1, 1] 3033 | insertion 3034 | delegates -> delegatpes 3035 | word: delegates ->delegatpes 3036 | ['delegates'] 3037 | [1, 1, 1] 3038 | transposition 3039 | pasture -> pastuere 3040 | word: pasture ->pastuere 3041 | ['pasture'] 3042 | [1, 1, 1] 3043 | deletion 3044 | wary -> wry 3045 | word: wary ->wry 3046 | ['wry', 'dry', 'why'] 3047 | [0, 0, 0] 3048 | insertion 3049 | enriched -> eznriched 3050 | word: enriched ->eznriched 3051 | ['enriched'] 3052 | [1, 1, 1] 3053 | replacement 3054 | jiaxuan -> jiaiuan 3055 | word: jiaxuan ->jiaiuan 3056 | ['jiaxuan'] 3057 | [1, 1, 1] 3058 | insertion 3059 | preceding -> plreceding 3060 | word: preceding ->plreceding 3061 | ['preceding'] 3062 | [1, 1, 1] 3063 | transposition 3064 | draw -> daraw 3065 | word: draw ->daraw 3066 | ['draw'] 3067 | [1, 1, 1] 3068 | insertion 3069 | speech -> speechq 3070 | word: speech ->speechq 3071 | ['speech'] 3072 | [1, 1, 1] 3073 | insertion 3074 | kuomintang -> kuomintangw 3075 | word: kuomintang ->kuomintangw 3076 | ['kuomintang'] 3077 | [1, 1, 1] 3078 | transposition 3079 | theoretician -> teheoretician 3080 | word: theoretician ->teheoretician 3081 | ['theoretician'] 3082 | [1, 1, 1] 3083 | replacement 3084 | contents -> contgnts 3085 | word: contents ->contgnts 3086 | ['contents'] 3087 | [1, 1, 1] 3088 | deletion 3089 | input -> nput 3090 | word: input ->nput 3091 | ['npt', 'put', 'input'] 3092 | [0, 0, 1] 3093 | transposition 3094 | agni -> agini 3095 | word: agni ->agini 3096 | ['agni'] 3097 | [1, 1, 1] 3098 | insertion 3099 | rule -> zrule 3100 | word: rule ->zrule 3101 | ['rule'] 3102 | [1, 1, 1] 3103 | replacement 3104 | sincere -> sincerc 3105 | word: sincere ->sincerc 3106 | ['sincere'] 3107 | [1, 1, 1] 3108 | deletion 3109 | bonds -> bnds 3110 | word: bonds ->bnds 3111 | ['ends', 'bonds'] 3112 | [0, 1, 1] 3113 | insertion 3114 | condemned -> condemnedj 3115 | word: condemned ->condemnedj 3116 | ['condemned'] 3117 | [1, 1, 1] 3118 | replacement 3119 | decorating -> decojating 3120 | word: decorating ->decojating 3121 | ['decorating'] 3122 | [1, 1, 1] 3123 | insertion 3124 | apologize -> avpologize 3125 | word: apologize ->avpologize 3126 | ['apologize'] 3127 | [1, 1, 1] 3128 | insertion 3129 | meaning -> meaniung 3130 | word: meaning ->meaniung 3131 | ['meaning'] 3132 | [1, 1, 1] 3133 | deletion 3134 | rock -> roc 3135 | word: rock ->roc 3136 | ['rok', 'row', 'rock'] 3137 | [0, 0, 1] 3138 | deletion 3139 | prime -> prie 3140 | word: prime ->prie 3141 | ['prize', 'pride', 'price'] 3142 | [0, 0, 0] 3143 | transposition 3144 | republic -> erepublic 3145 | word: republic ->erepublic 3146 | ['republic'] 3147 | [1, 1, 1] 3148 | transposition 3149 | southeasterly -> southesasterly 3150 | word: southeasterly ->southesasterly 3151 | ['southeasterly'] 3152 | [1, 1, 1] 3153 | insertion 3154 | chiefly -> cthiefly 3155 | word: chiefly ->cthiefly 3156 | ['chiefly'] 3157 | [1, 1, 1] 3158 | transposition 3159 | let -> ltet 3160 | word: let ->ltet 3161 | ['let'] 3162 | [1, 1, 1] 3163 | replacement 3164 | apartheid -> aparxheid 3165 | word: apartheid ->aparxheid 3166 | ['apartheid'] 3167 | [1, 1, 1] 3168 | transposition 3169 | characters -> charactrers 3170 | word: characters ->charactrers 3171 | ['characters'] 3172 | [1, 1, 1] 3173 | deletion 3174 | assignment -> assignent 3175 | word: assignment ->assignent 3176 | ['assignment'] 3177 | [1, 1, 1] 3178 | transposition 3179 | field -> ifield 3180 | word: field ->ifield 3181 | ['field'] 3182 | [1, 1, 1] 3183 | transposition 3184 | rules -> rulses 3185 | word: rules ->rulses 3186 | ['rules'] 3187 | [1, 1, 1] 3188 | deletion 3189 | implications -> implicatios 3190 | word: implications ->implicatios 3191 | ['implication', 'implications'] 3192 | [0, 1, 1] 3193 | replacement 3194 | control -> conwrol 3195 | word: control ->conwrol 3196 | ['control'] 3197 | [1, 1, 1] 3198 | deletion 3199 | maybe -> maye 3200 | word: maybe ->maye 3201 | ['may', 'maybe', 'make'] 3202 | [0, 1, 1] 3203 | deletion 3204 | heights -> heghts 3205 | word: heights ->heghts 3206 | ['heights'] 3207 | [1, 1, 1] 3208 | deletion 3209 | manners -> manner 3210 | word: manners ->manner 3211 | ['manner', 'manned', 'manners'] 3212 | [0, 0, 1] 3213 | replacement 3214 | hinterland -> zinterland 3215 | word: hinterland ->zinterland 3216 | ['hinterland'] 3217 | [1, 1, 1] 3218 | insertion 3219 | conglomerates -> connglomerates 3220 | word: conglomerates ->connglomerates 3221 | ['conglomerates'] 3222 | [1, 1, 1] 3223 | replacement 3224 | thinks -> shinks 3225 | word: thinks ->shinks 3226 | ['thinks'] 3227 | [1, 1, 1] 3228 | transposition 3229 | tu -> utu 3230 | word: tu ->utu 3231 | ['tu'] 3232 | [1, 1, 1] 3233 | transposition 3234 | sober -> sobrer 3235 | word: sober ->sobrer 3236 | ['sober'] 3237 | [1, 1, 1] 3238 | insertion 3239 | boeing -> broeing 3240 | word: boeing ->broeing 3241 | ['boeing'] 3242 | [1, 1, 1] 3243 | replacement 3244 | attacking -> attjcking 3245 | word: attacking ->attjcking 3246 | ['attacking'] 3247 | [1, 1, 1] 3248 | deletion 3249 | corporate -> corpoate 3250 | word: corporate ->corpoate 3251 | ['corporate'] 3252 | [1, 1, 1] 3253 | replacement 3254 | innovative -> innovatvve 3255 | word: innovative ->innovatvve 3256 | ['innovative'] 3257 | [1, 1, 1] 3258 | deletion 3259 | aggression -> aggressio 3260 | word: aggression ->aggressio 3261 | ['aggression'] 3262 | [1, 1, 1] 3263 | replacement 3264 | movement -> moveoent 3265 | word: movement ->moveoent 3266 | ['movement'] 3267 | [1, 1, 1] 3268 | insertion 3269 | afforestation -> afforestatpion 3270 | word: afforestation ->afforestatpion 3271 | ['afforestation'] 3272 | [1, 1, 1] 3273 | insertion 3274 | lack -> xlack 3275 | word: lack ->xlack 3276 | ['lack', 'black'] 3277 | [1, 1, 1] 3278 | insertion 3279 | sparing -> wsparing 3280 | word: sparing ->wsparing 3281 | ['sparing'] 3282 | [1, 1, 1] 3283 | transposition 3284 | bumped -> bupmped 3285 | word: bumped ->bupmped 3286 | ['bumped'] 3287 | [1, 1, 1] 3288 | transposition 3289 | ngo -> gngo 3290 | word: ngo ->gngo 3291 | ['ngo'] 3292 | [1, 1, 1] 3293 | insertion 3294 | wholesale -> wheolesale 3295 | word: wholesale ->wheolesale 3296 | ['wholesale'] 3297 | [1, 1, 1] 3298 | replacement 3299 | messing -> msssing 3300 | word: messing ->msssing 3301 | ['messing', 'missing'] 3302 | [1, 1, 1] 3303 | replacement 3304 | japan -> janan 3305 | word: japan ->janan 3306 | ['japan', 'jinan', 'yanan'] 3307 | [1, 1, 1] 3308 | replacement 3309 | screening -> screening 3310 | word: screening ->screening 3311 | ['screening'] 3312 | [1, 1, 1] 3313 | insertion 3314 | vain -> lvain 3315 | word: vain ->lvain 3316 | ['vain'] 3317 | [1, 1, 1] 3318 | deletion 3319 | indifferent -> inifferent 3320 | word: indifferent ->inifferent 3321 | ['indifferent'] 3322 | [1, 1, 1] 3323 | deletion 3324 | hot -> ot 3325 | word: hot ->ot 3326 | ['t', 'lot', 'got'] 3327 | [0, 0, 0] 3328 | insertion 3329 | mineral -> minerall 3330 | word: mineral ->minerall 3331 | ['mineral', 'minerals'] 3332 | [1, 1, 1] 3333 | insertion 3334 | heights -> jheights 3335 | word: heights ->jheights 3336 | ['heights'] 3337 | [1, 1, 1] 3338 | insertion 3339 | negotiable -> negotiaxble 3340 | word: negotiable ->negotiaxble 3341 | ['negotiable'] 3342 | [1, 1, 1] 3343 | deletion 3344 | spur -> spr 3345 | word: spur ->spr 3346 | ['spy', 'spc', 'spur'] 3347 | [0, 0, 1] 3348 | insertion 3349 | coexistence -> coexistencex 3350 | word: coexistence ->coexistencex 3351 | ['coexistence'] 3352 | [1, 1, 1] 3353 | replacement 3354 | regular -> reguljr 3355 | word: regular ->reguljr 3356 | ['regular'] 3357 | [1, 1, 1] 3358 | transposition 3359 | refusing -> reufusing 3360 | word: refusing ->reufusing 3361 | ['refusing'] 3362 | [1, 1, 1] 3363 | deletion 3364 | exchanging -> excanging 3365 | word: exchanging ->excanging 3366 | ['exchanging'] 3367 | [1, 1, 1] 3368 | transposition 3369 | quarter -> quatrter 3370 | word: quarter ->quatrter 3371 | ['quarter'] 3372 | [1, 1, 1] 3373 | replacement 3374 | width -> widtc 3375 | word: width ->widtc 3376 | ['width'] 3377 | [1, 1, 1] 3378 | transposition 3379 | promoting -> poromoting 3380 | word: promoting ->poromoting 3381 | ['promoting'] 3382 | [1, 1, 1] 3383 | replacement 3384 | carpet -> cfrpet 3385 | word: carpet ->cfrpet 3386 | ['carpet'] 3387 | [1, 1, 1] 3388 | deletion 3389 | income -> incom 3390 | word: income ->incom 3391 | ['income'] 3392 | [1, 1, 1] 3393 | transposition 3394 | cease -> ceaese 3395 | word: cease ->ceaese 3396 | ['cease'] 3397 | [1, 1, 1] 3398 | replacement 3399 | feet -> fbet 3400 | word: feet ->fbet 3401 | ['feet'] 3402 | [1, 1, 1] 3403 | deletion 3404 | numbered -> numberd 3405 | word: numbered ->numberd 3406 | ['number', 'numbers', 'numbered'] 3407 | [0, 0, 1] 3408 | transposition 3409 | paying -> apaying 3410 | word: paying ->apaying 3411 | ['paying'] 3412 | [1, 1, 1] 3413 | deletion 3414 | abdullah -> adullah 3415 | word: abdullah ->adullah 3416 | ['abdullah'] 3417 | [1, 1, 1] 3418 | deletion 3419 | refusal -> reusal 3420 | word: refusal ->reusal 3421 | ['refusal'] 3422 | [1, 1, 1] 3423 | insertion 3424 | informal -> informalt 3425 | word: informal ->informalt 3426 | ['informal'] 3427 | [1, 1, 1] 3428 | transposition 3429 | gangchuan -> gagngchuan 3430 | word: gangchuan ->gagngchuan 3431 | ['gangchuan'] 3432 | [1, 1, 1] 3433 | replacement 3434 | antiscientific -> anxiscientific 3435 | word: antiscientific ->anxiscientific 3436 | ['antiscientific'] 3437 | [1, 1, 1] 3438 | transposition 3439 | bearings -> bearigngs 3440 | word: bearings ->bearigngs 3441 | ['bearings'] 3442 | [1, 1, 1] 3443 | deletion 3444 | yearend -> yeaend 3445 | word: yearend ->yeaend 3446 | ['yearend'] 3447 | [1, 1, 1] 3448 | replacement 3449 | falls -> falhs 3450 | word: falls ->falhs 3451 | ['falls'] 3452 | [1, 1, 1] 3453 | replacement 3454 | name -> pame 3455 | word: name ->pame 3456 | ['game', 'name', 'page'] 3457 | [0, 1, 1] 3458 | insertion 3459 | setting -> shetting 3460 | word: setting ->shetting 3461 | ['setting'] 3462 | [1, 1, 1] 3463 | insertion 3464 | commodities -> comgmodities 3465 | word: commodities ->comgmodities 3466 | ['commodities'] 3467 | [1, 1, 1] 3468 | insertion 3469 | swollen -> swofllen 3470 | word: swollen ->swofllen 3471 | ['swollen'] 3472 | [1, 1, 1] 3473 | transposition 3474 | circumvents -> circumvnents 3475 | word: circumvents ->circumvnents 3476 | ['circumvents'] 3477 | [1, 1, 1] 3478 | replacement 3479 | merger -> mmrger 3480 | word: merger ->mmrger 3481 | ['merger'] 3482 | [1, 1, 1] 3483 | deletion 3484 | politician -> politiian 3485 | word: politician ->politiian 3486 | ['politician'] 3487 | [1, 1, 1] 3488 | insertion 3489 | rockets -> rocketps 3490 | word: rockets ->rocketps 3491 | ['rockets'] 3492 | [1, 1, 1] 3493 | replacement 3494 | tells -> tellv 3495 | word: tells ->tellv 3496 | ['tell', 'tells'] 3497 | [0, 1, 1] 3498 | insertion 3499 | sky -> skyz 3500 | word: sky ->skyz 3501 | ['sky'] 3502 | [1, 1, 1] 3503 | transposition 3504 | campaigning -> campaigining 3505 | word: campaigning ->campaigining 3506 | ['campaigning'] 3507 | [1, 1, 1] 3508 | insertion 3509 | sagacity -> sagnacity 3510 | word: sagacity ->sagnacity 3511 | ['sagacity'] 3512 | [1, 1, 1] 3513 | transposition 3514 | faulty -> fuaulty 3515 | word: faulty ->fuaulty 3516 | ['faulty'] 3517 | [1, 1, 1] 3518 | transposition 3519 | enforcement -> enforceement 3520 | word: enforcement ->enforceement 3521 | ['enforcement'] 3522 | [1, 1, 1] 3523 | replacement 3524 | buildings -> buildingo 3525 | word: buildings ->buildingo 3526 | ['building', 'buildings'] 3527 | [0, 1, 1] 3528 | transposition 3529 | passage -> pasasage 3530 | word: passage ->pasasage 3531 | ['passage'] 3532 | [1, 1, 1] 3533 | replacement 3534 | expositions -> expositioks 3535 | word: expositions ->expositioks 3536 | ['expositions'] 3537 | [1, 1, 1] 3538 | deletion 3539 | asking -> aking 3540 | word: asking ->aking 3541 | ['king', 'making', 'asking'] 3542 | [0, 0, 1] 3543 | insertion 3544 | guangen -> gutangen 3545 | word: guangen ->gutangen 3546 | ['guangen'] 3547 | [1, 1, 1] 3548 | insertion 3549 | banners -> bannerws 3550 | word: banners ->bannerws 3551 | ['banners'] 3552 | [1, 1, 1] 3553 | deletion 3554 | sex -> ex 3555 | word: sex ->ex 3556 | ['en', 'el', 'eu'] 3557 | [0, 0, 0] 3558 | replacement 3559 | forthcoming -> ferthcoming 3560 | word: forthcoming ->ferthcoming 3561 | ['forthcoming'] 3562 | [1, 1, 1] 3563 | deletion 3564 | attenuation -> attenuatin 3565 | word: attenuation ->attenuatin 3566 | ['attenuation'] 3567 | [1, 1, 1] 3568 | replacement 3569 | violating -> violbting 3570 | word: violating ->violbting 3571 | ['violating'] 3572 | [1, 1, 1] 3573 | insertion 3574 | ruan -> rsuan 3575 | word: ruan ->rsuan 3576 | ['ruan'] 3577 | [1, 1, 1] 3578 | insertion 3579 | stage -> wstage 3580 | word: stage ->wstage 3581 | ['stage'] 3582 | [1, 1, 1] 3583 | replacement 3584 | disappeared -> disappeamed 3585 | word: disappeared ->disappeamed 3586 | ['disappeared'] 3587 | [1, 1, 1] 3588 | deletion 3589 | penalties -> penaltie 3590 | word: penalties ->penaltie 3591 | ['penalties'] 3592 | [1, 1, 1] 3593 | deletion 3594 | rendering -> redering 3595 | word: rendering ->redering 3596 | ['rendering'] 3597 | [1, 1, 1] 3598 | deletion 3599 | eu -> u 3600 | word: eu ->u 3601 | ['u', 't', 'a'] 3602 | [0, 0, 0] 3603 | deletion 3604 | cmc -> cc 3605 | word: cmc ->cc 3606 | ['cc', 'c', 'lc'] 3607 | [0, 0, 0] 3608 | replacement 3609 | tian -> tkan 3610 | word: tian ->tkan 3611 | ['tran', 'tian', 'than'] 3612 | [0, 1, 1] 3613 | insertion 3614 | zhijie -> zhijime 3615 | word: zhijie ->zhijime 3616 | ['zhijie'] 3617 | [1, 1, 1] 3618 | insertion 3619 | suppliers -> suppsliers 3620 | word: suppliers ->suppsliers 3621 | ['suppliers'] 3622 | [1, 1, 1] 3623 | insertion 3624 | bind -> bihnd 3625 | word: bind ->bihnd 3626 | ['bind'] 3627 | [1, 1, 1] 3628 | replacement 3629 | logically -> logidally 3630 | word: logically ->logidally 3631 | ['logically'] 3632 | [1, 1, 1] 3633 | insertion 3634 | killings -> killinngs 3635 | word: killings ->killinngs 3636 | ['killings'] 3637 | [1, 1, 1] 3638 | deletion 3639 | se -> e 3640 | word: se ->e 3641 | ['t', 'a', 'i'] 3642 | [0, 0, 0] 3643 | replacement 3644 | keeping -> keepinj 3645 | word: keeping ->keepinj 3646 | ['keeping'] 3647 | [1, 1, 1] 3648 | deletion 3649 | complementary -> coplementary 3650 | word: complementary ->coplementary 3651 | ['complementary'] 3652 | [1, 1, 1] 3653 | insertion 3654 | railway -> railwayo 3655 | word: railway ->railwayo 3656 | ['railway', 'railways'] 3657 | [1, 1, 1] 3658 | replacement 3659 | lively -> liveli 3660 | word: lively ->liveli 3661 | ['lively'] 3662 | [1, 1, 1] 3663 | transposition 3664 | model -> omodel 3665 | word: model ->omodel 3666 | ['model'] 3667 | [1, 1, 1] 3668 | replacement 3669 | uss -> uus 3670 | word: uss ->uus 3671 | ['us', 'ups', 'uss'] 3672 | [0, 0, 1] 3673 | transposition 3674 | curry -> curyry 3675 | word: curry ->curyry 3676 | ['curry'] 3677 | [1, 1, 1] 3678 | insertion 3679 | umbrella -> umbrellax 3680 | word: umbrella ->umbrellax 3681 | ['umbrella'] 3682 | [1, 1, 1] 3683 | replacement 3684 | unwilling -> uawilling 3685 | word: unwilling ->uawilling 3686 | ['unwilling'] 3687 | [1, 1, 1] 3688 | deletion 3689 | guests -> uests 3690 | word: guests ->uests 3691 | ['guests', 'rests', 'tests'] 3692 | [1, 1, 1] 3693 | replacement 3694 | promote -> promoye 3695 | word: promote ->promoye 3696 | ['promote'] 3697 | [1, 1, 1] 3698 | transposition 3699 | purely -> pureyly 3700 | word: purely ->pureyly 3701 | ['purely'] 3702 | [1, 1, 1] 3703 | deletion 3704 | paid -> pai 3705 | word: paid ->pai 3706 | ['lai', 'dai', 'pay'] 3707 | [0, 0, 0] 3708 | deletion 3709 | line -> ine 3710 | word: line ->ine 3711 | ['line', 'mine', 'nine'] 3712 | [1, 1, 1] 3713 | deletion 3714 | steadfast -> steadast 3715 | word: steadfast ->steadast 3716 | ['steadfast'] 3717 | [1, 1, 1] 3718 | insertion 3719 | commentary -> commenqtary 3720 | word: commentary ->commenqtary 3721 | ['commentary'] 3722 | [1, 1, 1] 3723 | replacement 3724 | pongee -> nongee 3725 | word: pongee ->nongee 3726 | ['pongee'] 3727 | [1, 1, 1] 3728 | replacement 3729 | academicians -> acadumicians 3730 | word: academicians ->acadumicians 3731 | ['academicians'] 3732 | [1, 1, 1] 3733 | replacement 3734 | leaving -> leavinp 3735 | word: leaving ->leavinp 3736 | ['leaving'] 3737 | [1, 1, 1] 3738 | insertion 3739 | pesos -> puesos 3740 | word: pesos ->puesos 3741 | ['pesos'] 3742 | [1, 1, 1] 3743 | insertion 3744 | matching -> maltching 3745 | word: matching ->maltching 3746 | ['matching'] 3747 | [1, 1, 1] 3748 | deletion 3749 | result -> esult 3750 | word: result ->esult 3751 | ['result'] 3752 | [1, 1, 1] 3753 | deletion 3754 | appropriately -> appopriately 3755 | word: appropriately ->appopriately 3756 | ['appropriately'] 3757 | [1, 1, 1] 3758 | deletion 3759 | ismail -> imail 3760 | word: ismail ->imail 3761 | ['mail', 'ismail'] 3762 | [0, 1, 1] 3763 | transposition 3764 | jisi -> jsisi 3765 | word: jisi ->jsisi 3766 | ['jisi'] 3767 | [1, 1, 1] 3768 | insertion 3769 | something -> somethingg 3770 | word: something ->somethingg 3771 | ['something'] 3772 | [1, 1, 1] 3773 | deletion 3774 | fact -> fat 3775 | word: fact ->fat 3776 | ['eat', 'hat', 'far'] 3777 | [0, 0, 0] 3778 | replacement 3779 | solution -> soluzion 3780 | word: solution ->soluzion 3781 | ['solution'] 3782 | [1, 1, 1] 3783 | transposition 3784 | balking -> abalking 3785 | word: balking ->abalking 3786 | ['balking'] 3787 | [1, 1, 1] 3788 | replacement 3789 | annette -> annettn 3790 | word: annette ->annettn 3791 | ['annette'] 3792 | [1, 1, 1] 3793 | transposition 3794 | strike -> strkike 3795 | word: strike ->strkike 3796 | ['strike'] 3797 | [1, 1, 1] 3798 | replacement 3799 | talents -> talenbs 3800 | word: talents ->talenbs 3801 | ['talents'] 3802 | [1, 1, 1] 3803 | replacement 3804 | peasants -> peasantn 3805 | word: peasants ->peasantn 3806 | ['peasant', 'peasants'] 3807 | [0, 1, 1] 3808 | deletion 3809 | sooner -> soone 3810 | word: sooner ->soone 3811 | ['soon', 'soong', 'sooner'] 3812 | [0, 0, 1] 3813 | deletion 3814 | beautify -> bautify 3815 | word: beautify ->bautify 3816 | ['beautify'] 3817 | [1, 1, 1] 3818 | deletion 3819 | secure -> seure 3820 | word: secure ->seure 3821 | ['sure', 'secure'] 3822 | [0, 1, 1] 3823 | deletion 3824 | course -> cours 3825 | word: course ->cours 3826 | ['hours', 'court', 'courts'] 3827 | [0, 0, 0] 3828 | insertion 3829 | celebration -> celebratlion 3830 | word: celebration ->celebratlion 3831 | ['celebration'] 3832 | [1, 1, 1] 3833 | replacement 3834 | provinces -> provincex 3835 | word: provinces ->provincex 3836 | ['province', 'provinces'] 3837 | [0, 1, 1] 3838 | deletion 3839 | recreating -> receating 3840 | word: recreating ->receating 3841 | ['recreating'] 3842 | [1, 1, 1] 3843 | insertion 3844 | beliefs -> belsiefs 3845 | word: beliefs ->belsiefs 3846 | ['beliefs'] 3847 | [1, 1, 1] 3848 | replacement 3849 | taiwan -> taiwak 3850 | word: taiwan ->taiwak 3851 | ['taiwan'] 3852 | [1, 1, 1] 3853 | insertion 3854 | parts -> pdarts 3855 | word: parts ->pdarts 3856 | ['parts'] 3857 | [1, 1, 1] 3858 | replacement 3859 | blames -> blamws 3860 | word: blames ->blamws 3861 | ['blames'] 3862 | [1, 1, 1] 3863 | transposition 3864 | uneasiness -> nuneasiness 3865 | word: uneasiness ->nuneasiness 3866 | ['uneasiness'] 3867 | [1, 1, 1] 3868 | transposition 3869 | saw -> asaw 3870 | word: saw ->asaw 3871 | ['saw', 'asad'] 3872 | [1, 1, 1] 3873 | insertion 3874 | revolutionaries -> revoluwtionaries 3875 | word: revolutionaries ->revoluwtionaries 3876 | ['revolutionaries'] 3877 | [1, 1, 1] 3878 | deletion 3879 | third -> thrd 3880 | word: third ->thrd 3881 | ['third'] 3882 | [1, 1, 1] 3883 | insertion 3884 | number -> numbcer 3885 | word: number ->numbcer 3886 | ['number'] 3887 | [1, 1, 1] 3888 | transposition 3889 | contraceptive -> contracepitive 3890 | word: contraceptive ->contracepitive 3891 | ['contraceptive'] 3892 | [1, 1, 1] 3893 | transposition 3894 | complexity -> ocomplexity 3895 | word: complexity ->ocomplexity 3896 | ['complexity'] 3897 | [1, 1, 1] 3898 | insertion 3899 | guaranteeing -> guaranteeinrg 3900 | word: guaranteeing ->guaranteeinrg 3901 | ['guaranteeing'] 3902 | [1, 1, 1] 3903 | transposition 3904 | we -> ewe 3905 | word: we ->ewe 3906 | ['eye', 'eve', 'we'] 3907 | [0, 0, 1] 3908 | deletion 3909 | conservative -> conservaive 3910 | word: conservative ->conservaive 3911 | ['conservative'] 3912 | [1, 1, 1] 3913 | replacement 3914 | double -> doublw 3915 | word: double ->doublw 3916 | ['double', 'doubly'] 3917 | [1, 1, 1] 3918 | insertion 3919 | trilogy -> itrilogy 3920 | word: trilogy ->itrilogy 3921 | ['trilogy'] 3922 | [1, 1, 1] 3923 | deletion 3924 | provincial -> provincil 3925 | word: provincial ->provincil 3926 | ['provincial'] 3927 | [1, 1, 1] 3928 | replacement 3929 | jiangsu -> jiangvu 3930 | word: jiangsu ->jiangvu 3931 | ['jiangsu'] 3932 | [1, 1, 1] 3933 | replacement 3934 | endless -> endlyss 3935 | word: endless ->endlyss 3936 | ['endless'] 3937 | [1, 1, 1] 3938 | replacement 3939 | showmanship -> showmaqship 3940 | word: showmanship ->showmaqship 3941 | ['showmanship'] 3942 | [1, 1, 1] 3943 | transposition 3944 | rogues -> rougues 3945 | word: rogues ->rougues 3946 | ['rogues'] 3947 | [1, 1, 1] 3948 | transposition 3949 | retaining -> rtetaining 3950 | word: retaining ->rtetaining 3951 | ['retaining'] 3952 | [1, 1, 1] 3953 | replacement 3954 | drafting -> draftivg 3955 | word: drafting ->draftivg 3956 | ['drafting'] 3957 | [1, 1, 1] 3958 | transposition 3959 | spies -> pspies 3960 | word: spies ->pspies 3961 | ['spies'] 3962 | [1, 1, 1] 3963 | replacement 3964 | keypoint -> keypxint 3965 | word: keypoint ->keypxint 3966 | ['keypoint'] 3967 | [1, 1, 1] 3968 | deletion 3969 | however -> howevr 3970 | word: however ->howevr 3971 | ['however'] 3972 | [1, 1, 1] 3973 | replacement 3974 | anduo -> andul 3975 | word: anduo ->andul 3976 | ['anduo'] 3977 | [1, 1, 1] 3978 | replacement 3979 | fuzhou -> fuzhou 3980 | word: fuzhou ->fuzhou 3981 | ['fuzhou', 'suzhou'] 3982 | [1, 1, 1] 3983 | deletion 3984 | pull -> pul 3985 | word: pull ->pul 3986 | ['jul', 'pu', 'put'] 3987 | [0, 0, 0] 3988 | transposition 3989 | coerced -> ceoerced 3990 | word: coerced ->ceoerced 3991 | ['coerced'] 3992 | [1, 1, 1] 3993 | transposition 3994 | laden -> ladnen 3995 | word: laden ->ladnen 3996 | ['laden'] 3997 | [1, 1, 1] 3998 | insertion 3999 | defendants -> defendantcs 4000 | word: defendants ->defendantcs 4001 | ['defendants'] 4002 | [1, 1, 1] 4003 | insertion 4004 | premier -> ppremier 4005 | word: premier ->ppremier 4006 | ['premier'] 4007 | [1, 1, 1] 4008 | deletion 4009 | officers -> offiers 4010 | word: officers ->offiers 4011 | ['officers'] 4012 | [1, 1, 1] 4013 | deletion 4014 | alarm -> alar 4015 | word: alarm ->alar 4016 | ['afar', 'alarm'] 4017 | [0, 1, 1] 4018 | insertion 4019 | reasonable -> reasontable 4020 | word: reasonable ->reasontable 4021 | ['reasonable'] 4022 | [1, 1, 1] 4023 | deletion 4024 | guihe -> gihe 4025 | word: guihe ->gihe 4026 | ['guihe', 'give'] 4027 | [1, 1, 1] 4028 | insertion 4029 | grasp -> gurasp 4030 | word: grasp ->gurasp 4031 | ['grasp'] 4032 | [1, 1, 1] 4033 | insertion 4034 | woes -> woesb 4035 | word: woes ->woesb 4036 | ['woes'] 4037 | [1, 1, 1] 4038 | replacement 4039 | urging -> urgbng 4040 | word: urging ->urgbng 4041 | ['urging'] 4042 | [1, 1, 1] 4043 | replacement 4044 | grew -> grlw 4045 | word: grew ->grlw 4046 | ['grow', 'grew'] 4047 | [0, 1, 1] 4048 | transposition 4049 | exposing -> exposigng 4050 | word: exposing ->exposigng 4051 | ['exposing'] 4052 | [1, 1, 1] 4053 | deletion 4054 | soong -> soon 4055 | word: soong ->soon 4056 | ['soon', 'son', 'sown'] 4057 | [0, 0, 0] 4058 | replacement 4059 | steady -> stoady 4060 | word: steady ->stoady 4061 | ['steady'] 4062 | [1, 1, 1] 4063 | deletion 4064 | seoul -> soul 4065 | word: seoul ->soul 4066 | ['soul', 'seoul', 'soil'] 4067 | [0, 1, 1] 4068 | replacement 4069 | arrived -> abrived 4070 | word: arrived ->abrived 4071 | ['arrived'] 4072 | [1, 1, 1] 4073 | replacement 4074 | classrooms -> clabsrooms 4075 | word: classrooms ->clabsrooms 4076 | ['classrooms'] 4077 | [1, 1, 1] 4078 | replacement 4079 | bingguo -> bfngguo 4080 | word: bingguo ->bfngguo 4081 | ['bangguo', 'bingguo'] 4082 | [0, 1, 1] 4083 | replacement 4084 | cardiovascular -> cardiovagcular 4085 | word: cardiovascular ->cardiovagcular 4086 | ['cardiovascular'] 4087 | [1, 1, 1] 4088 | transposition 4089 | incalculable -> incalculabele 4090 | word: incalculable ->incalculabele 4091 | ['incalculable'] 4092 | [1, 1, 1] 4093 | transposition 4094 | manifests -> mnanifests 4095 | word: manifests ->mnanifests 4096 | ['manifests'] 4097 | [1, 1, 1] 4098 | transposition 4099 | zhi -> hzhi 4100 | word: zhi ->hzhi 4101 | ['zhi'] 4102 | [1, 1, 1] 4103 | insertion 4104 | network -> netwohrk 4105 | word: network ->netwohrk 4106 | ['network'] 4107 | [1, 1, 1] 4108 | transposition 4109 | settle -> setltle 4110 | word: settle ->setltle 4111 | ['settle'] 4112 | [1, 1, 1] 4113 | insertion 4114 | solid -> soliid 4115 | word: solid ->soliid 4116 | ['solid'] 4117 | [1, 1, 1] 4118 | transposition 4119 | forms -> oforms 4120 | word: forms ->oforms 4121 | ['forms'] 4122 | [1, 1, 1] 4123 | transposition 4124 | proposals -> propoasals 4125 | word: proposals ->propoasals 4126 | ['proposals'] 4127 | [1, 1, 1] 4128 | replacement 4129 | indefinite -> indeqinite 4130 | word: indefinite ->indeqinite 4131 | ['indefinite'] 4132 | [1, 1, 1] 4133 | replacement 4134 | queries -> queties 4135 | word: queries ->queties 4136 | ['queries'] 4137 | [1, 1, 1] 4138 | transposition 4139 | procuring -> procurigng 4140 | word: procuring ->procurigng 4141 | ['procuring'] 4142 | [1, 1, 1] 4143 | transposition 4144 | pretexts -> pretexsts 4145 | word: pretexts ->pretexsts 4146 | ['pretexts'] 4147 | [1, 1, 1] 4148 | transposition 4149 | symposium -> ysymposium 4150 | word: symposium ->ysymposium 4151 | ['symposium'] 4152 | [1, 1, 1] 4153 | transposition 4154 | rumbled -> rumblded 4155 | word: rumbled ->rumblded 4156 | ['rumbled'] 4157 | [1, 1, 1] 4158 | transposition 4159 | congratulatory -> cogngratulatory 4160 | word: congratulatory ->cogngratulatory 4161 | ['congratulatory'] 4162 | [1, 1, 1] 4163 | replacement 4164 | promotes -> promojes 4165 | word: promotes ->promojes 4166 | ['promotes'] 4167 | [1, 1, 1] 4168 | replacement 4169 | take -> tvke 4170 | word: take ->tvke 4171 | ['take'] 4172 | [1, 1, 1] 4173 | replacement 4174 | joined -> joxned 4175 | word: joined ->joxned 4176 | ['joined'] 4177 | [1, 1, 1] 4178 | deletion 4179 | orderly -> orerly 4180 | word: orderly ->orerly 4181 | ['orderly'] 4182 | [1, 1, 1] 4183 | replacement 4184 | original -> origigal 4185 | word: original ->origigal 4186 | ['original'] 4187 | [1, 1, 1] 4188 | insertion 4189 | formally -> formaloly 4190 | word: formally ->formaloly 4191 | ['formally'] 4192 | [1, 1, 1] 4193 | transposition 4194 | middle -> imiddle 4195 | word: middle ->imiddle 4196 | ['middle'] 4197 | [1, 1, 1] 4198 | replacement 4199 | hsu -> hzu 4200 | word: hsu ->hzu 4201 | ['zhu', 'hu', 'hsu'] 4202 | [0, 0, 1] 4203 | deletion 4204 | harm -> har 4205 | word: harm ->har 4206 | ['mar', 'bar', 'war'] 4207 | [0, 0, 0] 4208 | deletion 4209 | punished -> puished 4210 | word: punished ->puished 4211 | ['punished', 'pushed'] 4212 | [1, 1, 1] 4213 | transposition 4214 | diplomatic -> diplmomatic 4215 | word: diplomatic ->diplmomatic 4216 | ['diplomatic'] 4217 | [1, 1, 1] 4218 | replacement 4219 | schoolwork -> schoelwork 4220 | word: schoolwork ->schoelwork 4221 | ['schoolwork'] 4222 | [1, 1, 1] 4223 | deletion 4224 | conventions -> coventions 4225 | word: conventions ->coventions 4226 | ['conventions'] 4227 | [1, 1, 1] 4228 | replacement 4229 | declarations -> declwrations 4230 | word: declarations ->declwrations 4231 | ['declarations'] 4232 | [1, 1, 1] 4233 | deletion 4234 | went -> wet 4235 | word: went ->wet 4236 | ['let', 'yet', 'met'] 4237 | [0, 0, 0] 4238 | transposition 4239 | reunified -> reunifeied 4240 | word: reunified ->reunifeied 4241 | ['reunified'] 4242 | [1, 1, 1] 4243 | deletion 4244 | became -> bcame 4245 | word: became ->bcame 4246 | ['blame', 'became', 'came'] 4247 | [0, 1, 1] 4248 | insertion 4249 | obsessed -> eobsessed 4250 | word: obsessed ->eobsessed 4251 | ['obsessed'] 4252 | [1, 1, 1] 4253 | deletion 4254 | ghost -> ghot 4255 | word: ghost ->ghot 4256 | ['ghost', 'got', 'hot'] 4257 | [1, 1, 1] 4258 | transposition 4259 | jiabao -> jiaabao 4260 | word: jiabao ->jiaabao 4261 | ['jiabao'] 4262 | [1, 1, 1] 4263 | deletion 4264 | greece -> grece 4265 | word: greece ->grece 4266 | ['greece'] 4267 | [1, 1, 1] 4268 | insertion 4269 | launchers -> launchersu 4270 | word: launchers ->launchersu 4271 | ['launchers'] 4272 | [1, 1, 1] 4273 | deletion 4274 | stays -> stas 4275 | word: stays ->stas 4276 | ['seas', 'stab', 'star'] 4277 | [0, 0, 0] 4278 | replacement 4279 | sorry -> snrry 4280 | word: sorry ->snrry 4281 | ['sorry'] 4282 | [1, 1, 1] 4283 | deletion 4284 | lai -> la 4285 | word: lai ->la 4286 | ['la', 'a', 'li'] 4287 | [0, 0, 0] 4288 | transposition 4289 | emphasis -> emphsasis 4290 | word: emphasis ->emphsasis 4291 | ['emphasis'] 4292 | [1, 1, 1] 4293 | transposition 4294 | scientists -> scientitsts 4295 | word: scientists ->scientitsts 4296 | ['scientists'] 4297 | [1, 1, 1] 4298 | deletion 4299 | anthony -> nthony 4300 | word: anthony ->nthony 4301 | ['anthony'] 4302 | [1, 1, 1] 4303 | deletion 4304 | erdaohe -> eraohe 4305 | word: erdaohe ->eraohe 4306 | ['erdaohe'] 4307 | [1, 1, 1] 4308 | insertion 4309 | requires -> requvires 4310 | word: requires ->requvires 4311 | ['requires'] 4312 | [1, 1, 1] 4313 | replacement 4314 | drew -> dkew 4315 | word: drew ->dkew 4316 | ['drew'] 4317 | [1, 1, 1] 4318 | replacement 4319 | monopolies -> konopolies 4320 | word: monopolies ->konopolies 4321 | ['monopolies'] 4322 | [1, 1, 1] 4323 | replacement 4324 | banks -> banko 4325 | word: banks ->banko 4326 | ['bank', 'banks'] 4327 | [0, 1, 1] 4328 | deletion 4329 | promotes -> promote 4330 | word: promotes ->promote 4331 | ['promote', 'promoted', 'promotes'] 4332 | [0, 0, 1] 4333 | insertion 4334 | commissions -> commissigons 4335 | word: commissions ->commissigons 4336 | ['commissions'] 4337 | [1, 1, 1] 4338 | insertion 4339 | stages -> istages 4340 | word: stages ->istages 4341 | ['stages'] 4342 | [1, 1, 1] 4343 | insertion 4344 | convening -> bconvening 4345 | word: convening ->bconvening 4346 | ['convening'] 4347 | [1, 1, 1] 4348 | deletion 4349 | widening -> widenng 4350 | word: widening ->widenng 4351 | ['widening'] 4352 | [1, 1, 1] 4353 | deletion 4354 | indexes -> indxes 4355 | word: indexes ->indxes 4356 | ['indexes'] 4357 | [1, 1, 1] 4358 | transposition 4359 | ping -> pigng 4360 | word: ping ->pigng 4361 | ['ping'] 4362 | [1, 1, 1] 4363 | replacement 4364 | afraid -> afiaid 4365 | word: afraid ->afiaid 4366 | ['afraid'] 4367 | [1, 1, 1] 4368 | replacement 4369 | home -> homv 4370 | word: home ->homv 4371 | ['home'] 4372 | [1, 1, 1] 4373 | deletion 4374 | cmte -> cte 4375 | word: cmte ->cte 4376 | ['ctc', 'cmte', 'cite'] 4377 | [0, 1, 1] 4378 | replacement 4379 | amending -> amegding 4380 | word: amending ->amegding 4381 | ['amending'] 4382 | [1, 1, 1] 4383 | transposition 4384 | guiyu -> uguiyu 4385 | word: guiyu ->uguiyu 4386 | ['guiyu'] 4387 | [1, 1, 1] 4388 | insertion 4389 | buildings -> bxuildings 4390 | word: buildings ->bxuildings 4391 | ['buildings'] 4392 | [1, 1, 1] 4393 | transposition 4394 | theater -> thetater 4395 | word: theater ->thetater 4396 | ['theater'] 4397 | [1, 1, 1] 4398 | replacement 4399 | cradle -> cradce 4400 | word: cradle ->cradce 4401 | ['cradle'] 4402 | [1, 1, 1] 4403 | transposition 4404 | specialists -> specialissts 4405 | word: specialists ->specialissts 4406 | ['specialists'] 4407 | [1, 1, 1] 4408 | transposition 4409 | refine -> refnine 4410 | word: refine ->refnine 4411 | ['refine'] 4412 | [1, 1, 1] 4413 | replacement 4414 | mall -> mwll 4415 | word: mall ->mwll 4416 | ['mall'] 4417 | [1, 1, 1] 4418 | deletion 4419 | output -> outpu 4420 | word: output ->outpu 4421 | ['output'] 4422 | [1, 1, 1] 4423 | replacement 4424 | explored -> explorod 4425 | word: explored ->explorod 4426 | ['explored'] 4427 | [1, 1, 1] 4428 | transposition 4429 | bystander -> bystandrer 4430 | word: bystander ->bystandrer 4431 | ['bystander'] 4432 | [1, 1, 1] 4433 | replacement 4434 | hawaiian -> halaiian 4435 | word: hawaiian ->halaiian 4436 | ['hawaiian'] 4437 | [1, 1, 1] 4438 | insertion 4439 | jiangmen -> jiangdmen 4440 | word: jiangmen ->jiangdmen 4441 | ['jiangmen'] 4442 | [1, 1, 1] 4443 | transposition 4444 | waiting -> waitning 4445 | word: waiting ->waitning 4446 | ['waiting'] 4447 | [1, 1, 1] 4448 | deletion 4449 | dpp -> dp 4450 | word: dpp ->dp 4451 | ['p', 'd', 'ldp'] 4452 | [0, 0, 0] 4453 | insertion 4454 | earnest -> earnestq 4455 | word: earnest ->earnestq 4456 | ['earnest'] 4457 | [1, 1, 1] 4458 | deletion 4459 | reporting -> reportin 4460 | word: reporting ->reportin 4461 | ['reporting'] 4462 | [1, 1, 1] 4463 | deletion 4464 | fees -> fee 4465 | word: fees ->fee 4466 | ['fee', 'lee', 'few'] 4467 | [0, 0, 0] 4468 | deletion 4469 | cases -> cses 4470 | word: cases ->cses 4471 | ['uses', 'cases'] 4472 | [0, 1, 1] 4473 | transposition 4474 | specially -> pspecially 4475 | word: specially ->pspecially 4476 | ['especially', 'specially'] 4477 | [0, 1, 1] 4478 | insertion 4479 | assets -> asseqts 4480 | word: assets ->asseqts 4481 | ['assets'] 4482 | [1, 1, 1] 4483 | deletion 4484 | month -> mont 4485 | word: month ->mont 4486 | ['month', 'most'] 4487 | [1, 1, 1] 4488 | insertion 4489 | accomplishments -> accomplishmentsw 4490 | word: accomplishments ->accomplishmentsw 4491 | ['accomplishments'] 4492 | [1, 1, 1] 4493 | deletion 4494 | stayed -> sayed 4495 | word: stayed ->sayed 4496 | ['stayed'] 4497 | [1, 1, 1] 4498 | transposition 4499 | tricking -> trickigng 4500 | word: tricking ->trickigng 4501 | ['tricking'] 4502 | [1, 1, 1] 4503 | replacement 4504 | description -> dvscription 4505 | word: description ->dvscription 4506 | ['description'] 4507 | [1, 1, 1] 4508 | transposition 4509 | representing -> reprsesenting 4510 | word: representing ->reprsesenting 4511 | ['representing'] 4512 | [1, 1, 1] 4513 | deletion 4514 | disseminated -> dsseminated 4515 | word: disseminated ->dsseminated 4516 | ['disseminated'] 4517 | [1, 1, 1] 4518 | transposition 4519 | powers -> opowers 4520 | word: powers ->opowers 4521 | ['powers'] 4522 | [1, 1, 1] 4523 | transposition 4524 | soe -> seoe 4525 | word: soe ->seoe 4526 | ['see', 'soe'] 4527 | [0, 1, 1] 4528 | transposition 4529 | assigned -> sassigned 4530 | word: assigned ->sassigned 4531 | ['assigned'] 4532 | [1, 1, 1] 4533 | transposition 4534 | loans -> laoans 4535 | word: loans ->laoans 4536 | ['loans'] 4537 | [1, 1, 1] 4538 | insertion 4539 | golden -> xgolden 4540 | word: golden ->xgolden 4541 | ['golden'] 4542 | [1, 1, 1] 4543 | insertion 4544 | readjustments -> readjustqments 4545 | word: readjustments ->readjustqments 4546 | ['readjustments'] 4547 | [1, 1, 1] 4548 | insertion 4549 | continued -> continuedf 4550 | word: continued ->continuedf 4551 | ['continued'] 4552 | [1, 1, 1] 4553 | deletion 4554 | economical -> eonomical 4555 | word: economical ->eonomical 4556 | ['economical'] 4557 | [1, 1, 1] 4558 | insertion 4559 | slab -> sklab 4560 | word: slab ->sklab 4561 | ['slab'] 4562 | [1, 1, 1] 4563 | insertion 4564 | blair -> blairw 4565 | word: blair ->blairw 4566 | ['blair'] 4567 | [1, 1, 1] 4568 | replacement 4569 | repeatedly -> oepeatedly 4570 | word: repeatedly ->oepeatedly 4571 | ['repeatedly'] 4572 | [1, 1, 1] 4573 | replacement 4574 | terminal -> terminal 4575 | word: terminal ->terminal 4576 | ['terminal', 'terminals'] 4577 | [1, 1, 1] 4578 | insertion 4579 | qamdo -> qajmdo 4580 | word: qamdo ->qajmdo 4581 | ['qamdo'] 4582 | [1, 1, 1] 4583 | transposition 4584 | thinks -> thinsks 4585 | word: thinks ->thinsks 4586 | ['thinks'] 4587 | [1, 1, 1] 4588 | deletion 4589 | inspiration -> inpiration 4590 | word: inspiration ->inpiration 4591 | ['inspiration'] 4592 | [1, 1, 1] 4593 | transposition 4594 | basis -> bassis 4595 | word: basis ->bassis 4596 | ['basis'] 4597 | [1, 1, 1] 4598 | transposition 4599 | huaren -> uhuaren 4600 | word: huaren ->uhuaren 4601 | ['huaren'] 4602 | [1, 1, 1] 4603 | transposition 4604 | jeopardize -> joeopardize 4605 | word: jeopardize ->joeopardize 4606 | ['jeopardize'] 4607 | [1, 1, 1] 4608 | deletion 4609 | counteracting -> counteractin 4610 | word: counteracting ->counteractin 4611 | ['counteracting'] 4612 | [1, 1, 1] 4613 | deletion 4614 | australia -> australa 4615 | word: australia ->australa 4616 | ['australia'] 4617 | [1, 1, 1] 4618 | replacement 4619 | electric -> elvctric 4620 | word: electric ->elvctric 4621 | ['electric'] 4622 | [1, 1, 1] 4623 | replacement 4624 | academic -> acaoemic 4625 | word: academic ->acaoemic 4626 | ['academic'] 4627 | [1, 1, 1] 4628 | deletion 4629 | wages -> ages 4630 | word: wages ->ages 4631 | ['wages', 'age'] 4632 | [1, 1, 1] 4633 | replacement 4634 | passing -> vassing 4635 | word: passing ->vassing 4636 | ['passing'] 4637 | [1, 1, 1] 4638 | insertion 4639 | arrears -> arrevars 4640 | word: arrears ->arrevars 4641 | ['arrears'] 4642 | [1, 1, 1] 4643 | insertion 4644 | moreover -> moreoiver 4645 | word: moreover ->moreoiver 4646 | ['moreover'] 4647 | [1, 1, 1] 4648 | transposition 4649 | tactic -> tactcic 4650 | word: tactic ->tactcic 4651 | ['tactic'] 4652 | [1, 1, 1] 4653 | replacement 4654 | lead -> leah 4655 | word: lead ->leah 4656 | ['lead', 'leap'] 4657 | [1, 1, 1] 4658 | replacement 4659 | master -> mastem 4660 | word: master ->mastem 4661 | ['master'] 4662 | [1, 1, 1] 4663 | replacement 4664 | vista -> visth 4665 | word: vista ->visth 4666 | ['vista'] 4667 | [1, 1, 1] 4668 | deletion 4669 | henceforth -> heceforth 4670 | word: henceforth ->heceforth 4671 | ['henceforth'] 4672 | [1, 1, 1] 4673 | insertion 4674 | brunei -> brunzei 4675 | word: brunei ->brunzei 4676 | ['brunei'] 4677 | [1, 1, 1] 4678 | replacement 4679 | staged -> stcged 4680 | word: staged ->stcged 4681 | ['staged'] 4682 | [1, 1, 1] 4683 | transposition 4684 | give -> gieve 4685 | word: give ->gieve 4686 | ['give'] 4687 | [1, 1, 1] 4688 | transposition 4689 | incessant -> icncessant 4690 | word: incessant ->icncessant 4691 | ['incessant'] 4692 | [1, 1, 1] 4693 | transposition 4694 | conditions -> cnonditions 4695 | word: conditions ->cnonditions 4696 | ['conditions'] 4697 | [1, 1, 1] 4698 | deletion 4699 | thankful -> thankul 4700 | word: thankful ->thankul 4701 | ['thankful'] 4702 | [1, 1, 1] 4703 | insertion 4704 | tsai -> tqsai 4705 | word: tsai ->tqsai 4706 | ['tsai'] 4707 | [1, 1, 1] 4708 | insertion 4709 | organizations -> ocrganizations 4710 | word: organizations ->ocrganizations 4711 | ['organizations'] 4712 | [1, 1, 1] 4713 | transposition 4714 | digitalization -> digitaliazation 4715 | word: digitalization ->digitaliazation 4716 | ['digitalization'] 4717 | [1, 1, 1] 4718 | deletion 4719 | venereal -> venerel 4720 | word: venereal ->venerel 4721 | ['venereal'] 4722 | [1, 1, 1] 4723 | transposition 4724 | stays -> tstays 4725 | word: stays ->tstays 4726 | ['stays'] 4727 | [1, 1, 1] 4728 | transposition 4729 | counterattacks -> coutnterattacks 4730 | word: counterattacks ->coutnterattacks 4731 | ['counterattacks'] 4732 | [1, 1, 1] 4733 | insertion 4734 | guihe -> gcuihe 4735 | word: guihe ->gcuihe 4736 | ['guihe'] 4737 | [1, 1, 1] 4738 | replacement 4739 | conspiracy -> zonspiracy 4740 | word: conspiracy ->zonspiracy 4741 | ['conspiracy'] 4742 | [1, 1, 1] 4743 | deletion 4744 | dependants -> ependants 4745 | word: dependants ->ependants 4746 | ['dependants'] 4747 | [1, 1, 1] 4748 | insertion 4749 | ecological -> ecmological 4750 | word: ecological ->ecmological 4751 | ['ecological'] 4752 | [1, 1, 1] 4753 | transposition 4754 | yongjun -> yogngjun 4755 | word: yongjun ->yogngjun 4756 | ['yongjun'] 4757 | [1, 1, 1] 4758 | transposition 4759 | refusing -> refuising 4760 | word: refusing ->refuising 4761 | ['refusing'] 4762 | [1, 1, 1] 4763 | replacement 4764 | brook -> bdook 4765 | word: brook ->bdook 4766 | ['brook', 'book'] 4767 | [1, 1, 1] 4768 | transposition 4769 | format -> foramat 4770 | word: format ->foramat 4771 | ['format'] 4772 | [1, 1, 1] 4773 | replacement 4774 | parents -> parhnts 4775 | word: parents ->parhnts 4776 | ['parents'] 4777 | [1, 1, 1] 4778 | transposition 4779 | mainly -> mailnly 4780 | word: mainly ->mailnly 4781 | ['mainly'] 4782 | [1, 1, 1] 4783 | transposition 4784 | serbs -> sersbs 4785 | word: serbs ->sersbs 4786 | ['serbs'] 4787 | [1, 1, 1] 4788 | insertion 4789 | countering -> cokuntering 4790 | word: countering ->cokuntering 4791 | ['countering'] 4792 | [1, 1, 1] 4793 | replacement 4794 | occasion -> occalion 4795 | word: occasion ->occalion 4796 | ['occasion'] 4797 | [1, 1, 1] 4798 | deletion 4799 | elder -> eler 4800 | word: elder ->eler 4801 | ['elder', 'ever'] 4802 | [1, 1, 1] 4803 | transposition 4804 | buffer -> bfuffer 4805 | word: buffer ->bfuffer 4806 | ['buffer'] 4807 | [1, 1, 1] 4808 | insertion 4809 | serviceman -> seyrviceman 4810 | word: serviceman ->seyrviceman 4811 | ['serviceman'] 4812 | [1, 1, 1] 4813 | replacement 4814 | korea -> kbrea 4815 | word: korea ->kbrea 4816 | ['korea'] 4817 | [1, 1, 1] 4818 | deletion 4819 | exceeds -> excees 4820 | word: exceeds ->excees 4821 | ['exceeds'] 4822 | [1, 1, 1] 4823 | deletion 4824 | entails -> etails 4825 | word: entails ->etails 4826 | ['entails', 'details'] 4827 | [1, 1, 1] 4828 | insertion 4829 | corporate -> hcorporate 4830 | word: corporate ->hcorporate 4831 | ['corporate'] 4832 | [1, 1, 1] 4833 | insertion 4834 | qatar -> qatcar 4835 | word: qatar ->qatcar 4836 | ['qatar'] 4837 | [1, 1, 1] 4838 | deletion 4839 | sustainable -> sstainable 4840 | word: sustainable ->sstainable 4841 | ['sustainable'] 4842 | [1, 1, 1] 4843 | deletion 4844 | rallying -> rallyin 4845 | word: rallying ->rallyin 4846 | ['rallying'] 4847 | [1, 1, 1] 4848 | transposition 4849 | extraordinarily -> extraoridinarily 4850 | word: extraordinarily ->extraoridinarily 4851 | ['extraordinarily'] 4852 | [1, 1, 1] 4853 | transposition 4854 | alternative -> alternatieve 4855 | word: alternative ->alternatieve 4856 | ['alternative'] 4857 | [1, 1, 1] 4858 | transposition 4859 | poverty -> poveryty 4860 | word: poverty ->poveryty 4861 | ['poverty'] 4862 | [1, 1, 1] 4863 | transposition 4864 | educates -> educaetes 4865 | word: educates ->educaetes 4866 | ['educates'] 4867 | [1, 1, 1] 4868 | insertion 4869 | metaphysical -> meetaphysical 4870 | word: metaphysical ->meetaphysical 4871 | ['metaphysical'] 4872 | [1, 1, 1] 4873 | transposition 4874 | meant -> meatnt 4875 | word: meant ->meatnt 4876 | ['meant'] 4877 | [1, 1, 1] 4878 | transposition 4879 | australian -> austrailian 4880 | word: australian ->austrailian 4881 | ['australian'] 4882 | [1, 1, 1] 4883 | replacement 4884 | pressure -> pzessure 4885 | word: pressure ->pzessure 4886 | ['pressure'] 4887 | [1, 1, 1] 4888 | deletion 4889 | manlong -> manlon 4890 | word: manlong ->manlon 4891 | ['manlong'] 4892 | [1, 1, 1] 4893 | insertion 4894 | sudden -> suddean 4895 | word: sudden ->suddean 4896 | ['sudden'] 4897 | [1, 1, 1] 4898 | replacement 4899 | refutable -> refutalle 4900 | word: refutable ->refutalle 4901 | ['refutable'] 4902 | [1, 1, 1] 4903 | transposition 4904 | eat -> aeat 4905 | word: eat ->aeat 4906 | ['meat', 'eat', 'heat'] 4907 | [0, 1, 1] 4908 | insertion 4909 | steiner -> steinerw 4910 | word: steiner ->steinerw 4911 | ['steiner'] 4912 | [1, 1, 1] 4913 | insertion 4914 | peasants -> peasantgs 4915 | word: peasants ->peasantgs 4916 | ['peasants'] 4917 | [1, 1, 1] 4918 | insertion 4919 | needed -> neededd 4920 | word: needed ->neededd 4921 | ['needed'] 4922 | [1, 1, 1] 4923 | insertion 4924 | republic -> republivc 4925 | word: republic ->republivc 4926 | ['republic'] 4927 | [1, 1, 1] 4928 | insertion 4929 | corporation -> corporahtion 4930 | word: corporation ->corporahtion 4931 | ['corporation'] 4932 | [1, 1, 1] 4933 | transposition 4934 | turvy -> trurvy 4935 | word: turvy ->trurvy 4936 | ['turvy'] 4937 | [1, 1, 1] 4938 | transposition 4939 | invincible -> ivnvincible 4940 | word: invincible ->ivnvincible 4941 | ['invincible'] 4942 | [1, 1, 1] 4943 | replacement 4944 | pace -> pacv 4945 | word: pace ->pacv 4946 | ['pace', 'pact'] 4947 | [1, 1, 1] 4948 | deletion 4949 | unanimously -> unnimously 4950 | word: unanimously ->unnimously 4951 | ['unanimously'] 4952 | [1, 1, 1] 4953 | insertion 4954 | gunner -> gyunner 4955 | word: gunner ->gyunner 4956 | ['gunner'] 4957 | [1, 1, 1] 4958 | replacement 4959 | miles -> milos 4960 | word: miles ->milos 4961 | ['kilos', 'miles'] 4962 | [0, 1, 1] 4963 | transposition 4964 | mergers -> meregers 4965 | word: mergers ->meregers 4966 | ['mergers'] 4967 | [1, 1, 1] 4968 | deletion 4969 | add -> ad 4970 | word: add ->ad 4971 | ['ad', 'a', 'd'] 4972 | [0, 0, 0] 4973 | transposition 4974 | cultivating -> cultvivating 4975 | word: cultivating ->cultvivating 4976 | ['cultivating'] 4977 | [1, 1, 1] 4978 | deletion 4979 | bouteflika -> boueflika 4980 | word: bouteflika ->boueflika 4981 | ['bouteflika'] 4982 | [1, 1, 1] 4983 | replacement 4984 | sharp -> shawp 4985 | word: sharp ->shawp 4986 | ['shaw', 'sharp'] 4987 | [0, 1, 1] 4988 | transposition 4989 | oman -> omnan 4990 | word: oman ->omnan 4991 | ['oman'] 4992 | [1, 1, 1] 4993 | transposition 4994 | berths -> eberths 4995 | word: berths ->eberths 4996 | ['berths'] 4997 | [1, 1, 1] 4998 | insertion 4999 | guangsheng -> gguangsheng 5000 | word: guangsheng ->gguangsheng 5001 | ['guangsheng'] 5002 | [1, 1, 1] 5003 | [0.882, 0.938, 0.955] 5004 | [0.6763485477178424, 0.7966804979253111, 0.8506224066390041] 5005 | [0.9954954954954955, 1.0, 1.0] 5006 | [0.9007352941176471, 0.9669117647058824, 0.9779411764705882] 5007 | [0.9547169811320755, 0.9849056603773585, 0.9886792452830189] 5008 | test vocabulary end 5009 | --------------------------------------------------------------------------------