concepts-parser
Version:
Concepts Extracting from text
38 lines (37 loc) • 1.36 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const concept_1 = require("../concept");
const data_1 = require("../data");
function filter(concepts, context) {
const sources = data_1.getKnownConcepts(context.lang);
const newconcepts = [];
sources.forEach((source) => {
let result;
while ((result = source.exec(context.text)) !== null) {
let match = result[0];
let value = context.text.substr(result.index + 1, match.length - 1);
let concept = new concept_1.Concept({
value: value,
index: result.index + 1,
lang: context.lang
});
if (concept.isValid()) {
concept.set("isKnown", true);
newconcepts.push(concept);
}
}
});
if (newconcepts.length > 0) {
concepts = concepts.filter(function (concept) {
return !newconcepts.some(function (c) {
return (concept.index >= c.index &&
concept.index + concept.value.length <= c.index + c.value.length);
});
});
concepts = concepts.concat(newconcepts).sort((a, b) => {
return a.index - b.index;
});
}
return concepts;
}
exports.filter = filter;
;