ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

albert+crf中文实体识别

2021-12-28 21:04:09  阅读:234  来源: 互联网

标签:LOC 中文 stop py albert crf ner


albert-crf

项目地址:https://github.com/jiangnanboy/albert_crf

概述

利用huggingface/transformers中的albert+crf进行中文实体识别

利用albert加载中文预训练模型,后接一个前馈分类网络,最后接一层crf。利用albert预训练模型进行fine-tune。

整个流程是:

  • 数据经albert后获取最后的隐层hidden_state=768
  • hidden_state=768经一层前馈网络进行分类
  • 将前馈网络的分类结果输入crf

数据说明

BIO形式标注(来自人民日报),见data/

训练数据示例如下:

海 O
钓 O
比 O
赛 O
地 O
点 O
在 O
厦 B-LOC
门 I-LOC
与 O
金 B-LOC
门 I-LOC
之 O
间 O
的 O
海 O
域 O
。 O

训练和预测见(examples/test_ner.py)

ner = NER(args)
if train_bool(args.train):
    ner.train()
else:
    ner.load()
    # ner.test(args.test_path)
    pprint(ner.predict('据新华社报道,安徽省六安市被评上十大易居城市!'))
    #[{'start': 7, 'stop': 10, 'type': 'LOC', 'word': '安徽省'},{'start': 10, 'stop': 13, 'type': 'LOC', 'word': '六安市'},{'start': 1, 'stop': 4, 'type': 'ORG', 'word': '新华社'}]
    
    print(ner.predict('相比之下,青岛海牛队和广州松日队的雨中之战虽然也是0∶0,但乏善可陈。'))
    #[{'start': 5, 'stop': 10, 'word': '青岛海牛队', 'type': 'ORG'}, {'start': 11, 'stop': 16, 'word': '广州松日队', 'type': 'ORG'}]
    

项目结构

  • data
    • example.dev
    • example.train
  • examples
    • test_ner.py #训练及预测
  • model
    • pretrained_model #存放预训练模型和相关配置文件
      • config.json
      • pytorch_model.bin
      • vocab.txt
  • ner
    • utils
      • convert.py
    • dataset.py
    • model.py
    • module.py
  • utils
    • log.py

参考

标签:LOC,中文,stop,py,albert,crf,ner
来源: https://www.cnblogs.com/little-horse/p/15742825.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有