2

我已经开始试验aws-textract,特别是detect-document-text(文档:https ://docs.aws.amazon.com/textract/latest/dg/detecting-document-text.html )。例如,图像内容是:

This is the first line
should continue here.

This is the second line.

detect-document-text输出,正在返回 a JSON,其中每个BlockType节点是WORDLINEPAGE(附加了一些其他元素,例如,Relationships在哪里定义type和列表IdGeometry信息(坐标)Confidence,等)。在这种情况下,每行的输出将包含一个BlockType( LINE)(如预期的那样),如下所示:

{
...
  {
    ...
    "BlockType": "LINE",
    "Confidence": 97.8960189819336,
    "Text": "This is the first line",
    ...
  },
  {
    ...
    "BlockType": "LINE",
    "Confidence": 97.8960189819336,
    "Text": "should continue here.",
   ...
  },
  {
    ...
    "BlockType": "LINE",
    "Confidence": 97.8960189819336,
    "Text": "This is the second line.",
   ...
  },
  ...
}

我的问题是下一个,是否有一个可以被覆盖的参数(例如行或单元格的跨度值以通过“句子”保持单个节点)或一种按段落分组行的选项(基于计算的坐标)意图有完整的句子?或者这是来自客户端的强制性后处理?想知道,似乎是一个常见的场景,所以尝试使用output查找它是否已经由textract或其他一些服务提供。awstextractJSON

4

2 回答 2

2

正如 syumaK 的回答所提到的,Textstract API 不支持这一点。考虑使用 Google Vision API 等替代服务,它通常会为您提供整个段落,而不仅仅是行。

或者,考虑一下文本在页面上的正常布局方式。同一段落的行部分往往具有相似的宽度和相似的高度,它们将共享相似的左、中或右 x 位置,具体取决于所使用的对齐方式,并且通常 y 方向上的行之间的间隔会更小超过线高的 2 倍。您可以一次将搜索限制为单个页面。可能会受益于构建像 r-tree 这样的空间搜索索引来提高页面搜索速度。

抱歉,没有代码,但这应该形成一个很好的框架来构建线块聚合函数。

于 2020-09-28T16:10:26.160 回答
1

查看 Textract DetectDocumentText API,请求语法仅接受 Document & S3Object 作为参数

 {
  "Document": { 
  "Bytes": blob,
  "S3Object": { 
     "Bucket": "string",
     "Name": "string",
     "Version": "string"
   }
 }
}

即这意味着没有其他参数可以与 API 一起使用来将 JSON 输出转换为按段落分组行

如果您希望处理输出以便按段落对行进行分组,您将需要构建自己的逻辑。

希望这可以帮助!

于 2020-04-27T05:06:29.263 回答