← 开源
winkjs

wink-nlp

Developer friendly Natural Language Processing ✨

Model DevelopmentDomain-specific trainingJavaScript
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
1.39k
Star
65
Fork
+0
本周
10
贡献者
创建于 2018-12-15 · 更新于 2026-10-08 · 今日第 10473 名
主要开发者
sanjayaksaxenaprtksxnapimpale

winkjs/wink-nlp 排名第 10,473,有 1,394 个星标。

同类别比较

winkjs/wink-nlp 排名第 10,473,此处有 8 个同类条目;hendrycks/math 排名第 10,470。

同类别比较
名称排名指标
ljvmiranda921/pyswarms10,456
语言:
Python
星标数:
1,399
分叉数:
335
简介:
A research toolkit for particle swarm optimization in Python
Denys88/rl_games10,457
语言:
Jupyter Notebook
星标数:
1,398
分叉数:
222
简介:
RL implementations
swz30/MPRNet10,469
语言:
Python
星标数:
1,395
分叉数:
206
简介:
[CVPR 2021] Multi-Stage Progressive Image Restoration. SOTA results for Image deblurring, deraining, and denoising.
hendrycks/math10,470
语言:
Python
星标数:
1,394
分叉数:
116
简介:
The MATH Dataset (NeurIPS 2021)
JasperSnoek/spearmint10,477
语言:
Python
星标数:
1,392
分叉数:
332
简介:
Spearmint is a package to perform Bayesian optimization according to the algorithms outlined in the paper: Practical Bayesian Optimization of Machine Learning Algorithms. Jasper Snoek, Hugo Larochelle and Ryan P. Adams. Advances in Neural Information Processing Systems, 2012
Maluuba/nlg-eval10,478
语言:
Python
星标数:
1,392
分叉数:
224
简介:
Evaluation code for various unsupervised automated metrics for Natural Language Generation.
yinboc/liif10,481
语言:
Python
星标数:
1,392
分叉数:
157
简介:
Learning Continuous Image Representation with Local Implicit Image Function, in CVPR 2021 (Oral)
lucidrains/video-diffusion-pytorch10,484
语言:
Python
星标数:
1,391
分叉数:
142
简介:
Implementation of Video Diffusion Models, Jonathan Ho's new paper extending DDPMs to Video Generation - in Pytorch
关键参数与规格
关键参数与规格
参数值
语言JavaScript
类别Model Development
子类别Domain-specific training
星标数1,394
分叉数65
贡献者10
创建日期2018-12-15
更新日期2026-10-08
1 天星标数0
7 天星标数0
排名10,473
上次排名10,467
排名变化-6
7 天星标排名12,635
上次 7 天星标排名9,949
7 天星标排名变化-2,686
总星标排名8,594
上次总星标排名8,583
总星标排名变化-11
国家India
README 摘录

winkNLP Developer friendly Natural Language Processing ✨ WinkNLP is a JavaScript library for Natural Language Processing (NLP). Designed specifically to make development of NLP applications **easier** and **faster**, winkNLP is optimized for the right balance of performance and accuracy. Its word embedding support unlocks deeper text analysis. Represent words and text as numerical vectors with ease, bringing higher accuracy in tasks like semantic similarity, text classification, and beyond – even within a **browser**. It is built ground up with no external dependency

and has a lean code base of ~10Kb minified & gzipped. A test coverage of ~100% and compliance with the Open Source Security Foundation best practices make winkNLP the ideal tool for building production grade systems with confidence. WinkNLP with full Typescript support, runs on Node. Blazing fast WinkNLP can easily process large amount of raw text at speeds over **650,000 tokens/second** on a M1 Macbook Pro in both browser and Node. It even runs smoothly on a low

-end smartphone's browser. js | node benchmark/run | | Browser | How to measure winkNLP's speed on browsers? | Features WinkNLP has a comprehensive natural language processing (NLP) pipeline covering tokenization, sentence boundary detection (sbd), negation handling, sentiment analysis, part-of-speech (pos) tagging, named entity recognition (ner), custom entities recognition (cer). It offers a rich feature set: 🐎 Fast, lossless & multilingual tokenizer For example, the multilingual text string is tokenized as . The tokenizer processes text at a speed close to 4 million tokens/second

