CN102063493A - 基于正则表达式组和控制逻辑的内容抽取方法 - Google Patents
基于正则表达式组和控制逻辑的内容抽取方法 Download PDFInfo
- Publication number
- CN102063493A CN102063493A CN2010106144855A CN201010614485A CN102063493A CN 102063493 A CN102063493 A CN 102063493A CN 2010106144855 A CN2010106144855 A CN 2010106144855A CN 201010614485 A CN201010614485 A CN 201010614485A CN 102063493 A CN102063493 A CN 102063493A
- Authority
- CN
- China
- Prior art keywords
- regular expression
- text
- logic
- variable
- executable operations
- 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.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明提供了一种基于正则表达式组和控制逻辑的内容抽取方法,可用于网页、半结构化数据的内容定位、匹配及抽取。本发明提供的方案包括:所述方法基于正则表达式组和控制逻辑;所述方法对文档元素进行自外而内的层层定位,每一次定位包括如下要素:匹配点,触发操作,逻辑控制。本发明提供的方案有三方面的技术优势:第一,正则表达式不需要构建DOM Tree,匹配速度快;第二,用一组正则表达式并加入控制逻辑,让每个正则表达式在匹配成功时执行特定的逻辑,使得能够抽取更多形式下的内容;第三,本发明的控制逻辑的具体规则可由使用者自己定制,灵活度更大。
Description
技术领域
本技术发明属于信息抽取技术,可用于网页、半结构化数据的内容定位、匹配及抽取。
背景技术
信息抽取不同于信息检索,当有一个信息需求时,信息检索只能返回相关文档,但文档不等于信息,它仅是包含想要的信息(人名、机构名等)。随着互联网信息的爆炸式增长,各种文档如网页的内容样式愈发丰富多彩,而人们所需要的信息愈发难以发现,隐藏在了各种样式的内容里,需要借助信息抽取的手段。与此同时,人们对信息抽取的要求越来越高,准确的定位、快速的获取和简单灵活的操作成为评价信息抽取工具优劣的标准。
信息抽取的研究可以追溯到上世纪80年代后期。它的主要目标是让计算机不但找到相关的文档,而且还要找到相关的内容。抽取的信息一般分为这几个方面:命名实体的抽取、与模板有关的内容信息抽取、各个实体之间关系的抽取和预置事件的信息抽取。其中,命名实体的抽取包括组织机构、人名、地名的抽取,时间、日期、钱币和百分数的抽取、专有名词的抽取、隐含指代名词和集合名词的抽取;模板内容信息的抽取是用户预先设置模板,自动抽取用户关心的详细内容,反映时间、地点、人物和发生的事件。
当前,信息抽取的主要难点在于内容本身的多变性和内容结构的复杂性。内容本身的多变性是指我们在描述同一个实体时,经常使用不同的词汇,即使用的词汇是一样的,它们的组合方式、顺序、格式也常常不一致,但是我们都明白它们是在表达同一个意思。例如,下面是三篇文章引用同一篇参考文献的格式:
“[HPY00]J.HAN,J.PEI,AND Y.YIN.Mining frequent patterns without candidate generation.In Proc.of 2000 ACMSIGMOD,pages 1-12,2000.”
“Han,J.,Pei J.,Yin,Y.(1999).Mining Frequent Patterns Without Candidate Generation.Technical Report CMPT99-12,School of Computing Science,Simon Fraser University.”
“J.Han,J.Pei,and Y.Yin.Mining frequent patterns without candidate generation.In SIGMOD′00.”
可以看到,虽然引用的是同一篇文章,但是有不同的表述方式,让机器自动地识别出这是同一篇文章存在一定的困难。文本结构的复杂性是指一篇文档中包含多块的内容,比如一个网页中有广告区域、正文区域、导航区域、推荐链接区域等,即使在一块区域中存在层层嵌套的html标签。
目前信息抽取的方法主要包括:有限状态机的方法、Wrappers包装器的方法和机器学习的方法。有限状态机的方法用来提取命名实体和关系信息,提取系统可以看成是若干FSMs(Finite State Machine)构成的一个模板,其规则设计根据具体应用来确定。机器学习的方法使用一些复杂的模型,如隐马尔科夫模型、最大熵马尔科夫模型以及条件随机场等,它们都需要在训练集上学习,操作起来也很复杂,而且得到的结果未必比简单的方法好。在针对网页及半结构化数据进行抽取时应考虑轻量级的抽取方法。Wrappers包装器是一种基于模板的方法,模板中的槽(slots)对应文档中需要抽取的字符串,为了更好的匹配要抽取的文字区域,通过定义pre-filler pattern和post-filler pattern锚定区域的起始位置和结束位置,然后通过filler pattern抽取所需的信息,更复杂的Wrappers还引入槽的序数信息以及层次嵌套信息进行匹配,可以看出Wrappers包装器更适用于对某个网站下html页面信息的抽取。针对html页面,有人提出利用DOM Trees的树形结构,通过定义从根结点到包含所需文本信息的结点的路径来搜索匹配。在Wrappers包装器匹配所需信息的过程中,通常要用到正则表达式来具体识别和抽取相应的内容。
现有的信息抽取技术,对于web数据迅速增长下的大量html页面,方法不是模型复杂、难于使用,就是限制过多、适用范围窄,没有针对网页文本结构的特殊性进行设计。相比较而言,Wrappers包装器是解决网页信息抽取的可行方案,问题在于如何设计包装器使得它既能抽取很多样式html下的文本内容,增加抽取的适用范围和灵活度,又能简化操作,使用者仅通过几行的模板文件即可定位要抽取的内容。此外,通过搜索DOM Tree上的路径实现抽取的方法效率不高,因为要先把html转换成树形结果,然后从根结点一层层遍历到目标结点。
发明内容
本发明(Cebrec)的目的是提供一种基于正则表达式组和控制逻辑的设计方案,旨在解决现有技术中匹配速度慢、抽取范围窄、灵活性差的问题。
本发明提供的技术方案如下:
方案1:一种文档的内容抽取方法,所述文档为网页或半结构化数据,其特征在于,所述方法基于正则表达式组和控制逻辑;所述方法对文档元素进行自外而内的层层定位,每一次定位包括如下要素:
a)匹配点:起始匹配点、结束匹配点、内部匹配点;
所述匹配点是通过一组正则表达式匹配文本获得的位置,起始匹配点和结束匹配点间的文本区域为要返回的定位区域,内部匹配点用来触发操作;
b)触发操作:初始化操作、先执行操作、后执行操作;
所述触发操作是一组被调用的函数,函数中可以操作变量,所述初始化操作包括定义变量和初始化变量值,所述先执行操作和后执行操作分别是在结束点判断逻辑的前后调用的函数;
a)逻辑控制:结束点判断逻辑、文本取舍判断逻辑;
所述逻辑控制是一组返回布尔变量的函数,用来确定结束点位置和区域的取舍。
方案2:作为方案1的一种优选实现,其特征在于,所述一次定位的流程如下(参附图1):
1)执行初始化操作,设置变量k表示匹配的是第k个匹配(k初始值为0),设置状态变量s;
2)匹配起始正则表达式,如果找不到匹配则转步骤8),否则锚定起始点;
3)用或逻辑组合多个内部正则表达式和结束正则表达式,从起始点位置向后匹配;
4)若发现匹配,则抽出匹配文本T(由于或逻辑,匹配的可能是某个或某几个内部正则表达式,也可能是结束正则表达式);若无匹配,转至步骤8);
5)在绑定先执行操作的正则表达式中,如果哪个正则表达式匹配上文本T,则触发该正则表达式对应的先执行操作(先执行操作会修改状态变量s);
6)判断文本T是否匹配结束表达式,如果匹配则进一步调用函数Finished;函数Finished是一段判断结束点是否合法的逻辑(该逻辑由用户定义),根据状态变量s是否满足用户给的条件返回true或false,如果返回true还需调用函数IncludeText;函数IncludeText是一段判断文本是取还是舍的逻辑,通过看变量k是否满足条件返回true或false,然后变量k加1,状态变量s恢复原值,转步骤1)匹配下一个(一次定位过程可返回多个匹配结果);
7)在绑定后执行操作的正则表达式中,如果哪个正则表达式匹配上文本T,则触发该正则表达式对应的后执行操作,然后转步骤4);
8)结束。
方案3:作为方案1的一种优选实现,其特征在于,所述触发操作和逻辑控制由用户自定义,通过一个配置文件实现(这样增加了灵活度)。
方案4:作为方案3的一种优选实现,其特征在于,所述配置文件为XML文档或者文本文件。
本发明的有益效果:本发明提供的方案有三方面的技术优势。第一,正则表达式不需要构建DOM Tree,匹配速度快;第二,用一组正则表达式并加入控制逻辑,让每个正则表达式在匹配成功时执行特定的逻辑,使得能够抽取更多形式下的内容;第三,本发明的控制逻辑的具体规则可由使用者自己定制,灵活度更大。
附图说明
图1本发明方法的流程图。
具体实施方式
下面通过一个具体的例子对本发明作进一步说明。
针对上面两个文档,目标是从中抽取“AAA”“BBB”“CCC”,忽略“xxx”“yyy”“zzz”,其中文档2后面的部分内容丢失。
用户需要定义一份配置文件,包含三层定位:
(1)定位div区域
a)起始匹配点:“<div>”
b)结束匹配点:“</div>”或遇到文件尾
c)内部匹配点:“<div>”①
“</div>”②
d)初始化操作:设置变量k为零,自定义变量layer和变量toend。其中layer表示嵌套的子div区域的深度,初始时为零;toend表示遇到文件尾
e)先执行操作:若遇到文件尾,置变量toend为true
f)后执行操作:若匹配上内部点①,变量layer加1;若匹配上内部点②,变量layer减1
g)结束点判断逻辑:若变量toend为true或者变量layer等于0,返回true;否则返回false
h)文本取舍判断逻辑:返回true
(2)定位tr区域
a)起始匹配点:“<tr>”
b)结束匹配点:“</tr>”或遇到文件尾
c)初始化操作:设置变量k为零
d)先执行操作:无
e)后执行操作:无
f)结束点判断逻辑:返回true
g)文本取舍判断逻辑:若k等于1,返回true;否则返回false
(3)定位目标
正则表达式直接匹配。
抽取阶段会按照配置文件的说明根据附图1所提供的流程来一层层定位,首先定位div区域,定位成功后进入下一层tr区域,再成功后定位目标。这个配置文件解决了重复标签嵌套和文件流异常结束的问题。
Claims (4)
1.一种文档的内容抽取方法,所述文档为网页或半结构化数据,其特征在于,所述方法基于正则表达式组和控制逻辑;所述方法对文档元素进行自外而内的层层定位,每一次定位包括如下要素:
a)匹配点:起始匹配点、结束匹配点、内部匹配点;
所述匹配点是通过一组正则表达式匹配文本获得的位置,起始匹配点和结束匹配点间的文本区域为要返回的定位区域,内部匹配点用来触发操作;
b)触发操作:初始化操作、先执行操作、后执行操作;
所述触发操作是一组被调用的函数,其中初始化操作包括定义变量和初始化变量值,先执行操作和后执行操作分别是在结束点判断逻辑的前后调用的函数;
a)逻辑控制:结束点判断逻辑、文本取舍判断逻辑;
所述逻辑控制是一组返回布尔变量的函数,用来确定结束点位置和区域的取舍。
2.如权利要求1所述的内容抽取方法,其特征在于,所述一次定位的流程如下:
1)执行初始化操作,设置变量k表示匹配的是第k个匹配,设置状态变量s;
2)匹配起始正则表达式,如果找不到匹配则转步骤8),否则锚定起始点;
3)用或逻辑组合多个内部正则表达式和结束正则表达式,从起始点位置向后匹配;
4)若发现匹配,则抽出匹配文本T;若无匹配,转至步骤8);
5)在绑定先执行操作的正则表达式中,如果哪个正则表达式匹配上文本T,则触发该正则表达式对应的先执行操作;
6)判断文本T是否匹配结束表达式,如果匹配则进一步调用函数Finished;函数Finished是一段判断结束点是否合法的逻辑,根据状态变量s是否满足用户给的条件返回true或false,如果返回true还需调用函数IncludeText;函数IncludeText是一段判断文本是取还是舍的逻辑,通过看变量k是否满足条件返回true或false,然后变量k加1,状态变量s恢复原值,转步骤1)匹配下一个;
7)在绑定后执行操作的正则表达式中,如果哪个正则表达式匹配上文本T,则触发该正则表达式对应的后执行操作,然后转步骤4);
a)结束。
3.如权利要求1所述的内容抽取方法,其特征在于,所述触发操作和逻辑控制由用户自定义,通过一个配置文件实现。
4.如权利要求3所述的内容抽取方法,其特征在于,所述配置文件为XML文档或者文本文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106144855A CN102063493A (zh) | 2010-12-30 | 2010-12-30 | 基于正则表达式组和控制逻辑的内容抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106144855A CN102063493A (zh) | 2010-12-30 | 2010-12-30 | 基于正则表达式组和控制逻辑的内容抽取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102063493A true CN102063493A (zh) | 2011-05-18 |
Family
ID=43998768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106144855A Pending CN102063493A (zh) | 2010-12-30 | 2010-12-30 | 基于正则表达式组和控制逻辑的内容抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063493A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262658A (zh) * | 2011-07-13 | 2011-11-30 | 东北大学 | 一种基于实体的自底向上Web数据抽取方法 |
CN107291761A (zh) * | 2016-04-05 | 2017-10-24 | 北京优朋普乐科技有限公司 | 一种正则表达式的匹配方法和装置 |
CN107608949A (zh) * | 2017-10-16 | 2018-01-19 | 北京神州泰岳软件股份有限公司 | 一种基于语义模型的文本信息抽取方法及装置 |
CN107943785A (zh) * | 2017-11-06 | 2018-04-20 | 广东广业开元科技有限公司 | 一种基于大数据的pdf文档处理方法及装置 |
CN107977435A (zh) * | 2017-12-04 | 2018-05-01 | 北京神州泰岳软件股份有限公司 | 一种文本信息的预处理方法及装置 |
CN108073678A (zh) * | 2017-11-06 | 2018-05-25 | 广东广业开元科技有限公司 | 应用于大数据分析中的文档解析处理方法、系统及装置 |
CN109271479A (zh) * | 2018-09-29 | 2019-01-25 | 广东润弘科技有限公司 | 一种简历结构化处理方法 |
CN110569445A (zh) * | 2019-08-29 | 2019-12-13 | 湖北工业大学 | 一种基于位置的社交网络中近邻检测方法 |
CN115544974A (zh) * | 2022-11-28 | 2022-12-30 | 药融云数字科技(成都)有限公司 | 一种文本数据提取方法、系统、存储介质及终端 |
-
2010
- 2010-12-30 CN CN2010106144855A patent/CN102063493A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262658A (zh) * | 2011-07-13 | 2011-11-30 | 东北大学 | 一种基于实体的自底向上Web数据抽取方法 |
CN102262658B (zh) * | 2011-07-13 | 2013-10-16 | 东北大学 | 一种基于实体的自底向上Web数据抽取方法 |
CN107291761A (zh) * | 2016-04-05 | 2017-10-24 | 北京优朋普乐科技有限公司 | 一种正则表达式的匹配方法和装置 |
CN107608949A (zh) * | 2017-10-16 | 2018-01-19 | 北京神州泰岳软件股份有限公司 | 一种基于语义模型的文本信息抽取方法及装置 |
CN107608949B (zh) * | 2017-10-16 | 2019-04-16 | 北京神州泰岳软件股份有限公司 | 一种基于语义模型的文本信息抽取方法及装置 |
CN108073678A (zh) * | 2017-11-06 | 2018-05-25 | 广东广业开元科技有限公司 | 应用于大数据分析中的文档解析处理方法、系统及装置 |
CN107943785A (zh) * | 2017-11-06 | 2018-04-20 | 广东广业开元科技有限公司 | 一种基于大数据的pdf文档处理方法及装置 |
CN108073678B (zh) * | 2017-11-06 | 2020-08-28 | 广东广业开元科技有限公司 | 应用于大数据分析中的文档解析处理方法、系统及装置 |
CN107977435A (zh) * | 2017-12-04 | 2018-05-01 | 北京神州泰岳软件股份有限公司 | 一种文本信息的预处理方法及装置 |
CN107977435B (zh) * | 2017-12-04 | 2020-05-22 | 中科鼎富(北京)科技发展有限公司 | 一种文本信息的预处理方法及装置 |
CN109271479A (zh) * | 2018-09-29 | 2019-01-25 | 广东润弘科技有限公司 | 一种简历结构化处理方法 |
CN110569445A (zh) * | 2019-08-29 | 2019-12-13 | 湖北工业大学 | 一种基于位置的社交网络中近邻检测方法 |
CN110569445B (zh) * | 2019-08-29 | 2023-06-02 | 湖北工业大学 | 一种基于位置的社交网络中近邻检测方法 |
CN115544974A (zh) * | 2022-11-28 | 2022-12-30 | 药融云数字科技(成都)有限公司 | 一种文本数据提取方法、系统、存储介质及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063493A (zh) | 基于正则表达式组和控制逻辑的内容抽取方法 | |
US10867256B2 (en) | Method and system to provide related data | |
Bengfort et al. | Applied text analysis with Python: Enabling language-aware data products with machine learning | |
US10997370B2 (en) | Hybrid classifier for assigning natural language processing (NLP) inputs to domains in real-time | |
US10108907B2 (en) | Method and system to provide related data | |
CN102880645B (zh) | 语义化的智能搜索方法 | |
CN102737013B (zh) | 基于依存关系来识别语句情感的设备和方法 | |
US20160124936A1 (en) | Grammar compiling methods, semantic parsing methods, devices, computer storage media, and apparatuses | |
CN102298635B (zh) | 事件信息融合方法和系统 | |
CN110321432A (zh) | 文本事件信息提取方法、电子装置和非易失性存储介质 | |
CN103049435B (zh) | 文本细粒度情感分析方法及装置 | |
CN111190900B (zh) | 一种云计算模式下json数据可视化优化方法 | |
CN110298033A (zh) | 关键词语料标注训练提取工具 | |
CN107392143A (zh) | 一种基于svm文本分类的简历精确解析方法 | |
CN107992542A (zh) | 一种基于主题模型的相似文章推荐方法 | |
CN104915340A (zh) | 自然语言问答方法及装置 | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN107562919B (zh) | 一种基于信息检索的多索引集成软件构件检索方法及系统 | |
CN104636466A (zh) | 一种面向开放网页的实体属性抽取方法和系统 | |
CN103823893A (zh) | 一种基于用户评论的产品检索方法及产品检索系统 | |
CN109614620B (zh) | 一种基于HowNet的图模型词义消歧方法和系统 | |
CN101820475A (zh) | 基于智能语义理解的手机彩信生成方法 | |
CN106126502A (zh) | 一种基于支持向量机的情感分类系统及方法 | |
CN104485107A (zh) | 名称的语音识别方法、语音识别系统和语音识别设备 | |
CN109857458A (zh) | 基于ANTLR的AltaRica 3.0的扁平化的转化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110518 |