★★★ 本文源自AlStudio社区精品项目,【点击此处】查看更多精品内容 >>>

1、项目场景说明

使用财务记账单在财务共享系统中提单是十分必要的,它对公司财务状况有显著的贡献。它可以帮助公司整理账户,确保收支准确性。这样,会计人员只要填写财务记账单,就能清楚的知道每一项支出是否准确。
由于财务记账单存在表格数据多、单据结构复杂,职级使用财务记账单在财务共享系统中提单并不是一件容易的事。企业在系统使用时应注意的法律法规和审计准则,以便及时发现并防止可能出现的财务风险。因此记账单一般以带有印章的图片形式保存,财务人员需要花费大量的精力和时间来完成表格在系统里的填制和审核,以便确保安全可靠的收支准确性和遵守法律法规审计准则。因此需要高精度的带有OCR功能的表单关系性抽取模型对信息进行抽取,减少财务人员工作压力。并且需要用UIE-X内置的Prompt技术先将表格分类到不同的类型。

2、技术方案选型

  • 业务痛点
  1. 无法知道表单类型,人工标注的话耗费时间量较大,分类为了对应的表单调用对应的识别接口。
  2. 用传统型OCR无法进行关系型抽取,接口传递的数值是乱码和一些无效信息。
  3. 针对文档中的单元格,有时会出现合并或拆分的情况,如果不能正确识别出这种情况,也会影响抽取结果的准确性,从而影响表格抽取的正确性。

3、安装说明

# 安装最新版
# !pip install paddleocr
!pip install --upgrade paddlenlp
!pip install --upgrade paddleocr
# 建议安装最新版
import paddlenlp, paddleocr
print(paddlenlp.__version__)
print(paddleocr.__version__)
from pprint import pprint
from paddlenlp import Taskflow
# 实体抽取
# 未确认融资费用单抽取
schema = [
    "单位名称", 
    "会计期间",
    "单位",
    "供应商",
    "项目名称",
    "部门",
    "租赁负债(是或否)",
    "合计",
    {"日期": ["币别", "租金", "折现率", "确认的融资费用", "应付本金减少额", "期初应付本金余额", "期末应付本金余额", "成本中心"]}
]

ie = Taskflow("information_extraction", schema=schema, model="uie-x-base", task_path="./checkpoint/model_best")
doc_path = "./data/images/%E6%9C%AA%E7%A1%AE%E8%AE%A4%E8%9E%8D%E8%B5%84%E8%B4%B9%E7%94%A8%E7%A7%9F%E8%B5%81%E6%91%8A%E9%94%80%E8%A1%A8.png"
results = ie({"doc": doc_path})
pprint(results)
ie = Taskflow("information_extraction", schema=schema, model="uie-x-base", task_path="./checkpoint/model_best")
doc_path = "./data/images/%E6%9C%AA%E7%A1%AE%E8%AE%A4%E8%9E%8D%E8%B5%84%E8%B4%B9%E7%94%A8%E7%A7%9F%E8%B5%81%E6%91%8A%E9%94%80%E8%A1%A8.png"
results = ie({"doc": doc_path})
pprint(results)
# 结果渲染
from paddlenlp.utils.doc_parser import DocParser
DocParser.write_image_with_results(
    doc_path,
    result=results[0],
save_path="image_show.png")

4、模型微调

利用label-studio对模型进行微调。

# 标注程序启动安装
pip install label-studio==1.6.0
label-studio start
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/applications/information_extraction/label_studio_text.md

开启版面分析
https://aistudio.baidu.com/aistudio/projectdetail/5017442

5、参考封装成接口

https://github.com/PaddlePaddle/PaddleNLP/blob/develop/applications/information_extraction/text/deploy/simple_serving/README.md

#服务端部署
pip install paddlenlp >= 2.4.4
paddlenlp server server:app --workers 1 --host 0.0.0.0 --port 8189
python client.py

6、最终效果展示



参考文档整理

  • UIE的技术特色
    https://aistudio.baidu.com/aistudio/education/group/info/24902
  • UIE和UIE-X详细使用:
    https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/information_extraction
  • UIE-X技术和应用解读:
    https://zhuanlan.zhihu.com/p/592422623
  • 跨模态文档信息抽取
    https://aistudio.baidu.com/aistudio/projectdetail/5017442
  • UIE-X zero-shot 直接预测:
    https://aistudio.baidu.com/aistudio/projectdetail/5017442
  • UIE-X few-shot小样本微调:
    https://aistudio.baidu.com/aistudio/projectdetail/5261592
  • UIE few-shot小样本微调:
    https://aistudio.baidu.com/aistudio/projectdetail/4038499
Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