一个简单而快速的拼写检查器,带有拼写建议和电子的整合
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()
。
此方法允许从文件中获取Dictionary
实例。
参数:
fileName
:字典文件的名称。该方法将首先搜索带有.dic
扩展名的文件,如果找不到的话,则将搜索.zip
并将其解压缩。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
:归一化字典文件的路径。此参数是可选的,deafult原始文件被覆盖。callback
:该过程完成后将调用的函数。例子:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . normalizeDictionary ( inputFile , outputFile , function ( err , success ) {
if ( success ) console . log ( "The file was normalized" ) ;
} ) ;
Dictionary
类有六种公共方法: getLength()
, setWordlist()
, spellCheck()
, isMisspelled()
, getSuggestions()
和checkAndSuggest()
该方法允许获取字典所具有的单词数量。
返回:
此方法允许设置字典的单词。
范围:
wordlist
:一系列字符串。此方法允许验证是正确编写的单词。
范围:
word
:要验证的单词。返回:
true
在字典中, false
,如果不是。 此方法允许验证的是一个单词是否拼写错误。
范围:
word
:要验证的单词。返回:
false
,如果不是的true
此方法允许获得一个单词的拼写建议。
参数:
word
:用于生成建议的单词。limit
:获得的最大建议数(默认情况下为5)。maxDistance
:一个单词可以从word
参数中具有的最大编辑距离,以便被视为有效的建议(默认情况下为2)。返回:
此方法允许验证单词是否拼写错误并获得拼写建议。
参数:
word
:要验证的单词。limit
:获得的最大建议数(默认情况下为5)。maxDistance
:一个单词可以从word
参数中具有的最大编辑距离,以便被视为有效的建议(默认情况下为2)。返回:
misspelled
的对象,其中包含布尔值和suggestions
,其中包含一系列字符串。 此方法添加了一个正则表达式,即使在字典中不在字典中,也将用于验证单词是否有效。
当避免将特殊单词标记为拼写错误时,例如数字,电子邮件或URL地址时,这可能很有用。
参数:
regex
:正则表达式对象。 此方法删除了使用方法addRegex()
添加的所有先前的正则表达式。
为了使用自定义词典,您必须定义一个带有有效词列表的文本文件,其中每个单词都被新行分开。
该文件的扩展名必须为.dic
,并且该名称应(最好)由语言代码和区域指定器组成( es-AR
如果语言为西班牙语,并且该地区是阿根廷)。
可选的是,您还可以将文件打包到zip软件包中,只要.zip
文件具有相同的名称具有.dic
文件(例如,文件es-AR.zip
该模块将能够解压缩并阅读它。其中包含文件es-AR.dic
)。
该文件必须在UTF8(无BOM)中编码,必须用线feed (即n
)分开这些单词,而不要使用托架返回加上线feed (即rn
),并且必须对单词进行排序按顺序排列。
如果您调用normalize()
normalize()
,则可以删除所有不需要的字符并对单词进行排序。
该模块配备了一个允许将字典标准化并测试的脚本。
为了测试字典文件,您必须执行指示字典文件的文件夹和名称以及要测试的单词的脚本。
例如,以下句子将在dict
文件夹中搜索一个字典,该house
在文件en-GB.dic
或en-GB.zip
中搜索,并将验证是否拼写错误,并将搜索一些拼写建议。
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
即可。
简单的SpellChecker是免费软件;您可以根据Mozilla公共许可证v2.0的条款对其进行重新分配和/或修改它。您应该已经收到了MPL 2.0和此库的副本,否则您可以在http://mozilla.org/mpl/2.0/上获得一份。