文本信息抽取算法研究
2017-06-03李春辉
(黑龙江工商学院 黑龙江 哈尔滨 150025)
随着商品在线评论数量的骤然增加,消费者要想找出商品评论中的有用信息需要消耗大量精力.因此对这些散落在Html网页中无结构的信息进行提取、分析,不仅能够帮助消费者从海量的文本中快速获得有效的信息,节省人力成本,也可以帮助企业改进产品、提高质量,从而为电子商务产品推荐提供一种新的营销模式.为有效的抽取互联网上的信息,网络文本信息非结构化数据抽取技术、网络文本信息采集技术和细粒度数据挖掘技术应用而生.信息抽取技术是通过对网页进行处理,从半结构化或者非结构化的Web页面中抽取出用户感兴趣的信息和内容,并将其转化成清晰的结构形式.
信息采集技术是指通过分析网页Html代码,获取网页内的超链接信息,并使用广度优先遍历算法、深度优先遍历算法、增量存储算法等实现自动连续的分析链接、抓取文件、处理和保存数据的过程.细粒度挖掘技术深入到产品特征层面,能够提取到评价信息中涉及的评价对象、评价词以及对应的评价倾向等意见要素,从而为一些实际应用提供必要的细节信息.而目前根据抽取技术和依据理论的不同,主要有RAPIERE 、WHISKt 和SRV基于自然语言的信息抽取,STAI KER,SOFTMEAI Y和WINE基于包装归纳的信息抽取,WebQLE基于Web查询的信息抽取,基于文档结构模型和网页模板的DOM 信息抽取。
面对海量数据,抽取技术的性能是一个十分重要的评价指标,而通过网页结构分析并使用语言和格式规则进行标签筛选的技术却很少.HtmlParser是不依赖于库文件的轻量级解析器,通过语言与格式规则进行标签筛选,过滤目标数据,在保持系统抽取效率的基础上保证抽取算法的准确性.本文首先介绍了URI 采集以及文本抽取的过程,其次给出了URL采集和文本抽取算法的关键步骤,再次通过举例实现了URL采集和文本抽取算法,表明了基于语言和格式规则的HtmlParser标签解析技术的性能和优势.采用HtmlParser解析网页,得到URL采集库,对库中URL所指向的页面进行标签解析从而实现文本提取的关键部分.
1 URL信息采集算法
信息采集过程的算法设计思想是:首先由一个初始URL对队列进行初始化,然后从队列中取出一个元素,获取此元素所指向的Web页面,对页面进行网页源代码解析,得到目标标签中的URL,将其入队,然后重复上面的过程,不断执行入队一出队一解析一获得URL的循环操作,直到根据采集策略停止算法,具体过程
算法1:URL采集算法
输入:初始URL
输出:URL采集库
1)首先判断参数URL是否为Null;
2)如果为Null,程序退出;否则,根据URL得
到Html页面;
3)利用页面解析器HtmlParser解析网页;
4)分析Html源代码中具体URL信息所在节
点< a> 标签;
5)利用标签的href属性,过滤得到下一
页的网页URL地址;
6)将步骤5中的URL地址值传到步骤1,重复
1)~6)的步骤;
7)最后遍历得到所有的目标URL地址,建成
URL采集库.
2 网页文本内容抽取算法
京东网(www.jd.corn)是国内最受欢迎的电子产品商务网站之一,以京东网站上用户评论数量最多的某数码相机的评论数据为例,介绍基于HtmlParser的网页评论文本提取方法,
信息抽取具体过程如算法2所示.
算法2:Web文本信息抽取算法
输入:产品评论的URL地址
输出:提取产品的评论文本
1)算法人口接受产品评论的URL地址;
2)判断URL参数是否满足Web文本信息提
取算法;
3)若不满足程序退出;
4)若满足,分析网页Html源代码中评论文
本所在的目标节点class为comment-content的
div标签;
5)利用HtmlParser的Tag Filter过滤,将抽取
的comment-content的文本用node list容器逐个遍
历,提取出网页中的评论文本;
6)将提取出的评论文本通过2.3节的文本内
容去噪算法进行数据清洗;
7)将清洗去噪后的文本信息,存人到评论文本
数据库.
3 网页文本内容去噪
網页去噪包括两部分:页面标签去噪和页面内容去噪.由于Web页面包含很多美化页面的Css、用于页面渲染的JavaScript脚本以及为突出某一主题思想的Flash动画,这些噪音内容给网页信息提取造成了很大的障碍,因此标签去噪显得尤为重要.而Web网页提取出的内容由于浏览器解析,或者内容本身的原因,有些是与提取主题无关的内容,所以为了减少数据库存储负担,要对Web网页进行内容去噪.标签去噪,在上文中的网页文本内容爬去的时候通过过滤标签已经做到,本节着重讨论对网页文本内容去噪,关键技术用到sun在jdk1.4中加入了java.util.regex包的正则表达式.定义一个用来匹配噪音字符串的模式PatternPattern,然后一个Mathcer实例在这个给定的Pattern模式的控制下进行字符串匹配工作,从而实现文本去噪,具体过程如算法3所示.
算法3:文本内容去噪算法
输入:提取出的产品评论文本
输出:去噪后的产品评论文本
1)算法人口接受产品评论文本;
2)判断评论文本是否满足去噪算法的条件,
(commentStr! =nul1) l! (””.equals(commentStr));
3)若不满足程序退出;
4)若满足,通过Pattern类的compile方法来编译正则表达式:Pattern P=Pattern.compile(”^rAza—z]+MYM”),其中”^[A—za—z]-4-MYM”是26个不区分大小写的英文字母的正则表达式;
5)对传人的评论文本commentStr以该正则表达式为模开展匹配,Matcher m=P.matcher(corn—mentStr);
6)匹配成功的文本进行清洗替换操作,StringnewStr= m.replaceAll(””);
7)最后输出去噪后的新文本.
网络评论的迅速增加,提高了文本抽取的难度,但能轻量解析海量数据的方法却很少.本文以HtmlParser为理论基础,通过对网页结构分析使用语言和格式规则进行标签筛选,在保持系统性能的基础上保证了抽取算法的准确率和回召率.本文首先通过有向图形式关联的Web网页数据结构,提出并实现了URL采集算法,然后针对网页评论文本的Html结构,提出了网页文本提取算法,并采用模式匹配对提取出的网页文本进行去噪处理,下一步将继续完善评论文本的抽取算法,解决由电子商务网站的网页源代码风格的不同,而导致网页解析受限制的问题,从而实现跨网站的通用文本抽取算法.
作者简介:李春辉(1983.12--),讲师,研究方向web信息抽取技术。