CN102306204A - 基于文本结构权重的主题区域识别方法 - Google Patents
基于文本结构权重的主题区域识别方法 Download PDFInfo
- Publication number
- CN102306204A CN102306204A CN201110302004A CN201110302004A CN102306204A CN 102306204 A CN102306204 A CN 102306204A CN 201110302004 A CN201110302004 A CN 201110302004A CN 201110302004 A CN201110302004 A CN 201110302004A CN 102306204 A CN102306204 A CN 102306204A
- Authority
- CN
- China
- Prior art keywords
- node
- text
- tag tree
- value
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提出了基于文本结构权重的主题区域识别方法,该方法基于树结构,将Web网页解析为标签树,在树匹配基础上,改进了数据区域挖掘和语义链接块识别技术,实现了去链接的预处理;提出了文本结构权重的概念,并采用文本结构权重的计算结果识别主题区域;最后采用归一化的方法计算主题区域内的文本结点相对长度值,利用归一化相对长度值,有效的去除和主题内容无关的文本节点实现了主题区域去噪,得到准确的主题内容。应用本发明技术方案能准确快速的挖掘出Web上有价值的信息,有着广阔的应用前景。
Description
技术领域
本发明涉及Web数据挖掘领域的Web信息抽取技术,特别是针对文本为主的半结构化Web网页,抽取Web网页中与其主题相符的文本内容的方法。
背景技术
目前,Web信息抽取按自动化程度分有以下三种方式:
(1)人工方法:这种方法是通过人工观察出Web页面的特征,然后进行手工标记,提取目标信息的模式,再根据此模式有针对性的编写程序生成包装器(Wrapper),然后通过Wrapper抽取目标信息。这种方法只能针对指定站点,不具通用性。这类系统要求用户具有扎实的计算机编程基础。正因为如此,人工方法适合少量站点的情况,无法适应海量站点的场合。
(2)半自动抽取:这种方式是半自动的,相对于手工方法,这种方式减轻了人工劳动。它通过从训练网页中提取规则,然后将此规则应用于与此类网页相似的网页中。在这种方法里,如何判断相类似的网页是关键。这类方法不需要用户具有计算机专业基础,只需要用户利用系统提供的用户界面,输入训练用例即可。国外已有许多关于这种方法的研究,典型的系统有WHISK、STALKER、SOFTMEALY等。WHISK[1]系统适合于结构化、半结构化数据和自由文本,对结构化和半结构化数据,WHISK根据语义项的上下文定位目标信息。对于自由文本,则采用分割方式处理。但是WHISK在规则学习过程中规则不能保证以最优的方式进行扩展,且生成规则集的时间较长。STALKER系统[2][3]将Web数据建模成嵌套关系,利用地标思想,得到SkipTo(跳转)序列的抽取规则。SOFTMEALY系统[4]中曾用归纳学习方法学习两个属性间的上下文规则集来确定属性间的顺序,由元组转换机提取信息的内容,但效率较低。
(3)自动抽取:这种方式起始于1998年,给定一张或者若干网页,程序自动从其中发现规则,然后抽取目标数据。它不需要太多人工干预,因此适合于大量站点的情形。这类系统的代表有RoadRunner[5],该系统通过对2个或多个样本页面结构的比较,提取一个利用正则表达式表示通用结构模式,然后根据结构模式实现对相似页面的信息抽取,该系统利用了结构模式中文档对象模型(DOM,Document Object Model)标记的关系,如节点之间的嵌套的关系。
Web信息抽取按照抽取技术路线可以分为以下几种:
(1)基于HTML解析的数据抽取技术
基于HTML解析的数据抽取方法可以分为两个类别,第一种是将HTML网页看作是一个由HTML标记和普通字符串构成的序列集合。简单的说就是把整个文档当成一个字符串,利用现在已有的通用编程语言如Perl,Java等设计程序对此字符串进行处理,以文档字符串为输入,利用正则表达式进行模型匹配,输出目标信息字符串。这种方法是基于字符串的,没有利用到HTML网页已有的半结构化特征,不涉及其层次结构。STALKER是利用这种方法的典型系统,此系统基于地标思想。每一个地标是一个连续的标志序列,此标志序列用于定位一个目标项的开头或结尾。例如:对于已知文档<p>Name:<b>Hotel One</b></p>,则利用规则R1:SkipTo(<b>)可以识别名字的开头。这条规则意味着系统应该从网页的开头开始,跳过所有的字符,直到看到第一个<b>字符串为止,此时<b>就是一个地标。同理,识别名字的结尾可以使用规则R2:SkipTo(</b>),不同的是R2从文档结尾应用到文档的开头。因此R1被称为开始规则,R2被称为结束规则。第二种是利用HTML文档的结构,将其转换为一棵有层次的DOM树,然后通过分析和处理树的层次结构,抽取所需要的数据。这类方法的常用代表系统有W4F[6],XWrap[7]等。
(2)基于包装器(Wrapper)归纳的数据抽取技术
包装器归纳是基于有监督学习的,它从一个标注好的训练样例集合中学习抽取规则。标注通常是手工完成的,包括标记训练网页或样例中用户希望抽取的数据项。随后学到的规则被用于其他相同标记编码或者有相同模板的网页中抽取目标数据。采用这类技术的典型系统有WIEN[8],WL2[9],SOFTMEALY[4]等。WL2是一个能够利用文档的不同展示方式的抽取系统。对WL2来说,文档既可以是DOM水平的,也可以是节点水平的,以及几何二维展现的页面(如表格数据)。
(3)基于自然语言处理的数据抽取技术
基于自然语言处理的数据抽取技术适合于文档中包含大量文本的情况,它借鉴了自然语言处理技术,通常包括句法分析、语义标注、对象识别和规则生成等步骤。采用这种技术的系统抽取信息速度不够快,典型系统有WHISK[1],SRV[11]。WHISK系统适用性较广,能同时适合于结构化、半结构化数据和自由文档。其基础为正则表达式,通过正则表达识别出目标短语所在位置和短语之间的分隔符。此系统采用自上而下的方式进行归纳,先用最抽象的规则开始覆盖训练实例,然后通过不断调节,在此规则上添加约束。直到抽取目标信息为止。
(4)基于本体论的数据抽取技术
按照斯坦福大学人工智能专家Tom Gruber的定义,本体(Ontology)是程序与人共享知识的概念化规范,描述了代理之间的概念和关系,采用此技术的系统主要利用数据本身的特性,而不太重视这些数据所拥有的结构。但是目前的系统需要相关专家对Web网页进行本体(Ontology)建模。采用这类技术的典型系统有BYU[12]、QUIXOTE[13]等。BYU是由杨柏翰大学(Brigham Yong University)开发的。在使用时先要某领域专家完成本体(Ontology)建模,如对象的模式,关键字等。然后根据启发式信息和地标对文档进行分块,这些块的描述均有同样的抽象特征;在此基础上根据本体中的信息生成规则,最后利用规则抽取结果。
从抽取技术的智能度来看,手工式的抽取技术几乎不需要智能因素,因为其所要抽取的数据已经通过手工方式进行了标注,比如数据所在位置,是否可选项等信息均人工发现。因此这种技术对使用者要求高,一般只适合于专业人士。半自动抽取和自动抽取技术则降低了使用者的要求,同是提升了智能度。正因为如此,可以自动化的处理大量数据抽取任务。从抽取技术的应用范围来看,手工抽取方法不限于特定领域,其适用范围最广泛,延伸性最好。而随着智能因素的增加,半自动化和全自动化抽取则逐渐受到应用领域的影响。比如半自动抽取器STALKER是基于HTML解析的数据抽取技术,其对纯文本的抽取显得力不从心。全自动的抽取算法RoadRunner则是基于HTML解析结构的抽取,其对结构不标准的源数据抽取也不尽人意。而且,现有的全自动的抽取技术大多数都采用的人工智能、机器学习的方法,这些方法计算量大,抽取速度慢,影响实际应用效果。另外这类方法往往需要附加一些前提条件,如RoadRunner需要提供同一模板生成的2个页面,要求页面里含有重复模式,使得其使用受到限制。
针对上述问题,本技术领域亟待出现文本为主的半结构化Web网页的自动信息抽取方案。
参考文献:
[1]SODERLAND S.Learning Information Extraction Rules for Semi-structured and Free Text[J].Machine Learning,1999,34(1-3):233-272.
[2]Muslea,I.,Minton,S.and Knoblock,C.A hierarchical approach to wrapper induction.Agents-99,1999.
[3]Muslea,S.Minton,and C.A.Knoblock,STALKER:Learning Extraction Rules forSemi-structured Web.based Information Sources.In Proc.of AAAI Workshop on AI andInformation Integration,July 1998:74-81.
[4]C.N.Hsu and M.T.dung.Generating finite-state Transducers for Semi-structured DataExtraction from the web Information Systems,23(8),1998:521-538.
[5]Valter Crescenzi,Giansalvatore Mecca,Paolo Merialdo RoadRunner:Towards Automatic DataExtraction from Large Web Sites.Proceedings of the 27th VLDB Conference,Roma,Italy,2001.
[6]A.Saiiuguet,F Azavant.Building Intelligent Web Applications Using Lightweight Wrappers[J].Data and Knowledge Eng,2001,vol.36(3):283-316.
[7]L.Liu,C.Pu,W.Han.XWRAP:An XML-Enabled Wrapper Construction System for WebInformation Sources[J].Proc.16th IEEE Int’l Conf.Data Eng.(ICDE),2000.
[8]N.Kushmerick,D.Weld,R.Doorenbos,Wrapper Induction for Information Extraction[J].Proc.15th Int’l Conf.Artificial Intelligence(IJCAI),1997:729-735.
[9]W.W.Cohen,M.Hurst,and L.S.Jensen.A Flexible Learning System for Wrapping Tables andLists in Html Documents.In Proc.of the 11th Intl.World Wide WebConf.(WWW’02),pp.232-241,2002.
[10]SODERLAND S.Learning Information Extraction Rules for Semi-structured and Free Text[J].Machine Learning,1999,34(1-3):233-272.
[11]D.Freitag.Information Extraction from HTML:Application of a General Leaming Approach[J].Proc.15th Conf.Artificial Intelligence(AAAI’98),1998.
[12]Embley D.W.,Jiang Y.S.,NG Y.K.Record-Boundary Discovery in Web Documents[J].Inproceedings ACM SIGMOD International Conference on Management ofData.Pennsylvania,USA,1999.
[13]Christina Y C.,Michael G,Neel S.Reverse engineering for web data:From visual to semanticstructures[J].In proceedings of the 18’Th International Conference on Data Engineering.SanJose,California,2002.
发明内容
本发明目的在于解决现有问题不足,针对文本为主的半结构化Web网页,基于HTML解析提供全自动的Web信息抽取技术。
本发明的技术方案为基于文本结构权重的主题区域识别方法,其特征在于,包括以下步骤:
步骤1,将待识别Web网页转换成标签树,具体通过以下步骤实现,
步骤1.1,通过对待识别Web网页的HTML文档进行字符扫描,识别出起始节点、结束节点、全结构节点和文本节点;
所述起始节点是以字符“<”开始,以字符“>”为结束,且这两者之间不存在字符“<”和“>”的字符串;
所述结束节点是以字符“</”开始,以字符“>”为结束,且这两者之间不存在字符“<”、“>”和“/”的字符串;
所述全结构节点是以字符“<”开始,以字符“/>”为结束,且这两者之间不存在字符“<”、“>”和“/”的字符串;
所述文本节点是以上三种节点以外的字符串;
步骤1.2,采用解析器,依据步骤1.1识别出的起始节点、结束节点、全结构节点和文本节点进行标签树的构建,得到的标签树记为A;构建过程利用堆栈操作来确定各节点的层次关系,包括以下堆栈操作,
当解析器发现一个起始节点时,触发入栈操作和在当前标签树中新建标签操作,
当解析器发现一个结束节点时,触发退栈操作,
当解析器发现一个全结构节点时,触发入栈操作,同时更新标签树,在更新标签树完成后立刻退栈操作;
当解析器发现一个文本节点时,触发入栈操作,入栈操作后立刻退栈操作;
步骤2,在步骤1所得标签树A中搜索相似区域,并进行去链接预处理,得到标签树B,具体通过以下步骤实现,
步骤2.1,在步骤1所得标签树A中搜索相似区域;所述相似区域是由一组相似节点组成的,相似节点是标签树A中满足以下特性的节点,
(1)所有的节点共同拥有同一个父节点;
(2)所有节点是相邻的;
(3)相似节点是子树的根节点或叶子节点;
(4)与同一区域中的其他节点的相似度大于预设的阈值a;
步骤2.2,在步骤2.1搜索到的所有相似区域中识别语义链接块,并将识别出的语义链接块从标签树A中摘除,得到标签树B;所述语义链接块是指由链接组成的,在视觉上呈列表状,每一项表现为超级链接的网页区域;
步骤3,对步骤2所得标签树B进行主题内容抽取,具体通过以下步骤实现,
步骤3.1,求出标签树B中所有节点的文本结构权重,找出某棵子树链下文本结构权重值最大的节点,该节点所在相似区域即主题区域,该节点记为主题区域节点C;所述文本结构权重是指文本在相似区域中所占的比重;
步骤3.2,对步骤3.1所得主题区域进行去噪,包括两个步骤;
步骤3.2.1,获取步骤3.1所得主题区域节点C的子树所包含的所有文本节点的长度,其中最大长度记为maxlength;
步骤3.2.2,遍历主题区域节点C的子树,根据最大长度maxlength对子树中每一个文本节点的长度计算归一化值,并与预设的阈值K比较;如果不小于预设的阈值K则保留,否则从主题区域节点C的子树中摘除该文本节点;
步骤3.3,对步骤3.2所得去噪后的主题区域所对应的节点输出,即输出最底层叶子节点的文本内容,得到待识别Web网页的主题内容。
而且,步骤1.2中,标签树的具体构建方式包括以下步骤,
步骤1.2.1,声明一个解析器实例和一个单例模式堆栈实例,并从待识别Web网页的HTML文档中读取一个节点;
步骤1.2.2,如果读取的节点是结束节点、全结构节点或者文本节点,则将该节点出栈,然后进入步骤1.2.3;否则,转步骤1.2.4;
步骤1.2.3,层次值减一,并将父节点指针指向步骤1.2.2出栈的节点的父节点,更新标签树;
步骤1.2.4,如果读取的节点是起始节点、全结构节点或者文本节点,则声明一个新的堆栈项,并将该节点入栈,然后进入步骤1.2.5;否则,直接进入步骤1.2.7;
步骤1.2.5,层次值加一,同时将步骤1.2.4入栈的节点插入父节点指针当前指向的节点的孩子集中;
步骤1.2.6,将当前节点指针指向步骤1.2.4入栈的节点,并更新标签树;
步骤1.2.7,从待识别Web网页的HTML文档中读取下一个节点,重复步骤1.2.2至步骤1.2.6,直到待识别Web网页的HTML文档解析完成,构建得到的标签树记为A。
而且,步骤2.1中,在步骤1所得标签树A中搜索相似区域时,采用简单树匹配算法计算相似度,利用堆栈消除递归,对标签树A进行遍历,发现相似节点时进行标记,识别出相似区域;具体遍历实现包括以下步骤,
步骤2.1.1,初始化当前节点指向标签树的根节点,初始化堆栈;
步骤2.1.2,如果当前节点的孩子数不为0,则当前节点入栈,执行步骤2.1.3;否则从标签树A中取下一节点作为当前节点,返回步骤2.1.2,直到取完标签树A中所有节点,进入步骤2.1.7;
步骤2.1.3,判断堆栈是否为空,当堆栈不为空时执行步骤2.1.4,当堆栈为空时返回步骤2.1.2;
步骤2.1.4,栈顶元素出栈,赋值给当前节点;
步骤2.1.5,遍历当前节点的最近一层子节点,依次比较两个相邻子节点代表的子树的相似度,如果相邻节点的相似度小于阈值a,当前两个相邻子节点标记为删除,否则当前两个相邻子节点标记为相似节点;遍历完成后进入步骤2.1.5;
步骤2.1.6,当前节点标记为相似区域;取当前节点下的所有子节点,依次入栈,然后转步骤2.1.3;
步骤2.1.7,对标签树A进行遍历完成,所有相似区域均被发现。
而且,步骤2.2中,识别语义链接块的具体方式包括以下步骤,
步骤2.2.1,取出当前相似区域DR的根节点root,计算出根节点root所包含的子节点个数;
步骤2.2.2,以宽度优先的方式,遍历根节点root所包含的子节点,对遍历到的当前子节点执行以下操作,
对当前子节点,以宽度优先的方式遍历当前子节点的子树,如果检测到链接标签“<a>”,则将此标签的深度偏差值存入哈希表,所述深度偏差值等于此标签的深度值减去根节点root的深度值;同时记录此深度偏差值出现的次数,记录方式是以深度偏差值为键,次数为键所对应的值;
步骤2.2.3,在步骤2.2.2遍历完根节点root所包含的子节点后,求出哈希表中所有次数之和,即得到当前相似区域DR中最低层链接标签“<a>”出现的总次数AT;
步骤2.2.4,从哈希表中,找出次数最大的项,此项的键为j,j即是包含最多链接标签“<a>”的深度偏差值,该键对应的次数值就是最大次数取值LC;
而且,步骤3.1中,找出某棵子树链下文本结构权重值最大的节点,具体实现包括以下步骤,
步骤3.1.1,初始化类实例weight,类实例weight用于指向具有最大文本权重的节点;初始化最大文本权重的变量maxweight,并赋初值0;初始化堆栈;申明临时变量tempweight;
步骤3.1.2,如果输入源标签树source为空,则进入步骤3.1.9,否则转步骤3.1.3;
步骤3.1.3,源标签树source根节点入栈;
步骤3.1.4,判断堆栈是否为空,当堆栈不为空时执行步骤3.1.5,当堆栈为空时进入步骤3.1.9;
步骤3.1.5,当前节点指向栈顶节点;
步骤3.1.6,计算当前节点的文本权重并赋值给临时变量tempweight;
步骤3.1.7,如果临时变量tempweight的值大于变量maxweight的值,则令变量maxweight等于临时变量tempweight的值,同时让类实例weight的属性Treenode指向当前节点,转步骤3.1.8;否则,直接转步骤3.1.8;
步骤3.1.8,将当前节点的子节点依次入栈,转步骤3.1.4;
步骤3.1.9,返回类实例weight,即主题区域。
本发明选择以标签树的形式来处理包含半结构化、自由文本的网页,通过树匹配、计算文本结构权重识别数据区域、寻找主题,最后通过去噪过程实现主题文本内容的抽取。与现有方法相比,本发明优点主要表现在:(1)实现简单,不涉及机器学习等智能技术;(2)由于实现简单,因此运行速度快,实时性好;(3)适应性强,没有附加前提条件。运用本发明技术方案能够在互联网上抽取有用的文本主题信息,为读者节约宝贵的时间和精力。此外,在现实中主题的抽取有着许多具体的应用。比如,转换成网络语音浏览器产品,该产品用于语音新闻浏览,这对视障者(包括盲人和低视力者)来说,获取互联网信息就容易多了。普通的浏览器只提供视觉上的体验,大多数网站只针对视力正常的人制作,一般都没有考虑到为视障者提供服务,因此视障者很难直接浏览WEB页面。基于HTML的WEB页面的一大特点是页面上充满着超级链接,这些链接指向着另外一个页面,视障者也无法正确定位这些链接,也就无法有效的实现网页跳转。为了能让视障者更好的利用互联网资源,可以利用自动化抽取主题的方法并通过TTS技术实现朗读,这样就可以有效的帮助他们从互联网中获取知识。
附图说明
图1是本发明实施例的流程图。
图2是本发明实施例的标签树生成过程示意图。
图3是本发明实施例的相邻的两条记录示意图。
图4是本发明实施例的记录边界示意图。
图5是本发明实施例的节点权重与标签树深度之间的趋势示意图。
具体实施方式
以下结合附图和实施例详细说明本发明技术方案。
如图1所示,实施例首先进行网页获取,然后进行网页去噪,从而获得待识别Web网页。网页获取是最原始的数据来源,负责提供待识别的Web网页。具体实施可以采用一个简易的宽度优先爬虫实现网页获取,首先由种子URL地址从因特网(Internet)获取网页,然后分析其中链接,将新鲜的链接存入队列中,接着循环从队列中取出链接,直到达到用户目的或者队列为空时停止。网页去噪就是对获取的网页进行标准化,这样可以提高识别准确率。具体实施时,可以按照事先设定的清理规则对待识别Web网页的HTML文档进行标准化,清理对解析有害的标签和无用的标签,如注释、样式和脚本等。
为便于参考起见,提供实施例对待识别的Web网页进行主题区域识别的流程如下:
步骤1,将待识别的Web网页转换成标签树。
首先通过字符扫描,识别出起始节点、结束节点、全结构节点和文本节点。然后依据这三种节点采取不同的策略进行标签树的构建,这个过程利用堆栈的特性来确定各节点的层次关系。
一个遵守XML标准的Web网页可以用以下两种形态描述:(1)一个由满足特殊语法结构的(X)HTML(超文本标记语言)标签与文本组成的字符串。(2)一个由不同标签嵌套形成的树状结构。标签树是利用形态(2)建立起来的一种结构,是一个Web网页的不同描述形态,类似于DOM(文档对象模型),但其与DOM有着明显的不同。标签树是一个Web网页的静态模型,而DOM则可以看作是Web网页的动态模型,下面是标签树的基本特征:
(1)与标准化的Web网页有相同的层次结构。
(2)标签树中不存在封闭标签。
(3)标签树节点名均与(X)HTML标签名一致。
标签树构建过程如图2所示,对标准化后的待分析网页,经解析器顺序扫描,依次读取HTML标签节点HtmlTag,如果读取的节点HtmlTag是起始节点、全结构节点或者文本节点,则声明一个新的堆栈项,并将其放入堆栈UrlStack,同时层次值加一,同时将该入栈节点插入当前父节点指针指向的节点的孩子集中;如果读取的节点HtmlTag是结束节点、全结构节点或者文本节点,则将堆栈UrlStack的顶层项取出,同时层次值减一,并将父节点指针指向出栈节点的父节点,更新标签树。重复此步骤,最终将网页解析成如图2所示的树状结构——称为标签树。
图2中所示的起始节点、结束节点、全结构节点或文本节点定义如下:
定义1:以“<”开始,以“>”为结束,且这两者之间不存在“<”和“>”的字符串,称为起始节点。起始节点在算法中起着定义边界的作用,即确定层次的起始点。对应到堆栈操作中,它会触发一个入栈操作和在当前标签树中新建标签操作。
定义2:以“</”开始,以“>”为结束,且这两者之间不存在“<”、“>”和“/”的字符串,称为结束节点。结束节点即一个完整标签的结束部分。在生成标签树时,解析器凡是检测到结束节点,均会发出退栈命令,此时,是否更新当前标签树有两种策略可供选择,其一是不更新标签树,如果选择此策略,则在最终标签树中,看不到任何结束节点。但这不妨碍对它的显示,因为算法可以根据入栈后的层次确定父子关系。策略二是显示所有结束节点,这样标签树中节点的数量将有可能增加一倍,这对程序运行效率有极大影响。所以,实施例选择了策略一。
定义3:以“<”开始,以“/>”为结束,且这两者之间不存在“<”、“>”和“/”的字符串,称为全结构节点。全结构节点是一种特殊的节点,因为它具备起始节点和结束节点的部分特性,既起着定义层次边界的作用,也可以看作完整标签的结束部分。由于它兼有这两种特性,程序对它的处理也不相同,其策略如下:当解析器发现一个全结构节点时,会触发一个入栈操作,同时更新标签树。当此操作完成后,立刻发出退栈命令。
定义4:凡是不满足定义1、定义2、定义3的字符串,均称为文本节点。对文本节点采取的策略是入栈后立刻退栈。
基于以上四个定义,实施例的标签树构建方式包括以下步骤:
步骤1.2.1,声明一个解析器实例和一个单例模式堆栈实例,并从待识别Web网页的HTML文档中读取一个节点;
步骤1.2.2,如果读取的节点是结束节点、全结构节点或者文本节点,则将该节点出栈,然后进入步骤1.2.3;否则,进入步骤1.2.4;
步骤1.2.3,层次值减一,并将父节点指针指向步骤1.2.2出栈的节点的父节点,更新标签树;
步骤1.2.4,如果读取的节点是起始节点、全结构节点或者文本节点,则声明一个新的堆栈项,并将该节点入栈,然后进入步骤1.2.5;否则,进入步骤1.2.7;
步骤1.2.5,层次值加一,同时将步骤1.2.4入栈的节点插入父节点指针当前指向的节点的孩子集中;
步骤1.2.6,将当前节点指针指向步骤1.2.4入栈的节点,并更新标签树;
步骤1.2.7,从待识别Web网页的HTML文档中读取下一个节点,重复步骤1.2.2至步骤1.2.6,直到待识别Web网页的HTML文档解析完成,构建得到的标签树记为A。
为便于实施参考起见,以下提供采用C语言实现标签树构建过程的程序代码:
对于此代码,说明如下:
在步骤(5)中,解析器读取一个字符前,解析器总是识别出一个节点的起始处,由定义1、2和3可知,步骤(5)读取的字符总应该为“<”或者文本。解析器在步骤(8)时解析出一个Htmltag,返回的是一个标签节点或文本节点,并且将整个字符串的当前字符指针指向下一个标签节点的起始字符,其过程如下:首先算法跳过空白字符,直到检测到非空白字符。由于算法中定义的标签只有两种,经过分析发现标签节点是以“<”开始并且以“>”结束。因此算法利用此特性进行判断,若当前字符为“<”则扫描指针不断下移,直到出现“>”,这时返回一个标签节点。当前字符不是“<”时,则即将出现的节点是文本节点,停止识别文本节点的条件是遇到了字符“<”。单例模式是本领域术语,表示保证一个类仅有一个实例,并提供一个访问它的全局访问点。
步骤2,在步骤1所得标签树A中搜索相似区域,并进行去链接预处理,得到标签树B。
相似区域发现是噪声(主要是指超链接块)清理过程核心算法,噪声清理过程是为了提高主题抽取的准确率而进行的预操作。只要清除了链接,即可以得到含有少量杂质的文本主题。它首先利用相似性的数学模型发现相似区域,而语义链接块也可看作一种相似度较大的相似区域,将相似区域的识别方法与语义链接块自身的特征结合起来进行语义链接块的识别。当发现语义链接块时,将其从标签树中摘除,以达到清除链接的目的。
步骤2.1,在步骤1所得标签树A中搜索相似区域。
相似区域这一概念来自于网页列表数据。每个列表页面中的数据记录都具有几乎相同的特征,这一特征可以简要描述为用同一编码函数将每一条记录进行编码,这个编码函数称之为模式(Pattern),因此相似区域的发现就转化为这个模式的发现。为了发现模式,利用了DOM结构的两个重要的事实。
事实1:对于满足相似区域要求的一系列子树,它们所描述的对象通常都连续的出现在同一张网页的某一块区域,并且都是用相似的HTML标签格式化的,也就是说每个子树都拥有相似的模式。这样一个区域就代表一个列表。例如,在图3中两条搜索记录(用标签树表示)相邻出现,记录1和记录2结构十分相似。图3中所示标签树中,记录1和记录2的标签代表相似的两个子树,称为相似节点,它们属于包含相似节点的区域——相似区域。标签树中的<div>、<a>、<img>、<h2>是(X)HTML标签,#Text表示文本。
事实2:满足事实1的一系列子树通常有同一个父节点,并且一个数据记录不大可能分别起始和终止于其它两棵子树中间。即数据记录一般会起始于一棵子树的起始处并结束于同一棵或后面某棵子树结束处。
参见图4说明此事实,设相似区域中的第一个相似节点为DIV1,第二个相似节点为DIV2,设数据记录可以起始或终止于其它两棵子树中间并且存在数据记录DR。如果用XPath来表示路径,设此DR起始于DIV1子树下的<img>标签,即DIV1/<div>/<a>/<img>,又设此DR结束于DIV2子树下的<img>标签,即DIV2/<div>/<a>/<img>,则有如图4所示的记录。
事实上,几乎不会出现图4所示的记录,因为跨子树记录不是一棵正确的子树。由HTML的嵌套关系可以得知,子树层次高的节点至少有一个处于标签树的最上面。显然,图4中所示的层次次高的节点为DIV2,但它没有处于最上面,因此跨子树记录一般不存在。
因此,本发明将相似区域定义为Web网页上富含数据(在本申请中主要是指文本和链接)的块,在标签树中相似区域是由相似节点构成,相似节点的定义如下:
定义5:一个相似节点是由标签树中满足以下特性的节点:
(1)所有的节点共同拥有同一个父节点;
(2)所有节点是相邻的;
(3)相似节点可以是子树的根节点或叶子节点;
(4)与同一区域中的其他节点的相似度大于预设的阈值a;
在一个Web网页对应的标签树中,这里引入的相似节点非常普遍。一般情况下相似节点代表的是一棵树,因为它的类型是记录类型,而记录类型是基本类型的集合,因此同样可以用标签树来描述相似区域,相似区域的定义为:
定义6:一个相似区域是由一组相似节点组成的,这些扩展节点具备以下特性:
(1)所有的相似节点拥有共同的父节点;
(2)所有组成相似区域的相似节点都是相邻的;
(3)所有的相似节点之间的相似度应当大于预设的阈值a。
为了计算相似度,本发明研究比较了基于Levenshtein distance的字符串匹配算法和树匹配算法,实施例采用了基于简单树匹配(STM)的相似度计算方法。
在STM算法当中,首先比较两颗树的根节点,如果它们的根节点的标记不同,那么这两棵树最大匹配为0,也就是说这两棵树不相似如果根节点的标记相同,则算法递归地计算两棵树第1层子树的最大匹配,并且把得到的值保存在矩阵M中,然后根据M中的值计算矩阵M中的其它值。在相似区域标记算法中,计算子树相似度时,只考虑最大匹配因素是不够的,本发明采用了归一化最大匹配。归一化最大匹配是通过简单树匹配值除以两棵树的节点数的平均值来求得:
其中,TreeX.Nodes.count表示树X的节点数,TreeY.Nodes.count表示树Y的节点数,STM(TreeX,TreeY)表示树X和树Y的简单树匹配值。
当然这里还可以用max(TreeX.Nodes.count,TreeY.Nodes.count)作为分母,取树X的节点数和树Y的节点数中较大者;分子为STM(TreeX,TreeY),即有下式:
基于以上定义,有如下相似区域发现算法,该算法的基本原理是利用堆栈来消除递归以对树进行遍历,然后对当前遍历的结点进行标记。用堆栈来消除递归是这部分的主要思想。这其实是采用了现有技术中常用的深度优先的遍历方式,首先将一个节点入栈,然后开始循环,当栈不为空时将栈顶元素弹出。访问此结点,再将被弹出节点的孩子全部节点入栈,循环一直下去,直到栈为空。具体包括以下步骤:
步骤2.1.1,初始化当前节点指向标签树的根节点,初始化堆栈;
步骤2.1.2,如果当前节点的孩子数不为0,则当前节点入栈,执行步骤2.1.3;否则从标签树A中取下一节点作为当前节点,返回步骤2.1.2,直到取完标签树A中所有节点,进入步骤2.1.7;
步骤2.1.3,判断堆栈是否为空,当堆栈不为空时执行步骤2.1.4,当堆栈为空时返回步骤2.1.2;
步骤2.1.4,栈顶元素出栈,赋值给当前节点;
步骤2.1.5,遍历当前节点的最近一层子节点,依次比较两个相邻子节点代表的子树的相似度,如果相邻节点的相似度小于阈值a,当前两个相邻子节点标记为删除,否则当前两个相邻子节点标记为相似节点;遍历完成后进入步骤2.1.5;
步骤2.1.6,当前节点标记为相似区域;取当前节点下的所有子节点,依次入栈,然后转步骤2.1.3;
步骤2.1.7,对标签树A进行遍历完成,所有相似区域均被发现。
具体实施时,阈值a的建议取值范围为0.8~1.0。
步骤2.2,在步骤2.1搜索到的所有相似区域中识别语义链接块,并将识别出的语义链接块从标签树A中摘除,得到标签树B。
通过相似区域标记算法识别出所有相似区域。此时标签树被划分为若干块。在此基础上,开始去链接预处理。首先在所有的相似区域中寻找语义链接块,并将其从标签树中摘除,这样就精简了树的结构,在剩余的树结构中,标签节点基本上都是文本节点,其中一定包含与主题内容相关的部分。因此去链接实际上是主题区域发现的预处理过程,达到去噪的目的,语义链接块的定义如下:
定义7:语义链接块是指由链接组成的,在视觉上呈列表状,每一项表现为超级链接的网页区域。
由定义7可以看出,语义链接实际上就是一种相似区域,理论上可以采用相似区域识别算法来寻找语义链接块,事实上是不够的。语义链接块对其中项相似度要求要低些,也就是说,在语义链接块中,每一项的链接不要求尽可能保持结构一致。只需要在视觉上呈现重复列表状。
本发明提出了一个链接同层次值LK,LK用于统计链接标签<a>所在的层次在相似区域中的项中的比例,LK的计算过程如下。
假设有一个相似区域DR,DR代表一个相似区域的根节点,其每一项所包含的子树中均可能不存在链接标签<a>,设DR的第一层子树数目为N,则在DR中最低层链接标签<a>出现的总次数AT为:
其中xi表示第i棵子树下是否存在链接标签<a>,xi∈{0,1}。
又设DR中的每一棵子树中层次最低的链接标签<a>的树深度为hixi,此处乘以xi表示第i棵子树是否存在链接标签<a>。设参数j∈[1,max(hi)],j属于正整数集,则存在某个j使满足hi=j的i的取值个数LC最大。
LK的计算表达式如下:
语义链接块的识别过程最主要的是计算LK值的过程。实施例的计算实现具体步骤如下:
步骤2.2.1,取出当前相似区域DR的根节点root,计算出根节点root所包含的子节点个数;
步骤2.2.2,以宽度优先的方式,遍历根节点root所包含的子节点,对遍历到的当前子节点执行以下操作,
对当前子节点,以宽度优先的方式遍历当前子节点的子树,如果检测到链接标签“<a>”,则将此标签的深度偏差值存入哈希表,所述深度偏差值等于此标签的深度值减去根节点root的深度值;同时记录此深度偏差值出现的次数,记录方式是以深度偏差值为键,次数为键所对应的值;
步骤2.2.3,在步骤2.2.2遍历完根节点root所包含的子节点后,求出哈希表中所有次数之和,即得到当前相似区域DR中最低层链接标签“<a>”出现的总次数AT;
步骤2.2.4,从哈希表中,找出次数最大的项,此项的键为j,j即是包含最多链接标签“<a>”的深度偏差值,该键对应的次数值就是最大次数取值LC;
宽度优先的方式是现有技术常用的方式,遍历根节点root所包含的子节点,和遍历子节点的子树时都可以采用。计算出LK值后即可判断DR节点下的相似区域是不是语义链接。实施例中在语义链接块识别过程中,采用的预设值L为0.8。即如果某一相似区域的LK值大于或等于0.8,则认为此相似区域是语义链接块,这种方式忽略了DR中结构不一致的子树带来的影响,并且也认为此子树是语义链接块的一个项。经过实验说明,这种方式有较高的准确率。
经过去链接预处理后,当前标签树所包含的内容更加接近主题目标了。
步骤3,对步骤2所得标签树B进行主题内容抽取。
主题抽取是用户的最终目标,此步骤利用文本结构权重模型进行主题区域识别,首先计算所有节点的文本结构权重,取得最大权重节点,即主题区域(主题内容所在节点),然后进行归一化去噪,最终输出整个文本节点的内容,即得到文档主题内容。
步骤3.1,求出标签树A中所有节点的文本结构权重,基于文本结构权重找到主题区域。
经过去链接预处理后,剩下的相似区域中仍然可能包含链接内容,但在通常情况下,主题区域中所包含的链接部分会很少,如何去除这部分链接呢?本发明引入了文本结构权重的概念,即文本在相似区域中所占的比重。文本结构权重越高,则此相似区域包含的文本内容越多,该相似区域为主题区域的概率越大。
文本结构权重是本发明的主要创新点,表示纯文本节点相对链接节点的有效长度,其定义如下:
定义8文本结构权重:取某一节点R,此节点的子树中不被链接标签包含的文本节点个数与其文本长度的乘积除以此节点的孩子节点数,其形式化表示为:
式5中涉及四个变量T、A、N、C,其中T的含义是节点R的子树中所包含的文本节点个数,A代表节点R的子树中所包含的链接节点,N是节点R的子树中所有的孩子节点数目,CT-A是指不被链接标签包含的文本节点的文本总长度。
大量实验分析发现,对于新闻、博客类网页,它们均有一个特征,即:除主题以外的内容都包含有大量链接,而这些链接通常是用户所不关心的。因此,通过抽象出这类特征,提出了基于标签树结构的网页链接文本模型,即:
Web=Link+Text (式6)
对于此类网页可以近似用:网页=链接+文本,这个模型来表示。
这种模型忽略了其它控制性元素,如表单元素、样式、图片等,因为是基于标签的,所以结构性标签仍然保留。有了这种模型后,就能理解式5中的T-A是R子树中所有文本节点的数量与所有R子树中链接节点数量之差。实际中,由于一个链接节点常常包含着一个文本节点,但此文本节点不是目标文本节点,所以T-A所代表的是所有纯文本节点的数量,也是最有可能出现主题文本内容的节点。变量N为R子树所有孩子节点的数量,可以计算每个标签节点的平均文本节点数,变量CT-A即所有纯文本节点的文本长度,最后作乘积即可以求出有效文本长度,从而得到文本结构权重。
利用文本结构权重来识别主体区域,即文本结构权重最大的相似区域即是主题区域,是本发明的主要创新点之一。
由于本发明提出的网页主题识别是基于标签树,在计算所有标签节点的权重时,可以遍历整个标签树。但计算某个父节点(如节点A的父节点)时,总是要重新统计节点A中的链接标签和文本标签值,才能计算出节点A的父节点的文本结构权重值。可见这种方式做了许多冗余工作。实施例给出了一种优选计算方法,基于后根遍历方式,避免了这种冗余计算。
假设有一父节点F,其拥有N棵子树R1、R2、R3......Rn,其中子树的根不是链接节点或者文本节点。首先通过式5计算出R1、R2、R3......Rn的权值,依次得到如下结果:
其中T1、T2、T3…Tn分别是子树R1、R2、R3......Rn的子树中所包含的文本节点个数,A1、A2、A3…An分别代表子树R1、R2、R3......Rn的子树中所包含的链接节点,N1、N2、N3…Nn分别是子树R1、R2、R3......Rn的子树中所有的孩子节点数目,C1、C2、C3…Cn分别是指子树R1、R2、R3......Rn不被链接标签包含的文本节点的文本总长度。
为了计算父节点F的权值WF,根据式5,则有TF是父节点F的子树中所包含的文本节点个数,AF代表父节点F的子树中所包含的链接节点,NF是父节点F的子树中所有的孩子节点数目,CF是指父节点F不被链接标签包含的文本节点的文本总长度。
显然,根据父节点F与其子树的关系可知:
TF=T1+T2+...+Tn (式11)
AF=A1+A2+...+An (式12)
NF=N1+N2+...+Nn+N (式13)
CF=C1+C2+...+Cn (式14)
由式11、式12、式13、式14得
经转化得:
由式16可以看出,父节点的权值可以由它第一层孩子节点来计算得到,如果已经计算出子节点的权重,则可以很快计算出父节点的权重。特殊情况下,如果F节点只有一棵子树,设子树为R1,则有:
由式17和式7所得的权重比较发现,WF<W1,这说明标签树某节点的单一子树链中的节点的文本结构权重是递增的。利用这一特性,可以发现最大的文本结构权重,但这一规律对多子树链不成立。通过实验发现,文本结构权重与树深度之间的规律如图5所示。
从图5可以发现在树的深度为8时,整体上节点的权重随着树的深度递增,偶尔有微小下降。但在深度为8以后,权重急剧下降。出现上述情况可以从以下两个方面进行解释。第一是由式7所说明的递增关系,在递增的过程中,权重偶尔出现下降情况是因为多子树的出现。平均化了单子树时的权重;第二是当深度大于8后,标签树的深度已经进入了某个文档主题。此主题内标签节点的权重相对小得多,因为大多数节点是权重为0的文本节点,所以导致了权重急剧下降的现象。基于以上两点解释,在求出标签树所有节点的文本结构权重后,只需要找出某棵子树链下的最大文本结构权重值节点就可以发现文档的富文本区域,即主题区域。实施例的实现包括以下步骤:
步骤3.1.1,初始化类实例weight,类实例weight用于指向具有最大文本权重的节点;初始化最大文本权重的变量maxweight,并赋初值0;初始化堆栈;申明临时变量tempweight;
步骤3.1.2,如果输入源标签树source为空,则进入步骤3.1.9,否则转步骤3.1.3;
步骤3.1.3,源标签树source根节点入栈;
步骤3.1.4,判断堆栈是否为空,当堆栈不为空时执行步骤3.1.5,当堆栈为空时进入步骤3.1.9;
步骤3.1.5,当前节点指向栈顶节点;
步骤3.1.6,计算当前节点的文本权重并赋值给临时变量tempweight;
步骤3.1.7,如果临时变量tempweight的值大于变量maxweight的值,则令变量maxweight等于临时变量tempweight的值,同时让类实例weight的属性Treenode指向当前节点,转步骤3.1.8;否则,直接转步骤3.1.8;
步骤3.1.8,将当前节点的子节点依次入栈,转步骤3.1.4;
步骤3.1.9,返回类实例weight,即主题区域。
为便于实施参考起见,以下提供采用C语言实现程序代码:
步骤3.2,对步骤3.1所得主题区域进行去噪,包括两个步骤;
步骤3.2.1,获取步骤3.1所得主题区域节点C的子树所包含的所有文本节点的长度,其中最大长度记为maxlength;
步骤3.2.2,遍历主题区域节点C的子树,根据最大长度maxlength对子树中每一个文本节点的长度计算归一化值,并与预设的阈值K比较;如果不小于预设的阈值K则保留,否则从主题区域节点C的子树中摘除该文本节点。
很多情况下,发现的主题区域(文本结构权重最大的节点子树)包含有大量的杂质,如简短的日期、作者等信息。为了进一步过滤噪声,本发明实施例采用的归一化去噪方法如下:
式18中c代表某文本节点的长度,maxlength即某节点的子树中文本节点的最大文本长度,此式给出了主题区域节点子树中各个文本节点的相对长度值。利用归一化相对长度值,可以有效的去除和主题内容无关的文本节点。预先给定一个阈值K,如果计算某节点的归一化值小于K,则将其从标签树中摘除。具体实施时,K值根据网站页面结构凭经验选取,建议在0.1~0.3取值,根据网站页面的风格不同而具体设置,如新浪为0.3,腾迅为0.1等等。
步骤3.3,对步骤3.2所得去噪后的主题区域所对应的节点输出,即输出最底层叶子节点的文本内容,得到待识别Web网页的主题内容。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (5)
1.一种基于文本结构权重的主题区域识别方法,其特征在于,包括以下步骤:
步骤1,将待识别Web网页转换成标签树,具体通过以下步骤实现,
步骤1.1,通过对待识别Web网页的HTML文档进行字符扫描,识别出起始节点、结束节点、全结构节点和文本节点;
所述起始节点是以字符“<”开始,以字符“>”为结束,且这两者之间不存在字符“<”和“>”的字符串;
所述结束节点是以字符“</”开始,以字符“>”为结束,且这两者之间不存在字符“<”、“>”和“/”的字符串;
所述全结构节点是以字符“<”开始,以字符“/>”为结束,且这两者之间不存在字符“<”、“>”和“/”的字符串;
所述文本节点是以上三种节点以外的字符串;
步骤1.2,采用解析器,依据步骤1.1识别出的起始节点、结束节点、全结构节点和文本节点进行标签树的构建,得到的标签树记为A;构建过程利用堆栈操作来确定各节点的层次关系,包括以下堆栈操作,
当解析器发现一个起始节点时,触发入栈操作和在当前标签树中新建标签操作,
当解析器发现一个结束节点时,触发退栈操作,
当解析器发现一个全结构节点时,触发入栈操作,同时更新标签树,在更新标签树完成后立刻退栈操作;
当解析器发现一个文本节点时,触发入栈操作,入栈操作后立刻退栈操作;
步骤2,在步骤1所得标签树A中搜索相似区域,并进行去链接预处理,得到标签树B,具体通过以下步骤实现,
步骤2.1,在步骤1所得标签树A中搜索相似区域;所述相似区域是由一组相似节点组成的,相似节点是标签树A中满足以下特性的节点,
(1)所有的节点共同拥有同一个父节点;
(2)所有节点是相邻的;
(3)相似节点是子树的根节点或叶子节点;
(4)与同一区域中的其他节点的相似度大于预设的阈值a;
步骤2.2,在步骤2.1搜索到的所有相似区域中识别语义链接块,并将识别出的语义链接块从标签树A中摘除,得到标签树B;所述语义链接块是指由链接组成的,在视觉上呈列表状,每一项表现为超级链接的网页区域;
步骤3,对步骤2所得标签树B进行主题内容抽取,具体通过以下步骤实现,
步骤3.1,求出标签树B中所有节点的文本结构权重,找出某棵子树链下文本结构权重值最大的节点,该节点所在相似区域即主题区域,该节点记为主题区域节点C;所述文本结构权重是指文本在相似区域中所占的比重;
步骤3.2,对步骤3.1所得主题区域进行去噪,包括两个步骤;
步骤3.2.1,获取步骤3.1所得主题区域节点C的子树所包含的所有文本节点的长度,其中最大长度记为maxlength;
步骤3.2.2,遍历主题区域节点C的子树,根据最大长度maxlength对子树中每一个文本节点的长度计算归一化值,并与预设的阈值K比较;如果不小于预设的阈值K则保留,否则从主题区域节点C的子树中摘除该文本节点;
步骤3.3,对步骤3.2所得去噪后的主题区域所对应的节点输出,即输出最底层叶子节点的文本内容,得到待识别Web网页的主题内容。
2.如权利要求1所述基于文本结构权重的主题区域识别方法,其特征在于:步骤1.2中,标签树的具体构建方式包括以下步骤,
步骤1.2.1,声明一个解析器实例和一个单例模式堆栈实例,并从待识别Web网页的HTML文档中读取一个节点;
步骤1.2.2,如果读取的节点是结束节点、全结构节点或者文本节点,则将该节点出栈,然后进入步骤1.2.3;否则,转步骤1.2.4;
步骤1.2.3,层次值减一,并将父节点指针指向步骤1.2.2出栈的节点的父节点,更新标签树;
步骤1.2.4,如果读取的节点是起始节点、全结构节点或者文本节点,则声明一个新的堆栈项,并将该节点入栈,然后进入步骤1.2.5;否则,进入步骤1.2.7;
步骤1.2.5,层次值加一,同时将步骤1.2.4入栈的节点插入父节点指针当前指向的节点的孩子集中;
步骤1.2.6,将当前节点指针指向步骤1.2.4入栈的节点,并更新标签树;
步骤1.2.7,从待识别Web网页的HTML文档中读取下一个节点,重复步骤1.2.2至步骤1.2.6,直到待识别Web网页的HTML文档解析完成,构建得到的标签树记为A。
3.如权利要求1所述基于文本结构权重的主题区域识别方法,其特征在于:步骤2.1中,在步骤1所得标签树A中搜索相似区域时,采用简单树匹配算法计算相似度,利用堆栈消除递归,对标签树A进行遍历,发现相似节点时进行标记,识别出相似区域;具体遍历实现包括以下步骤,
步骤2.1.1,初始化当前节点指向标签树的根节点,初始化堆栈;
步骤2.1.2,如果当前节点的孩子数不为0,则当前节点入栈,执行步骤2.1.3;否则从标签树A中取下一节点作为当前节点,返回步骤2.1.2,直到取完标签树A中所有节点,进入步骤2.1.7;
步骤2.1.3,判断堆栈是否为空,当堆栈不为空时执行步骤2.1.4,当堆栈为空时返回步骤2.1.2;
步骤2.1.4,栈顶元素出栈,赋值给当前节点;
步骤2.1.5,遍历当前节点的最近一层子节点,依次比较两个相邻子节点代表的子树的相似度,如果相邻节点的相似度小于阈值a,当前两个相邻子节点标记为删除,否则当前两个相邻子节点标记为相似节点;遍历完成后进入步骤2.1.5;
步骤2.1.6,当前节点标记为相似区域;取当前节点下的所有子节点,依次入栈,然后转步骤2.1.3;
步骤2.1.7,对标签树A进行遍历完成,所有相似区域均被发现。
4.如权利要求1所述基于文本结构权重的主题区域识别方法,其特征在于:步骤2.2中,识别语义链接块的具体方式包括以下步骤,
步骤2.2.1,取出当前相似区域DR的根节点root,计算出根节点root所包含的子节点个数;
步骤2.2.2,以宽度优先的方式,遍历根节点root所包含的子节点,对遍历到的当前子节点执行以下操作,
对当前子节点,以宽度优先的方式遍历当前子节点的子树,如果检测到链接标签“<a>”,则将此标签的深度偏差值存入哈希表,所述深度偏差值等于此标签的深度值减去根节点root 的深度值;同时记录此深度偏差值出现的次数,记录方式是以深度偏差值为键,次数为键所对应的值;
步骤2.2.3,在步骤2.2.2遍历完根节点root所包含的子节点后,求出哈希表中所有次数之和,即得到当前相似区域DR中最低层链接标签“<a>”出现的总次数AT;
步骤2.2.4,从哈希表中,找出次数最大的项,此项的键为j,j即是包含最多链接标签“<a>”的深度偏差值,该键对应的次数值就是最大次数取值LC;
步骤2.2.5,计算出链接同层次值LK, ;如果当前相似区域DR的链接同层次值LK大于或等于预设值L,则认为此相似区域是语义链接块。
5.如权利要求1所述基于文本结构权重的主题区域识别方法,其特征在于:步骤3.1中,找出某棵子树链下文本结构权重值最大的节点,具体实现包括以下步骤,
步骤3.1.1,初始化类实例weight,类实例weight用于指向具有最大文本权重的节点;初始化最大文本权重的变量maxweight,并赋初值0;初始化堆栈;申明临时变量tempweight;
步骤3.1.2,如果输入源标签树source为空,则进入步骤3.1.9,否则转步骤3.1.3;
步骤3.1.3,源标签树source根节点入栈;
步骤3.1.4,判断堆栈是否为空,当堆栈不为空时执行步骤3.1.5,当堆栈为空时进入步骤3.1.9;
步骤3.1.5,当前节点指向栈顶节点;
步骤3.1.6,计算当前节点的文本权重并赋值给临时变量tempweight;
步骤3.1.7,如果临时变量tempweight的值大于变量maxweight的值,则令变量maxweight等于临时变量tempweight的值,同时让类实例weight的属性Treenode指向当前节点,转步骤3.1.8;否则,直接转步骤3.1.8;
步骤3.1.8,将当前节点的子节点依次入栈,转步骤3.1.4;
步骤3.1.9,返回类实例weight,即主题区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110302004 CN102306204B (zh) | 2011-09-28 | 2011-09-28 | 基于文本结构权重的主题区域识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110302004 CN102306204B (zh) | 2011-09-28 | 2011-09-28 | 基于文本结构权重的主题区域识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102306204A true CN102306204A (zh) | 2012-01-04 |
CN102306204B CN102306204B (zh) | 2013-03-13 |
Family
ID=45380066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110302004 Expired - Fee Related CN102306204B (zh) | 2011-09-28 | 2011-09-28 | 基于文本结构权重的主题区域识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102306204B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819586A (zh) * | 2012-07-31 | 2012-12-12 | 北京网康科技有限公司 | 一种基于高速缓存的url分类方法和设备 |
CN103927397A (zh) * | 2014-05-05 | 2014-07-16 | 湖北文理学院 | 一种基于区块树的Web页面链接块的识别方法 |
CN104021117A (zh) * | 2013-03-01 | 2014-09-03 | 索尼公司 | 语言处理方法与电子设备 |
CN104111987A (zh) * | 2014-07-01 | 2014-10-22 | 西安交通大学 | 基于子树模式挖掘的税务中间指标提取方法 |
CN104583949A (zh) * | 2012-08-16 | 2015-04-29 | 高通股份有限公司 | Web浏览器中的脚本的预处理 |
CN104866192A (zh) * | 2015-04-30 | 2015-08-26 | 百度在线网络技术(北京)有限公司 | 一种用于提供有声用户界面的方法和装置 |
CN105302797A (zh) * | 2015-11-20 | 2016-02-03 | 百度在线网络技术(北京)有限公司 | 识别文本题材的方法和装置 |
CN105469104A (zh) * | 2015-11-03 | 2016-04-06 | 小米科技有限责任公司 | 文本信息相似度的计算方法、装置及服务器 |
CN105550278A (zh) * | 2015-12-10 | 2016-05-04 | 天津海量信息技术有限公司 | 基于深度学习的网页区域识别算法 |
CN106445910A (zh) * | 2015-09-02 | 2017-02-22 | 深圳市览网络股份有限公司 | 一种文档解析方法与装置 |
CN106610998A (zh) * | 2015-10-26 | 2017-05-03 | 烽火通信科技股份有限公司 | 一种新型的网页数据基于地区噪音过滤方法 |
CN108628977A (zh) * | 2018-04-25 | 2018-10-09 | 咪咕文化科技有限公司 | 一种网页内容处理方法、装置及计算机可读存储介质 |
CN109614456A (zh) * | 2018-11-28 | 2019-04-12 | 武汉大学 | 一种基于深度学习的地理信息的定位分区方法及装置 |
CN110046236A (zh) * | 2019-03-20 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种非结构化数据的检索方法及装置 |
CN110807137A (zh) * | 2019-04-11 | 2020-02-18 | 上海丛云信息科技有限公司 | 一种分布式大数据采集实现方法 |
CN111324724A (zh) * | 2020-02-13 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN112035623A (zh) * | 2020-09-11 | 2020-12-04 | 杭州海康威视数字技术股份有限公司 | 智能问答方法、装置、电子设备及存储介质 |
CN116151354A (zh) * | 2023-04-10 | 2023-05-23 | 之江实验室 | 网络节点的学习方法、装置、电子装置和存储介质 |
CN117290626A (zh) * | 2023-11-23 | 2023-12-26 | 上海蜜度科技股份有限公司 | XPath生成方法、系统、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161525A1 (en) * | 2005-01-18 | 2006-07-20 | Ibm Corporation | Method and system for supporting structured aggregation operations on semi-structured data |
JP3873135B2 (ja) * | 2002-03-08 | 2007-01-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ処理方法、これを用いた情報処理システム及びプログラム |
CN101582074A (zh) * | 2009-01-21 | 2009-11-18 | 东北大学 | 一种DeepWeb响应页面数据抽取方法 |
CN101710343A (zh) * | 2009-12-11 | 2010-05-19 | 北京中机科海科技发展有限公司 | 一种基于文本挖掘的本体自动构建系统及方法 |
CN101826105A (zh) * | 2010-04-02 | 2010-09-08 | 南京邮电大学 | 基于匈牙利匹配算法的钓鱼网页检测方法 |
-
2011
- 2011-09-28 CN CN 201110302004 patent/CN102306204B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3873135B2 (ja) * | 2002-03-08 | 2007-01-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ処理方法、これを用いた情報処理システム及びプログラム |
US20060161525A1 (en) * | 2005-01-18 | 2006-07-20 | Ibm Corporation | Method and system for supporting structured aggregation operations on semi-structured data |
CN101582074A (zh) * | 2009-01-21 | 2009-11-18 | 东北大学 | 一种DeepWeb响应页面数据抽取方法 |
CN101710343A (zh) * | 2009-12-11 | 2010-05-19 | 北京中机科海科技发展有限公司 | 一种基于文本挖掘的本体自动构建系统及方法 |
CN101826105A (zh) * | 2010-04-02 | 2010-09-08 | 南京邮电大学 | 基于匈牙利匹配算法的钓鱼网页检测方法 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819586A (zh) * | 2012-07-31 | 2012-12-12 | 北京网康科技有限公司 | 一种基于高速缓存的url分类方法和设备 |
CN102819586B (zh) * | 2012-07-31 | 2015-10-07 | 北京网康科技有限公司 | 一种基于高速缓存的url分类方法和设备 |
CN104583949A (zh) * | 2012-08-16 | 2015-04-29 | 高通股份有限公司 | Web浏览器中的脚本的预处理 |
CN104021117B (zh) * | 2013-03-01 | 2019-05-17 | 索尼公司 | 语言处理方法与电子设备 |
CN104021117A (zh) * | 2013-03-01 | 2014-09-03 | 索尼公司 | 语言处理方法与电子设备 |
CN103927397A (zh) * | 2014-05-05 | 2014-07-16 | 湖北文理学院 | 一种基于区块树的Web页面链接块的识别方法 |
CN103927397B (zh) * | 2014-05-05 | 2017-02-22 | 湖北文理学院 | 一种基于区块树的Web页面链接块的识别方法 |
CN104111987A (zh) * | 2014-07-01 | 2014-10-22 | 西安交通大学 | 基于子树模式挖掘的税务中间指标提取方法 |
CN104866192A (zh) * | 2015-04-30 | 2015-08-26 | 百度在线网络技术(北京)有限公司 | 一种用于提供有声用户界面的方法和装置 |
CN106445910B (zh) * | 2015-09-02 | 2019-04-12 | 深圳市一览网络股份有限公司 | 一种文档解析方法与装置 |
CN106445910A (zh) * | 2015-09-02 | 2017-02-22 | 深圳市览网络股份有限公司 | 一种文档解析方法与装置 |
CN106610998A (zh) * | 2015-10-26 | 2017-05-03 | 烽火通信科技股份有限公司 | 一种新型的网页数据基于地区噪音过滤方法 |
CN105469104A (zh) * | 2015-11-03 | 2016-04-06 | 小米科技有限责任公司 | 文本信息相似度的计算方法、装置及服务器 |
CN105302797B (zh) * | 2015-11-20 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 识别文本题材的方法和装置 |
CN105302797A (zh) * | 2015-11-20 | 2016-02-03 | 百度在线网络技术(北京)有限公司 | 识别文本题材的方法和装置 |
CN105550278A (zh) * | 2015-12-10 | 2016-05-04 | 天津海量信息技术有限公司 | 基于深度学习的网页区域识别算法 |
CN108628977B (zh) * | 2018-04-25 | 2021-03-16 | 咪咕文化科技有限公司 | 一种网页内容处理方法、装置及计算机可读存储介质 |
CN108628977A (zh) * | 2018-04-25 | 2018-10-09 | 咪咕文化科技有限公司 | 一种网页内容处理方法、装置及计算机可读存储介质 |
CN109614456A (zh) * | 2018-11-28 | 2019-04-12 | 武汉大学 | 一种基于深度学习的地理信息的定位分区方法及装置 |
CN109614456B (zh) * | 2018-11-28 | 2020-11-03 | 武汉大学 | 一种基于深度学习的地理信息的定位分区方法及装置 |
CN110046236A (zh) * | 2019-03-20 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种非结构化数据的检索方法及装置 |
CN110046236B (zh) * | 2019-03-20 | 2022-12-20 | 腾讯科技(深圳)有限公司 | 一种非结构化数据的检索方法及装置 |
CN110807137A (zh) * | 2019-04-11 | 2020-02-18 | 上海丛云信息科技有限公司 | 一种分布式大数据采集实现方法 |
CN111324724A (zh) * | 2020-02-13 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN111324724B (zh) * | 2020-02-13 | 2023-04-11 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN112035623A (zh) * | 2020-09-11 | 2020-12-04 | 杭州海康威视数字技术股份有限公司 | 智能问答方法、装置、电子设备及存储介质 |
CN116151354A (zh) * | 2023-04-10 | 2023-05-23 | 之江实验室 | 网络节点的学习方法、装置、电子装置和存储介质 |
CN117290626A (zh) * | 2023-11-23 | 2023-12-26 | 上海蜜度科技股份有限公司 | XPath生成方法、系统、存储介质及电子设备 |
CN117290626B (zh) * | 2023-11-23 | 2024-03-15 | 上海蜜度科技股份有限公司 | XPath生成方法、系统、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102306204B (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102306204B (zh) | 基于文本结构权重的主题区域识别方法 | |
CN110633409B (zh) | 一种融合规则与深度学习的汽车新闻事件抽取方法 | |
CN103823824B (zh) | 一种借助互联网自动构建文本分类语料库的方法及系统 | |
Hazman et al. | A survey of ontology learning approaches | |
Flesca et al. | Web wrapper induction: a brief survey | |
Liu et al. | Vide: A vision-based approach for deep web data extraction | |
CN101957816B (zh) | 基于多页面比较的网页元数据自动抽取方法和系统 | |
US20100241639A1 (en) | Apparatus and methods for concept-centric information extraction | |
US20110231347A1 (en) | Named Entity Recognition in Query | |
Zheng et al. | Template-independent news extraction based on visual consistency | |
CN101727498A (zh) | 一种基于web结构的网页信息自动提取方法 | |
US20210350125A1 (en) | System for searching natural language documents | |
Azir et al. | Wrapper approaches for web data extraction: A review | |
CN113168499A (zh) | 检索专利文档的方法 | |
Zheng et al. | Data extraction from web pages based on structural-semantic entropy | |
US20210397790A1 (en) | Method of training a natural language search system, search system and corresponding use | |
CN108021682A (zh) | 开放式信息抽取背景下一种基于维基百科的实体语义化方法 | |
Salah et al. | A comparison of web data extraction techniques | |
Kadam et al. | A survey on HTML structure aware and tree based web data scraping technique | |
Pu et al. | A vision-based approach for deep web form extraction | |
Obare et al. | Jumping finite automata for tweet comprehension | |
Liu et al. | Structured data extraction: wrapper generation | |
CN112395429A (zh) | 基于图神经网络的hs编码判定、推送、应用方法、系统及存储介质 | |
Lam et al. | Web information extraction | |
Negm et al. | A survey of web information extraction tools |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130313 Termination date: 20130928 |