on a M1 MBP's browser. ✨ Developer friendly and intuitive API With winkNLP, process any text using a simple, declarative syntax; most live examples have 30-40 lines of code. 🖼 Best-in-class text visualization Programmatically mark tokens, sentences, entities, etc. using HTML mark or any other tag of your choice. ♻️ Extensive text processing features Remove and/or retain tokens with specific attributes such as part-of-speech, named entity type, token type, stop word, shape and many more; compute Flesch

reading ease score; generate n-grams; normalize, lemmatise or stem. Checkout how with the right kind of text preprocessing, even Naive Bayes classifier achieves impressive (≥90%) accuracy in sentiment analysis and chatbot intent classification tasks. 🔠 Pre-trained language models Compact sizes starting from ~1MB (minified & gzipped) – reduce model loading time drastically down to ~1 second on a 4G network. ↗️ Word vectors 100-dimensional English word embeddings for over 350K English words, which are optimized for winkNLP. Allows easy computation of

sentence or document embeddings. Utilities & Tools 💼 BM25 Vectorizer Similarity methods – Cosine, Tversky, Sørensen-Dice, Otsuka-Ochiai its & as helpers to get Bag of Words, Frequency table, Lemma, Stem, Stop word removal, Negation handling and many more. Installation Use npm install: In order to use winkNLP after its installation, you also need to install a language model according to the node version used. The table below outlines the version specific installation command: | Node. It can also work on browsers as

described in the next section. The second command installs the wink-eng-lite-model, which works with Node. How to

常见问题

记录了多少星标和分叉?

winkjs/wink-nlp 有 1,394 个星标和 65 个分叉。

仓库排名是多少?

winkjs/wink-nlp 排名第 10,473。

记录的语言和类别是什么?

winkjs/wink-nlp 有 1,394 个星标,语言为 JavaScript,类别为 Model Development。

哪个仓库排名最接近?

winkjs/wink-nlp 与 hendrycks/math 比较,后者排名第 10,470,有 1,394 个星标。

README

winkNLP

Developer friendly Natural Language Processing ✨

WinkNLP is a JavaScript library for Natural Language Processing (NLP). Designed specifically to make development of NLP applications easier and faster, winkNLP is optimized for the right balance of performance and accuracy.

Its word embedding support unlocks deeper text analysis. Represent words and text as numerical vectors with ease, bringing higher accuracy in tasks like semantic similarity, text classification, and beyond – even within a browser.

It is built ground up with no external dependency and has a lean code base of ~10Kb minified & gzipped. A test coverage of ~100% and compliance with the Open Source Security Foundation best practices make winkNLP the ideal tool for building production grade systems with confidence.

WinkNLP with full Typescript support, runs on Node.js, web browsers and Deno.

Build amazing apps quickly

Wikipedia article timeline Context aware word cloud Key sentences detection

Head to live examples to explore further.

Blazing fast

WinkNLP can easily process large amount of raw text at speeds over 650,000 tokens/second  on a M1 Macbook Pro in both browser and Node.js environments. It even runs smoothly on a low-end smartphone's browser.

Environment Benchmarking Command
Node.js node benchmark/run
Browser How to measure winkNLP's speed on browsers?

Features

WinkNLP has a comprehensive natural language processing (NLP) pipeline covering tokenization, sentence boundary detection (sbd), negation handling, sentiment analysis, part-of-speech (pos) tagging, named entity recognition (ner), custom entities recognition (cer). It offers a rich feature set:

🐎 Fast, lossless & multilingual tokenizer

For example, the multilingual text string "¡Hola! नमस्कार! Hi! Bonjour chéri" is tokenized as ["¡", "Hola", "!", "नमस्कार", "!", "Hi", "!", "Bonjour", "chéri"]. The tokenizer processes text at a speed close to 4 million tokens/second on a M1 MBP's browser.

✨ Developer friendly and intuitive API

With winkNLP, process any text using a simple, declarative syntax; most live examples have 30-40 lines of code.

🖼 Best-in-class text visualization

Programmatically mark tokens, sentences, entities, etc. using HTML mark or any other tag of your choice.

♻️ Extensive text processing features

Remove and/or retain tokens with specific attributes such as part-of-speech, named entity type, token type, stop word, shape and many more; compute Flesch reading ease score; generate n-grams; normalize, lemmatise or stem. Checkout how with the right kind of text preprocessing, even Naive Bayes classifier achieves impressive (≥90%) accuracy in sentiment analysis and chatbot intent classification tasks.

🔠 Pre-trained language models

Compact sizes starting from ~1MB (minified & gzipped) – reduce model loading time drastically down to ~1 second on a 4G network.

