Skip to content

learner-crapy/Chinese_English_Coreference_Resolution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

项目介绍

具体项目代码和项目文件介绍以及部署请查看master分支,注意本项目基于 https://github.com/taishan1994/pytorch_bert_coreference_resolution 进行部署,做了以下几点工作:

1、更新了数据集,基于OntoNote5.0数据集重构了数据集,训练数据量可以达到1.7GB左右,实际训练中为了减少时间成本,只选择了文本长度小于300的样本进行重构,所以数据量减了很多;

2、加入了机器学习方法SVM、决策树、k-means,深度学习模型VGG16、Inception、LeNet5、LSTM、TextCNN进行分类;

3、重建了原项目中的数据处理方法,分别从BERT的最后一层和每一层抽取数据合并输入到上述模型中,根据处理方法不同,上述的几个深度学习模型也有有一维卷积和二维卷积的区别,细节请查看代码和原理图;

4、加入了BERT输出向量可视化的代码;

5、加入了训练过程的日志记录,包括train_acc、train_loss、dev_loss、dev_acc、recall、precision、recall等

预训练模型

1、中文模型

  在中文中我们将使用到下图所示的模型

中文选用预训练模型

  使用transformers下载上述模型,使用BertTokenizer以及BertModel加载,而不是RobertaTokenizer/RobertaModel,您可以在这里找到这些信息。

tokenizer = BertTokenizer.from_pretrained("MODEL_NAME")
model = BertModel.from_pretrained("MODEL_NAME")

2、英文模型

  英文模型使用从huggingface下载的预训练模型,你可以通过下面的python代码获取,huggingface地址 please download it in windows to obtain pytorch_model.bin file

# Import generic wrappers
from transformers import AutoModel, AutoTokenizer
# Define the model repo
model_name = "SpanBERT/spanbert-base-cased"
# Download pytorch model
model = AutoModel.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Transform input tokens
inputs = tokenizer("Hello world!", return_tensors="pt")
# Model apply
outputs = model(**inputs)

对BERT的输出进行处理

从BERT的最后一层获取向量

从BERT的每一层获取向量

一维训练日志

从最后一层获取输入到一维卷积的网络中中文

从最后一层获取输入到一维卷积的网络中英文

二维训练日志

从每一层获取输入到一维卷积的网络中中文

从每一层获取输入到一维卷积的网络中英文

一维混淆矩阵

从每一层获取输入到一维卷积的网络中混淆矩阵中文

二维混淆矩阵

从每一层获取输入到一维卷积的网络中混淆矩阵英文

一层和两层全连接网络日志

从最后一层获取输入到全连接网络中文

从最后一层获取输入到全连接网络英文

一层和两层全连接网络混淆矩阵

从最后一层获取输入到全连接网络混淆矩阵

About

Chinese and english coreference resolution based on SpanBERT and BERT

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors