数据预处理之抽取文本信息(2)

 

 Python数据预处理之抽取文本信息(2)

2 常见的文本抽取方法

针对数据不同形式,通过特定方式的数据采集方式(文档下载、数据库导出、网络爬虫、语音收集、图片解析等等)获取数据,无论是结构化的数据库文件、半结构化的网页数据,还是非结构化的图片、音视频。我们最终的目的都是将数据传入到电脑之中,通过算法模型挖掘其潜在的价值,为最终的AI技术做支撑。不同的是,在结构化和半结构化数据数据集成过程中,我们可以提取相关文本信息,做进一步的数据预处理;而非结构化的图片、音视频我们采用一定的技术手段,获取其对应的数据点矩阵。这一点不太容易理解,我们比如说想解析一张图片的数据,我们知道图片是有长宽高组成的,还包括红蓝绿三种基本色。那么我们就找到对应的多维特征,采用数据点占位表示,比如:

图片名 长(bit) 宽(bit) 绿
猫1 12 100 0 0 1
狗2 101 234 1 1 1
猪3 202 24 0 1 0

上面就数据表示猫1这张图片,长宽位点(12,100)处只有蓝色构成;狗2这张图片,长宽位点(101,234)处有红绿蓝3中色构成;猪3这张图片,长宽位点(202,24)处只有绿构成。这就是非结构数据图片转化为数值型数据的原理。完整流程数据挖掘的流程图如下所示:

我根据不同的数据类型,采用对应的数据采集方式获取目标数据。这时候的数据质量很差,存在文本格式不同,数据表示形式不同等诸多问题。这里我们单纯的考虑文本信息的处理,就文本信息而言,你采集的数据可能是网页、数据库文件、pdf文档、word文档等等。我们想去处理这些数据,还需要对数据进行集成即转化为统一的数据格式,这里我们就需要文本信息抽取,常见的抽取方式包括以下几个内容:在线格式转换工具、office内置格式转换、自己开发文本抽取工具。详见下图:

经过实际操作会发现采用在线格式转换工具存在几个弊端,其限制文件转化的数据,要么就是收费的;而采用本地的office自带文档,一个个另存为文本,肯定不现实。基于上述情况,我们对工具抽取的弊端总结如下:

  • 格式转换后,识别乱码较多
  • 不支持或者限制支持批量处理
  • 批量转化收费问题
  • 格式转换后的txt文件存在编码问题
  • 生成文件名一堆数字乱码
  • 操作不够灵活便捷

我们针对以上问题,就去寻求解决方式,那就是自己动手丰衣足食,我们自己去打造批量文本抽取问题,我们期待效果是:

  • 支持PDF/Word等多格式文本抽取
  • 自动过滤不符合指定格式的文件
  • 生成的目标文件与原文件目录一致
  • 生成文档采用统一的编码格式保存(如:UTF-8 )
  • 支持默认保存路径和自定义保存路径

3 抽取Word文档文本

做word文档抽取工作,我们运行环境是在win10-64bit下,python3.5,Anaconda4.4版本下执行的,所使用的插件是win32com。下载地址:

代码实现:

#coding=utf-8  """ Description: Word文件转化TXT文本 Author:伏草惟存 Prompt: code in Python3 env Install package: pip install pypiwin32 """  import os,fnmatch from win32com import client as wc from win32com.client import Dispatch   ''' 功能描述:word文件转存txt文件,默认存储当前路径下;用户可以指定存储文件路径。 参数描述:1 filePath:文件路径   2 savePath: 指定保存路径 ''' def Word2Txt(filePath,savePath=''):     # 1 切分文件上级目录和文件名     dirs,filename = os.path.split(filePath)     # print(dirs,'\n',filename)      # 2 修改转化后的文件名     new_name = ''     if fnmatch.fnmatch(filename,'*.doc'):         new_name = filename[:-4]+'.txt'     el
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信