zoukankan      html  css  js  c++  java
  • [撒花*/]百度词法分析工具LAC

    百度词法分析工具LAC 2.0

    LAC(Lexical Analysis of Chinese),是百度的词法分析工具,实现中文分词、词性标注、专名识别等功能。

    使用的模型论文Chinese Lexical Analysis with Deep Bi-GRU Network

    据官方介绍整体任务F1超过0.91,CPU单线程800QPS,移动端200QPS,支持Android、C++、Java、python接口。

    我只试了python的版本,如果想要使用C++、Android,有CMakeLists直接编译就好。

    • 安装
    1. pip install lac -i https://mirror.baidu.com/pypi/simple
    2. #先下载 http://pypi.python.org/pypi/lac/
      #解压后
      python setup.py install
    • 分词
    from LAC import LAC
    
    #加载模型
    lac = LAC(mode='seg')
    
    #单个样本
    text = 'LAC是一个优秀的分词工具'
    results = lac.run(text)
    
    #多样本
    texts = ['LAC是一个优秀的分词工具','我爱中华人民共和国']
    results = lac.run(texts)
    • 词性标注和命名实体识别
    from LAC import LAC
    
    lac = LAC(mode='lac')
    
    #单个样本
    text = 'LAC是一个优秀的分词工具'
    results = lac.run(text)
    
    #多样本
    texts = ['LAC是一个优秀的分词工具','我爱中华人民共和国']
    results = lac.run(texts)
    标签含义标签含义标签含义标签含义
    n 普通名词 f 方位名词 s 处所名词 nw 作品名
    nz 其他专名 v 普通动词 vd 动副词 vn 名动词
    a 形容词 ad 副形词 an 名形词 d 副词
    m 数量词 q 量词 r 代词 p 介词
    c 连词 u 助词 xc 其他虚词 w 标点符号
    PER 人名 LOC 地名 ORG 机构名 TIME 时间

     

    • 支持自定义词典

    通过装载词典文件的形式实现该功能,词典文件每行表示一个定制化的item,由一个单词或多个连续的单词组成,每个单词后使用'/'表示标签,如果没有'/'标签则会使用模型默认的标签。每个item单词数越多,干预效果会越精准。

    custom.txt自定义内容

    春天/SEASON
    花/n 开/v
    秋天的风
    落 阳
    from LAC import LAC
    lac = LAC()
    
    # 装载干预词典
    lac.load_customization('custom.txt')
    
    # 干预后结果
    custom_result = lac.run(u"春天的花开秋天的风以及冬天的落阳")
    
    
    #输出结果
    #不用自定义字典
    #春天/TIME 的/u 花开/v 秋天/TIME 的/u 风/n 以及/c 冬天/TIME 的/u 落阳/n
    
    #使用自定义字典
    #春天/SEASON 的/u 花/n 开/v 秋天的风/n 以及/c 冬天/TIME 的/u 落/n 阳/n
    • 增量训练

    官方提供了增量训练的接口,用户可以使用自己的数据,进行增量训练,首先需要将数据转换为模型输入的格式,并且所有数据文件均为"UTF-8"编码。

    1.分词训练

    数据样例,使用空格作为单词的切分标记:

    LAC 是 个 优秀 的 分词 工具 。
    百度 是 一家 高科技 公司 。
    春天 的 花开 秋天 的 风 以及 冬天 的 落阳 。
    from LAC import LAC
    
    # 选择使用分词模型
    lac = LAC(mode = 'seg')
    
    # 训练和测试数据集,格式一致
    train_file = "./data/seg_train.tsv"
    test_file = "./data/seg_test.tsv"
    lac.train(model_save_dir='./my_seg_model/',train_data=train_file, test_data=test_file)
    
    # 使用自己训练好的模型
    my_lac = LAC(model_path='my_seg_model')

    2.词法分析训练

    样例数据:

    LAC/nz 是/v 个/q 优秀/a 的/u 分词/n 工具/n 。/w
    百度/ORG 是/v 一家/m 高科技/n 公司/n 。/w
    春天/TIME 的/u 花开/v 秋天/TIME 的/u 风/n 以及/c 冬天/TIME 的/u 落阳/n 。/w
    from LAC import LAC
    
    # 选择使用默认的词法分析模型
    lac = LAC()
    
    # 训练和测试数据集,格式一致
    train_file = "./data/lac_train.tsv"
    test_file = "./data/lac_test.tsv"
    lac.train(model_save_dir='./my_lac_model/',train_data=train_file, test_data=test_file)
    
    # 使用自己训练好的模型
    my_lac = LAC(model_path='my_lac_model')

    欢迎大家讨论

  • 相关阅读:
    Reverse Linked List****
    DAI(dynamic arp inspection)
    DHCP Option 82
    Lab SSH Cisco
    Lab 802.1X+AAA
    Lab AAA-本地认证
    为边界路由器配置AAA
    端口安全总结
    Lab CBAC
    AAA 基础实验
  • 原文地址:https://www.cnblogs.com/nanmi/p/13202313.html
Copyright © 2011-2022 走看看