UNPKG

node-nlp

Version:

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

47 lines (34 loc) 1.42 kB
/* */ var Refiner = require('./refiner').Refiner; var TIMEZONE_OFFSET_PATTERN = new RegExp("^\\s*(GMT|UTC)?(\\+|\\-)(\\d{1,2}):?(\\d{2})", 'i'); var TIMEZONE_OFFSET_SIGN_GROUP = 2; var TIMEZONE_OFFSET_HOUR_OFFSET_GROUP = 3; var TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP = 4; exports.Refiner = function ExtractTimezoneOffsetRefiner() { Refiner.call(this); this.refine = function(text, results, opt) { results.forEach(function(result) { if (result.start.isCertain('timezoneOffset')) { return; } var match = TIMEZONE_OFFSET_PATTERN.exec(text.substring(result.index + result.text.length)); if (!match) { return; } var hourOffset = parseInt(match[TIMEZONE_OFFSET_HOUR_OFFSET_GROUP]); var minuteOffset = parseInt(match[TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP]); var timezoneOffset = hourOffset * 60 + minuteOffset; if (match[TIMEZONE_OFFSET_SIGN_GROUP] === '-') { timezoneOffset = -timezoneOffset; } if (result.end != null) { result.end.assign('timezoneOffset', timezoneOffset); } result.start.assign('timezoneOffset', timezoneOffset); result.text += match[0]; result.tags['ExtractTimezoneOffsetRefiner'] = true; }); return results; } }