Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including wink-nlp-utils with all npm packages installed. Try it out:

// Load wink-nlp-utils var nlp = require( 'wink-nlp-utils' ); // Extract person's name from a string: var name = nlp.string.extractPersonsName( 'Dr. Sarah Connor M. Tech., PhD. - AI' ); console.log( name ); // eslint-disable-line no-console // -> 'Sarah Connor' // Compose all possible sentences from a string: var str = '[I] [am having|have] [a] [problem|question]'; console.log( nlp.string.composeCorpus( str ) ); // eslint-disable-line no-console // -> [ 'I am having a problem', // -> 'I am having a question', // -> 'I have a problem', // -> 'I have a question' ] // Sentence Boundary Detection. var para = 'AI Inc. is focussing on AI. I work for AI Inc. My mail is r2d2@yahoo.com'; console.log( nlp.string.sentences( para ) ); // eslint-disable-line no-console // -> [ 'AI Inc. is focussing on AI.', // 'I work for AI Inc.', // 'My mail is r2d2@yahoo.com' ] // Tokenize a sentence. var s = 'For details on wink, check out http://winkjs.org/ URL!'; console.log( nlp.string.tokenize( s, true ) ); // eslint-disable-line no-console // -> [ { value: 'For', tag: 'word' }, // { value: 'details', tag: 'word' }, // { value: 'on', tag: 'word' }, // { value: 'wink', tag: 'word' }, // { value: ',', tag: 'punctuation' }, // { value: 'check', tag: 'word' }, // { value: 'out', tag: 'word' }, // { value: 'http://winkjs.org/', tag: 'url' }, // { value: 'URL', tag: 'word' }, // { value: '!', tag: 'punctuation' } ] // Remove stop words: var t = nlp.tokens.removeWords( [ 'mary', 'had', 'a', 'little', 'lamb' ] ); console.log( t ); // eslint-disable-line no-console // -> [ 'mary', 'little', 'lamb' ]

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

wink-nlp-utils v2.0.3

NLP Functions for amplifying negations, managing elisions, creating ngrams, stems, phonetic codes to tokens and more.

wink-nlp-utils

NLP Functions for amplifying negations, managing elisions, creating ngrams, stems, phonetic codes to tokens and more.

Build Status Coverage Status Inline docs dependencies Status devDependencies Status Gitter

Prepare raw text for Natural Language Processing (NLP) using wink-nlp-utils. It offers a set of APIs to work on strings such as names, sentences, paragraphs and tokens represented as an array of strings/words. They perform the required pre-processing for many ML tasks such as semantic search, and classification.

Installation

Use npm to install:

npm install wink-nlp-utils --save

Getting Started

The wink-nlp-utils provides over 36 utility functions for Natural Language Processing tasks. Some representative examples are extracting person's name from a string, compose training corpus for a chat bot, sentence boundary detection, tokenization and stop words removal:


// Load wink-nlp-utils
var nlp = require( 'wink-nlp-utils' );

// Extract person's name from a string:
var name = nlp.string.extractPersonsName( 'Dr. Sarah Connor M. Tech., PhD. - AI' );
console.log( name );
// -> 'Sarah Connor'

// Compose all possible sentences from a string:
var str = '[I] [am having|have] [a] [problem|question]';
console.log( nlp.string.composeCorpus( str ) );
// -> [ 'I am having a problem',
// ->   'I am having a question',
// ->   'I have a problem',
// ->   'I have a question' ]

// Sentence Boundary Detection.
var para = 'AI Inc. is focussing on AI. I work for AI Inc. My mail is r2d2@yahoo.com';
console.log( nlp.string.sentences( para ) );
// -> [ 'AI Inc. is focussing on AI.',
//      'I work for AI Inc.',
//      'My mail is r2d2@yahoo.com' ]

// Tokenize a sentence.
var s = 'For details on wink, check out http://winkjs.org/ URL!';
console.log( nlp.string.tokenize( s, true ) );
// -> [ { value: 'For', tag: 'word' },
//      { value: 'details', tag: 'word' },
//      { value: 'on', tag: 'word' },
//      { value: 'wink', tag: 'word' },
//      { value: ',', tag: 'punctuation' },
//      { value: 'check', tag: 'word' },
//      { value: 'out', tag: 'word' },
//      { value: 'http://winkjs.org/', tag: 'url' },
//      { value: 'URL', tag: 'word' },
//      { value: '!', tag: 'punctuation' } ]

// Remove stop words:
var t = nlp.tokens.removeWords( [ 'mary', 'had', 'a', 'little', 'lamb' ] );
console.log( t );
// -> [ 'mary', 'little', 'lamb' ]

Try experimenting with these examples on Runkit in the browser.

Documentation

Check out the wink NLP utilities API documentation to learn more.

Need Help?

If you spot a bug and the same has not yet been reported, raise a new issue or consider fixing it and sending a pull request.

About wink

Wink is a family of open source packages for Statistical Analysis, Natural Language Processing and Machine Learning in NodeJS. The code is thoroughly documented for easy human comprehension and has a test coverage of ~100% for reliability to build production grade solutions.

Copyright & License

wink-nlp-utils is copyright 2017-18 GRAYPE Systems Private Limited.

It is licensed under the terms of the MIT License.

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free