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实现发送和获取手机短信验证码
Jan 15 Python
Python网站验证码识别
Jan 25 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
Python基本socket通信控制操作示例
Jan 30 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
Python简易版图书管理系统
Aug 12 Python
Python数据分析模块pandas用法详解
Sep 04 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
Python APScheduler执行使用方法详解
Dec 10 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
php生成xml简单实例代码
2009/12/16 PHP
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python 常用string函数详解
2016/05/30 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
Django 请求Request的具体使用方法
2019/11/11 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
会计学专业自荐信
2014/06/25 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
单位工资证明范本
2015/06/12 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
Python自动化爬取天眼查数据的实现
2021/06/15 Python