Skip to main content

ingredient-slicer

Python 📦 package for extracting quantities, units, and food words from unstructured recipe ingredients text.

ingredient-slicer works by standardizing the input text and then applying a set of rules and heuristic methods to parse out quantities, units, and food words from unstructured recipe ingredients text. ingredient-slicer was designed to provide a robust and lightweight method for parsing recipe ingredients text without relying on any external dependencies or NLP/ML models. That being said, it is not perfect and can always be improved upon.

Table of Contents:


Installation:

ingredient_slicer can be downloaded from PyPI via pip like so:

pip install ingredient-slicer

Usage:

Provide a string to the IngredientSlicer class and thats it. Invoke the to_json() method to return the parsed ingredient.

import ingredient_slicer

slicer = ingredient_slicer.IngredientSlicer("2 (15-ounces) cans chickpeas, rinsed and drained")

slicer.to_json()

{   
    'ingredient': '2 (15-ounces) cans chickpeas, rinsed and drained', 
    'standardized_ingredient': '2 cans chickpeas, rinsed and drained', 
    'food': 'chickpeas', 

    # primary quantity and units
    'quantity': '30', 
    'unit': 'ounces', 
    'standardized_unit': 'ounce', 

    # any other secondary quantity and units found in the string
    'secondary_quantity': '2', 
    'secondary_unit': 'cans', 
    'standardized_secondary_unit': 'can', 

    'gram_weight': '850.49', 
    'prep': ['drained', 'rinsed'], 
    'size_modifiers': [], 
    'dimensions': [], 
    'is_required': True, 
    'parenthesis_content': ['15 ounce']
}

Individual ingredient components can also be found using methods like food(), quantity(), or unit()

import ingredient_slicer

slicer = ingredient_slicer.IngredientSlicer("3 tbsp unsalted butter, softened at room temperature")

slicer.food() 
>>> 'unsalted butter'

slicer.quantity() 
>>> '3' 

slicer.unit() 
>>> 'tbsp'

slicer.standardized_unit() 
>>> 'tablespoon'

slicer.prep() 
>>> ['room temperature', 'softened']

Contributing/Issues:

If you find a bug or have an idea for a new feature, please open an issue or submit a pull request :)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ingredient_slicer-1.2.21.tar.gz (126.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ingredient_slicer-1.2.21-py3-none-any.whl (82.7 kB view details)

Uploaded Python 3

File details

Details for the file ingredient_slicer-1.2.21.tar.gz.

File metadata

  • Download URL: ingredient_slicer-1.2.21.tar.gz
  • Upload date:
  • Size: 126.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for ingredient_slicer-1.2.21.tar.gz
Algorithm Hash digest
SHA256 cfcd40a4af0ee9f2d82ce4639aa8fefb041a5e931eaca7f491d6043033779843
MD5 edcb5257e745a095a2d597d3c6a68393
BLAKE2b-256 97679df9a1981525af8afdb8cf53960afc00a4a069deaad983c4d60786ae3a03

See more details on using hashes here.

File details

Details for the file ingredient_slicer-1.2.21-py3-none-any.whl.

File metadata

File hashes

Hashes for ingredient_slicer-1.2.21-py3-none-any.whl
Algorithm Hash digest
SHA256 a2bcbeafd7ac69dc23e40e0d771bee5754ee711689eb4db09d93523e212ad0ce
MD5 61cafb9194f9b1a52be906f409d4c9fa
BLAKE2b-256 53db9b080f908a6ee94e39ddd3bc1a94fcf6182a7e669656eea39750a83fa20f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.21 This release

2 files

1.2.2

2 files

1.2.1

2 files

1.1.29

2 files

1.1.28

2 files

1.1.27

2 files

1.1.26

2 files

1.1.25

2 files

1.1.24

2 files

1.1.23

2 files

1.1.21

2 files

1.1.20

2 files

1.1.19

2 files

1.1.18

2 files

1.1.17

2 files

1.1.16

2 files

1.1.15

2 files

1.1.14

2 files

1.1.13

2 files

1.1.12

2 files

1.1.11

2 files

1.1.1

2 files

1.1.0

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.0.88

2 files

0.0.87

2 files

0.0.86

2 files

0.0.85

2 files

0.0.84

2 files

0.0.83

2 files

0.0.81

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page