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 time模块
Apr 29 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
django框架创建应用操作示例
Sep 26 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
python cv2在验证码识别中应用实例解析
Dec 25 Python
PyQt5实现登录页面
May 30 Python
Python中的嵌套循环详情
Mar 23 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
十天学会php之第四天
2006/10/09 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
python写日志封装类实例
2015/06/28 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
出纳岗位职责范本
2013/12/01 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
工程质量承诺书范文
2014/03/27 职场文书
个人贷款承诺书
2014/03/28 职场文书
服装设计师求职信
2014/06/04 职场文书
安全责任书怎么写
2014/07/28 职场文书
婚礼答谢礼品
2015/01/20 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
项目备案申请报告
2015/05/15 职场文书
讲解Python实例练习逆序输出字符串
2022/05/06 Python