スペルの提案と電子の統合を備えたシンプルで高速なスペルチェッカー
Simple SpellCheckerは、node.jsのスペルチェッカーモジュールであり、単語が間違っているかどうかを確認し、スペルの提案を取得できます。
英語、スペイン語、フランス語、ドイツ語、オランダ語用の辞書が付属していますが、有効な単語のリストを含むテキストファイルを定義するだけで、より多くの言語を簡単に追加できます。
また、コマンドラインから単語を確認できるCLIツールもあります。
モジュールを使用するには、最初にNPMを使用してインストールする必要があります。
npm install simple-spellchecker
そして、モジュールを要求し、 Dictionary
オブジェクトを取得して、それらのメソッドを呼び出します。
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , dictionary ) {
if ( ! err ) {
var misspelled = ! dictionary . spellCheck ( 'maisonn' ) ;
if ( misspelled ) {
var suggestions = dictionary . getSuggestions ( 'maisonn' ) ;
}
}
} ) ;
モジュールには、 getDictionary()
、 getDictionarySync()
、およびnormalizeDictionary()
の3つのパブリックメソッドがあります。
この方法では、ファイルからDictionary
インスタンスを取得できます。
パラメーター:
fileName
:辞書のファイルの名前。この方法は.zip
最初に.dic
拡張子を使用してファイルを検索します。folderPath
:辞書のファイルが配置されているフォルダー。このパラメーターはオプションであり、デフォルトではファイルがdict
フォルダーにあると想定しています。callback
: Dictionary
オブジェクトを返すために呼び出される関数。例:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , result ) {
var dictionary = result ;
} ) ;
この方法により、ファイルからDictionary
インスタンスを同期方法で取得できます。
パラメーター:
fileName
:辞書のファイルの名前。ファイルには.dic
拡張子が必要です。folderPath
:辞書のファイルが配置されているフォルダー。このパラメーターはオプションであり、デフォルトではファイルがdict
フォルダーにあると想定しています。返品:
Dictionary
オブジェクト。例:
var SpellChecker = require ( 'simple-spellchecker' ) ;
var dictionary = SpellChecker . getDictionarySync ( "fr-FR" ) ;
この方法は、UTF-8辞書ファイルを読み取り、BOMおよびr
文字を削除し、単語のリストを並べ替えます。
パラメーター:
inputPath
:辞書ファイルのパス。outputPath
:正規化された辞書ファイルのパス。このパラメーターはオプションであり、難聴により元のファイルが上書きされます。callback
:プロセスが終了したときに呼び出される関数。例:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . normalizeDictionary ( inputFile , outputFile , function ( err , success ) {
if ( success ) console . log ( "The file was normalized" ) ;
} ) ;
Dictionary
クラスには6つのパブリックメソッドがあります: getLength()
、 setWordlist()
、 spellCheck()
、 isMisspelled()
、 getSuggestions()
、 checkAndSuggest()
この方法では、辞書が持っている単語の量を取得できます。
返品:
この方法では、辞書の単語を設定できます。
パラメーター:
wordlist
:文字列の配列。この方法では、単語が正しく書かれているかどうかを確認できます。
パラメーター:
word
:検証する単語。返品:
true
、そうでない場合はfalse
。 この方法では、単語が間違っているかどうかを確認できます。
パラメーター:
word
:検証する単語。返品:
true
、そうでない場合はfalse
この方法では、単語のスペルの提案を得ることができます。
パラメーター:
word
:提案を生成するために使用される単語。limit
:取得するための提案の最大数(デフォルト、5)。maxDistance
:有効な提案(デフォルト、2)と見なされるために、単語がword
パラメーターから持つことができる最大編集距離。返品:
この方法では、単語が間違っているかどうかを確認し、スペルの提案を取得できます。
パラメーター:
word
:検証する単語。limit
:取得するための提案の最大数(デフォルト、5)。maxDistance
:有効な提案(デフォルト、2)と見なされるために、単語がword
パラメーターから持つことができる最大編集距離。返品:
misspelled
オブジェクトと、文字列の配列を含むsuggestions
。 この方法は、辞書にない場合でも単語が有効かどうかを確認するために使用される正規表現を追加します。
これは、数字、電子メール、またはURLアドレスなど、スペルミスのように特別な単語をマークすることを避ける場合に役立つ場合があります。
パラメーター:
regex
:正規表現オブジェクト。 このメソッドは、メソッドaddRegex()
を使用して追加された以前のすべての正規式を削除します。
カスタム辞書を使用するには、有効な単語のリストを含むテキストファイルを定義する必要があります。そこでは、各単語は新しい行で区切られています。
ファイルの拡張機能は.dic
でなければなりません。名前は(できれば)言語コードと地域の指定者(言語がスペイン語で、地域がアルゼンチンの場合はes-AR
)によって構成されている必要があります。
オプションでファイルをzipパッケージにパックすることもできます。モジュールは、 .zip
ファイルに同じ名前が.dic
ファイルを持っている限り、それを解凍して読み取ることができます(例:ファイルes-AR.zip
ファイルes-AR.dic
が含まれています)。
ファイルはUTF8(BOMなし)でエンコードする必要があります。単語は、キャリッジリターンとラインフィード(つまりn
)ではなく、ラインフィード(つまりrn
)で分離する必要があり、単語はソートする必要があります。昇順で。
モジュールは、すべての不要な文字を削除して単語を並べ替えることができます。 normalize()
メソッドを呼び出すか、zipファイルにファイルをパックすると(モジュールは解凍後にnormalize()
メソッドを自動的に呼び出します)。
モジュールには、辞書を正規化してテストできるスクリプトが付属しています。
辞書ファイルをテストするには、辞書のファイルの名前とテストする単語を示すスクリプトを実行する必要があります。
たとえば、次の文はdict
フォルダーで、ファイルen-GB.dic
またはen-GB.zip
のいずれかの辞書を検索し、単語のhouse
が間違っているかどうかを確認し、検索しますいくつかのスペルの提案。
node cli.js check "./dict" en-GB house
辞書ファイルを正規化するには、ファイルのパスを示すスクリプトを実行する必要があります。
node cli.js normalize "./dict/en-GB.dic"
元のファイルをオーバーライドしたくない場合は、出力ファイルのパスを指定できます。
node cli.js normalize "./dict/en-GB.dic" "C:/output/en-GB.dic"
このモジュールを電子と統合できる方法はいくつかあります。ただし、出発点が必要な場合は、次の例では、英語辞書を有効にする方法を示しています。
1)プロジェクトの依存関係としてモジュールをインストールします( npm install simple-spellchecker --save
)。
2)メインプロセスでは、モジュールを要求し、辞書をロードし、彼のメソッドにアクセスする関数を定義します。
// Initialization.
var SpellChecker = require ( 'simple-spellchecker' ) ;
var myDictionary = null ;
// Load dictionary.
SpellChecker . getDictionary ( "en-US" , "./node_modules/simple-spellchecker/dict" , function ( err , result ) {
if ( ! err ) {
myDictionary = result ;
}
} ) ;
// Define function for consult the dictionary.
ipcMain . on ( 'checkspell' , function ( event , word ) {
var res = null ;
if ( myDictionary != null && word != null ) {
res = myDictionary . spellCheck ( word ) ;
}
event . returnValue = res ;
} ) ;
3)レンダラープロセスでは、以前にロードされた辞書を使用するスペルチェッカープロバイダーを定義します。
// Get web frame.
var webFrame = require ( 'electron' ) . webFrame ;
webFrame . setSpellCheckProvider ( "en-US" , false , {
spellCheck : function ( text ) {
var res = ipcRenderer . sendSync ( 'checkspell' , text ) ;
return res != null ? res : true ;
}
} ) ;
モジュールは、ファイルtest.js
( MochaとChaiを使用)によって部分的にテストされます。テストを実行するには、コマンドnpm test
を実行するだけです。
シンプルなスペルチェッカーはフリーソフトウェアです。 Mozilla Public License v2.0の条件に基づいて、それを再配布したり、変更したりできます。このライブラリとともにMPL 2.0のコピーを受け取ったはずです。そうしないと、http://mozilla.org/mpl/2.0/で入手できます。