Developer friendly
Natural Language Processing

The right balance of performance and accuracy in Node.js

Download Get started

Build amazing applications quickly

Multiple Models

We have a light model for English with many more on the way! Looking for something domain specific, or for a particular language? Feel free to get in touch!

All the NLP you’ll need

Powerful NLP functions and helpers to get you directly what you need. Whether its POS tags , sentiment analysis, custom entities, or getting a list of frequent words, it’s all right here!

Easy to use API

An intuitive API lets you get started quick and get the results you’re looking for.

const winkNLP = require('wink-nlp');
const its = require('wink-nlp/src/its.js');
const as = require('wink-nlp/src/as.js');
const model = require('wink-eng-lite-model');
const nlp = winkNLP(model);

const doc = nlp.readDoc(text);
// This runs all core NLP tasks like
// tokenization, sentence boundary
// detection, negation handling, sentiment
// analysis, part-of-speech tagging, and
// named and custom entitiy extraction.

var timeline = [];
  .filter( e => e.out( its.type ) === 'DATE')
  .each( e => {
      sentence: e
        .out( its.markedUpText ),
      date: e.out(),
      unixTime: new Date(e.out()).getTime()

timeline.sort( (a, b) => {
  return a.unixTime - b.unixTime

Text to Timeline

The above code takes text input and generates a timeline.
The following is from the NASA Wikipedia Article.

See Demo Get started
sample of a timeline output

+500,000 tokens/second

Full NLP pipeline - tokenization, SBD, sentiment analysis, POS and more

94.7% accuracy

PoS tagging on a subset of the WSJ corpus, including tokenization of raw text

80MB peak memory

When processing a 350 page book with over 125,000 tokens.

Open Source packages for NLP, ML and Statistics in Node JS to build production grade solutions

Sign up for updates

Get occasional updates from our team about new releases, guides and showcases.

Get in touch

We provide consulting, education, and mentoring services. Get in touch at

Visit @winkjs