PaddleHub识别中文人名实战记录及心得

一,简介与特性

便捷地获取PaddlePaddle生态下的预训练模型,完成模型的管理和一键预测。配合使用Fine-tune API,可以基于大规模预训练模型快速完成迁移学习,让预训练模型能更好地服务于用户特定场景的应用,PaddleHub旨在为开发者提供丰富的、高质量的、直接可用的预训练模型

【模型种类丰富】: 涵盖大模型、CV、NLP、Audio、Video、工业应用主流六大品类的 400+ 预训练模型,全部开源下载,离线可运行

【超低使用门槛】:无需深度学习背景、无需数据与训练过程,可快速使用AI模型

【一键模型快速预测】:通过一行命令行或者极简的Python API实现模型调用,可快速体验模型效果

【一键模型转服务化】:一行命令,搭建深度学习模型API服务化部署能力

【跨平台兼容性】:可运行于Linux、Windows、MacOS等多种操作系统

二,使用场景

图像类(212个)

  • 包括图像分类、人脸检测、口罩检测、车辆检测、人脸/人体/手部关键点检测、人像分割、80+语言文本识别、图像超分/上色/动漫化等

文本类(130个)

  • 包括中文分词、词性标注与命名实体识别、句法分析、AI写诗/对联/情话/藏头诗、中文的评论情感分析、中文色情文本审核等

语音类(15个)

  • ASR语音识别算法,多种算法可选

 

  • TTS语音合成算法,多种算法可选

 

视频类(8个)

  • 包含短视频分类,支持3000+标签种类,可输出TOP-K标签,多种算法可选。
  • 感谢CopyRight@PaddleVideo提供预训练模型,训练能力开放,欢迎体验。
  • 举例:输入一段游泳的短视频,算法可以输出"游泳"结果

 具体应用场景包括:

OCR文字识别,动物识别, 视频分类,智能影像修复,词法分析,智能生成文本,口罩人脸检测,肺炎CT分析,场景详情见官方链接PaddleHub-源于产业实践的开源深度学习平台

三,安装

环境依赖

  • paddlepaddle >= 2.2.0

  • paddlehub >= 2.2.0

快速安装相关组件

!pip install --upgrade paddlepaddle -i https://mirror.baidu.com/pypi/simple
!pip install --upgrade paddlehub -i https://mirror.baidu.com/pypi/simple

四,实战记录及心得

1.前言:此次记录是基于paddlehub的lac模型进行中文分词识别

2.模型概述:

PaddleHub的lac模型词法分析.识别中文名, PaddleHub Module支持预测
lac:Lexical Analysis of Chinese,是一个联合的词法分析模型,能整体性地完成中文分词、词性标注、专名识别任务

 代码展示:

mport paddle
import paddlehub as hub

paddle.enable_static()  # 从2.0.0版本开始,Paddle默认开启静态图模式

def identify_person_name(text):
    """
    识别姓名
    :param text: 语句, str
    :return: 姓名, str
    """
    try:
        """
        选择LAC效果
        Lexical Analysis of Chinese,
        简称LAC,是一个联合的词法分析模型,能整体性地完成中文分词、词性标注、专名识别任务
        """
        lac = hub.Module(name='lac')
        """
        PaddleHub的lac模型词法分析.识别中文名, PaddleHub Module支持预测
        lac:Lexical Analysis of Chinese,是一个联合的词法分析模型,能整体性地完成中文分词、词性标注、专名识别任务
        参数:
            text(str or list): 待预测数据,单句预测数据(str类型)或者批量预测(list,每个元素为str
            use_gpu(bool): 是否使用GPU预测,如果使用GPU预测,则在预测之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置
            batch_size(int): 批处理大小
            return_tag(bool): 预测结果是否需要返回分词标签结果
        """
        results = lac.cut(text=[text], return_tag=True)
        per_name = []  # 词性为'PER的词语,即人名
        for _i, t in enumerate(results[0]['tag']):  # 遍历results词性列表
            if t == 'PER':
                per_name.append(results[0]['word'][_i])

        return per_name if per_name else '未识别出人名'  # 返回党员姓名

    except Exception as e:
        return e

开始运行:

print(identify_person_name('钟伟政党组织关系转出回执给张颖'))

运行结果如下:

[2023-01-09 17:58:39,982] [ WARNING] - The _initialize method in HubModule will soon be deprecated, you can use the __init__() to handle the initialization of the object
['钟伟政', '张颖']

根据结果可看出,paddlehub的lac模型精准地识别出了语句中的两个人名,包括第一个在语句中有中文歧义干扰的人名也识别出来了,这是目前开源的中文分词组件中我使用过的最准确的模型算法

猜你喜欢

转载自blog.csdn.net/Smile_Lai/article/details/128617727
今日推荐