Allow receipt parsing
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc5d8de59ad45e8aa9b0924dae2a9d0eca3c01bbc90b98fde5fef684569ecb35 |
|
MD5 | 9d4d0be453b4779de4d93468b96056a2 |
|
BLAKE2b-256 | 1e103a84acf4f5ed6b563abe8ebd5533b99fd651e1f5db6ac2f34430654b71fe |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 303ec0eabbcc03c250fafad1e1e0cc2640c48ba8eb932104051794269b04b537 |
|
MD5 | 597e98fe94397a2e4936adf640cb86df |
|
BLAKE2b-256 | 6be951c2f2d670d40f10c48b85143116ea3b43fb47fdb93d6171b56991691939 |