NLP.js
An NLP library for building bots
...Search the best substring of a string with less Levenshtein distance to a given pattern. Get stemmers and tokenizers for several languages. Sentiment Analysis for phrases (with negation support). Named Entity Recognition and management, multi-language support, and acceptance of similar strings, so the introduced text does not need to be exact. Natural Language Processing Classifier, to classify an utterance into intents. NLP Manager, a tool able to manage several languages, the Named Entities for each language, the utterances, and intents for the training of the classifier, and for a given utterance return the entity extraction, the intent classification and the sentiment analysis.