利用百度超大规模预训练模型进行分词 paddlehub

前言

LAC基于一个堆叠的双向GRU结构,在长文本上准确复刻了百度AI开放平台上的词法分析算法。效果方面,分词、词性、专名识别的整体准确率95.5%;单独评估专名识别任务,F值87.1%(准确90.3,召回85.4%),总体略优于开放平台版本。在效果优化的基础上,LAC的模型简洁高效,内存开销不到100M,而速度则比百度AI开放平台提高了57%。

个人使用百度LAC进行分词体验极佳,特在此推荐。本文旨在说明其安装和使用的一些细节。

根据百度paddlehub在GitHub上的说明,安装之后可在命令行中进行调用。

$hub run lac --input_text "今天是个好日子"
[{'word': ['今天', '是', '个', '好日子'], 'tag': ['TIME', 'v', 'q', 'n']}]

使用时不难感受到,在命令行中调用时,程序会加载模型,然后输出结果。加载模型的过程比较缓慢。
至于如何在python程序中调用lac进行分词,并没有过多说明,只在一个隐蔽的目录下给出了一个demo。本文会详细解释如何在python程序中使用lac进行分词。

安装

安装paddlepaddle和paddlehub

$pip install paddlepaddle
$pip install paddlehub

安装完毕后,就可以用上述的命令行工具进行分词啦。

使用

#导入paddlehub
import paddlehub as hub

if __name__ == "__main__":
    # 加载名为lac的预训练模型
    lac = hub.Module(name="lac")
    test_text = ["今天是个好日子", "天气预报说今天要下雨", "下一班地铁马上就要到了"]

    # 设定分词的输入,其输入是一个句子集合
    inputs = {"text": test_text}

    # 调用模型进行分词操作,将结果放于results中
    results = lac.lexical_analysis(data=inputs)
    # 展示结果
    print(results)

输出结果

[{'word': ['今天', '是', '个', '好日子'], 'tag': ['TIME', 'v', 'q', 'n']}, {'word': ['天气预报', '说', '今天', '要', '下雨'], 'tag': ['n', 'v', 'TIME', 'v', 'v']}, {'word': ['下', '一班', '
上', '就要', '到', '了'], 'tag': ['f', 'm', 'n', 'd', 'v', 'v', 'xc']}]

总结

在程序中使用lac分词,可以实现一次读取模型,批量处理句子。

百度的paddlehub提供了多种预训练模型,未来还会进一步探索各自的用途和使用方法。

你可能感兴趣的:(利用百度超大规模预训练模型进行分词 paddlehub)