node-crfsuite
A nodejs binding for crfsuite
This is a link to the CRFSuite library written by Naoaki Okazaki. CRF or Conditional Random Fields are a class of statistical modeling method often applied in pattern recognition and machine learning and used for structured prediction.
Installation
For most "standard" use cases (on Mac, Linux, or Windows on a x86 or x64 processor), node-crfsuite
will install easy with:
npm install crfsuite
API Usage
CRFSuite Tagger
const crfsuite = const tagger = let is_opened = taggerconsole let tags = taggerconsole
CRFSuite Trainer
const path = const crfsuite = const trainer = debug: true let model_filename = path let xseq = 'walk' 'walk' 'shop' 'clean' 'shop'let yseq = 'sunny' 'sunny' 'rainy' // submit training data to the trainertrainertrainer // output: ./model.crfsuite
Installation Special Cases
We use node-pre-gyp to compile and publish binaries of the library for most common use cases (Linux, Mac, Windows on standard processor platforms). If you have a special case, node-crfsuite
will work, but it will compile the binary during the install. Compiling with nodejs is done via node-gyp which requires Python 2.x, so please ensure you have it installed and in your path for all operating systems. Python 3.x will not work.
Build from source
# clone the project git clone --recursive https://github.com/vunb/node-crfsuite.git # go to working folder cd node-crfsuite # install dependencies and build the binary npm install
For development:
# rebuild npm run build # run unit-test npm test
Change Log
2019-07-18: Release version 1.0.0
- Convert all sources to use N-API, remove
nan
- Add typescript declaration file
- Cleanup package dependencies
- CI Tool run & test only in node version 10 LTS
- Add project convention:
.gitattributes
,.editorconfig
- Enforced to use
new
keyword to create new Tagger and Trainer
2019-06-09: uses N-API
From crfsuite@0.9.6
the library uses N-API
to use the binary in multiple version of Node.
- Acording to Node.js Foundation: With N-API, native module developers can compile their module once per platform and architecture, and make it available for any version of Node.js that implements N-API. This holds true even for versions of Node.js that are built with a different VM, e.g. Node-ChakraCore.
Contributing
Pull requests and stars are highly welcome.
For bugs and feature requests, please create an issue.