wink breaks AI down into simple building blocks

NLP

Wish to make sense out of large corpus? We help you break paragraphs into sentences, tokenize sentences, and pos tag them.

Machine Learning

Have a data set? Give it to the machine to make predictions using our classifier or regression tree.

Statistics

In the end, it's all numbers and maths. Use statistics package for fast and numerically stable analysis.


// Load wink-pos-tagger.
var posTagger = require( 'wink-pos-tagger' );

// Create an instance of the pos tagger.
var tagger = posTagger();

// Tag the sentence using the tag sentence api.
tagger.tagSentence( '@FeminismInIndia👧 conducted a workshop at #AmbedkarUniversity on "online safety" recently:-)! reach us at info@feminisminindia.com. #DigitalSaftey http://bit.ly/2F2m9rL' );
    

Get Started

All packages expose consistent and uniform APIs, thus minimizing the need to learn a new interface for each task. With a comprehensive API documentation, you can be immediately productive.

Browse on NPM






Simple & Mature

wink is designed to help you focus on the task at hand. No complexities! Just simple functions, some JSON and zero-configuration is enough to get you started.

Designed to work with Node.js streams, it delivers high performance scale.

Read Documentation

var lemmatize = require( 'wink-lemmatizer' );
lemmatize.adjective( 'farthest' );
// -> 'far'
    
var sentiment = require( 'wink-sentiment' );
sentiment( 'Excited to be part of the @imascientist team:-)!' );
// -> { score: 5,
//      normalizedScore: 2.5,
//      tokenizedPhrase: [
//        { value: 'Excited', tag: 'word', score: 3 },
//        { value: 'to', tag: 'word' },
//        { value: 'be', tag: 'word' },
//        { value: 'part', tag: 'word' },
//        { value: 'of', tag: 'word' },
//        { value: 'the', tag: 'word' },
//        { value: '@imascientist', tag: 'mention' },
//        { value: 'team', tag: 'word' },
//        { value: ':-)', tag: 'emoticon', score: 2 },
//        { value: '!', tag: 'punctuation' }
//      ]
//    }
    







// Obtain wink's streaming api for standard deviation.
var stdev = require( 'wink-statistics' ).streaming.stdev();
// Use split2 package to break stream at every new line.
var split = require( 'split2' );
// Configuration to compute outliers.
const minDataSize = 3; // Min # data points to process before outliers detection begins
const useOutlier = false; // Use outlier data to update mean & standard deviation
const multiplier = 2.5; // Used to flag a value as outlier if it is > multiplier x std dev.
// Setup a pipe for standard input
process.stdin.pipe( split() ).on( 'data', function ( data ) {
  const value = +data;
  const r = stdev.result();
  const isOutlier = (r.size && (r.size >= minDataSize) &&
    ((value > (r.mean + multiplier*r.stdev)) || (value < (r.mean - multiplier*r.stdev))));
  if  ( isOutlier ) {
    console.log( 'Outlier: %d', value );
    if ( useOutlier ) stdev.compute( value );
  } else stdev.compute( value );
} );
    

Possibilities are endless

Detect outliers in a stream of real numbers in near real time, or process large text corpus, or let machine do some learning for you. There are no limits!

You can even run your code on a Raspberry Pi.

Try in sandbox

Sign up for updates!

Get occasional updates from our team about new tools and guides.