Bert实现命名实体识别
Bert实现命名实体识别
用BERT模型实现对输入的文本,进行NER,具体代码如下:
# -*- coding: utf-8 -*-
# @Time : 2021-09-25 22:00
# @Author : XAT
# @FileName: NER_datawhale.py
# @Software: PyCharmfrom transformers import BertForTokenClassification, BertTokenizer
import torchmodel = BertForTokenClassification.from_pretrained("dbmdz/bert-large-cased-finetuned-conll03-english")
tokenizer = BertTokenizer.from_pretrained("bert-base-cased")label_list = [
"O", # Outside of a named entity
"B-MISC", # Beginning of a miscellaneous entity right after another miscellaneous entity
"I-MISC", # Miscellaneous entity
"B-PER", # Beginning of a person's name right after another person's name
"I-PER", # Person's name
"B-ORG", # Beginning of an organisation right after another organisation
"I-ORG", # Organisation
"B-LOC", # Beginning of a location right after another location
"I-LOC" # Location
]sequence = "Hugging Face Inc. is a company based in New York City. Its headquarters are in DUMBO, therefore very close to the Manhattan Bridge."tokens = tokenizer.tokenize(tokenizer.decode(tokenizer.encode(sequence)))
inputs = tokenizer.encode(sequence, return_tensors="pt")outputs = model(inputs).logits
predictions = torch.argmax(outputs, dim=2)for token, prediction in zip(tokens, predictions[0].numpy()):print((token, model.config.id2label[prediction]))
输出结果如下:
E:\Pycharm\Workplace\IncrementalED\code\venv\Scripts\python.exe E:/Pycharm/Workplace/PYTHON/NER_datawhale.py
Downloading: 100%|██████████| 213k/213k [00:00<00:00, 430kB/s]
Downloading: 100%|██████████| 29.0/29.0 [00:00<00:00, 29.1kB/s]
Downloading: 100%|██████████| 436k/436k [00:00<00:00, 537kB/s]
('[CLS]', 'O')
('Hu', 'I-ORG')
('##gging', 'I-ORG')
('Face', 'I-ORG')
('Inc', 'I-ORG')
('.', 'O')
('is', 'O')
('a', 'O')
('company', 'O')
('based', 'O')
('in', 'O')
('New', 'I-LOC')
('York', 'I-LOC')
('City', 'I-LOC')
('.', 'O')
('Its', 'O')
('headquarters', 'O')
('are', 'O')
('in', 'O')
('D', 'I-LOC')
('##UM', 'I-LOC')
('##BO', 'I-LOC')
(',', 'O')
('therefore', 'O')
('very', 'O')
('close', 'O')
('to', 'O')
('the', 'O')
('Manhattan', 'I-LOC')
('Bridge', 'I-LOC')
('.', 'O')
('[SEP]', 'O')Process finished with exit code 0
注意:
如果报错”ValueError: tensorflow.spec is None“,可参考另一篇博客的解决办法:Click Here
Bert实现命名实体识别相关推荐
- 基于知识图谱的问答系统,BERT做命名实体识别和句子相似度
向AI转型的程序员都关注了这个号
- 基于深度学习的命名实体识别研究综述——论文研读
基于深度学习的命名实体识别研究综述 摘要: 0引言 1基于深度学习的命名实体识别方法 1.1基于卷积神经网络的命名实体识别方法 1.2基于循环神经网络的命名实体识别方法 1.3基于Transforme ...
- 推荐30个以上比较好的命名实体识别模型github源码?
命名实体识别是自然语言处理中的一个重要任务,也是比较经典的应用.这里推荐几个比较流行的命名实体识别模型的GitHub源码: BERT-NER:基于BERT的命名实体识别模型,使用了CRF层来解码,在很 ...
- 基于BERT预训练的中文命名实体识别TensorFlow实现
BERT-BiLSMT-CRF-NER Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tun ...
- 跟我读论文丨ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别
摘要:本文是对ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别这一论文工作进行初步解读. 本文分享自华为云社区<ACL2021 NER | BERT化隐马尔可夫模型用于 ...
- 【项目调研+论文阅读】基于BERT的中文命名实体识别方法[J] | day6
<基于BERT的中文命名实体识别方法>王子牛 2019-<计算机科学> 文章目录 一.相关工作 二.具体步骤 1.Bi-LSTM 2.CRF结构 三.相关实验 1.数据集 2. ...
- BERT-BiLSTM-CRF基于BERT预训练的中文命名实体识别TensorFlow实现
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx Tensorflow solution of NER task Using BiLSTM-CR ...
- 基于BERT+BiLSTM+CRF的中文景点命名实体识别
赵平, 孙连英, 万莹, 葛娜. 基于BERT+BiLSTM+CRF的中文景点命名实体识别. 计算机系统应用, 2020, 29(6): 169-174.http://www.c-s-a.org.cn ...
- 应用BERT模型做命名实体识别任务
应用BERT模型做命名实体识别任务 作者:陆平 1. 命名实体识别任务概述 人工智能技术的应用领域日趋广泛,新的智能应用层出不穷.本项目将利用人工智能技术来对快递单文字中的命名实体信息进行识别,包括姓 ...
最新文章
- WPF判断两个时间大小避免误差
- Java基础班学习笔记(13)IO流
- Android应用中使用AsyncHttpClient来异步网络数据
- 今晚直播 | 平安人寿资深算法工程师姚晓远:对话生成模型的探析与创新
- 从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库
- Oracle执行计划显示
- [原创]如何从数据库层面检测两表内容的一致性
- 2017-3-23校内训练
- Caffe 数据结构
- 小米终于开始对外输出了!
- 气候遇上AI:从此天有可测风云
- 某超级注入程序的驱动逆向
- 【C语言】头文件书写方法与规范、code::black中如何创建并编写头文件(一看就会)
- android 字体调节大小,教你如何修改Android默认字体大小和设置字体大小比例
- OJ 2308 Problem D	Grape
- 计算机语言pasen,荷兰语
- Linux单片机串口通信总结
- 精准面试突击55:delete、drop、truncate有什么区别?
- ABAP 语法:“LOOP … ASSIGNING …”,可直接修改内表数据,效率更高
- 物体长度测量---------C#+Emgucv