WinkNLP est une bibliothèque JavaScript pour le traitement du langage naturel (NLP). Conçu spécifiquement pour rendre le développement d'applications NLP plus facile et plus rapide , winkNLP est optimisé pour le bon équilibre entre performances et précision.
Sa prise en charge de l'intégration de mots permet une analyse de texte plus approfondie. Représentez facilement les mots et le texte sous forme de vecteurs numériques, apportant ainsi une plus grande précision dans des tâches telles que la similarité sémantique, la classification de texte et au-delà, même dans un navigateur .
Il est construit sans dépendance externe et dispose d'une base de code allégée d'environ 10 Ko minifié et compressé. Une couverture de tests d'environ 100 % et la conformité aux meilleures pratiques de l'Open Source Security Foundation font de winkNLP l'outil idéal pour créer des systèmes de production en toute confiance.
WinkNLP avec prise en charge complète de Typescript, fonctionne sur Node.js, les navigateurs Web et Deno.
Chronologie des articles Wikipédia | Nuage de mots contextuel | Détection de phrases clés |
---|---|---|
Rendez-vous sur des exemples concrets pour explorer davantage.
WinkNLP peut facilement traiter une grande quantité de texte brut à des vitesses supérieures à 650 000 jetons/seconde sur un Macbook Pro M1 dans les environnements de navigateur et Node.js. Il fonctionne même sans problème sur le navigateur d'un smartphone bas de gamme.
Environnement | Commande d'analyse comparative |
---|---|
Noeud.js | test/exécution du nœud |
Navigateur | Comment mesurer la vitesse de winkNLP sur les navigateurs ? |
WinkNLP dispose d'un pipeline complet de traitement du langage naturel (NLP) couvrant la tokenisation, la détection des limites de phrases (sbd), la gestion des négations, l'analyse des sentiments, le marquage des parties du discours (pos), la reconnaissance d'entités nommées (ner), la reconnaissance d'entités personnalisées (cer) . Il offre un riche ensemble de fonctionnalités :
? Tokenizer rapide, sans perte et multilingue | Par exemple, la chaîne de texte multilingue "¡Hola! नमस्कार! Hi! Bonjour chéri" est symbolisée par ["¡", "Hola", "!", "नमस्कार", "!", "Hi", "!", "Bonjour", "chéri"] . Le tokenizer traite le texte à une vitesse proche de 4 millions de jetons/seconde sur le navigateur d'un M1 MBP. |
API conviviale et intuitive pour les développeurs | Avec winkNLP, traitez n'importe quel texte en utilisant une syntaxe simple et déclarative ; la plupart des exemples réels contiennent 30 à 40 lignes de code. |
? Visualisation de texte de premier ordre | Marquez par programme des jetons, des phrases, des entités, etc. à l'aide d'une marque HTML ou de toute autre balise de votre choix. |
♻️ Fonctionnalités étendues de traitement de texte | Supprimez et/ou conservez les jetons avec des attributs spécifiques tels qu'une partie du discours, le type d'entité nommée, le type de jeton, le mot vide, la forme et bien d'autres ; calculer le score de facilité de lecture de Flesch ; générer des n-grammes ; normaliser, lemmatiser ou tiger. Découvrez comment, avec le bon type de prétraitement de texte, même le classificateur Naive Bayes atteint une précision impressionnante (≥ 90 %) dans les tâches d'analyse des sentiments et de classification des intentions des chatbots. |
? Modèles de langage pré-entraînés | Tailles compactes à partir de ~ 1 Mo (minifié et gzippé) – réduisez considérablement le temps de chargement du modèle à ~ 1 seconde sur un réseau 4G. |
Intégrations de mots anglais en 100 dimensions pour plus de 350 000 mots anglais, optimisés pour winkNLP. Permet de calculer facilement des intégrations de phrases ou de documents. |
Utilisez l'installation npm :
npm install wink-nlp --save
Afin d'utiliser winkNLP après son installation, vous devez également installer un modèle de langage en fonction de la version du nœud utilisée. Le tableau ci-dessous présente la commande d'installation spécifique à la version :
Version Node.js | Installation |
---|---|
16 ou 18 ans | npm install wink-eng-lite-web-model --save |
14 ou 12 | node -e "require('wink-nlp/models/install')" |
Le modèle wink-eng-lite-web est conçu pour fonctionner avec Node.js version 16 ou 18. Il peut également fonctionner sur les navigateurs comme décrit dans la section suivante. C'est le modèle recommandé .
La deuxième commande installe le modèle wink-eng-lite, qui fonctionne avec Node.js version 14 ou 12.
Activez esModuleInterop
et allowSyntheticDefaultImports
dans le fichier tsconfig.json
:
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
...
}
Si vous utilisez winkNLP dans le navigateur, utilisez le modèle wink-eng-lite-web. Découvrez son installation et son utilisation dans notre guide d'utilisation de winkNLP dans le navigateur. Explorez les recettes winkNLP sur Observable pour des exemples basés sur un navigateur en direct.
Suivez l'exemple sur replit.
Voici le "Bonjour tout le monde !" de clin d'œilNLP :
// 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 ] ]
Expérimentez avec winkNLP sur RunKit.
Le winkNLP traite le texte brut à environ 650 000 jetons par seconde avec son modèle web wink-eng-lite, lorsqu'il est comparé à l'aide de « Ch 13 of Ulysses by James Joyce » sur une machine Macbook Pro M1 avec 16 Go de RAM. Le traitement comprenait l'ensemble du pipeline NLP : tokenisation, détection des limites de phrase, gestion de la négation, analyse des sentiments, marquage de parties du discours et extraction d'entités nommées. Cette vitesse est bien supérieure aux références de vitesse en vigueur.
Le benchmark a été réalisé sur les versions 16 et 18 de Node.js.
Il balise un sous-ensemble du corpus WSJ avec une précision d' environ 95 % - cela inclut la tokenisation du texte brut avant le balisage post . L'état de la technique actuel a une précision d'environ 97 % mais à des vitesses inférieures et est généralement calculé à l'aide d'un corpus pré-tokenisé de référence.
Son analyse des sentiments à usage général fournit un f-score d' environ 84,5 % , lorsqu'elle est validée à l'aide de l'ensemble de données de phrases étiquetées sur les sentiments d'Amazon Product Review dans le référentiel UCI Machine Learning. La précision de référence actuelle pour les modèles spécifiquement entraînés peut osciller autour de 95 %.
Wink NLP offre ces performances avec une charge minimale sur la RAM. Par exemple, il traite l'intégralité de l'Histoire de l'Inde, Volume I, avec un besoin de mémoire maximal total inférieur à 80 Mo. Le livre compte environ 350 pages, ce qui correspond à plus de 125 000 jetons.
Veuillez demander à Stack Overflow ou discuter sur Wink JS GitHub Discussions ou discuter avec nous au Wink JS Gitter Lobby.
Si vous repérez un bug et qu'il n'a pas encore été signalé, soulevez un nouveau problème ou envisagez de le corriger et d'envoyer un PR.
Vous recherchez une nouvelle fonctionnalité, demandez-la via le forum de discussion nouvelles fonctionnalités et idées ou envisagez de devenir contributeur.
WinkJS est une famille de packages open source pour le traitement du langage naturel , l'apprentissage automatique et l'analyse statistique dans NodeJS. Le code est soigneusement documenté pour une compréhension humaine facile et a une couverture de tests d'environ 100 % pour la fiabilité permettant de créer des solutions de qualité production.
Wink NLP est protégé par copyright 2017-24 GRAYPE Systems Private Limited.
Il est sous licence selon les termes de la licence MIT.