recipe-ingredient-parser-v3
Version:
Natural language parser for recipes and ingredient lists, incl. combining ingredients
47 lines โข 1.83 kB
JavaScript
;
// Petra version to be used in petra application
// Wrapper for the parse method
Object.defineProperty(exports, "__esModule", { value: true });
exports.petraMultiLineParse = exports.petraParse = void 0;
var petra_convert_1 = require("./petra-convert");
var __1 = require("../");
var units_1 = require("../units");
function petraParse(recipeString, language, keywords) {
// the unitsMap is a map of language to units. It contains an arar
var unitsArray = units_1.extractAllUnits(language);
recipeString = petra_convert_1.petraPreprocessing(recipeString, unitsArray, keywords);
var result = __1.parse(recipeString, language);
result.ingredient = petra_convert_1.petraPostprocessing(result.ingredient);
return result;
}
exports.petraParse = petraParse;
function petraMultiLineParse(recipeString, language) {
var ingredients = recipeString.split(/,|๐๐ป|๐|\r|\n|-|;/g);
ingredients = ingredients.filter(function (line) {
// Verifica se la riga contiene una qualsiasi delle varianti della parola "ingredienti"
if (/ingredient[ei]/i.test(line)) {
return false;
}
// Verifica se la riga contiene solo numeri
if (/^\d+$/.test(line)) {
return false;
}
// Verifica se la riga contiene solo spazi bianchi o รจ vuota
if (/^\s*$/.test(line)) {
return false;
}
return true;
});
var result = [];
var i;
for (var _i = 0, ingredients_1 = ingredients; _i < ingredients_1.length; _i++) {
var ingredient = ingredients_1[_i];
i = petraParse(ingredient, language);
if (i["ingredient"]) {
result.push(i);
}
}
return result;
}
exports.petraMultiLineParse = petraMultiLineParse;
//# sourceMappingURL=petra-parser.js.map