↗️ Word vectors

100-dimensional English word embeddings for over 350K English words, which are optimized for winkNLP. Allows easy computation of sentence or document embeddings.

Utilities & Tools 💼

Documentation

  • Concepts — everything you need to know to get started.
  • API Reference — explains usage of APIs with examples.
  • Change log — version history along with the details of breaking changes, if any.
  • Examples — live examples with code to give you a head start.

Installation

Use npm install:

npm install wink-nlp --save

In order to use winkNLP after its installation, you also need to install a language model according to the node version used. The table below outlines the version specific installation command:

Node.js Version Installation
16 or 18 npm install wink-eng-lite-web-model --save
14 or 12 node -e "require('wink-nlp/models/install')"

The wink-eng-lite-web-model is designed to work with Node.js version 16 or 18. It can also work on browsers as described in the next section. This is the recommended model.

The second command installs the wink-eng-lite-model, which works with Node.js version 14 or 12.

How to configure TypeScript project

Enable esModuleInterop and allowSyntheticDefaultImports in the tsconfig.json file:

"compilerOptions": {
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    ...
}

How to install for Web Browser

If you’re using winkNLP in the browser use the wink-eng-lite-web-model. Learn about its installation and usage in our guide to using winkNLP in the browser. Explore winkNLP recipes on Observable for live browser based examples.

How to run on Deno

Follow the example on replit.

Get started

Here is the "Hello World!" of winkNLP:

// Load wink-nlp package.
const winkNLP = require( 'wink-nlp' );
// Load english language model.
const model = require( 'wink-eng-lite-web-model' );
// Instantiate winkNLP.
const nlp = winkNLP( model );
// Obtain "its" helper to extract item properties.
const its = nlp.its;
// Obtain "as" reducer helper to reduce a collection.
const as = nlp.as;
 
// NLP Code.
const text = 'Hello   World🌎! How are you?';
const doc = nlp.readDoc( text );
 
console.log( doc.out() );
// -> Hello   World🌎! How are you?
 
console.log( doc.sentences().out() );
// -> [ 'Hello   World🌎!', 'How are you?' ]
 
console.log( doc.entities().out( its.detail ) );
// -> [ { value: '🌎', type: 'EMOJI' } ]
 
console.log( doc.tokens().out() );
// -> [ 'Hello', 'World', '🌎', '!', 'How', 'are', 'you', '?' ]
 
console.log( doc.tokens().out( its.type, as.freqTable ) );
// -> [ [ 'word', 5 ], [ 'punctuation', 2 ], [ 'emoji', 1 ] ]

Experiment with winkNLP on RunKit.

Speed & Accuracy

The winkNLP processes raw text at ~650,000 tokens per second with its wink-eng-lite-web-model, when benchmarked using "Ch 13 of Ulysses by James Joyce" on a M1 Macbook Pro machine with 16GB RAM. The processing included the entire NLP pipeline — tokenization, sentence boundary detection, negation handling, sentiment analysis, part-of-speech tagging, and named entity extraction. This speed is way ahead of the prevailing speed benchmarks.

The benchmark was conducted on Node.js versions 16, and 18.

It pos tags a subset of WSJ corpus with an accuracy of ~95% — this includes tokenization of raw text prior to pos tagging. The present state-of-the-art is at ~97% accuracy but at lower speeds and is generally computed using gold standard pre-tokenized corpus.

Its general purpose sentiment analysis delivers a f-score of ~84.5%, when validated using Amazon Product Review Sentiment Labelled Sentences Data Set at UCI Machine Learning Repository. The current benchmark accuracy for specifically trained models can range around 95%.

Memory Requirement

Wink NLP delivers this performance with the minimal load on RAM. For example, it processes the entire History of India Volume I with a total peak memory requirement of under 80MB. The book has around 350 pages which translates to over 125,000 tokens.

Need Help?

Usage query 👩🏽‍💻

Please ask at Stack Overflow or discuss at Wink JS GitHub Discussions or chat with us at Wink JS Gitter Lobby.

Bug report 🐛

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

New feature 🌟

Looking for a new feature, request it via the new features & ideas discussion forum or consider becoming a contributor.

About winkJS

WinkJS is a family of open source packages for Natural Language Processing, Machine Learning, and Statistical Analysis 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 is copyright 2017-25 GRAYPE Systems Private Limited.

It is licensed under the terms of the MIT License.

排名相邻
同类项目