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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
Python Tkinter简单布局实例教程
Sep 03 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
wxPython实现列表增删改查功能
Nov 19 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python原始套接字编程实例解析
Jan 29 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
Python基础之字符串格式化详解
Apr 21 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
MYSQL环境变量设置方法
2007/01/15 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
拖拉表格的JS函数
2008/11/20 Javascript
移动节点的jquery代码
2014/01/13 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
在Django框架中设置语言偏好的教程
2015/07/27 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
对Python 数组的切片操作详解
2018/07/02 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
英国复古服装购物网站:Collectif
2019/10/30 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
写给学生的新学期寄语
2014/01/18 职场文书
职务任命书范本
2014/06/05 职场文书
python实现高效的遗传算法
2021/04/07 Python
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL