concepts-parser
Version:
Concepts Extracting from text
59 lines (58 loc) • 1.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const MODE_COLLECT = "collect";
const MODE_IDENTIFY = "identify";
const FILTERS_BY_MODE = {
collect: [
"invalid_prefix",
"abbr",
"invalid",
"partial",
"prefix",
"suffix",
"start_word",
"known",
"quote",
"duplicate"
],
identify: [
"invalid_prefix",
"abbr",
"invalid",
"prefix",
"suffix",
"known",
"quote"
]
};
function getFilter(name) {
return require("./" + name);
}
function filter(concepts, context, options = { mode: MODE_IDENTIFY }) {
let filters = [];
if (options.mode) {
switch (options.mode) {
case MODE_COLLECT:
filters = FILTERS_BY_MODE[MODE_COLLECT];
break;
case MODE_IDENTIFY:
filters = FILTERS_BY_MODE[MODE_IDENTIFY];
break;
default:
throw new Error("invalid filter mode " + options.mode);
}
}
else {
if (Array.isArray(options.filters)) {
filters = options.filters;
}
else {
throw new Error("`filters` fields is invalid!");
}
}
for (let name of filters) {
concepts = getFilter(name).filter(concepts, context);
}
return concepts;
}
exports.filter = filter;
;