当前位置:   article > 正文

PaddleNLP搭配PaddleOCR提取图片关键信息_paddleocr 关键信息提取

paddleocr 关键信息提取

前言

通过上文PaddleOCR环境搭建并简单提取文字
已经可以实现从图片提取文字。
通过以下代码循环获取文本列表。

txts = [line[1][0] for line in result]
  • 1

变量txts里面的值
接下去可以使用PaddleNLP进行关键信息抽取

PaddleNLP

PaddleNLP是一款简单易用且功能强大的自然语言处理开发库。聚合业界优质预训练模型并提供开箱即用的开发体验,覆盖NLP多场景的模型库搭配产业实践范例可满足开发者灵活定制的需求。
官方gitee仓库:https://gitee.com/monkeycc/PaddleNLP

安装PaddleNLP

打开Anaconda Prompt

安装paddlenlp

pip install paddlenlp -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 1

使用一键预测模型

这里我们引用PaddleNLP的一键预测功能无需训练,直接输入数据即可通过抽取结果。

from paddlenlp import Taskflow
# 获取信息抽取模型information_extraction
ie = Taskflow('information_extraction', schema=[])
txts = [line[1][0] for line in result]
# 合并文本
all_context = "\n".join(txts)
schema = ['甲方', '乙方', '工程名称','工程地点']
ie.set_schema(schema)
# nlp模型推理
nlp_result = ie(all_context)
print(nlp_result)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出:

[{
‘甲方’: [{‘text’: ‘叶县环境保护局’, ‘start’: 7, ‘end’: 14, ‘probability’:
0.9188739300160371}],
‘乙方’: [{‘text’: ‘叶县建昆重政工程有限公司’, ‘start’: 18, ‘end’: 30, ‘probability’: 0.8437942288489282}],
‘工程名称’: [{‘text’:‘叶县环境空气质量自动监测站建设工程’, ‘start’: 144, ‘end’: 161, ‘probability’:
0.8328638234375312}],
‘工程地点’: [{‘text’: ‘叶县’, ‘start’: 7, ‘end’: 9, ‘probability’: 0.8829175051535643}]
}]

分析结果得出数据结构为[{}]的形式嵌套,即列表里嵌套字典。
使用下列代码格式化结果:

for key in schema:
    value = nlp_result[0][key][0]['text']
    print(key+':'+value)
  • 1
  • 2
  • 3

输出:

甲方:叶县环境保护局
乙方:叶县建昆重政工程有限公司
工程名称:叶县环境空气质量自动监测站建设工程
工程地点:叶县

完整代码:

from paddleocr import PaddleOCR, draw_ocr
from PIL import Image

# paddleocr目前支持中英文、英文、法语、德语、韩语、日语等80个语种,可以通过修改lang参数进行切换
ocr = PaddleOCR(use_angle_cls=False, lang="ch")  # need to run only once to download and load model into memory
img_path = "./test_img/hetong2.jpg"
result = ocr.ocr(img_path, cls=False)
# 引用nlp
from paddlenlp import Taskflow
# 获取信息抽取模型information_extraction
ie = Taskflow('information_extraction', schema=[])
txts = [line[1][0] for line in result]
print(txts)
# 合并文本
all_context = "\n".join(txts)
schema = ['甲方', '乙方', '工程名称','工程地点']
ie.set_schema(schema)
# nlp模型推理
nlp_result = ie(all_context)
print(nlp_result)
result = []
# 格式化预测结果
for key in schema:
    value = nlp_result[0][key][0]['text']
    print(key+':'+value)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/995534
推荐阅读
相关标签
  

闽ICP备14008679号