| #!/bin/bash | |
| # Check common misspellings | |
| # input file format: | |
| # word->word1, ... | |
| # Source: http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines | |
| input=${INPUT:-List_of_common_misspellings.txt} | |
| function check() { | |
| cat $1 | awk 'BEGIN{maxord=0;FS="\t"}FILENAME=="-"{for (i=1; i<=NF; i++){a[NR,$(i)]=i};max=NR;next}{x1=a[NR-max,$2];x2=a[NR-max,$3];sug++;if($3)sug++;if (!x1&&!x2){mis2++;misrow=misrow"\n"$0};if(!x1||($3 && !x2))mis++;ord+=x1+x2;}END{ | |
| print "Missed rows", misrow; | |
| print "=======================================" | |
| print maxord, "max. suggestion for a word"; | |
| print max, "input rows"; | |
| print mis2, "missing rows"; | |
| print sug, "expected suggestions"; | |
| print mis, "missing suggestions"; | |
| print ord/(sug-mis), "average ranking"; | |
| }' - $2 | |
| } | |
| test -f $input.4 && check $input.4 $input.3 >result.aspell | |
| check $input.5 $input.3 >result.hunspell | |
| test -f result.aspell && tail -6 result.aspell | |
| tail -6 result.hunspell |