JamSpell ist eine Bibliothek zur Rechtschreibprüfung mit folgenden Funktionen:
Colab-Beispiel
jamspell.com – Schauen Sie sich eine neue Jamspell-Version mit den folgenden Funktionen an
en, ru, de, fr, it, es, tr, uk, pl, nl, pt, hi, no
Java, C#, Ruby
UnterstützungFehler | Die 7 häufigsten Fehler | Festpreis | Top 7 Fixrate | Gebrochen | Geschwindigkeit (Wörter/Sekunde) | |
JamSpell | 3,25 % | 1,27 % | 79,53 % | 84,10 % | 0,64 % | 4854 |
Norvig | 7,62 % | 5,00 % | 46,58 % | 66,51 % | 0,69 % | 395 |
Hunspell | 13,10 % | 10,33 % | 47,52 % | 68,56 % | 7,14 % | 163 |
Dummy | 13,14 % | 13,14 % | 0,00 % | 0,00 % | 0,00 % | - |
Das Modell wurde mit 300.000 Wikipedia-Sätzen + 300.000 Nachrichtensätzen (Englisch) trainiert. 95 % wurden für die Schulung verwendet, 5 % wurden für die Bewertung verwendet. Das Fehlermodell wurde verwendet, um fehlerhaften Text aus dem Original zu generieren. Der JamSpell-Korrektor wurde mit dem von Norvig, Hunspell und einem Dummy-Korrektor verglichen (keine Korrekturen).
Wir haben folgende Metriken verwendet:
Um sicherzustellen, dass unser Modell nicht zu sehr für Wikipedia+News geeignet ist, haben wir es anhand des Textes „Die Abenteuer des Sherlock Holmes“ überprüft:
Fehler | Die 7 häufigsten Fehler | Festpreis | Top 7 Fixrate | Gebrochen | Geschwindigkeit (Wörter pro Sekunde) | |
JamSpell | 3,56 % | 1,27 % | 72,03 % | 79,73 % | 0,50 % | 5524 |
Norvig | 7,60 % | 5,30 % | 35,43 % | 56,06 % | 0,45 % | 647 |
Hunspell | 9,36 % | 6,44 % | 39,61 % | 65,77 % | 2,95 % | 284 |
Dummy | 11,16 % | 11,16 % | 0,00 % | 0,00 % | 0,00 % | - |
Weitere Einzelheiten zur Reproduktion finden Sie im Abschnitt „Trainieren“.
Installieren Sie swig3
(normalerweise befindet es sich in Ihrem Distributionspaketmanager)
jamspell
installieren:
pip install jamspell
Laden Sie das Sprachmodell herunter oder trainieren Sie es
Benutze es:
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', ...)
Fügen Sie jamspell
und contrib
-Verzeichnisse zu Ihrem Projekt hinzu
Benutze es:
# 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 ;
}
Mit dem Swig-Tutorial können Sie Erweiterungen für andere Sprachen generieren. Die Swig-Schnittstellendatei ist jamspell.i
. Pull-Requests mit Build-Skripten sind willkommen.
Installieren Sie cmake
Klonen und erstellen Sie Jamspell (einschließlich http-Server):
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
}
]
}
Hier pos_from
– Position des ersten Buchstabens des falsch geschriebenen Wortes, len
– falsch geschriebene Wort len
Um ein benutzerdefiniertes Modell zu trainieren, benötigen Sie:
Installieren Sie cmake
Jamspell klonen und erstellen:
git clone https://github.com/bakwc/JamSpell.git
cd JamSpell
mkdir build
cd build
cmake ..
make
Bereiten Sie eine UTF-8-Textdatei mit Sätzen zum Trainieren vor (z. B. sherlockholmes.txt
) und eine weitere Datei mit dem Sprachalphabet (z. B. alphabet_en.txt
).
Zugmodell:
./main/jamspell train ../test_data/alphabet_en.txt ../test_data/sherlockholmes.txt model_sherlock.bin
evaluate/evaluate.py
verwenden: python evaluate/evaluate.py -a alphabet_file.txt -jsp your_model.bin -mx 50000 your_test_data.txt
evaluate/generate_dataset.py
verwenden, um Ihre Trainings-/Testdaten zu generieren. Es unterstützt TXT-Dateien, das Leipzig Corpora Collection-Format und fb2-Bücher. Hier sind ein paar einfache Modelle. Sie trainierten mit 300.000 Nachrichten + 300.000 Wikipedia-Sätzen. Wir empfehlen dringend, Ihr eigenes Modell zumindest anhand einiger Millionen Sätze zu trainieren, um eine bessere Qualität zu erzielen. Siehe Abschnitt „Zug“ oben.