UNPKG

recipe-ingredient-parser-v3

Version:

Natural language parser for recipes and ingredient lists, incl. combining ingredients

47 lines โ€ข 1.83 kB
"use strict"; // 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