Skip to main content

Allow receipt parsing

Project description


Version GitHub Workflow Status Upload Python Package CodeFactor GitHub

Receipt parser🧾

What is it?

receipt_parser - Python библиотека, помогающая распознавать товарную позицию из чеков. Для это задачи есть хороший сервис от Тинькофф, однако он не справляется с грязными данными, как на картинке выше. Изначально была задумка использовать нейронные сети, однако в процессе работы, понял, что на разметку нужно потратить много времени/денег, да и модель, основанная на правилах и словарях, даёт хороший результат.

Features

  • распознавание продукта;
  • определение категории товара;
  • распознавание брендов;
  • перевод англицизмов (хугарден --> hoegaarden)🍺

Where to get it

Исходный код в размещен на GitHub.

Библиотека размещёна на Python package index:

pip install receipt-parser

Если возникнет ошибка при установке пакета: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-izdic4qt/youtokentome/ То установите Cython и повторите попытку: bash pip install Cython

Usage

Для распознавания сейчас доступна только RuleBased модель.

На вход можно подавать как строку:

from receipt_parser import RuleBased

product_desription = 'Нап.пив.ХУГАР.ГРЕЙПФ.н/ф 0.47л'
rb = RuleBased()
rb.parse(product_desription)

output:

name product_norm brand_norm cat_norm
0 Нап.пив.ХУГАР.ГРЕЙПФ.н/ф 0.47л напиток, пиво hoegaarden Воды, соки, напитки

Так и pd.DataFrame (колонка с товарной позицией должна называться name):

from receipt_parser import RuleBased

rb = RuleBased()
rb.parse(df)

Также в библиотеке есть два вспомогательных класса:

  • Normalizer - для нормализации;
  • Finder - для поиска по словарям.

Future work

  • Добавить тесты
  • Дополнить словари и собранные датасеты
  • Поднять сервис
  • Перейти на нейронные сети...

Support the project 🤗

Буду рад, если вы:

  • найдёте баги;
  • сможете оптимизировать код;
  • дополните словари и датасеты;
  • поможете с разметкой.

Project details


Download files

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

Source Distribution

receipt_parser-0.0.26.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

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

receipt_parser-0.0.26-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file receipt_parser-0.0.26.tar.gz.

File metadata

  • Download URL: receipt_parser-0.0.26.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for receipt_parser-0.0.26.tar.gz
Algorithm Hash digest
SHA256 c7dcddbd4691bccec21077a6048122100e9c7e4d09025bd5b41ba1c3ad2cc918
MD5 b7fd9c0e199fb5d588173a39f5b655ad
BLAKE2b-256 013f02ce27a0445f3339f69603a0755a5f50fb5645b680d27052fe31f11bb018

See more details on using hashes here.

File details

Details for the file receipt_parser-0.0.26-py3-none-any.whl.

File metadata

  • Download URL: receipt_parser-0.0.26-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for receipt_parser-0.0.26-py3-none-any.whl
Algorithm Hash digest
SHA256 aadf73d5e8f3e132d7f20871478b13c4dc84a28e46fca87d2684b80ca794f315
MD5 c9b944016685f74a271a5ef843eaa47a
BLAKE2b-256 ad5b61647e4fa92ceaac1e4f7af9cacbd7b840b873651aecbe63bb551ac07e69

See more details on using hashes here.

Supported by

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