BROS:文档关键信息提取的革命性预训练语言模型

BROS:文档关键信息提取的革命性预训练语言模型

bros bros 项目地址: https://gitcode.com/gh_mirrors/br/bros

项目介绍

BROS(BERT Relying On Spatiality)是一款专注于文本和布局的预训练语言模型,旨在从文档中提取关键信息。BROS通过结合OCR结果(文本和边界框对),能够执行多种关键信息提取任务,例如从收据中提取有序的项目列表。该模型在AAAI 2022的主要技术轨道上发表,展示了其在文档处理领域的卓越性能。

项目技术分析

BROS的核心技术在于其对文本和布局的深度融合。传统的语言模型主要关注文本内容,而BROS则进一步考虑了文本在文档中的空间位置,从而提高了信息提取的准确性和效率。BROS基于BERT架构,通过预训练和微调两个阶段,使其在处理复杂文档时表现出色。

预训练模型

BROS提供了两种预训练模型:

  • bros-base-uncased:参数数量小于110M,适用于大多数常规任务。
  • bros-large-uncased:参数数量小于340M,适用于更复杂的任务和大规模数据处理。

这些模型都可以在Hugging Face上轻松获取和使用。

模型使用示例

以下是一个简单的使用示例,展示了如何使用BROS模型处理文档图像中的文本和布局信息:

import torch
from bros import BrosTokenizer, BrosModel

tokenizer = BrosTokenizer.from_pretrained("naver-clova-ocr/bros-base-uncased")
model = BrosModel.from_pretrained("naver-clova-ocr/bros-base-uncased")

width, height = 1280, 720
words = ["to", "the", "moon!"]
quads = [
    [638, 451, 863, 451, 863, 569, 638, 569],
    [877, 453, 1190, 455, 1190, 568, 876, 567],
    [632, 566, 1107, 566, 1107, 691, 632, 691],
]

bbox = []
for word, quad in zip(words, quads):
    n_word_tokens = len(tokenizer.tokenize(word))
    bbox.extend([quad] * n_word_tokens)

cls_quad = [0.0] * 8
sep_quad = [width, height] * 4
bbox = [cls_quad] + bbox + [sep_quad]

encoding = tokenizer(" ".join(words), return_tensors="pt")
input_ids = encoding["input_ids"]
attention_mask = encoding["attention_mask"]

bbox = torch.tensor([bbox])
bbox[:, :, [0, 2, 4, 6]] = bbox[:, :, [0, 2, 4, 6]] / width
bbox[:, :, [1, 3, 5, 7]] = bbox[:, :, [1, 3, 5, 7]] / height

outputs = model(input_ids=input_ids, bbox=bbox, attention_mask=attention_mask)
last_hidden_state = outputs.last_hidden_state

print("- last_hidden_state")
print(last_hidden_state)
print()
print("- last_hidden_state.shape")
print(last_hidden_state.shape)

项目及技术应用场景

BROS的应用场景非常广泛,特别适用于需要从复杂文档中提取关键信息的领域,例如:

  • 金融文档处理:自动提取合同、发票、报表中的关键数据。
  • 法律文档分析:从法律文件中提取重要条款和信息。
  • 医疗记录管理:自动提取病历中的关键信息,提高数据处理的效率。
  • 零售业:从收据和订单中提取商品信息,用于库存管理和销售分析。

项目特点

  • 空间感知:BROS不仅关注文本内容,还考虑了文本在文档中的空间位置,从而提高了信息提取的准确性。
  • 高效预训练:提供了两种预训练模型,适用于不同规模和复杂度的任务。
  • 易于使用:模型可以直接在Hugging Face上获取,并提供了详细的示例代码,方便开发者快速上手。
  • 开源社区支持:基于Apache 2.0开源协议,鼓励社区贡献和改进。

BROS的出现为文档处理领域带来了新的可能性,无论是企业级应用还是个人项目,BROS都能提供强大的支持。立即尝试BROS,体验文档信息提取的新高度!

bros bros 项目地址: https://gitcode.com/gh_mirrors/br/bros

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲍诚寒Yolanda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值