用于文本分类的 Tensorflow 模型

Tensorflow model for text classification

我正在使用 OCR 和 Tensorflow 构建一个 Android 应用程序。它在超市扫描价格标签,并且必须将扫描的数据放入不同的字段中。我已经完成了 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

确定特定字符串分类方式的参数是:

用于文本识别的 Tensorflow 模型(CNN + 具有视觉注意力的 seq2seq)可作为 Python 包使用并与 Google Cloud ML Engine 兼容。 https://github.com/emedvedev/attention-ocr

我认为第一步是亲自动手或生成一些带标签的训练数据。您应该研究特征提取;例如,如果您注意到某个商品的第二行通常是价格,您可以将其表示为参数。或者说如果一个数字后面跟着一个单位,如 ml/l/oz,它很可能是音量。您想知道的是您对特定 line/string 说出价格的信心有多大。

但是,我认为 TensorFlow 更适合您已经解决的问题的 OCR 部分。你问的更多是文本解析,可以用 NLP approach.

更好地解决

正如 4d11 的回答中提到的,机器学习中最大的挑战之一通常是获得高质量、规模显着的训练数据集。

关于将数据输入 Tensorflow network/model,我建议您查看他们的 'get started' 特征列教程: https://www.tensorflow.org/get_started/feature_columns

特征列用于以数字方式表示不同类型的数据,以便可以将其输入模型。本教程详细介绍了它的工作方式以及为什么您可以选择以不同方式表示不同数据。我发现它作为介绍非常有用。