gitextract_o01b_1hw/ ├── .eslintignore ├── .eslintrc ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── ISSUE_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ └── node.js.yml ├── .gitignore ├── .npmignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── docs/ │ ├── v3/ │ │ ├── NLU_evaluation.xlsx │ │ ├── README.md │ │ ├── bayes-nlu.md │ │ ├── benchmarking.md │ │ ├── binary-relevance-nlu.md │ │ ├── brain-nlu.md │ │ ├── builtin-duckling.md │ │ ├── builtin-entity-extraction.md │ │ ├── example-of-use.md │ │ ├── example-with-languages.md │ │ ├── installation.md │ │ ├── language-guesser.md │ │ ├── language-support.md │ │ ├── loading-from-excel.md │ │ ├── logistic-regression-nlu.md │ │ ├── microsoft-bot-framework.md │ │ ├── ner-manager.md │ │ ├── nlp-manager.md │ │ ├── nlu-manager.md │ │ ├── sentiment-analysis.md │ │ ├── similar-search.md │ │ ├── slot-filling.md │ │ └── static/ │ │ ├── BinaryNeuralNetworkClassifier.html │ │ ├── Classifier.html │ │ ├── ConversationContext.html │ │ ├── DutchStemmer.html │ │ ├── EnglishStemmer.html │ │ ├── EnumNamedEntity.html │ │ ├── Evaluator.html │ │ ├── HungarianStemmer.html │ │ ├── ItalianStemmer.html │ │ ├── Language.html │ │ ├── LogisticRegressionClassifier.html │ │ ├── Matrix.html │ │ ├── MemoryConversationContext.html │ │ ├── NamedEntity.html │ │ ├── NerManager.html │ │ ├── NlgManager.html │ │ ├── NlpClassifier.html │ │ ├── NlpManager.html │ │ ├── NorwegianStemmer.html │ │ ├── PortugueseStemmer.html │ │ ├── Recognizer.html │ │ ├── RegexNamedEntity.html │ │ ├── RomanianStemmer.html │ │ ├── RussianStemmer.html │ │ ├── SentimentAnalyzer.html │ │ ├── SentimentManager.html │ │ ├── SimilarSearch.html │ │ ├── SlotManager.html │ │ ├── StemmerJa.html │ │ ├── SwedishStemmer.html │ │ ├── Tokenizer.html │ │ ├── TrimNamedEntity.html │ │ ├── TurkishStemmer.html │ │ ├── Vector.html │ │ ├── XTable.html │ │ ├── classifiers_binary-neural-network-classifier.js.html │ │ ├── classifiers_classifier.js.html │ │ ├── classifiers_logistic-regression-classifier.js.html │ │ ├── global.html │ │ ├── index.html │ │ ├── language_language.js.html │ │ ├── math_mathops.js.html │ │ ├── math_matrix.js.html │ │ ├── math_vector.js.html │ │ ├── ner_enum-named-entity.js.html │ │ ├── ner_named-entity.js.html │ │ ├── ner_ner-manager.js.html │ │ ├── ner_regex-named-entity.js.html │ │ ├── ner_trim-named-entity.js.html │ │ ├── nlg_nlg-manager.js.html │ │ ├── nlp_nlp-classifier.js.html │ │ ├── nlp_nlp-manager.js.html │ │ ├── nlp_nlp-util.js.html │ │ ├── nlp_stemmers_dutch-stemmer.js.html │ │ ├── nlp_stemmers_english-stemmer.js.html │ │ ├── nlp_stemmers_hungarian-stemmer.js.html │ │ ├── nlp_stemmers_italian-stemmer.js.html │ │ ├── nlp_stemmers_natural_porter-stemmer-fr.js.html │ │ ├── nlp_stemmers_natural_porter-stemmer-pt.js.html │ │ ├── nlp_stemmers_natural_stemmer-ja.js.html │ │ ├── nlp_stemmers_natural_token.js.html │ │ ├── nlp_stemmers_norwegian-stemmer.js.html │ │ ├── nlp_stemmers_portuguese-stemmer.js.html │ │ ├── nlp_stemmers_romanian-stemmer.js.html │ │ ├── nlp_stemmers_russian-stemmer.js.html │ │ ├── nlp_stemmers_swedish-stemmer.js.html │ │ ├── nlp_stemmers_turkish-stemmer.js.html │ │ ├── nlp_tokenizers_tokenizer.js.html │ │ ├── recognizer_conversation-context.js.html │ │ ├── recognizer_memory-conversation-context.js.html │ │ ├── recognizer_recognizer.js.html │ │ ├── scripts/ │ │ │ ├── linenumber.js │ │ │ └── prettify/ │ │ │ ├── Apache-License-2.0.txt │ │ │ ├── lang-css.js │ │ │ └── prettify.js │ │ ├── sentiment_sentiment-analyzer.js.html │ │ ├── sentiment_sentiment-manager.js.html │ │ ├── slot_slot-manager.js.html │ │ ├── styles/ │ │ │ ├── jsdoc-default.css │ │ │ ├── prettify-jsdoc.css │ │ │ └── prettify-tomorrow.css │ │ ├── util_evaluator.js.html │ │ ├── util_similar-search.js.html │ │ ├── xtables_xtable-utils.js.html │ │ └── xtables_xtable.js.html │ └── v4/ │ ├── console-connector.md │ ├── core/ │ │ ├── arr-to-obj.md │ │ ├── file-system.md │ │ ├── logger.md │ │ ├── normalizer.md │ │ ├── obj-to-arr.md │ │ ├── stopwords.md │ │ ├── timer.md │ │ └── uuid.md │ ├── emoji.md │ ├── language-support.md │ ├── logger.md │ ├── mini-faq.md │ ├── ner-manager.md │ ├── ner-quickstart.md │ ├── neural.md │ ├── nlp-intent-logics.md │ ├── nlp-manager.md │ ├── nlu.md │ ├── qna.md │ ├── quickstart.md │ ├── similarity.md │ ├── slot-filling.md │ └── webandreact.md ├── examples/ │ ├── 01-container/ │ │ ├── README.md │ │ ├── index.js │ │ ├── pipelines.md │ │ └── plugins/ │ │ ├── join.js │ │ ├── lower.js │ │ ├── reverse.js │ │ ├── split.js │ │ └── upperFirst.js │ ├── 02-qna-classic/ │ │ ├── index.js │ │ └── train-nlp.js │ ├── 03-qna-pipelines/ │ │ ├── conf.json │ │ ├── corpus.json │ │ ├── index.js │ │ └── pipelines.md │ ├── 04-qna-web/ │ │ ├── conf.json │ │ ├── corpus.json │ │ ├── index.js │ │ └── pipelines.md │ ├── 05-qna-dual/ │ │ ├── conf.json │ │ ├── corpus.json │ │ ├── index.js │ │ └── pipelines.md │ ├── 06-huge-ner/ │ │ ├── airports.json │ │ ├── conf.json │ │ ├── corpus.json │ │ ├── index.js │ │ └── pipelines.md │ ├── 07-nlpjs-on-aws-lambda/ │ │ ├── README.md │ │ ├── nlpjs-lambda/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── events/ │ │ │ │ └── event.json │ │ │ ├── hello-world/ │ │ │ │ ├── .npmignore │ │ │ │ ├── app.js │ │ │ │ ├── package.json │ │ │ │ └── tests/ │ │ │ │ └── unit/ │ │ │ │ └── test-handler.js │ │ │ ├── nlpjs/ │ │ │ │ ├── .npmignore │ │ │ │ ├── app.js │ │ │ │ ├── engine.js │ │ │ │ └── package.json │ │ │ └── template.yaml │ │ └── nlpjs-lambda-with-DynamoDB/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── nlpjs/ │ │ │ ├── .npmignore │ │ │ ├── app.js │ │ │ ├── engine.js │ │ │ └── package.json │ │ ├── schema.json │ │ └── template.yaml │ ├── 08-neural-network/ │ │ ├── 01-basic-usage.js │ │ ├── 02-export-import.js │ │ ├── 03-activate-log.js │ │ ├── 04-custom-log.js │ │ ├── 05-change-parameters.js │ │ ├── README.md │ │ └── data/ │ │ └── corpus.json │ ├── 09-logger/ │ │ ├── 01-core-logger.js │ │ ├── 02-register-logger.js │ │ ├── 03-logger-plugin.js │ │ └── README.md │ ├── 10-remove-emojis/ │ │ ├── 01-remove-emojis.js │ │ └── README.md │ ├── 11-console-connector/ │ │ ├── 01-console-connector.js │ │ ├── 02-console-connector-nlp.js │ │ ├── README.md │ │ └── corpus.json │ ├── 12-similarity/ │ │ ├── 01-levenshtein.js │ │ ├── 02-similarity.js │ │ ├── 03-spell-check.js │ │ ├── 04-spell-check-training.js │ │ ├── 05-levenshtein-wa.js │ │ ├── 06-similarity-wa.js │ │ ├── 07-spell-check-wa.js │ │ ├── 08-spell-check-training-wa.js │ │ ├── 09-similarity-benchmark.js │ │ ├── README.md │ │ └── data/ │ │ └── book.txt │ ├── 13-languages/ │ │ ├── corpora/ │ │ │ ├── corpus-en.json │ │ │ ├── corpus-es.json │ │ │ ├── corpus-fr.json │ │ │ ├── corpus-he.json │ │ │ ├── corpus-id.json │ │ │ └── corpus-it.json │ │ ├── english/ │ │ │ ├── 01-normalization.js │ │ │ ├── 02-tokenization.js │ │ │ ├── 03-tokenization-normalized.js │ │ │ ├── 04-stopword-identify.js │ │ │ ├── 05-stopword-remove.js │ │ │ ├── 06-stopword-dictionary.js │ │ │ ├── 07-stem-word.js │ │ │ ├── 08-stem-array.js │ │ │ ├── 09-tokenize-and-stem.js │ │ │ ├── 10-tokenize-and-stem-remove-stopwords.js │ │ │ ├── 11-sentiment-analysis.js │ │ │ ├── 12-benchmark.js │ │ │ └── README.md │ │ ├── french/ │ │ │ ├── 01-normalization.js │ │ │ ├── 02-tokenization.js │ │ │ ├── 03-tokenization-normalized.js │ │ │ ├── 04-stopword-identify.js │ │ │ ├── 05-stopword-remove.js │ │ │ ├── 06-stopword-dictionary.js │ │ │ ├── 07-stem-word.js │ │ │ ├── 08-stem-array.js │ │ │ ├── 09-tokenize-and-stem.js │ │ │ ├── 10-tokenize-and-stem-remove-stopwords.js │ │ │ ├── 11-sentiment-analysis.js │ │ │ ├── 12-benchmark.js │ │ │ └── README.md │ │ ├── hebrew/ │ │ │ └── 12-benchmark.js │ │ ├── indonesian/ │ │ │ ├── 01-normalization.js │ │ │ ├── 02-tokenization.js │ │ │ ├── 03-tokenization-normalized.js │ │ │ ├── 04-stopword-identify.js │ │ │ ├── 05-stopword-remove.js │ │ │ ├── 06-stopword-dictionary.js │ │ │ ├── 07-stem-word.js │ │ │ ├── 08-stem-array.js │ │ │ ├── 09-tokenize-and-stem.js │ │ │ ├── 10-tokenize-and-stem-remove-stopwords.js │ │ │ ├── 11-sentiment-analysis.js │ │ │ └── 12-benchmark.js │ │ ├── italian/ │ │ │ ├── 01-normalization.js │ │ │ ├── 02-tokenization.js │ │ │ ├── 03-tokenization-normalized.js │ │ │ ├── 04-stopword-identify.js │ │ │ ├── 05-stopword-remove.js │ │ │ ├── 06-stopword-dictionary.js │ │ │ ├── 07-stem-word.js │ │ │ ├── 08-stem-array.js │ │ │ ├── 09-tokenize-and-stem.js │ │ │ ├── 10-tokenize-and-stem-remove-stopwords.js │ │ │ ├── 11-sentiment-analysis.js │ │ │ ├── 12-benchmark.js │ │ │ └── README.md │ │ ├── measure-corpus.js │ │ └── spanish/ │ │ ├── 01-normalization.js │ │ ├── 02-tokenization.js │ │ ├── 03-tokenization-normalized.js │ │ ├── 04-stopword-identify.js │ │ ├── 05-stopword-remove.js │ │ ├── 06-stopword-dictionary.js │ │ ├── 07-stem-word.js │ │ ├── 08-stem-array.js │ │ ├── 09-tokenize-and-stem.js │ │ ├── 10-tokenize-and-stem-remove-stopwords.js │ │ ├── 11-sentiment-analysis.js │ │ ├── 12-benchmark.js │ │ └── README.md │ ├── 14-ner-corpus/ │ │ ├── README.md │ │ ├── conf.json │ │ ├── corpus.json │ │ ├── heros.json │ │ ├── index.js │ │ └── pipelines.md │ ├── 15-nlu/ │ │ ├── 01-neural-nlu.js │ │ ├── 02-brain-nlu.js │ │ ├── 03-domain-manager.js │ │ ├── 04-domain-manager-by-domain.js │ │ ├── 05-nlu-manager.js │ │ ├── 06-nlu-manager-by-domain.js │ │ ├── README.md │ │ └── corpus50.json │ ├── 16-fb-connector/ │ │ ├── .gitignore │ │ ├── Procfile │ │ ├── README.md │ │ ├── conf.json │ │ ├── corpus-en.json │ │ ├── flows/ │ │ │ └── script.dlg │ │ ├── index.js │ │ ├── nlpjs-custom/ │ │ │ └── express-api-server/ │ │ │ ├── express-api-app.js │ │ │ ├── express-api-server.js │ │ │ └── index.js │ │ ├── package.json │ │ └── pipelines.md │ ├── 17-ner-nlg/ │ │ ├── index.js │ │ └── package.json │ ├── 18-ner-builtin-ms/ │ │ ├── index.js │ │ └── package.json │ ├── 19-ner-trim-entities/ │ │ ├── index.js │ │ └── package.json │ ├── 80-bert-server/ │ │ ├── README.md │ │ ├── app.py │ │ ├── corpus-en.json │ │ ├── corpus-es.json │ │ ├── index.js │ │ ├── requirements.txt │ │ ├── vocab-en.txt │ │ └── vocab-multi.txt │ ├── 81-bert-qna/ │ │ ├── README.md │ │ ├── app.py │ │ ├── conf.json │ │ ├── index.js │ │ ├── pipelines.md │ │ └── requirements.txt │ └── 90-benchmark/ │ ├── corpus-en.json │ ├── corpus-es.json │ └── index.js ├── greenkeeper.json ├── lerna.json ├── package.json └── packages/ ├── api-auth-jwt/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── api-auth-jwt.js │ │ ├── configure-passport.js │ │ ├── default-settings.js │ │ ├── ensure-authenticated.js │ │ ├── index.js │ │ └── user.router.js │ └── test/ │ ├── api-auth-jwt.test.js │ ├── api-server-mock.js │ ├── default-settings.test.js │ ├── res-mock.js │ └── router-mock.js ├── basic/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ └── index.js │ └── test/ │ └── basic.test.js ├── bert-open-question/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── bert-open-question.js │ └── index.js ├── bert-tokenizer/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── dicts/ │ │ ├── vocab-en.txt │ │ └── vocab-multi.txt │ ├── package.json │ ├── src/ │ │ ├── bert-word-piece-tokenizer.js │ │ ├── index.js │ │ └── multi-bert-word-piece-tokenizer.js │ └── test/ │ ├── bert-word-piece-tokenizer.test.js │ └── multi-bert-word-piece-tokenizer.test.js ├── bot/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── bot-localization.js │ │ ├── bot.js │ │ ├── dialog-manager.js │ │ ├── dialog-parse.js │ │ ├── helper.js │ │ ├── index.js │ │ ├── test-connector.js │ │ └── validators.js │ └── test/ │ ├── bot.test.js │ ├── dialog-parse.test.js │ ├── helper.test.js │ ├── mock-template.js │ ├── scenario01.dlt │ ├── scenario02.dlt │ ├── scenario05-01.dlt │ ├── scenario05-02.dlt │ ├── script1.dlg │ ├── script2.dlg │ ├── script3.dlg │ ├── script4.dlg │ ├── script5.dlg │ └── validators.test.js ├── builtin-compromise/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── builtin-compromise.js │ │ └── index.js │ └── test/ │ └── compromise.test.js ├── builtin-default/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── builtin-default.js │ │ ├── common-regex.js │ │ ├── index.js │ │ └── recognizers.js │ └── test/ │ └── builtin-default.test.js ├── builtin-duckling/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── builtin-duckling.js │ │ └── index.js │ └── test/ │ └── duckling.test.js ├── builtin-microsoft/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── builtin-dictionary.json │ │ ├── builtin-inverse.json │ │ ├── builtin-microsoft.js │ │ └── index.js │ └── test/ │ ├── builtin-microsoft.test.js │ ├── date.json │ ├── number-age.json │ ├── number-currency.json │ ├── number-dimension.json │ ├── number-ordinal.json │ ├── number-percent.json │ ├── number.json │ └── sequence.json ├── connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── connector.js │ │ ├── index.js │ │ └── session.js │ └── test/ │ └── connector.test.js ├── console-connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── console-connector.js │ │ └── index.js │ └── test/ │ └── console-connector.test.js ├── core/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── among.js │ │ ├── arr-to-obj.js │ │ ├── base-stemmer.js │ │ ├── clonable.js │ │ ├── container-bootstrap.js │ │ ├── container.js │ │ ├── context.js │ │ ├── default-compiler.js │ │ ├── dock.js │ │ ├── helper.js │ │ ├── index.js │ │ ├── logger.js │ │ ├── memory-storage.js │ │ ├── mock-fs.js │ │ ├── normalizer.js │ │ ├── obj-to-arr.js │ │ ├── stemmer.js │ │ ├── stopwords.js │ │ ├── timer.js │ │ ├── tokenizer.js │ │ └── uuid.js │ └── test/ │ ├── arr-to-obj.test.js │ ├── assets/ │ │ ├── char.js │ │ ├── cloned.js │ │ └── lower.js │ ├── clonable.test.js │ ├── container.test.js │ ├── logger.test.js │ ├── mock-fs.test.js │ ├── normalizer.test.js │ ├── obj-to-arr.test.js │ ├── stopwords.test.js │ ├── timer.test.js │ └── uuid.test.js ├── core-loader/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── container-bootstrap.js │ │ ├── dock.js │ │ ├── helper.js │ │ ├── index.js │ │ └── plugin-information.json │ └── test/ │ ├── assets/ │ │ ├── char.js │ │ ├── cloned.js │ │ └── lower.js │ ├── clonable.test.js │ └── container.test.js ├── database/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── collection.js │ │ ├── database.js │ │ ├── index.js │ │ └── memory-adapter.js │ └── test/ │ ├── collection.test.js │ ├── database.test.js │ ├── fs.js │ └── memory-adapter.test.js ├── dialogflow-connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── dialogflow-connector.js │ └── index.js ├── directline-connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── directline-connector.js │ ├── directline-controller.js │ └── index.js ├── emoji/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── emoji.js │ │ ├── emoji.json │ │ └── index.js │ └── test/ │ └── emoji.test.js ├── evaluator/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── compile.js │ │ ├── evaluator.js │ │ ├── index.js │ │ ├── javascript-compiler.js │ │ └── template.js │ └── test/ │ ├── compile.test.js │ ├── evaluator.test.js │ └── javascript-compiler.test.js ├── express-api-server/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── express-api-app.js │ │ ├── express-api-server.js │ │ ├── index.js │ │ └── public/ │ │ ├── botchat.css │ │ ├── botchat.js │ │ ├── index.html │ │ └── main.js │ └── test/ │ ├── express-api-app.test.js │ └── express-api-server.test.js ├── express-api-serverless/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── express-api-serverless.js │ └── index.js ├── fb-connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── fb-connector.js │ ├── index.js │ └── settings.js ├── fullbot/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── fullbot.js │ │ ├── index.js │ │ └── utils.js │ └── test/ │ ├── fullbot.test.js │ └── script.dlg ├── lang-all/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-all.js │ │ └── lang-functions.js │ └── test/ │ └── lang-all.test.js ├── lang-ar/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ar.js │ │ ├── normalizer-ar.js │ │ ├── sentiment/ │ │ │ ├── afinn_ar.json │ │ │ ├── negations_ar.json │ │ │ └── sentiment_ar.js │ │ ├── stemmer-ar.js │ │ ├── stopwords-ar.js │ │ ├── tokenizer-ar.js │ │ └── trigrams.js │ └── test/ │ └── lang-ar.test.js ├── lang-bert/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-bert.js │ │ ├── normalizer-bert.js │ │ ├── sentiment/ │ │ │ ├── negations_bert.json │ │ │ └── sentiment_bert.js │ │ ├── stemmer-bert.js │ │ ├── stopwords-bert.js │ │ └── tokenizer-bert.js │ └── test/ │ ├── normalizer-bert.test.js │ ├── request-mock.js │ ├── stemmer-bert.test.js │ ├── stopwords-bert.test.js │ └── tokenizer-bert.test.js ├── lang-bn/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-bn.js │ │ ├── normalizer-bn.js │ │ ├── sentiment/ │ │ │ ├── afinn_bn.json │ │ │ ├── negations_bn.json │ │ │ └── sentiment_bn.js │ │ ├── stemmer-bn.js │ │ ├── stopwords-bn.js │ │ └── tokenizer-bn.js │ └── test/ │ ├── lang-bn.test.js │ └── tokenizer-bn.test.js ├── lang-ca/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ca.js │ │ ├── normalizer-ca.js │ │ ├── sentiment/ │ │ │ ├── negations_ca.json │ │ │ ├── senticon_ca.json │ │ │ └── sentiment_ca.js │ │ ├── stemmer-ca.js │ │ ├── stopwords-ca.js │ │ ├── tokenizer-ca.js │ │ └── trigrams.js │ └── test/ │ └── lang-ca.test.js ├── lang-cs/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-cs.js │ │ ├── normalizer-cs.js │ │ ├── sentiment/ │ │ │ ├── afinn_cs.json │ │ │ ├── negations_cs.json │ │ │ └── sentiment_cs.js │ │ ├── stemmer-cs.js │ │ ├── stopwords-cs.js │ │ ├── tokenizer-cs.js │ │ └── trigrams.js │ └── test/ │ └── lang-cs.test.js ├── lang-da/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-da.js │ │ ├── normalizer-da.js │ │ ├── sentiment/ │ │ │ ├── afinn_da.json │ │ │ ├── negations_da.json │ │ │ └── sentiment_da.js │ │ ├── stemmer-da.js │ │ ├── stopwords-da.js │ │ ├── tokenizer-da.js │ │ └── trigrams.js │ └── test/ │ └── lang-ca.test.js ├── lang-de/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-de.js │ │ ├── normalizer-de.js │ │ ├── sentiment/ │ │ │ ├── negations_de.json │ │ │ ├── senticon_de.json │ │ │ └── sentiment_de.js │ │ ├── stemmer-de.js │ │ ├── stopwords-de.js │ │ ├── tokenizer-de.js │ │ └── trigrams.js │ └── test/ │ └── lang-de.test.js ├── lang-el/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-el.js │ │ ├── normalizer-el.js │ │ ├── sentiment/ │ │ │ ├── afinn_el.json │ │ │ ├── negations_el.json │ │ │ └── sentiment_el.js │ │ ├── stemmer-el.js │ │ ├── stopwords-el.js │ │ └── tokenizer-el.js │ └── test/ │ └── lang-el.test.js ├── lang-en/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-en.js │ │ └── sentiment/ │ │ ├── negations_en.json │ │ ├── senticon_en.json │ │ └── sentiment_en.js │ └── test/ │ ├── lang-en.test.js │ └── stemmer-en.test.js ├── lang-en-min/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-en.js │ │ ├── normalizer-en.js │ │ ├── sentiment/ │ │ │ └── sentiment_en.js │ │ ├── stemmer-en.js │ │ ├── stopwords-en.js │ │ ├── tokenizer-en.js │ │ └── trigrams.js │ └── test/ │ ├── lang-en.test.js │ ├── stemmer-en.test.js │ └── tokenizer-en.test.js ├── lang-es/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── dictionary-es.json │ │ ├── index.js │ │ ├── lang-es.js │ │ ├── normalizer-es.js │ │ ├── sentiment/ │ │ │ ├── afinn_es.json │ │ │ ├── negations_es.json │ │ │ ├── senticon_es.json │ │ │ └── sentiment_es.js │ │ ├── stemmer-es.js │ │ ├── stopwords-es.js │ │ ├── tokenizer-es.js │ │ └── trigrams.js │ └── test/ │ ├── lang-es.test.js │ └── stemmer-es.test.js ├── lang-eu/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-eu.js │ │ ├── normalizer-eu.js │ │ ├── sentiment/ │ │ │ ├── negations_eu.json │ │ │ ├── senticon_eu.json │ │ │ └── sentiment_eu.js │ │ ├── stemmer-eu.js │ │ ├── stopwords-eu.js │ │ └── tokenizer-eu.js │ └── test/ │ └── lang-eu.test.js ├── lang-fa/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-fa.js │ │ ├── normalizer-fa.js │ │ ├── sentiment/ │ │ │ ├── afinn_fa.json │ │ │ ├── negations_fa.json │ │ │ └── sentiment_fa.js │ │ ├── stemmer-fa.js │ │ ├── stopwords-fa.js │ │ ├── tokenizer-fa.js │ │ └── trigrams.js │ └── test/ │ └── lang-fa.test.js ├── lang-fi/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-fi.js │ │ ├── normalizer-fi.js │ │ ├── sentiment/ │ │ │ ├── afinn_fi.json │ │ │ ├── negations_fi.json │ │ │ └── sentiment_fi.js │ │ ├── stemmer-fi.js │ │ ├── stopwords-fi.js │ │ ├── tokenizer-fi.js │ │ └── trigrams.js │ └── test/ │ └── lang-fi.test.js ├── lang-fr/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-fr.js │ │ ├── normalizer-fr.js │ │ ├── sentiment/ │ │ │ ├── negations_fr.json │ │ │ ├── pattern_fr.json │ │ │ └── sentiment_fr.js │ │ ├── stemmer-fr.js │ │ ├── stopwords-fr.js │ │ ├── tokenizer-fr.js │ │ └── trigrams.js │ └── test/ │ ├── lang-fr.test.js │ └── tokenizer-fr.test.js ├── lang-ga/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ga.js │ │ ├── normalizer-ga.js │ │ ├── sentiment/ │ │ │ ├── afinn_ga.json │ │ │ ├── negations_ga.json │ │ │ └── sentiment_ga.js │ │ ├── stemmer-ga.js │ │ ├── stopwords-ga.js │ │ └── tokenizer-ga.js │ └── test/ │ └── lang-ga.test.js ├── lang-gl/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-gl.js │ │ ├── normalizer-gl.js │ │ ├── sentiment/ │ │ │ ├── negations_gl.json │ │ │ ├── senticon_gl.json │ │ │ └── sentiment_gl.js │ │ ├── stemmer-gl.js │ │ ├── stopwords-gl.js │ │ ├── tokenizer-gl.js │ │ └── trigrams.js │ └── test/ │ └── lang-gl.test.js ├── lang-hi/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-hi.js │ │ ├── normalizer-hi.js │ │ ├── sentiment/ │ │ │ ├── afinn_hi.json │ │ │ ├── negations_hi.json │ │ │ └── sentiment_hi.js │ │ ├── stemmer-hi.js │ │ ├── stopwords-hi.js │ │ ├── tokenizer-hi.js │ │ └── trigrams.js │ └── test/ │ └── lang-hi.test.js ├── lang-hu/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-hu.js │ │ ├── normalizer-hu.js │ │ ├── sentiment/ │ │ │ ├── afinn_hu.json │ │ │ ├── negations_hu.json │ │ │ └── sentiment_hu.js │ │ ├── stemmer-hu.js │ │ ├── stopwords-hu.js │ │ ├── tokenizer-hu.js │ │ └── trigrams.js │ └── test/ │ └── lang-hu.test.js ├── lang-hy/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-hy.js │ │ ├── normalizer-hy.js │ │ ├── sentiment/ │ │ │ ├── afinn_hy.json │ │ │ ├── negations_hy.json │ │ │ └── sentiment_hy.js │ │ ├── stemmer-hy.js │ │ ├── stopwords-hy.js │ │ └── tokenizer-hy.js │ └── test/ │ └── lang-hy.test.js ├── lang-id/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── indonesian-stemmer.js │ │ ├── lang-id.js │ │ ├── normalizer-id.js │ │ ├── sentiment/ │ │ │ ├── afinn_id.json │ │ │ ├── negations_id.json │ │ │ └── sentiment_id.js │ │ ├── stemmer-id.js │ │ ├── stopwords-id.js │ │ ├── tokenizer-id.js │ │ └── trigrams.js │ └── test/ │ ├── lang-id.test.js │ └── stemmer-id.test.js ├── lang-it/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-it.js │ │ ├── normalizer-it.js │ │ ├── sentiment/ │ │ │ ├── negations_it.json │ │ │ ├── pattern_it.json │ │ │ └── sentiment_it.js │ │ ├── stemmer-it.js │ │ ├── stopwords-it.js │ │ ├── tokenizer-it.js │ │ └── trigrams.js │ └── test/ │ └── lang-it.test.js ├── lang-ja/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── helper.js │ │ ├── hepburn.json │ │ ├── index.js │ │ ├── japanese-rules.json │ │ ├── keigo.json │ │ ├── lang-ja.js │ │ ├── normalizer-ja.js │ │ ├── sentiment/ │ │ │ ├── negations_ja.json │ │ │ └── sentiment_ja.js │ │ ├── stemmer-ja.js │ │ ├── stopwords-ja.js │ │ └── tokenizer-ja.js │ └── test/ │ ├── lang-ja.test.js │ └── tokenizer-ja.test.js ├── lang-ko/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── chunk-match.js │ │ ├── dict.json │ │ ├── hangul.js │ │ ├── index.js │ │ ├── korean-chunker.js │ │ ├── korean-conjugation.js │ │ ├── korean-dictionary.js │ │ ├── korean-pos.js │ │ ├── korean-substantive.js │ │ ├── korean-token.js │ │ ├── korean-tokenizer.js │ │ ├── lang-ko.js │ │ ├── names-dict.json │ │ ├── normalizer-ko.js │ │ ├── sentiment/ │ │ │ ├── afinn_ko.json │ │ │ ├── negations_ko.json │ │ │ └── sentiment_ko.js │ │ ├── stemmer-ko.js │ │ ├── stopwords-ko.js │ │ └── tokenizer-ko.js │ └── test/ │ ├── lang-ko.test.js │ └── stemmer-ko.test.js ├── lang-lt/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-lt.js │ │ ├── normalizer-lt.js │ │ ├── sentiment/ │ │ │ ├── afinn_lt.json │ │ │ ├── negations_lt.json │ │ │ └── sentiment_lt.js │ │ ├── stemmer-lt.js │ │ ├── stopwords-lt.js │ │ └── tokenizer-lt.js │ └── test/ │ └── lang-lt.test.js ├── lang-ms/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ms.js │ │ ├── normalizer-ms.js │ │ ├── sentiment/ │ │ │ └── sentiment_ms.js │ │ ├── stemmer-ms.js │ │ ├── stopwords-ms.js │ │ └── tokenizer-ms.js │ └── test/ │ ├── lang-ms.test.js │ └── stemmer-ms.test.js ├── lang-ne/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ne.js │ │ ├── normalizer-ne.js │ │ ├── sentiment/ │ │ │ ├── afinn_ne.json │ │ │ ├── negations_ne.json │ │ │ └── sentiment_ne.js │ │ ├── stemmer-ne.js │ │ ├── stopwords-ne.js │ │ └── tokenizer-ne.js │ └── test/ │ └── lang-lt.test.js ├── lang-nl/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-nl.js │ │ ├── normalizer-nl.js │ │ ├── sentiment/ │ │ │ ├── negations_nl.json │ │ │ ├── pattern_nl.json │ │ │ └── sentiment_nl.js │ │ ├── stemmer-nl.js │ │ ├── stopwords-nl.js │ │ ├── tokenizer-nl.js │ │ └── trigrams.js │ └── test/ │ └── lang-nl.test.js ├── lang-no/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-no.js │ │ ├── normalizer-no.js │ │ ├── sentiment/ │ │ │ ├── afinn_no.json │ │ │ ├── negations_no.json │ │ │ └── sentiment_no.js │ │ ├── stemmer-no.js │ │ ├── stopwords-no.js │ │ └── tokenizer-no.js │ └── test/ │ └── lang-no.test.js ├── lang-pl/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-pl.js │ │ ├── normalizer-pl.js │ │ ├── sentiment/ │ │ │ ├── afinn_pl.json │ │ │ ├── negations_pl.json │ │ │ └── sentiment_pl.js │ │ ├── stemmer-pl.js │ │ ├── stopwords-pl.js │ │ ├── tokenizer-pl.js │ │ └── trigrams.js │ └── test/ │ ├── lang-pl.test.js │ └── stemmer-pl.test.js ├── lang-pt/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-pt.js │ │ ├── normalizer-pt.js │ │ ├── sentiment/ │ │ │ ├── afinn_pt.json │ │ │ ├── negations_pt.json │ │ │ └── sentiment_pt.js │ │ ├── stemmer-pt.js │ │ ├── stopwords-pt.js │ │ ├── tokenizer-pt.js │ │ └── trigrams.js │ └── test/ │ ├── lang-pt.test.js │ ├── stemmer-pt.test.js │ └── tokenizer-pt.test.js ├── lang-ro/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ro.js │ │ ├── normalizer-ro.js │ │ ├── sentiment/ │ │ │ ├── afinn_ro.json │ │ │ ├── negations_ro.json │ │ │ └── sentiment_ro.js │ │ ├── stemmer-ro.js │ │ ├── stopwords-ro.js │ │ └── tokenizer-ro.js │ └── test/ │ └── lang-ro.test.js ├── lang-ru/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ru.js │ │ ├── normalizer-ru.js │ │ ├── sentiment/ │ │ │ ├── afinn_ru.json │ │ │ ├── negations_ru.json │ │ │ └── sentiment_ru.js │ │ ├── stemmer-ru.js │ │ ├── stopwords-ru.js │ │ ├── tokenizer-ru.js │ │ └── trigrams.js │ └── test/ │ └── lang-ru.test.js ├── lang-sl/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-sl.js │ │ ├── normalizer-sl.js │ │ ├── sentiment/ │ │ │ ├── afinn_sl.json │ │ │ ├── negations_sl.json │ │ │ └── sentiment_sl.js │ │ ├── stemmer-sl.js │ │ ├── stopwords-sl.js │ │ ├── tokenizer-sl.js │ │ └── trigrams.js │ └── test/ │ └── lang-sl.test.js ├── lang-sr/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-sr.js │ │ ├── normalizer-sr.js │ │ ├── sentiment/ │ │ │ ├── afinn_sr.json │ │ │ ├── negations_sr.json │ │ │ └── sentiment_sr.js │ │ ├── stemmer-sr.js │ │ ├── stopwords-sr.js │ │ └── tokenizer-sr.js │ └── test/ │ └── lang-sr.test.js ├── lang-sv/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-sv.js │ │ ├── normalizer-sv.js │ │ ├── sentiment/ │ │ │ ├── afinn_sv.json │ │ │ ├── negations_sv.json │ │ │ └── sentiment_sv.js │ │ ├── stemmer-sv.js │ │ ├── stopwords-sv.js │ │ ├── tokenizer-sv.js │ │ └── trigrams.js │ └── test/ │ └── lang-sv.test.js ├── lang-ta/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-ta.js │ │ ├── normalizer-ta.js │ │ ├── sentiment/ │ │ │ ├── afinn_ta.json │ │ │ ├── negations_ta.json │ │ │ └── sentiment_ta.js │ │ ├── stemmer-ta.js │ │ ├── stopwords-ta.js │ │ └── tokenizer-ta.js │ └── test/ │ └── lang-ta.test.js ├── lang-th/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-th.js │ │ ├── normalizer-th.js │ │ ├── sentiment/ │ │ │ ├── afinn_th.json │ │ │ ├── negations_th.json │ │ │ └── sentiment_th.js │ │ ├── stemmer-th.js │ │ ├── stopwords-th.js │ │ ├── thai-aspects.json │ │ └── tokenizer-th.js │ └── test/ │ └── lang-th.test.js ├── lang-tl/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-tl.js │ │ ├── normalizer-tl.js │ │ ├── sentiment/ │ │ │ ├── afinn_tl.json │ │ │ ├── negations_tl.json │ │ │ └── sentiment_tl.js │ │ ├── stemmer-tl.js │ │ ├── stopwords-tl.js │ │ ├── tokenizer-tl.js │ │ └── trigrams.js │ └── test/ │ └── lang-tl.test.js ├── lang-tr/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-tr.js │ │ ├── normalizer-tr.js │ │ ├── sentiment/ │ │ │ ├── afinn_tr.json │ │ │ ├── negations_tr.json │ │ │ └── sentiment_tr.js │ │ ├── stemmer-tr.js │ │ ├── stopwords-tr.js │ │ ├── tokenizer-tr.js │ │ └── trigrams.js │ └── test/ │ ├── lang-tr.test.js │ └── stemmer-tr.test.js ├── lang-uk/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lang-uk.js │ │ ├── normalizer-uk.js │ │ ├── sentiment/ │ │ │ ├── afinn_uk.json │ │ │ ├── negations_uk.json │ │ │ └── sentiment_uk.js │ │ ├── stemmer-uk.js │ │ ├── stopwords-uk.js │ │ ├── tokenizer-uk.js │ │ └── trigrams.js │ └── test/ │ ├── lang-uk.test.js │ └── stemmer-uk.test.js ├── lang-zh/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── cedict_ts.u8.js │ │ ├── dictionary.js │ │ ├── dictionary.json │ │ ├── index.js │ │ ├── lang-zh.js │ │ ├── normalizer-zh.js │ │ ├── sentiment/ │ │ │ ├── negations_zh.json │ │ │ └── sentiment_zh.js │ │ ├── stemmer-zh.js │ │ ├── stopwords-zh.js │ │ ├── tokenizer-zh.js │ │ └── translate-zh.js │ └── test/ │ ├── lang-zh.test.js │ └── translate-zh.test.js ├── language/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── data.json │ │ ├── index.js │ │ ├── language.js │ │ └── languages.json │ └── test/ │ ├── fixtures.json │ └── language.test.js ├── language-min/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── data.json │ │ ├── index.js │ │ ├── language.js │ │ └── languages.json │ └── test/ │ ├── fixtures.json │ ├── language.test.js │ └── testdata.json ├── lexer/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ ├── lexer.js │ │ └── token.js │ └── test/ │ └── lexer.test.js ├── logger/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ └── logger.js │ └── test/ │ └── logger.test.js ├── mongodb-adapter/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ └── mongodb-adapter.js │ └── test/ │ ├── collection-mock.js │ ├── mongodb-adapter.test.js │ └── mongodb-mock.js ├── msbf-connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── get-msbf-token.js │ ├── index.js │ └── msbf-connector.js ├── ner/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── extractor-builtin.js │ │ ├── extractor-enum.js │ │ ├── extractor-regex.js │ │ ├── extractor-trim.js │ │ ├── index.js │ │ ├── ner.js │ │ ├── reduce-edges.js │ │ └── trim-types.js │ └── test/ │ ├── extractor-enum.test.js │ ├── extractor-regex.test.js │ ├── extractor-trim.test.js │ ├── ner.test.js │ └── reduce-edges.test.js ├── neural/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── corpus-lookup.js │ │ ├── index.js │ │ ├── lookup.js │ │ └── neural-network.js │ └── test/ │ ├── corpus.json │ └── neural-network.test.js ├── neural-worker/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── default-settings.json │ │ ├── helper.js │ │ ├── index.js │ │ ├── neural-network.js │ │ └── worker.js │ └── test/ │ ├── corpus.json │ └── neural-network.test.js ├── nlg/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── action-manager.js │ │ ├── index.js │ │ └── nlg-manager.js │ └── test/ │ ├── action-manager.test.js │ ├── bootstrap.js │ └── nlg-manager.test.js ├── nlp/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── context-manager.js │ │ ├── index.js │ │ └── nlp.js │ └── test/ │ ├── context-manager.test.js │ ├── nlp.test.js │ └── template-mock.js ├── nlu/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── domain-manager.js │ │ ├── index.js │ │ ├── nlu-manager.js │ │ ├── nlu-neural.js │ │ ├── nlu.js │ │ └── none-languages.js │ └── test/ │ ├── bootstrap.js │ ├── corpus50.json │ ├── domain-manager.test.js │ ├── domains.js │ ├── nlu-manager.test.js │ ├── nlu-neural.test.js │ └── nlu.test.js ├── nlu-luis/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── index.js │ └── nlu-luis.js ├── node-nlp/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── classifiers/ │ │ │ └── index.js │ │ ├── index.js │ │ ├── language/ │ │ │ └── index.js │ │ ├── nlg/ │ │ │ ├── index.js │ │ │ └── nlg-manager.js │ │ ├── nlp/ │ │ │ ├── index.js │ │ │ ├── nlp-excel-reader.js │ │ │ ├── nlp-manager.js │ │ │ └── nlp-util.js │ │ ├── nlu/ │ │ │ ├── brain-nlu.js │ │ │ └── index.js │ │ ├── recognizer/ │ │ │ ├── conversation-context.js │ │ │ ├── index.js │ │ │ ├── memory-conversation-context.js │ │ │ └── recognizer.js │ │ ├── sentiment/ │ │ │ ├── index.js │ │ │ ├── sentiment-analyzer.js │ │ │ └── sentiment-manager.js │ │ ├── util/ │ │ │ ├── handlebars.js │ │ │ ├── index.js │ │ │ └── spell-check.js │ │ └── xtables/ │ │ └── index.js │ └── test/ │ ├── classifiers/ │ │ └── neural-network.test.js │ ├── language/ │ │ └── language.test.js │ ├── nlg/ │ │ ├── action-manager.test.js │ │ └── nlg-manager.test.js │ ├── nlp/ │ │ ├── corpus-en.json │ │ ├── nlp-excel-reader.test.js │ │ ├── nlp-manager.test.js │ │ ├── nlp-util.test.js │ │ ├── rules.xls │ │ ├── rulesnoregex.xls │ │ ├── stemmers/ │ │ │ ├── bengali-stemmer.test.js │ │ │ ├── galician-stemmer.test.js │ │ │ ├── greek-stemmer.test.js │ │ │ ├── spanish-stemmer.test.js │ │ │ ├── tagalog-stemmer.test.js │ │ │ └── ukrainian-stemmer.test.js │ │ └── tokenizers/ │ │ ├── aggresive-tokenizer-bn.test.js │ │ ├── aggressive-tokenizer-en.test.js │ │ ├── aggressive-tokenizer-es.test.js │ │ ├── aggressive-tokenizer-fa.test.js │ │ ├── aggressive-tokenizer-fr.test.js │ │ ├── aggressive-tokenizer-id.test.js │ │ ├── aggressive-tokenizer-it.test.js │ │ ├── aggressive-tokenizer-nl.test.js │ │ ├── aggressive-tokenizer-no.test.js │ │ ├── aggressive-tokenizer-pl.test.js │ │ ├── aggressive-tokenizer-pt.test.js │ │ ├── aggressive-tokenizer-ru.test.js │ │ ├── aggressive-tokenizer-sv.test.js │ │ └── tokenizer-ja.test.js │ ├── nlu/ │ │ └── brain-nlu.test.js │ ├── recognizer/ │ │ ├── conversation-context.test.js │ │ └── memory-conversation-context.test.js │ ├── sentiment/ │ │ ├── sentiment-analyzer.test.js │ │ └── sentiment-manager.test.js │ ├── util/ │ │ ├── emoji.test.js │ │ ├── evaluator.test.js │ │ ├── handlebars.test.js │ │ ├── similar_search.test.js.no │ │ └── spell-check.test.js │ └── xtables/ │ ├── book1.json │ ├── book1.xlsx │ ├── matrix1.json │ ├── xdoc.test.js │ ├── xtable-utils.test.js │ └── xtable.test.js ├── open-question/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── bert-tokenizer.js │ │ ├── constants.js │ │ ├── index.js │ │ ├── model-downloader.js │ │ ├── model.js │ │ ├── qa-client.js │ │ ├── runtime-thread.js │ │ ├── runtime-worker.js │ │ └── runtime.js │ └── test/ │ ├── .models/ │ │ └── henryk/ │ │ └── bert-base-multilingual-cased-finetuned-dutch-squad2/ │ │ ├── special_tokens_map.json │ │ ├── tokenizer_config.json │ │ └── vocab.txt │ ├── bert-tokenizer.test.js │ ├── model-downloader.test.js │ ├── model.test.js │ ├── qa-client.test.js │ └── runtime.test.js ├── python-compiler/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── expressions/ │ │ │ ├── assert-command.js │ │ │ ├── assignment-command.js │ │ │ ├── binary-expression.js │ │ │ ├── break-command.js │ │ │ ├── call-expression.js │ │ │ ├── class-command.js │ │ │ ├── composite-command.js │ │ │ ├── constant-expression.js │ │ │ ├── continue-command.js │ │ │ ├── def-command.js │ │ │ ├── dictionary-expression.js │ │ │ ├── dotted-expression.js │ │ │ ├── expression-command.js │ │ │ ├── expression.js │ │ │ ├── for-in-command.js │ │ │ ├── global-variable-command.js │ │ │ ├── group-expression.js │ │ │ ├── if-command.js │ │ │ ├── import-command.js │ │ │ ├── index-expression.js │ │ │ ├── index.js │ │ │ ├── list-expression.js │ │ │ ├── minus-expression.js │ │ │ ├── new-expression.js │ │ │ ├── pass-command.js │ │ │ ├── raise-command.js │ │ │ ├── return-command.js │ │ │ ├── string-expression.js │ │ │ ├── variable-expression.js │ │ │ └── while-command.js │ │ ├── helper.js │ │ ├── index.js │ │ ├── python-compiler.js │ │ ├── python-executer.js │ │ └── python-parser.js │ └── test/ │ ├── python-compiler.test.js │ └── python-parser.test.js ├── qna-importer/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ └── qna-importer.js │ └── test/ │ ├── qna-importer.test.js │ └── qna.tsv ├── request/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── fs.js │ │ ├── index.js │ │ └── request.js │ └── test/ │ ├── file.txt │ └── fs.test.js ├── request-rn/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── fs.js │ ├── index.js │ └── request.js ├── rest-connector/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ └── src/ │ ├── index.js │ └── rest-connector.js ├── sentiment/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ └── sentiment-analyzer.js │ └── test/ │ ├── bootstrap.js │ └── sentiment-analyzer.test.js ├── similarity/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── cosine-similarity.js │ │ ├── index.js │ │ ├── leven.js │ │ ├── similarity.js │ │ └── spell-check.js │ └── test/ │ ├── cosine-similarity.test.js │ ├── leven.test.js │ ├── similarity.test.js │ └── spell-check.test.js ├── similarity-wa/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── cosine-similarity.js │ │ ├── index.js │ │ ├── leven.js │ │ ├── similarity.js │ │ └── spell-check.js │ ├── test/ │ │ ├── cosine-similarity.test.js │ │ ├── leven.test.js │ │ ├── similarity.test.js │ │ └── spell-check.test.js │ └── wa/ │ ├── cosine-similarity.wasm │ ├── cosine-similarity.wat │ ├── leven.wasm │ └── leven.wat ├── slot/ │ ├── .npmignore │ ├── LICENSE.md │ ├── package.json │ ├── src/ │ │ ├── index.js │ │ └── slot-manager.js │ └── test/ │ └── slot-manager.test.js ├── utils/ │ ├── .npmignore │ ├── LICENSE.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── base-fn.js │ │ ├── bench.js │ │ ├── corpus-lookup.js │ │ ├── downloader.js │ │ ├── fs-extra.js │ │ ├── index.js │ │ ├── is-gibberish.js │ │ ├── lookup.js │ │ ├── markov.js │ │ ├── ngrams.js │ │ ├── nlp-analyzer.js │ │ ├── pattern.js │ │ ├── progress-bar.js │ │ ├── softmax.js │ │ └── tfidf.js │ └── test/ │ ├── bench.test.js │ ├── corpus-composed.json │ ├── corpus-lookup.test.js │ ├── corpus-pattern.json │ ├── downloader.test.js │ ├── fs-extra.test.js │ ├── gibberish.test.js │ ├── lookup.test.js │ ├── markov.test.js │ ├── ngrams.test.js │ ├── nlp-analyzer.test.js │ ├── pattern.test.js │ ├── progress-bar.test.js │ ├── softmax.test.js │ └── tfidf.test.js └── xtables/ ├── .npmignore ├── LICENSE.md ├── package.json ├── src/ │ ├── index.js │ ├── xdoc.js │ ├── xtable-utils.js │ └── xtable.js └── test/ ├── book1.json ├── book1.xlsx ├── matrix1.json ├── xdoc.test.js ├── xtable-utils.test.js └── xtable.test.js