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在控制台输出进度条的方法
Jun 20 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
PyQt5 pyqt多线程操作入门
May 05 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
python分布式编程实现过程解析
Nov 08 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Python xlwt模块使用代码实例
Jun 10 Python
Python实现自动整理文件的脚本
Dec 17 Python
python编写函数注意事项总结
Mar 29 Python
Python import模块的缓存问题解决方案
Jun 02 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
php5.3后静态绑定用法详解
2016/11/11 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
js下用层来实现select的title提示属性
2010/02/23 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
python中as用法实例分析
2015/04/30 Python
Django 前后台的数据传递的方法
2017/08/08 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
python 实现矩阵填充0的例子
2019/11/29 Python
PyQt5实现简单的计算器
2020/05/30 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
小学生考试获奖感言
2014/01/30 职场文书
仓管岗位职责范本
2014/02/08 职场文书
道歉信范文
2015/05/12 职场文书
银行资信证明
2015/06/17 职场文书
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript