<font size=8>**数据处理模块**</font>
此模块主要对数据data、data2、msra、人名日报 4份数据进行处理,可直接提供给模型使用。
# 文件构成
- data2_preprocessing.py data2数据预处理文件
- msra_preprocessing.py MSRA数据预处理
- process_data.py 数据处理
- renminribao_preprocessing.py 人民日报数据处理
- vocab.py 词表
- 提供词表 和 tag 标签表格
- 词表采用 BERT 预训练文件中vocab.txt
- tag 采用 O、B-PER、I-PER、B-LOC、I-LOC、B-ORG、I-ORG
# 文件简介
## data2_preprocessing.py
data2 原文件all.txt 文件中的格式,这便是我们预处理的标准格式,所以这里只需要将文件切分成test.txt和train.txt两份数据即可。
```python
中 B-ORG
共 I-ORG
中 I-ORG
央 I-ORG
致 O
中 B-ORG
国 I-ORG
致 I-ORG
公 I-ORG
党 I-ORG
十 I-ORG
一 I-ORG
大 I-ORG
的 O
贺 O
词 O
```
## msra_preprocessing.py MSRA数据预处理
MAST是微软亚洲研究院开源数据
train1.txt 数据格式:
```python
当/o 希望工程/o 救助/o 的/o 百万/o 儿童/o 成长/o 起来/o ,/o 科教/o 兴/o 国/o 蔚然成风/o 时/o ,/o 今天/o 有/o 收藏/o 价值/o 的/o 书/o 你/o 没/o 买/o ,/o 明日/o 就/o 叫/o 你/o 悔不当初/o !/o
```
其中需要做几个映射:
```
人名:
nr -> B-PER、I-PER
地名:
ns -> B-LOC、I-LOC
机构名称:
nt -> B-ORG、I-ORG
```
我们需要处理成以下格式:
```python
当 O
希 O
望 O
工 O
程 O
救 O
助 O
的 O
百 O
万 O
```
并且切分成训练和测试数据集
## process_data.py 数据处理
数据处理直接提供给模型训练使用。
数据处理有两种一种是一般的模型输入只需要一个2维数组
- 一般模型
- inputs = ids(n_sample x max_len) 只需要一个二维输入
- labels = label(n_sample x max_len x one_hot_num) (转化为noe-hot为可选项目) 三维数据
- BERT
- inputs =[ids(n_sample x max_len) , types(n_sample x max_len) ] 只需要2个二维输入
- labels = label(n_sample x max_len x one_hot_num) (转化为noe-hot为可选项目) 三维数据
所以 一般模型的输入和bert数据输入需要进行区分
- 数据处理 (过程)
- data(texts)(一般处理)
- 获取char to index 字典
- 把文本转化为index的形式
- 截取过长的文本、填充长度不够文本
- data(texts)(bert数据处理)
- 获取char to index 字典
- ids把文本转化为index的形式 type 全部填充0 因为只有一个句子
- 截取过长的文本
- 首尾进行填充(开始填充[CLS] 结尾填充 [SEP])
- labels()
- 获取tag to index 字典
- 把label处理成Index的形式
- 截取和填充(bert需要注意填充了[CLS] [SEP])
- 转化成one-hot(如果需要)
- 最终输出(以label为one-hot为例子)
- 一般数据
- datas.shape=(n_sample, max_len)
- labels.shape=(n_sample, max_len, one_hot_len)
- bert数据
- datas = [ ids.shape=(n_sample, max_len), types.shape=(n_sample, max_len) ]
- lables.shape=(n_sample, max_len, one_hot_len)
- bert数据处理
## renminribao_preprocessing.py
人名日报标注数据预处理
原数据格式 (其实这个是别人稍稍处理过的-------------- )
```python
迈/O 向/O 充/O 满/O 希/O 望/O 的/O 新/O 世/O 纪/O —/O —/O 一/O 九/O 九/O 八/O 年/O 新/O 年/O 讲/O 话/O (/O 附/O 图/O 片/O 1/O 张/O )/O
中/B_nt 共/M_nt 中/M_nt 央/E_nt 总/O 书/O 记/O 、/O 国/O 家/O 主/O 席/O 江/B_nr 泽/M_nr 民/E_nr
(/O 一/O 九/O 九/O 七/O 年/O 十/O 二/O 月/O 三/O 十/O 一/O 日/O )/O
1/O 2/O 月/O 3/O 1/O 日/O ,/O 中/B_nt 共/M_nt 中/M_nt 央/E_nt 总/O 书/O 记/O 、/O 国/O 家/O 主/O 席/O 江/B_nr 泽/M_nr 民/E_nr 发/O 表/O 1/O 9/O 9/O 8/O 年/O 新/O 年/O 讲/O 话/O 《/O 迈/O 向/O 充/O 满/O 希/O 望/O 的/O 新/O 世/O 纪/O 》/O 。/O (/O 新/B_nt 华/M_nt 社/E_nt 记/O 者/O 兰/B_nr 红/M_nr 光/E_nr 摄/O )/O
```
需要做的标注映射:
```python
人名:
B_nr -> B-PER
M_nr -> I-PER
E_nr -> I-PER
地名:
B_ns -> B-LOC
M_ns -> I-LOC
E_ns -> I-LOC
机构名称:
B_nt -> B-ORG
M_nt -> I-ORG
E_nt -> I-ORG
```
处理成通用的格式
```python
迈 O
向 O
充 O
满 O
希 O
望 O
的 O
新 O
世 O
纪 O
— O
— O
```
## vocab.py 词表
- 提供词表 和 tag 标签表格
- 词表采用 BERT 预训练文件中vocab.txt
- tag 采用 O、B-PER、I-PER、B-LOC、I-LOC、B-ORG、I-ORG
没有合适的资源?快使用搜索试试~ 我知道了~
基于keras中文命名实体识别NER实现BERT+BILSTM+CRF进行实体识别python源码+项目说明.zip
共58个文件
pyc:19个
py:16个
txt:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 119 浏览量
2024-05-23
21:06:17
上传
评论
收藏 13.92MB ZIP 举报
温馨提示
中文命名实体识别NER。用keras实现BILSTM+CRF、IDCNN+CRF、BERT+BILSTM+CRF进行实体识别。结果当然是BERT+BILSTM+CRF最好啦。 主要库的版本 本项目是基于keras(Using TensorFlow backend)以下是主要库的版本 python = 3.6.8 keras == 2.2.4 keras_contrib == 0.0.2 keras_bert == 0.80.0 tensorflow == 1.14.0 项目目录结构 data 数据目录 具体请查看数据目录文件夹下的README文件 DataProcess 数据处理文件夹 具体请查看数据处理文件夹下的README文件 Pubilc 公共工具 path 定义文件(文件夹)的路径 utils 工具 创建log keras的callback调类 Model 模型(总共定义了5个模型,具体结构请查看Model文件夹下的README文件) BERT+BILST+CRF BILSTM+Attention+CRF BILSTM+CRF IDCNN+CRF(1) IDCNN+
资源推荐
资源详情
资源评论
收起资源包目录
基于keras中文命名实体识别NER实现BERT+BILSTM+CRF进行实体识别python源码+项目说明.zip (58个子文件)
code
data
chinese_L-12_H-768_A-12
vocab.txt 128KB
data
test.txt 1.55MB
readme.txt 44B
train.txt 6.94MB
vocab
vocab.txt 128KB
data2
all.txt 16.61MB
renMinRiBao
renmin3.txt 11.1MB
MSRA
link.txt 90B
train1.txt 9.99MB
README.md 1010B
Model
__init__.py 6B
picture
BILSTM_ATTENTION_CRF.png 73KB
BERT_BILSTM_CRF.png 1.74MB
IDCNN_CRF.png 74KB
BILSTM_CRF.png 61KB
IDCNN_CRF_2.png 93KB
IDCNN_CRF.py 5KB
BILSTM_Attetion_CRF.py 5KB
BERT_BILSTM_CRF.py 3KB
IDCNN5_CRF.py 5KB
BILSTM_CRF.py 3KB
__pycache__
IDCNN_CRF.cpython-36.pyc 3KB
BERT_BILSTM_CRF.cpython-36.pyc 2KB
BILSTM_CRF.cpython-36.pyc 3KB
BILSTM_Attetion_CRF.cpython-36.pyc 4KB
__init__.cpython-36.pyc 168B
IDCNN5_CRF.cpython-36.pyc 3KB
README.md 1KB
.idea
NER_DEMO.iml 456B
workspace.xml 40KB
misc.xml 203B
modules.xml 265B
Public
utils.py 2KB
__init__.py 355B
path.py 724B
__pycache__
path.cpython-37.pyc 483B
path.cpython-36.pyc 605B
__init__.cpython-37.pyc 168B
__init__.cpython-36.pyc 355B
utils.cpython-36.pyc 2KB
DataProcess
msra_preprocessing.py 4KB
data2_preprocessing.py 2KB
renminribao_preprocessing.py 4KB
vocab.py 789B
process_data.py 8KB
__pycache__
process_data.cpython-36.pyc 5KB
vocab.cpython-36.pyc 817B
data2_preprocessing.cpython-36.pyc 2KB
msra_preprocessing.cpython-36.pyc 3KB
renminribao_preprocessing.cpython-36.pyc 3KB
vocab.cpython-37.pyc 785B
__init__.cpython-36.pyc 1KB
data_process_bert.cpython-36.pyc 4KB
README.md 5KB
train.py 4KB
README.md 3KB
log
__init__.py 0B
df_buff.csv 4KB
共 58 条
- 1
资源评论
FL1768317420
- 粉丝: 4987
- 资源: 5748
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 20240616_195603662.jpeg
- 52481010776991400971718624279654.jpg
- _.sys_oaid_QQ浏览器压缩包.zip
- 三个工具 1、gui的分数显示,每5秒刷一次,数据库能到27年 2、WebServer改分数的接口 3、修改分数的html页面
- 计算整数各位数字之和 C++中如何计算任何一个正整数的各位数字之和
- FPM383C/FPM383F指纹模块,stm32例程,使用库函数
- 银行家算法学习笔记介绍和使用讲解
- 后缀表达式求值算法介绍
- DDR3 DDR4 DDR5参数详细解释,手把手教你学习流程,反复复习
- 多台单片机间网络的实现(互相通信)含源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功