Я все еще новичок в Node.js и в настоящее время разрабатываю небольшое приложение для моей кухни. Это приложение может сканировать квитанции и использует OCR для извлечения данных. Для извлечения OCR я использую веб-интерфейс ocr-space. После этого мне нужно разобрать необработанный текст в структуру JSON и отправить его в мою базу данных. Я также проверил эту квитанцию, используя AWS textract, что дало мне еще худший результат. В настоящее время я борюсь за синтаксический анализ с использованием RegEx в Node.js.
Вот моя JSON структура, которую я использую для анализа данных квитанции:
receipt = {
title: 'title of receipt'
items: [
'item1',
'item2',
'item3'
],
preparation: 'preparation text'
}
Поскольку большинство квитанций имеют часть предметов, а затем часть подготовки, мой общий подход до сих пор выглядит следующим образом:
- Поиск ключевых слов, таких как «предметы» и «подготовка» в необработанном тексте
- Разбор текста между этими ключевыми словами
- Выполнить дальнейшую строку обработка, как пропущенные пробелы, триминг и т. д. c.
Этот подход не работает, если эти ключевые слова отсутствуют. Возьмите, например, следующую квитанцию, где я изо всех сил пытаюсь разобрать ее в моей структуре JSON. Квитанция на немецком языке, и нет соответствующих ключевых слов («items» или «Zutaten», «prepare» или «Zubereitung»).
Необходима следующая информация из необработанного текста:
- название: строка 1
- элементы: строка 2 - 8
- подготовка: строка 9 до конца
У вас есть какие-либо советы или подсказки, как поступить ближе к решению? Или у вас есть другие идеи, как соответствующим образом управлять такими ситуациями?
Quinoa-Brot
30 g Chiasamen
350 g Quinoa
70 ml Olivenöl
1/2 TL Speisenatron
1 Prise Salz
Saft von 1/2 Zitrone
1 Handvoll Sonnenblumenkerne
30 g Schwarzkümmelsamen
1 Chiasamen mit 100 ml Wasser
verrühren und 30 Minuten quel-
len lassen. Den Ofen auf 200 oc
vorheizen, eine kleine Kastenform
mit Backpapier auslegen.
2 Quinoa mit der dreifachen
Menge Wasser in einen Topf ge-
ben, einmal aufkochen und dann
3 Minuten köcheln lassen - die
Quinoa wird so nur teilweise ge-
gegart. In ein Sieb abgießen, kalt
abschrecken und anschließend
gut abtropfen lassen.
Между каждой строкой есть \ n табулятор.
Обработанная квитанция должна выглядеть следующим образом:
receipt = {
title: 'Quinoa-Brot',
items: [
'30 g Chiasamen',
'350 g Quinoa',
'70 ml Olivenöl',
'1/2 TL Speisenatron',
'1 Prise Salz',
'Saft von 1/2 Zitrone'
'1 Handvoll Sonnenblumenkerne'
'30 g Schwarzkümmelsamen',
],
preparation: '1 Chiasamen mit 100 ml Wasser verrühren und 30 Minuten quellen lassen. Den Ofen auf 200 oc vorheizen, eine kleine Kastenform mit Backpapier auslegen. 2 Quinoa mit der dreifachen Menge Wasser in einen Topf geben, einmal aufkochen und dann 3 Minuten köcheln lassen - die Quinoa wird so nur teilweise gegegart. In ein Sieb abgießen, kalt abschrecken und anschließend gut abtropfen lassen.'
}