JamSpell은 다음 기능을 갖춘 맞춤법 검사 라이브러리입니다.
Colab 예시
jamspell.com - 다음 기능을 갖춘 새로운 jamspell 버전을 확인하세요.
en, ru, de, fr, it, es, tr, uk, pl, nl, pt, hi, no
Java, C#, Ruby
지원오류 | 상위 7개 오류 | 수정률 | 상위 7개 수정률 | 고장난 | 속도 (단어/초) | |
JamSpell | 3.25% | 1.27% | 79.53% | 84.10% | 0.64% | 4854 |
노르빅 | 7.62% | 5.00% | 46.58% | 66.51% | 0.69% | 395 |
훈스펠 | 13.10% | 10.33% | 47.52% | 68.56% | 7.14% | 163 |
더미 | 13.14% | 13.14% | 0.00% | 0.00% | 0.00% | - |
모델은 300,000개의 위키피디아 문장 + 300,000개의 뉴스 문장(영어)으로 훈련되었습니다. 95%는 훈련에 사용되었고, 5%는 평가에 사용되었습니다. 오류 모델은 원본에서 오류가 있는 텍스트를 생성하는 데 사용되었습니다. JamSpell 교정기는 Norvig의 교정기인 Hunspell 및 더미 교정기(교정 없음)와 비교되었습니다.
우리는 다음 측정항목을 사용했습니다.
우리 모델이 Wikipedia+news에 너무 과적합되지 않도록 하기 위해 "The Adventures of Sherlock Holmes" 텍스트에서 확인했습니다.
오류 | 상위 7개 오류 | 수정률 | 상위 7개 수정률 | 고장난 | 속도(초당 단어 수) | |
JamSpell | 3.56% | 1.27% | 72.03% | 79.73% | 0.50% | 5524 |
노르빅 | 7.60% | 5.30% | 35.43% | 56.06% | 0.45% | 647 |
훈스펠 | 9.36% | 6.44% | 39.61% | 65.77% | 2.95% | 284 |
더미 | 11.16% | 11.16% | 0.00% | 0.00% | 0.00% | - |
재현에 대한 자세한 내용은 "Train" 섹션에서 확인할 수 있습니다.
swig3
설치(보통 배포판 패키지 관리자에 있음)
jamspell
설치하세요:
pip install jamspell
언어 모델 다운로드 또는 학습
사용하세요:
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', ...)
프로젝트에 jamspell
및 contrib
디렉토리를 추가하세요.
사용하세요:
# 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 ;
}
swig 튜토리얼을 사용하여 다른 언어에 대한 확장을 생성할 수 있습니다. swig 인터페이스 파일은 jamspell.i
입니다. 빌드 스크립트가 포함된 풀 요청을 환영합니다.
cmake
설치
복제 및 빌드 잼스펠(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
}
]
}
여기서 pos_from
- 철자가 틀린 단어의 첫 글자 위치, len
- 철자가 틀린 단어 len
커스텀 모델을 학습하려면 다음이 필요합니다.
cmake
설치
복제 및 빌드 잼스펠:
git clone https://github.com/bakwc/JamSpell.git
cd JamSpell
mkdir build
cd build
cmake ..
make
훈련할 문장이 포함된 utf-8 텍스트 파일(예: sherlockholmes.txt
)과 언어 알파벳이 포함된 다른 파일(예: alphabet_en.txt
)을 준비합니다.
열차 모델:
./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
사용하여 학습/테스트 데이터를 생성할 수 있습니다. txt 파일, Leipzig Corpora Collection 형식 및 fb2 도서를 지원합니다. 다음은 몇 가지 간단한 모델입니다. 그들은 300,000개의 뉴스 + 300,000개의 위키피디아 문장으로 훈련했습니다. 더 나은 품질을 얻으려면 최소한 수백만 개의 문장에 대해 자체 모델을 훈련하는 것이 좋습니다. 위의 열차 섹션을 참조하세요.