python 利用已有Ner模型进行数据清洗合并代码


Posted in Python onDecember 24, 2019

我就废话不多说了,直接上代码吧!

# -*- coding: utf-8 -*-
from kashgari.corpus import DataReader
import re
from tqdm import tqdm


def cut_text(text, lenth):
  textArr = re.findall('.{' + str(lenth) + '}', text)
  textArr.append(text[(len(textArr) * lenth):])
  return textArr


def clean_data(source_file, target_file, ner_model):
  
  data_x, data_y = DataReader().read_conll_format_file(source_file)

  with tqdm(total=len(data_x)) as pbar:
    for idx, text_array in enumerate(data_x):
      if len(text_array) <= 100:
        ners = ner_model.predict([text_array])
        ner = ners[0]
      else:
        texts = cut_text(''.join(text_array), 100)
        ners = []
        for text in texts:
          ner = ner_model.predict([[char for char in text]])
          ners = ners + ner[0]
        ner = ners     
      # print('[-----------------------', idx, len(data_x))
      # print(data_y[idx])
      # print(ner)
    
      for jdx, t in enumerate(text_array):
        if ner[jdx].startswith('B') or ner[jdx].startswith('I') :
          if data_y[idx][jdx] == 'O':
            data_y[idx][jdx] = ner[jdx]
      
      # print(data_y[idx])
      # print('-----------------------]') 
      pbar.update(1)
      
  f = open(target_file, 'a', encoding="utf-8")  
  for idx, text_array in enumerate(data_x):
    if idx != 0:
      f.writelines(['\n'])  
    for jdx, t in enumerate(text_array):
      text = t + ' ' + data_y[idx][jdx] 
      if idx == 0 and jdx == 0:
        text = text
      else:
        text = '\n' + text
      f.writelines([text])  
  
  f.close()  
  
  data_x2, data_y2 = DataReader().read_conll_format_file(source_file)
  print(data_x == data_x2, len(data_y) == len(data_y2), '数据清洗完成')
# -*- coding: utf-8 -*-
import kashgari
from data_tools import clean_data
time_ner = kashgari.utils.load_model('time_ner.h5')
clean_data('./data/example.dev', 'example.dev', time_ner)

以上这篇python 利用已有Ner模型进行数据清洗合并代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python isinstance函数介绍
Apr 14 Python
以windows service方式运行Python程序的方法
Jun 03 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
python正则表达式面试题解答
Apr 28 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
Python获取网段内ping通IP的方法
Jan 31 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 #Python
Python3 A*寻路算法实现方式
Dec 24 #Python
python logging添加filter教程
Dec 24 #Python
python打印异常信息的两种实现方式
Dec 24 #Python
numpy实现神经网络反向传播算法的步骤
Dec 24 #Python
python异常处理和日志处理方式
Dec 24 #Python
Python 音频生成器的实现示例
Dec 24 #Python
You might like
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
document.createElement()用法
2013/03/13 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
tensorflow实现简单的卷积神经网络
2018/05/24 Python
python绘制雪景图
2019/12/16 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
工程总经理工作职责
2013/12/09 职场文书
编辑找工作求职信范文
2013/12/16 职场文书
市级三好学生评语
2014/12/29 职场文书
nginx内存池源码解析
2021/11/20 Servers
浅谈如何保证Mysql主从一致
2022/03/13 MySQL