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 и повторите попытку: 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.28.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: receipt_parser-0.0.28.tar.gz
  • Upload date:
  • Size: 18.7 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.28.tar.gz
Algorithm Hash digest
SHA256 cc5d8de59ad45e8aa9b0924dae2a9d0eca3c01bbc90b98fde5fef684569ecb35
MD5 9d4d0be453b4779de4d93468b96056a2
BLAKE2b-256 1e103a84acf4f5ed6b563abe8ebd5533b99fd651e1f5db6ac2f34430654b71fe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: receipt_parser-0.0.28-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.28-py3-none-any.whl
Algorithm Hash digest
SHA256 303ec0eabbcc03c250fafad1e1e0cc2640c48ba8eb932104051794269b04b537
MD5 597e98fe94397a2e4936adf640cb86df
BLAKE2b-256 6be951c2f2d670d40f10c48b85143116ea3b43fb47fdb93d6171b56991691939

See more details on using hashes here.

Supported by

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