JamSpell adalah perpustakaan pemeriksa ejaan dengan fitur berikut:
Contoh Colab
jamspell.com - lihat versi jamspell baru dengan fitur berikut
en, ru, de, fr, it, es, tr, uk, pl, nl, pt, hi, no
Java, C#, Ruby
bawaanKesalahan | 7 Kesalahan Teratas | Tingkat Tetap | 7 Tingkat Perbaikan Teratas | Rusak | Kecepatan (kata/detik) | |
JamMantra | 3,25% | 1,27% | 79,53% | 84,10% | 0,64% | 4854 |
Norwegia | 7,62% | 5,00% | 46,58% | 66,51% | 0,69% | 395 |
Mantra Hun | 13,10% | 10,33% | 47,52% | 68,56% | 7,14% | 163 |
Contoh | 13,14% | 13,14% | 0,00% | 0,00% | 0,00% | - |
Model dilatih dengan 300 ribu kalimat wikipedia + 300 ribu kalimat berita (bahasa Inggris). 95% digunakan untuk kereta api, 5% digunakan untuk evaluasi. Model kesalahan digunakan untuk menghasilkan teks yang salah dari teks aslinya. Korektor JamSpell dibandingkan dengan korektor Norvig, Hunspell, dan korektor tiruan (tidak ada koreksi).
Kami menggunakan metrik berikut:
Untuk memastikan bahwa model kami tidak terlalu cocok untuk wikipedia+berita, kami memeriksanya di teks "Petualangan Sherlock Holmes":
Kesalahan | 7 Kesalahan Teratas | Tingkat Tetap | 7 Tingkat Perbaikan Teratas | Rusak | Kecepatan (kata per detik) | |
JamMantra | 3,56% | 1,27% | 72,03% | 79,73% | 0,50% | 5524 |
Norwegia | 7,60% | 5,30% | 35,43% | 56,06% | 0,45% | 647 |
Mantra Hun | 9,36% | 6,44% | 39,61% | 65,77% | 2,95% | 284 |
Contoh | 11,16% | 11,16% | 0,00% | 0,00% | 0,00% | - |
Detail lebih lanjut tentang reproduksi tersedia di bagian "Kereta".
Instal swig3
(biasanya ada di manajer paket distro Anda)
Instal jamspell
:
pip install jamspell
Unduh atau latih model bahasa
Gunakan itu:
import jamspell
corrector = jamspell . TSpellCorrector ()
corrector . LoadLangModel ( 'en.bin' )
corrector . FixFragment ( 'I am the begt spell cherken!' )
# u'I am the best spell checker!'
corrector . GetCandidates ([ 'i' , 'am' , 'the' , 'begt' , 'spell' , 'cherken' ], 3 )
# (u'best', u'beat', u'belt', u'bet', u'bent', ... )
corrector . GetCandidates ([ 'i' , 'am' , 'the' , 'begt' , 'spell' , 'cherken' ], 5 )
# (u'checker', u'chicken', u'checked', u'wherein', u'coherent', ...)
Tambahkan direktori jamspell
dan contrib
ke proyek Anda
Gunakan itu:
# include < jamspell/spell_corrector.hpp >
int main ( int argc, const char ** argv) {
NJamSpell::TSpellCorrector corrector;
corrector. LoadLangModel ( " model.bin " );
corrector. FixFragment ( L" I am the begt spell cherken! " );
// "I am the best spell checker!"
corrector. GetCandidates ({ L" i " , L" am " , L" the " , L" begt " , L" spell " , L" cherken " }, 3 );
// "best", "beat", "belt", "bet", "bent", ... )
corrector. GetCandidates ({ L" i " , L" am " , L" the " , L" begt " , L" spell " , L" cherken " }, 3 );
// "checker", "chicken", "checked", "wherein", "coherent", ... )
return 0 ;
}
Anda dapat membuat ekstensi untuk bahasa lain menggunakan tutorial swig. File antarmuka swig adalah jamspell.i
. Permintaan tarik dengan skrip build dipersilakan.
Instal cmake
Mengkloning dan membuat jamspell (termasuk server http):
git clone https://github.com/bakwc/JamSpell.git
cd JamSpell
mkdir build
cd build
cmake ..
make
./web_server/web_server en.bin localhost 8080
$ curl " http://localhost:8080/fix?text=I am the begt spell cherken "
I am the best spell checker
$ curl -d " I am the begt spell cherken " http://localhost:8080/fix
I am the best spell checker
curl " http://localhost:8080/candidates?text=I am the begt spell cherken "
# or
curl -d " I am the begt spell cherken " http://localhost:8080/candidates
{
"results" : [
{
"candidates" : [
"best" ,
"beat" ,
"belt" ,
"bet" ,
"bent" ,
"beet" ,
"beit"
] ,
"len" : 4 ,
"pos_from" : 9
} ,
{
"candidates" : [
"checker" ,
"chicken" ,
"checked" ,
"wherein" ,
"coherent" ,
"cheered" ,
"cherokee"
] ,
"len" : 7 ,
"pos_from" : 20
}
]
}
Di sini pos_from
- kata yang salah eja posisi huruf pertama, len
- kata yang salah eja len
Untuk melatih model khusus, Anda memerlukan:
Instal cmake
Mengkloning dan membuat jamspell:
git clone https://github.com/bakwc/JamSpell.git
cd JamSpell
mkdir build
cd build
cmake ..
make
Siapkan file teks utf-8 dengan kalimat yang akan dilatih (mis. sherlockholmes.txt
) dan file lain dengan alfabet bahasa (mis. alphabet_en.txt
)
Model kereta api:
./main/jamspell train ../test_data/alphabet_en.txt ../test_data/sherlockholmes.txt model_sherlock.bin
evaluate/evaluate.py
: python evaluate/evaluate.py -a alphabet_file.txt -jsp your_model.bin -mx 50000 your_test_data.txt
evaluate/generate_dataset.py
untuk menghasilkan data pelatihan/pengujian. Mendukung file txt, format Koleksi Leipzig Corpora dan buku fb2. Berikut adalah beberapa model sederhana. Mereka melatih 300 ribu berita + 300 ribu kalimat wikipedia. Kami sangat menyarankan untuk melatih model Anda sendiri, setidaknya dalam beberapa juta kalimat untuk mencapai kualitas yang lebih baik. Lihat bagian Kereta di atas.