finnlp
Version:
Natural language processing in JavaScript
58 lines (57 loc) • 2.44 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var lexed = require("lexed");
var tagger = require("en-pos");
var parser = require("en-parse");
var en_norm_1 = require("en-norm");
var lemmatizer_1 = require("lemmatizer");
var Run = (function () {
function Run(input) {
this.raw = "";
this.intercepted = "";
this.sentences = [];
this.raw = input;
this.intercepted = en_norm_1.resolveContractions(en_norm_1.replaceConfusables(input));
for (var index = 0; index < exports.preProcessors.length; index++) {
var interceptor = exports.preProcessors[index];
this.intercepted = interceptor(this.intercepted);
}
var _lexer = new lexed.Lexed(this.intercepted).lexer();
for (var index = 0; index < _lexer.sentences.length; index++) {
this.sentences[index] = {
sentence: "",
confidence: 0,
deps: [],
tags: [],
depsTree: {},
tokens: [],
lemmas: []
};
this.sentences[index].sentence = _lexer.sentences[index];
this.sentences[index].tokens = en_norm_1.normalizeCaps(_lexer.tokens[index]);
this.sentences[index].lemmas = this.sentences[index].tokens.map(lemmatizer_1.lemmatizer);
var taggingInstance = new tagger.Tag(this.sentences[index].tokens).initial().smooth();
this.sentences[index].tags = taggingInstance.tags;
this.sentences[index].confidence = (taggingInstance.confidence.reduce(function (a, b) { return a + b; }, 0) / taggingInstance.confidence.length) - 10;
this.sentences[index].depsTree = parser.tree(this.sentences[index].tags, this.sentences[index].tokens)[0];
this.sentences[index].deps = parser.toArray(this.sentences[index].depsTree);
}
var result = {
raw: this.raw,
intercepted: this.intercepted,
sentences: this.sentences
};
for (var index = 0; index < exports.postProcessors.length; index++) {
result = exports.postProcessors[index](result);
}
this.raw = result.raw;
this.intercepted = result.intercepted;
this.sentences = result.sentences;
return this;
}
return Run;
}());
exports.Run = Run;
;
exports.preProcessors = [];
exports.postProcessors = [];