UNPKG

recipe-ingredient-parser-v3

Version:

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

50 lines (44 loc) โ€ข 1.44 kB
// Petra version to be used in petra application // Wrapper for the parse method import { petraPostprocessing, petraPreprocessing } from "./petra-convert"; import { parse } from "../"; import { extractAllUnits } from "../units"; export function petraParse( recipeString: string, language: string, keywords?: string[] ) { // the unitsMap is a map of language to units. It contains an arar const unitsArray = extractAllUnits(language); recipeString = petraPreprocessing(recipeString, unitsArray, keywords); const result = parse(recipeString, language); result.ingredient = petraPostprocessing(result.ingredient); return result; } export function petraMultiLineParse(recipeString: string, language: string) { let ingredients = recipeString.split(/,|๐Ÿ‘‰๐Ÿป|๐Ÿ‘‰|\r|\n|-|;/g); ingredients = ingredients.filter((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; }); let result = []; let i; for (var ingredient of ingredients) { i = petraParse(ingredient, language); if (i["ingredient"]) { result.push(i); } } return result; }