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跑在win10上
Jan 15 Python
Python元组及文件核心对象类型详解
Feb 11 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
python ddt数据驱动最简实例代码
Feb 22 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
python 操作hive pyhs2方式
Dec 21 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
python代码能做成软件吗
Jul 24 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制作动态随机验证码
2015/02/12 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
用js实现计算加载页面所用的时间
2010/04/02 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
vue生命周期实例小结
2018/08/15 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
django的登录注册系统的示例代码
2018/05/14 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
质检员的岗位职责
2013/11/15 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js