Un corrector ortográfico simple y rápido con sugerencias de ortografía e integración de Electron
El corrector ortográfico simple es un módulo de corrector ortográfico para Node.js, que permite verificar si una palabra está mal escrita y obtener sugerencias de ortografía.
Viene con diccionarios para inglés, español, francés, alemán y holandés, pero puede agregar fácilmente más idiomas simplemente definiendo un archivo de texto con una lista de palabras válidas.
También tiene una herramienta CLI que permite verificar las palabras desde la línea de comando.
Para usar el módulo, primero debe instalarlo con NPM.
npm install simple-spellchecker
Y luego requiere el módulo, obtenga un objeto Dictionary
e invoque sus métodos.
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' ) ;
}
}
} ) ;
El módulo tiene tres métodos públicos: getDictionary()
, getDictionarySync()
y normalizeDictionary()
.
Este método permite obtener una instancia Dictionary
de un archivo.
Parámetros:
fileName
: el nombre del archivo del diccionario. El método primero buscará un archivo con la extensión .dic
, si no se encuentra, entonces buscará un .zip
y lo descompondrá.folderPath
: la carpeta en la que se encuentra el archivo del diccionario. Este parámetro es opcional, de forma predeterminada supone que el archivo está en la carpeta dict
.callback
: una función que se invocará para devolver el objeto Dictionary
.Ejemplo:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , result ) {
var dictionary = result ;
} ) ;
Este método permite obtener una instancia Dictionary
de un archivo, de manera sincrónica.
Parámetros:
fileName
: el nombre del archivo del diccionario. El archivo debe tener extensión .dic
.folderPath
: la carpeta en la que se encuentra el archivo del diccionario. Este parámetro es opcional, de forma predeterminada supone que el archivo está en la carpeta dict
.Devoluciones:
Dictionary
.Ejemplo:
var SpellChecker = require ( 'simple-spellchecker' ) ;
var dictionary = SpellChecker . getDictionarySync ( "fr-FR" ) ;
Este métodos lee un archivo de diccionario UTF-8, elimina los caracteres BOM y r
y clasifica la lista de palabras.
Parámetros:
inputPath
: la ruta del archivo del diccionario.outputPath
: la ruta para el archivo de diccionario normalizado. Este parámetro es opcional, por DEAFULT, el archivo original se sobrescribe.callback
: una función que se invocará cuando el proceso haya terminado.Ejemplo:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . normalizeDictionary ( inputFile , outputFile , function ( err , success ) {
if ( success ) console . log ( "The file was normalized" ) ;
} ) ;
La clase Dictionary
tiene seis métodos públicos: getLength()
, setWordlist()
, spellCheck()
, isMisspelled()
, getSuggestions()
y checkAndSuggest()
Este método permite obtener la cantidad de palabras que tiene el diccionario.
Devoluciones:
Este método permite establecer las palabras del diccionario.
Parámetro:
wordlist
: una variedad de cuerdas.Este método permite verificar es que una palabra se escribe correctamente o no.
Parámetro:
word
: la palabra para verificar.Devoluciones:
true
si la palabra está en el diccionario, false
si no. Este método permite verificar es que una palabra está mal escrita o no.
Parámetro:
word
: la palabra para verificar.Devoluciones:
true
si la palabra está mal escrita, false
si no Este método permite obtener sugerencias de ortografía para una palabra.
Parámetros:
word
: la palabra utilizada para generar las sugerencias.limit
: el número máximo de sugerencias para obtener (por defecto, 5).maxDistance
: la distancia de edición máxima que una palabra puede tener desde el parámetro word
, para considerarse como una sugerencia válida (por defecto, 2).Devoluciones:
Este método permite verificar si una palabra está mal escrita y obtener sugerencias de ortografía.
Parámetros:
word
: la palabra para verificar.limit
: el número máximo de sugerencias para obtener (por defecto, 5).maxDistance
: la distancia de edición máxima que una palabra puede tener desde el parámetro word
, para considerarse como una sugerencia válida (por defecto, 2).Devoluciones:
misspelled
, que contiene un booleano y suggestions
, que contiene una variedad de cuerdas. Este método agrega una expresión regular que se usará para verificar si una palabra es válida aunque no está en el diccionario.
Esto puede ser útil al evitar marcar palabras especiales como mal escritas, como números, correos electrónicos o direcciones de URL.
Parámetros:
regex
: un objeto de expresión regular. Este método elimina todas las expresiones regulares anteriores agregadas utilizando el método addRegex()
.
Para usar diccionarios personalizados, debe definir un archivo de texto con una lista de palabras válidas, donde cada palabra está separada por una nueva línea.
La extensión del archivo debe ser .dic
, y el nombre debe (preferiblemente) estar compuesto por el código de idioma y el designador de la región (por ejemplo es-AR
si el idioma es español y la región es Argentina).
Opcionalmente, también puede empacar el archivo en un paquete ZIP, el módulo podrá descomponerlo y leerlo siempre que el archivo .zip
tenga el mismo nombre tiene el archivo .dic
(por ejemplo, un archivo es-AR.zip
que contiene el archivo es-AR.dic
).
El archivo debe estar codificado en UTF8 (sin BOM), las palabras deben separarse con una alimentación de línea (es decir, n
) y no con un retorno de carro más una alimentación de línea (es decir, rn
), y las palabras deben clasificarse en orden ascendente.
El módulo puede eliminar todos los caracteres no deseados y ordenar las palabras, si invoca el método normalize()
o empaca el archivo en un archivo zip (el módulo llama automáticamente el método normalize()
después de descomponerlo).
El módulo viene con un script que permite normalizar los diccionarios y probarlos.
Para probar un archivo de diccionario, debe ejecutar el script que indica la carpeta y el nombre del archivo del diccionario y la palabra que desea probar.
Por ejemplo, la siguiente oración buscará en la carpeta dict
un diccionario que se encuentra en el archivo en-GB.dic
o en-GB.zip
, y verificará si la palabra house
está mal escrita o no y va a buscar Algunas sugerencias de ortografía.
node cli.js check "./dict" en-GB house
Para normalizar un archivo de diccionario, debe ejecutar el script que indica la ruta del archivo:
node cli.js normalize "./dict/en-GB.dic"
Si no desea anular el archivo original, puede especificar la ruta para un archivo de salida:
node cli.js normalize "./dict/en-GB.dic" "C:/output/en-GB.dic"
Hay varias formas en que puede integrar este módulo con Electron. Pero si desea un punto de partida, el siguiente ejemplo muestra cómo habilitar el diccionario inglés:
1) Instale el módulo como una dependencia de su proyecto ( npm install simple-spellchecker --save
).
2) En el proceso principal, requiera el módulo, cargue el diccionario y defina una función para acceder a sus métodos:
// 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) En el proceso del renderizador, defina un proveedor de correctores de ortografía que utiliza el diccionario cargado previamente.
// 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 ;
}
} ) ;
El módulo está parcialmente probado por el archivo test.js
(usando moca y chai ). Para ejecutar las pruebas, simplemente ejecute la npm test
de comando.
El corrector ortográfico simple es el software libre; Puede redistribuirlo y/o modificarlo bajo los términos de la licencia pública de Mozilla v2.0. Debería haber recibido una copia del MPL 2.0 junto con esta biblioteca, de lo contrario, puede obtener una en http://mozilla.org/mpl/2.0/.