nodehun-sentences

2.0.1 • Public • Published

nodehun-sentences

Version npmBuild Status

nodehun is a great library for interacting with hunspell from node.js. It's fairly low-level, however, letting you check one word at a time. nodehun-sentences lets you easily check whole sentences or chunks of text for errors.

It asynchronously checks all the words and returns with a result array containing all the encountered typos. For each typo, you will also get an array of all the positions within the string where the typo was encountered, so you can easily visualize all errors.

Installation

$ npm install --save nodehun-sentences

Usage

const spellcheck = require('nodehun-sentences')
 
spellcheck(nodehunInstance, textToCheck, (err, typos) => {
  // NOTE: `err` does NOT contain whether typos was found -
  // it returns any actual *errors* (not being passed a
  // valid instance of nodehun, for instance)
  if (err) {
    throw err
  }
 
  // `typos` is an array of all typos, each one an object containing:
  //   - `word`: the word which was concidered a typo (string)
  //   - `suggestions`: list of suggestions (array of strings)
  //   - `positions`: list of positions where the typo was found (array of objects)
  typos.forEach(function(typo) {
    console.log('"' + typo.word + '" is not a valid word')
    console.log('found ' + typo.positions.length + ' occurences')
  })
 
  // Each entry in `typo.positions` contains the following keys:
  //   - `from`: The start offset for the typo within the text (integer)
  //   - `to`: The end offset for the typo within the text (integer)
  //   - `length`: Word length (integer)
  textToCheck.substring(typo[0].from, typo[0].to) === typo[0].word
})

Taken from examples/spellcheck.js:

const fs = require('fs')
const spellcheck = require('nodehun-sentences')
const nodehun = require('nodehun')
const hunspell = new nodehun(
  fs.readFileSync('path/to/dictionary.aff'),
  fs.readFileSync('path/to/dictionary.dic')
)
 
const text = 'This is some text we want to ceck for typos'
 
spellcheck(hunspell, text, function(err, typos) {
  if (err) {
    throw err
  }
 
  console.log(typos)
 
  typos == [{
    word: 'ceck',
    suggestions: [
      'check',
      'neck',
      'deck',
      'peck'
      // ...
    ],
    positions: [{
      from: 29,
      to: 33,
      length: 4
    }]
  }]
})
 

License

MIT-licensed. See LICENSE.

Package Sidebar

Install

npm i nodehun-sentences

Weekly Downloads

57

Version

2.0.1

License

MIT

Unpacked Size

8.4 kB

Total Files

6

Last publish

Collaborators

  • rexxars