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的Flask框架中web表单的教程
Apr 20 Python
Python的Bottle框架中获取制定cookie的教程
Apr 24 Python
Python中Class类用法实例分析
Nov 12 Python
Python实现矩阵转置的方法分析
Nov 24 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
Django 自定义404 500等错误页面的实现
Mar 08 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
python判断字符串以什么结尾的实例方法
Sep 18 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
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
用python代码做configure文件
2014/07/20 Python
Python命名空间详解
2014/08/18 Python
python psutil库安装教程
2018/03/19 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
简单分析python的类变量、实例变量
2019/08/23 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
python爬虫请求头设置代码
2020/07/28 Python
Python多分支if语句的使用
2020/09/03 Python
学习十八大精神心得体会
2013/12/31 职场文书
幼儿教师思想汇报
2014/01/10 职场文书
打架检讨书500字
2014/01/29 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
中学音乐课教学反思
2016/02/18 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android
Rust中的Struct使用示例详解
2022/08/14 Javascript