Распознавание / классификация названий продуктов - PullRequest
0 голосов
/ 27 июня 2019

Я новичок в машинном обучении, поэтому, пожалуйста, прости любую ошибку в этом вопросе ...

ОПРЕДЕЛЕНИЕ ПРОБЛЕМЫ

Мы работаем в проекте, который имеет следующие конкретные требования:

  1. Пользователь берет фотографию с полки аптек, которая содержит набор продуктов (лекарств), и загружает ее в Azure

  2. Мы используем Azure Cognitive Services для распознавания изображений и обнаружения текста по ним

  3. OCR, в большинстве случаев, возвращает много текста, большая часть которого полезна, но некоторые строки нам не нужны, также OCR может возвращать неправильно введенные слова (очень похоже на название продукта)

  4. У нас есть словарь названий продуктов / распознанный термин (созданный вручную (вид vademecum))

  5. Нам нужно для каждой строки текста, возвращаемого OCR:

    • Сравнение с известным названием продукта / признанным термином
    • Отменить неизвестные слова

Пример

  1. у нас есть это изображение в качестве примера: Образец изображения

  2. OCR возвращает эти строки ( во 2-м столбце (--->) нашего ожидаемого результата ):

    • flex ---> NULL
    • F1ORAT1L ---> ФЛОРАТИЛ
    • FLORATI L 100 ---> FLORATIL
    • ФЛОРАТИЛ 200 ---> ФЛОРАТИЛ
    • ФЛОРАТИЛ В 250 ---> ФЛОРАТИЛ
    • Энтерогермина ---> Энтерогермина
    • PROMOCAO ---> NULL
    • равно 27.30 ---> NULL
    • yces boulardii CNCM I ---> NULL
    • VALE POR ---> NULL
    • TA BARATO ---> NULL

ВОПРОС

  1. OCR может возвращать неправильно введенные слова (очень похоже на названия продуктов) см. Строки 2 и 3 . Как вы рекомендуете реализовать это нечеткое сопоставление?

  2. Мы хотели бы объединить различные типы конфигураций продуктов (FLORATIL 100, FLORATIL 200, FLORATIL AT 250) к основной категории лекарств = FLORATIL

  3. Как вы себе представляете лучший трубопровод для решения этой проблемы? мы хотели бы использовать любой алгоритм, доступный в службах машинного обучения Azure, но мы можем использовать python или другой стек

Спасибо!

1 Ответ

0 голосов
/ 27 июня 2019

Исходя из определения ваших потребностей, вы можете просто добавить Поиск Azure и получить то, что вам нужно:

  • Позвоните в OCR
  • Для каждого элемента в OCR Result, вызовите Azure Search (добавьте ~ после каждого слова и укажите queryType=full, чтобы выполнить нечеткое совпадение, см. Документ здесь )
    • Используйте результат поиска, чтобы получить элемент с наибольшим соответствием, и используйте предоставленную оценку, чтобы отфильтровать несоответствующие результаты, если это необходимо.

Вам просто нужно настроить поиск Azure в словаре, который вы упомянули

...