如何训练以行号为特征的 spaCy 模型?

How to train a spaCy model with line number as a feature?

我是 nlp 和 spaCy 的新手,我正在从事一个从名片中提取人名和公司名称的项目。

为了提取文本,我使用了一个不错的 OCR 函数,它给我这样的东西:

Sunny J. Mistry
Product Design Engineer

Apple
5 Infinite Loop, MS 305-1PH
Cupertino, CA 95014

T 408 974-5339
M 925 548-4585
sjmistry@apple.com
www.apple.com

起初我尝试使用默认的英语 NER 逐行处理作业,但很快就意识到这还不够。

最终我决定创建自己的自定义 NER,它将使用有关文本位置的信息进行训练。

我没有在官方文档中找到任何关于如何为训练数据添加自定义功能(如行号)的信息,但我找到了 Matthew Honnibalanswer and example 建议使用多任务 objective 以训练具有服装特征的模型。

我还不确定:

  1. 训练数据应该是什么样的?

  2. 如何使用 spaCy 的 API 向训练过程添加自定义功能?

  3. 多任务 objective 是训练这种模型的正确工具吗?

回答我自己的问题:

我没有找到实现此类任务的官方方法,但最终我决定在包含 200 张图像的普通名片数据集上训练模型。我使用 Google OCR 从每张图片中提取文本,并使用 this post.

中描述的工具对其进行注释

它就像一个魅力。

您可以使用spacy库中的ner.add_label(LABEL)添加您自己的标签,然后使用您的名片训练数据对更新后的模型进行训练。