@briancullen/aws-textract-parser

中文文档
0.0.2发布于 2019/11/08ISCTypeScriptCommonJS零依赖近 30 天下载 4.3万

用于将 AWS Textract 响应转换为更可用结构的库.

中文使用文档
文档目录3 节
  1. 理由
  2. 使用量
  3. API 密码

AWS 文本截取解析器

Build Status Maintainability Test Coverage

Textract是一种AWS服务,它允许您从图片或PDF文档中提取出文本. 这个图书馆的建立是为了处理这个服务的反应,并把它变成一些可以管理的东西.

页:1: 目前此库只用于处理来自检测DocumentText呼叫的响应, 无论是同步还是同步响应 。 分析分析文档的电话可能会在稍后日期被添加.

理由

Textract 返回 json 表示它在输入中检测到的页面,行和单词. 下面是您可以期望的由两个单词组成的一行文字数据的简化示例. 如所见,数据描述了一棵树,其中一行被指为一行的孩子,一行被指为一行的孩子.

{
  "DocumentMetaData": {
    "Pages": 1
  },
  "Blocks": [
    {
      "Id": "1",
      "BlockType": "PAGE",
      "Relationships": [{
        "Type": "CHILD",
        "Ids": [ "2" ]
      }]
    },
    { 
      "Id": "1",
      "BlockType": "LINE",
      "Relationships": [{
        "Type": "CHILD",
        "Ids": [ "3", "4" ]
      }]
    },
    { "Id": "3", "BlockType": "WORD" },
    { "Id": "4", "BlockType": "WORD" }
  ]
}

不幸的是,这棵树的结构被平整成一个阵列,这让它更尴尬,它应该是。 这个库的目的是处理这个平地的json来提供它所描述的树结构.

在一些测试中,与一行有关的词的顺序与文本的顺序不符. 这不是你期望的处理文件。 要解决这个问题, 库会将单词排序为左到右顺序( 根据他们在页面上的位置) .

使用量

模块的默认导出是一个支持三种不同方法的解析实例, handleDetectTextCallback, (中文(简体) ), handleDetectTextResponse,以及 parseGetTextDetection。 。 。 .

handleDetectTextCallback 是一种帮助方法,可以作为标准的回调方式传递到Textract方法。 反过来,它将与经过加工的树一起唤起另一个召回。 这种使用的例子如下:.

import { Textract } from 'aws-sdk'
import textractParser from '<TBD>'

const textract = new Textract()
const myCallback = (err, data) => {
  if(err) {
    console.log(err)
  } else {
    console.log(data)
  }
}

const request = {
  Document: {
    S3Object: {
      Bucket: "your-s3-bucket",
      Name: "your-object-key"
    }
  }
}

textract.detectDocumentText(request,
  textractParser.handleDetectTextCallback(myCallback))

handleDetectTextResponse 将取类型值 Textract.DetectDocumentTextResponse 并同步处理它。 这可以和AWS SDK提供的承诺一起使用. 下文举例说明如何以这种方式使用.

textract.detectDocumentText(request).promise()
  .then(data => textractParser.parseDetectTextResponse(data))
  .then(parsedData => console.log(parsedData))
  .catch(err => console.log(err))

parseGetTextDetection 是用于GetDocumentText Detection操作的辅助方法。 此操作可以在多个请求中返回已处理的信息, 这在试图构建完整树时会产生问题 。 如果所有结果都以单一回复方式返回,则 handleDetectTextResponse 可按以上所示使用.

然而,如果情况并非如此,那么这个呼叫可以用来检索所有数据并构建树,如下所示. 要让 SDK 在不同环境中以不同方式配置,必须为此方法提供即时文本格式客户端.

const jobId = 'your-job-id'
const client = new AWS.Textract()

textract.detectDocumentText(client, jobId)
 .then(parsedData => console.log(parsedData))
 .catch(err => console.log(err))

页:1 这种方法将把整个结果集装入内存,这可能会给真正的大文档带来问题. 为10页文本文件提供一些上下文,从文本中返回的结果大小为7MB.

API 密码

见 API 文档 更多信息.

特别提及文档类的 API , 因为它构成了返回的树根 .

版本与发布记录

@briancullen/aws-textract-parser 共发布 2 个版本,首次发布于 2019/11/08;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.2latest2019/11/087 年前
0.0.12019/11/067 年前

关于 @briancullen/aws-textract-parser 的常见问题

@briancullen/aws-textract-parser 是什么?

用于将 AWS Textract 响应转换为更可用结构的库.

如何安装 @briancullen/aws-textract-parser?

在项目目录运行 npm install @briancullen/aws-textract-parser,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:aws-sdk(^2.556.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@briancullen/aws-textract-parser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@briancullen/aws-textract-parser 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@briancullen/aws-textract-parser 可以商用吗?

@briancullen/aws-textract-parser 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@briancullen/aws-textract-parser 的下载量有多少?

根据 npm 官方下载统计,@briancullen/aws-textract-parser 在 2026/10/09 – 2026/11/07 这 30 天内被下载 42,783 次,日均约 1,426 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@briancullen/aws-textract-parser 还在维护吗?

最新版本 0.0.2 发布于 2019/11/08(7 年前);至今共发布 2 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/11/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。