UNPKG

node-nlp

Version:

Library for NLU (Natural Language Understanding) done in Node.js

106 lines (81 loc) 5.02 kB
function Parser(config) { config = config || {}; var strictMode = config.strict; this.isStrictMode = function() { return (strictMode == true) }; this.pattern = function() { return /./i; } this.extract = function(text, ref, match, opt){ return null; } this.execute = function(text, ref, opt) { var results = []; var regex = this.pattern(); var remainingText = text; var match = regex.exec(remainingText); while (match) { // Calculate match index on the full text; match.index += text.length - remainingText.length; var result = this.extract(text, ref, match, opt); if (result) { // If success, start from the end of the result remainingText = text.substring(result.index + result.text.length); if (!this.isStrictMode() || result.hasPossibleDates()) { results.push(result); } } else { // If fail, move on by 1 remainingText = text.substring(match.index + 1); } match = regex.exec(remainingText); } if (this.refiners) { this.refiners.forEach(function () { results = refiner.refine(results, text, options); }); } return results; } } exports.Parser = Parser; exports.ENISOFormatParser = require('./EN/ENISOFormatParser').Parser; exports.ENDeadlineFormatParser = require('./EN/ENDeadlineFormatParser').Parser; exports.ENRelativeDateFormatParser = require('./EN/ENRelativeDateFormatParser').Parser; exports.ENMonthNameLittleEndianParser = require('./EN/ENMonthNameLittleEndianParser').Parser; exports.ENMonthNameMiddleEndianParser = require('./EN/ENMonthNameMiddleEndianParser').Parser; exports.ENMonthNameParser = require('./EN/ENMonthNameParser').Parser; exports.ENSlashDateFormatParser = require('./EN/ENSlashDateFormatParser').Parser; exports.ENSlashDateFormatStartWithYearParser = require('./EN/ENSlashDateFormatStartWithYearParser').Parser; exports.ENSlashMonthFormatParser = require('./EN/ENSlashMonthFormatParser').Parser; exports.ENTimeAgoFormatParser = require('./EN/ENTimeAgoFormatParser').Parser; exports.ENTimeExpressionParser = require('./EN/ENTimeExpressionParser').Parser; exports.ENTimeFromNowFormatParser = require('./EN/ENTimeFromNowFormatParser').Parser; exports.ENWeekdayParser = require('./EN/ENWeekdayParser').Parser; exports.ENCasualDateParser = require('./EN/ENCasualDateParser').Parser; exports.ENCasualTimeParser = require('./EN/ENCasualTimeParser').Parser; exports.JPStandardParser = require('./JP/JPStandardParser').Parser; exports.JPCasualDateParser = require('./JP/JPCasualDateParser').Parser; exports.ESCasualDateParser = require('./ES/ESCasualDateParser').Parser; exports.ESDeadlineFormatParser = require('./ES/ESDeadlineFormatParser').Parser; exports.ESTimeAgoFormatParser = require('./ES/ESTimeAgoFormatParser').Parser; exports.ESTimeExpressionParser = require('./ES/ESTimeExpressionParser').Parser; exports.ESWeekdayParser = require('./ES/ESWeekdayParser').Parser; exports.ESMonthNameLittleEndianParser = require('./ES/ESMonthNameLittleEndianParser').Parser; exports.ESSlashDateFormatParser = require('./ES/ESSlashDateFormatParser').Parser; exports.FRCasualDateParser = require('./FR/FRCasualDateParser').Parser; exports.FRDeadlineFormatParser = require('./FR/FRDeadlineFormatParser').Parser; exports.FRMonthNameLittleEndianParser = require('./FR/FRMonthNameLittleEndianParser').Parser; exports.FRSlashDateFormatParser = require('./FR/FRSlashDateFormatParser').Parser; exports.FRTimeAgoFormatParser = require('./FR/FRTimeAgoFormatParser').Parser; exports.FRTimeExpressionParser = require('./FR/FRTimeExpressionParser').Parser; exports.FRWeekdayParser = require('./FR/FRWeekdayParser').Parser; exports.FRRelativeDateFormatParser = require('./FR/FRRelativeDateFormatParser').Parser; exports.ZHHantDateParser = require('./ZH-Hant/ZHHantDateParser').Parser; exports.ZHHantWeekdayParser = require('./ZH-Hant/ZHHantWeekdayParser').Parser; exports.ZHHantTimeExpressionParser = require('./ZH-Hant/ZHHantTimeExpressionParser').Parser; exports.ZHHantCasualDateParser = require('./ZH-Hant/ZHHantCasualDateParser').Parser; exports.ZHHantDeadlineFormatParser = require('./ZH-Hant/ZHHantDeadlineFormatParser').Parser; exports.DEDeadlineFormatParser = require('./DE/DEDeadlineFormatParser').Parser; exports.DEMonthNameLittleEndianParser = require('./DE/DEMonthNameLittleEndianParser').Parser; exports.DEMonthNameParser = require('./DE/DEMonthNameParser').Parser; exports.DESlashDateFormatParser = require('./DE/DESlashDateFormatParser').Parser; exports.DETimeAgoFormatParser = require('./DE/DETimeAgoFormatParser').Parser; exports.DETimeExpressionParser = require('./DE/DETimeExpressionParser').Parser; exports.DEWeekdayParser = require('./DE/DEWeekdayParser').Parser; exports.DECasualDateParser = require('./DE/DECasualDateParser').Parser;