Тензорная модель для классификации текста

Я создаю приложение для Android с OCR и Tensorflow. Он сканирует ценники в супермаркетах и ​​должен помещать отсканированные данные в разные поля. Я сделал часть OCR, поэтому распознавание текста -> отлично работает, а Tensorflow требуется только для работы с вводом текста.

Я новичок в Tensorflow и машинного обучения в целом. Можно ли выполнить следующую работу с помощью Tensorflow и, если да, не могли бы вы поделиться некоторыми идеями о том, как это сделать?

Средний вход выглядит так:

CARLSBERG
EESTI
HELE OLU 5%
1.59 +0.10
500 ml pudel
3.18 /I
4740019113419

Цель состоит в том, чтобы отсортировать эти данные следующим образом:

Brand: CARLSBERG
Product name: HELE OLU 5%
Size: 500
Units: ml

Параметры, которые определяют, как конкретная строка будет классифицирована:

  • случай
  • Номер строки
  • Супермаркет (он известен по умолчанию)
  • Общее количество строк
  • Соотношение букв и цифр

3 ответа

Решение

Я думаю, что первым шагом было бы получить в свои руки или сгенерировать некоторые маркированные тренировочные данные. Вы должны посмотреть на извлечение функций; Например, если вы заметили, что для определенного товара вторая строка - это обычно цена, вы можете представить это как параметр. Или, скажем, если за номером следует единица измерения, например, мл / л / унция, скорее всего это будет объем. То, что вы хотите знать, это насколько вы уверены, что конкретная строка / строка, скажем, цена.

Тем не менее, я думаю, что TensorFlow больше подойдет для части проблемы распознавания текста, которую вы уже решили. То, что вы спрашиваете, относится больше к анализу текста, который может быть лучше решен с помощью подхода НЛП.

Как упоминалось в ответе 4d11, одной из самых больших проблем в машинном обучении часто является получение высококачественного набора данных обучения значительного размера.

Что касается подачи данных в сеть / модель Tensorflow, я бы порекомендовал вам ознакомиться с их руководством по началу работы по столбцам функций: https://www.tensorflow.org/get_started/feature_columns

Столбцы объектов используются для числового представления данных различных типов для представления, которое можно вводить в модель. В этом руководстве подробно рассматриваются способы, с помощью которых это работает, и почему вы можете по-разному представлять разные данные. Я нашел это довольно полезным, как вступление.

Модель Tensorflow для распознавания текста (CNN + seq2seq с визуальным вниманием) доступна в виде пакета Python и совместима с Google Cloud ML Engine. https://github.com/emedvedev/attention-ocr

Другие вопросы по тегам