一种xbrl数据搜索方法及搜索引擎的制作方法

文档序号:6434874阅读:341来源:国知局
专利名称:一种xbrl数据搜索方法及搜索引擎的制作方法
技术领域
本发明涉及企业数据如会计报表等的处理方法,特别涉及一种利用 XBRL(extensible Business Reporting Language,可扩展商业报告语言)进行企业数据搜索的方法和搜索工具。
背景技术
XBRL是XML (可扩展的标记语言,Extensible Markup Language)在财务报告信息交换方面的一种应用,也是目前应用于非结构化信息处理,尤其是财务信息处理的最新技术。XBRL是近年在全球兴起的一种电子计算机语言,广泛用于财务报告、监管报告和税务报告的电子化报告领域。在XBRL报告环境下,政府部门、会计标准制定机构和监管机构,按照XBRL技术规范制定符合财务报告标准、监管规则或税收法规的电子化报告标准(即“分类标准”);企业按照分类标准对其报告数据进行标记,编制生成XBRL格式的财务报告、监管报告或税务报告(即“实例文档”);各种企业报告的使用者,可借助符合XBRL技术规范的工具软件,利用计算机打开、阅读这些实例文档或从中识别、提取、分析、处理所需的特定数据。在传统条件下,如果要借助计算机进行数据的分析和管理,必须首先建立和维护一个专用数据库,成本高、难度大、用途窄,如果监管规则或用户需求发生变化,还需要对数据库进行较大修改;在利用XBRL进行企业报告数据的分析和管理时,既不必建立和维护专业的数据库,也不必因为准则、规则和法规的变动而频繁地重建或修改一个庞大的数据库。对企业报告信息的一般使用者来说,XBRL在互联网上提供了大量计算机能“直接读懂”的信息,降低了分析和使用企业信息的门槛,使用者能够根据自身需要量身定制各种基于企业报告信息的数据;对政府部门和监管机构来说,企业报告信息的管理和分析将更加及时、规范、标准化,尤其便于跨监管部门交换或核实企业报告信息,形成统一的企业信息来源,大幅提升监管效能;对企业来说,一方面XBRL可延伸至企业内部管理报告领域,提高企业内部管理的精细化程度,另一方面随着XBRL被越来越多的政府部门和监管机构所采用,共用同一个平台的多目标企业报告体系还将显著降低企业的对外报告负担。使用谷歌、百度之类的传统搜索引擎进行网络搜索时,其前端界面好用、干净、快捷而且简单。然而简单界面的背后却是复杂的索引数据库和先进的搜索技术。但是当我们试图使用常规的SQL (结构化查询语言,Structured Query Language) 数据库搜索技术进行搜索金融数据时(如XBRL财务报告),我们却遇到了麻烦。因为数据内容是分布式的平面文件,并且在任何集中式数据库中都不能有条理地进行数据结构和模式的定义。这就像一个充斥着没有路标的道路世界。传统的搜索引擎,通过建立和使用包含元数据的集中式数据库,要求他人找到的内容与我们的查询相匹配。在这个集中式数据库中每个关键词都作为一个标记,并迅速有效地链接到相应的网站。换言之,对我们而言,搜索引擎就像是一个知识渊博的向导,对我们的查询以是否找到答案来做出回应,而这是基于它已有权使用的并已成为现实的互联网之路。类似查询金融研究数据(如XBRL财务报告)的工具,无论是卖方还是买方,都有着这样的长期需求,但使用这样一种功能强大的搜索前端来查询金融研究数据,目前主要存在以下难点在技术上难以实现,开发成本交高。谷歌、百度处理的是HTML文本而不是金融数据,即有语境又有含义的文本。相对而言,搜索数据往往更具有挑战性,因为即使是在网络中,数据也是被标记成HTML以文本而不是数据的形式出现,因此,有意义的搜索由于失去了数据的语境而无法进行。没有普遍被接受的标准财务词典或分类标准来定义一些术语,如收入、销量、或净收入的同义词。XBRL基于XML技术,具有很严谨的结构,是结构化的数据,数据的结构主要通过 XML khema模式文件来制定。XBRL在数据处理和交换方面有如下的一些优势一、XBRL具有非常广泛的开发性,它允许各个国家、部门、行业、公司等建立适合自己需要的分类标准。这一特征使得XBRL可以在银行,交易所,税收、保险等金融机构使用, 针对不同的系统、厂商提供各自特色的独立解决方案。二、XBRL的分离性使XBRL数据存储格式不受显示格式的制约。一般来说,一篇文档主要包括三个要素数据、结构和显示方式。对于普通的HTML文件来说,显示方式内嵌在数据中,这样在创建文件时,要时时考虑输出格式,如果因为需求不同而需要对同样的内容进行不同风格的显示时,要从头创建一个全新的文档,重复工作量很大。此外HTML缺乏对数据结构的描述,对于应用程序理解文档内容、抽取语义信息都有诸多不便。三、XBRL把文档的三要素(数据、结构、显示方式)独立分开来,分别处理。把显示方式从数据内容中独立出来。四、XBRL的自我描述性质能够很好地表现许多负责的数据关系,使得基于XBRL的应用程序可以在XBRL文件中准确高效地搜索相关的数据内容,忽略其他不相关部分。XBRL 还有其他许多优点,比如它有利于不同系统之间的信息交流,有希望成为财务数据和文档交换的标准机制。作为XML的一个应用模式,XBRL的层次结构也有其特点。可以将现有的XBRL 分为三层技术规格(specification)、分类标准(Taxonomy)和实例文档Qnstance Documents)。技术规格,或称说明、规范,主要用于定义XBRL的各种专门术语,描述了 XBRL文件的结构,详细规定了 XBRL分类的标准和XBRL实例文档的语法和语义。虽然有XML元素和属性的语义上的表述,但XBRL规格是一项侧重技术的文件,目的在于定义一项符合规范的 XBRL文档。分类标准是财务报告发布的语法格式,也部分定义了各会计报表要素的“语义关系”。如“资产=负债+所有者权益”、“主营业务收入是利润表的要素”、“Assets表达资产的概念”等等。分类标准由名为Taxonomy, xsd的XML Schema文档与相关联的六个XML链接库文件(Definition, xml,Calculation, xml,Presentation, xml,Label, xml,Reference, xml, Formula, xml)组成,Taxonomy定义的是报表的语法形式,链接库文件定义的是报表语法要素的语义关系。
XML链接库文件是使用链接语言(XLink)定义的,并不局限于外在形式上标签之间的链接(HTML链接则是外在形式上的链接),而是主要用来描述信息内容标签(元数据) 之间的联系。XBRL的五个链接库文件定义的是XBRI^chema文档中各标签之间的联系,属于 XBRL khema的元语言范畴。显然,XBRL并未遵循语义Web的体系结构,其语义表达功能较为简单。Definition链接库描述khema文件中元素概念之间的关系,这些关系可取 general-special、similar-tuples、essence-alias、requires-element 等四禾中值,分别表示一般与特殊的种属关系、不同XML视图中的元组间的定义等价关系、概念间的相似关系、 跟随出现关系。Calculation链接库定义了元素间的线性运算关系,具体关系式为“TO =
FR0M1*WEIGHT1+FR0M2*WEIGHT2+......+FR0M-n*TOIGHT_n,,。Label 链接库定义了 Schema
文档中的元素与XML中标记的对应关系,实现一个元素与多个标记相关联。!Presentation 链接库规定了元素展现的父子关系与兄弟元素的展现次序。Reference链接库建立了元素到元素涵义解释的权威参考文献链接。Label与!Presentation定义的都是XBRL实例文档的展示问题,而Reference显然是为便于人类阅读者索取各元素权威解释而设计的, 它们都不涉及信息项的语义关系定义;定义khema元素语义关系的只有Definition与 Calculationo公式的出现的目的是为了弥补计算链接库的不足。在公式出现前,计算链接库可以实现对数项总和的验证及同一语境下的加总求和,但是不能处理不同语境下的加总与不同维度下的加总,更不能表述会计的业务规则。例如“期末余额=期初余额+本期变化额” 这个会计等式,由于期初余额和本期变化额处于不同的语境,计算链接库中无法对这个表达式进行定义;再如按账龄计算坏账准备所依据的规则为,应收账款发生的时间越长,发生坏账的可能性就越大,相应的计提坏账准备的比率就应该越大,计算链接库也不能根据应收账款发生时间的长短选择适用的计提比率。为了克服计算链接库的局限,作为公式具体实现的公式链接库被引入到现有体系中。对于信息提供者来说,公式链接库能够有效的验证数据的类型和数据值,也能在报告提交前对数据的一致性等进行验证,确保提交的数据符合要求。而对于信息使用者来说,除了上述数据验证方面的作用以外,还可以应用公式功能进行数据完整性检查;或者通过计算获得新的数据,比如用流动资产去除以流动负债获得企业的流动比率数据;可以获得同一数据的相关信息,比如报表中列示的销售收入是否等于各产品的收入总和,是否等于各地区的收入总和等具体信息。实例文档是一个企业根据XBRL规范和XBRL分类标准做成的财务报表,它必须要同时满足分类标准的定义和规范的限制。实例文档封装了具体的商业事实(fact),根据信息的汇集程度分为条目(item)、元组(tuple)、组(groups)三个不同层次。其中,条目通常与一个数字型的事实对应;元组是事实的联合体,等同于关系数据库里的一条记录,组是实例文档的根结点,由相关联的数据项的集合构成。在不知道分类标准的情况下,实例文档没有任何意义。用户需要借助与分类标准和相应的软件才能从XBRL实例中提取所需要的数据并加以分析。可以看到,XBRL并没有完全遵循语义Web的规范,试图通过Definition链接库和 Calculation链接库来把握财务对象的语义,这必将是不充分的。技术规格虽然也有一些专门术语语义层次上的表述,但总的来看,与XML存在的缺陷一样,XBRL缺乏本体层概念关系定义和逻辑层的计算规则定义。W3C也试图致力于弥补这一缺陷。2004年提出标准化的本体语言OffL就代表了这方面的努力。OWL 由 OWL Lite,OffL DL(Description Logics)、0WLFull 三个并列的子集构成,OWL Lite用于表示只需一个分类层次和简单约束关系的形式语义关系;OWL DL用于表示需要最强表达力且需要保持计算的完备性(即所有结论可计算)与可判定性(所有计算能够在有限时间内完成)的形式语义关系;OWL Full用于需要最强表达力且无法提供计算完备性与可判定性保证的形式语义关系。其中,OWL DL也提供了完备的实例、类、属性、关系等元语言对象的表示工具。也就是说,OWL层提供了充分定义XBRL范畴概念关系的形式工具

发明内容
本发明的目的为了克服目前普通搜索引擎不适合于XBRL数据搜索面提供一种 XBRL数据搜索引擎。本发明为了实现其目的而采用的技术方案是、一种XBRL数据搜索方法,在互联网中搜索XBRL数据,包括以下步骤步骤A、从指定的网址上自动收集相关XBRL文档;步骤B、提取所述的XBRL文档的内容信息和结构信息;步骤C、读取解析模块解析后的数据信息;步骤D、读取元组,对元组建立索引;步骤E、读取单位,上下文和数据项,并对单位,上下文和数据项三类数据建立属性索引;步骤F、将所有的索引存入索引数据库;步骤G、根据解析后的搜索条件,在索引数据库中查询索引,根据索引找到XBRL文档;步骤H、根据XBRL文档浏览的次数,对查询到的XBRL文档进行排序,并在用户某个点击XBRL文档时,更新XBRL文档浏览的次数,展示XBRL文档给用户。进一步的,上述的一种XBRL数据搜索方法中所述的步骤A中,指定的网址包括证券交易所提供XBRL实例文档披露网址,基金XBRL实例文档披露网址。进一步的,上述的一种XBRL数据搜索方法中所述的步骤A中,从互联网上抓取 XBRL文档,它和Web站点的Web服务器通过HTTP协议进行交互,从Web站点下载XBRL文档;包括以下分步骤步骤A01、指定要访问抓取XBRL实例文档的网址,所述的网址是专门提供XBRL财务数据实例文档的网址;步骤A02、根据网址信息,在这个网站下搜索所有的XBRL实例文档链接;步骤A03、根据上面找到的链接地址下载所有的XBRL文件;步骤A04、递归读取下载的XBRL文件,再根据XLink链接信息,判断对应URL地址的XBRL文件是否已经下载,如果不存在,需要下载,如果已经下载了就直接读取。进一步的,上述的一种XBRL数据搜索方法中所述的步骤B中,包括以下分步骤,步骤BO1、根据步骤A读取的XBRL实例文档,使用D0M4J解析器生成DOM树;
步骤B02、读取DOM树结构中的单位信息,并用UnitID来标识;步骤B03、读取DOM树结构中的上下文信息,构造上下文,包括实体,时间,场景,段落元素,并用ContextID来表示;步骤B04、读取DOM树结构中的数据信息;所述的数据信息包括数据项和元组类型,其中元组又包括数据项;步骤B05、根据数据项引用的上下文ID和单位ID,关联数据项和上下文,数据项和单位。本发明还设计了一种XBRL数据搜索引擎,包括接入互联网的接入接口 ;从指定的网址上自动收集相关XBRL文档的搜索模块;提取所述的XBRL文档的内容信息和结构信息的解析模块;读取解析模块解析后的数据信息、读取元组,对元组建立索引和读取单位,上下文和数据项,并对单位,上下文和数据项三类数据建立属性索引的索引模块;保存索引的索引数据库;根据解析后的搜索条件,在索引数据库中查询索引,根据索引找到XBRL文档;并根据XBRL文档浏览的次数,对查询到的XBRL文档进行排序,并在用户某个点击XBRL文档时, 更新XBRL文档浏览的次数,展示XBRL文档给用户的查询模块。本发明提供的搜索引擎在进行XBRL文档进行搜索时,不仅要考虑文档的内容,更重要的是要考虑文档的结构,这样才能体现XBRL比传统HTML页面在结构上的优势,考虑文档的结构使关键词之间的关系变得更加复杂,给XBRL文档搜索带来了新的研究空间。在XBRL检索中,为了提高用户查询的精度,需要多粒度的考虑返回文档的结构, 根据不同用户的需要,可以返回不同粒度的文档,比如和HTML页面一样返回一整篇文档, 有时候为了方便,需要的也许仅仅是XBRL文档中的某一个节点信息。对于粒度问题的考虑,增加了 XML文档搜索在索引结构建立、词频统计、词汇权重计算方面带来了新的难点。在XBRL文档的搜索中,查询结果也需要按与查询条件之间的相关度的大小进行排序输出,但在排序方法上与传统的信息搜索技术有很大的不同。首先,其排序对象不同。 传统信息搜索中排序的对象是文档,而在XBRL信息搜索中,则可以为各种不同粒度的文档。其次,在计算查询结果与查询条件之间的相关度时也有很大的不同。在传统信息搜索中,相关度的计算主要依据查询关键字在查询结果中的频率分布信息;在XBRL搜索中,由于查询返回的结果可能是带有结构信息的复杂元素,因此,在计算这种复杂元素与查询条件之间的相关度时,还必须考虑结构信息对相关度计算的影响,也就是查询关键字在查询结构中的结构分布情况对相关度的影响。XBRL是用于企业财务数据电子交流的语言,是一种基于XML语言的实现(准确的说是规范化)。上世纪90年代末美国首先提出XBRL理论,很快为实务界所采纳,短短几年之内,XBRL得到超乎寻常的发展。在XBRL国际组织(xbrl.org)的推动下,目前XBRL在全球范围内已经被大多数会计师事务所、贸易机构、软件开发商、金融机构、投资者以及政府机构采用。现在对XBRL的研究普遍存在仅从技术上理解的倾向,但其实际情况并非如此。 XBRL的广泛传播并不是仅仅是由于技术规范的成熟和标准的整齐划一,更重要的是因为它对于现实生活中商业行为的深刻理解和语义层面的把握,才使得不同语法形式下(外在表现为异质平台)信息共享成为可能,极大地促进了财务信息数据挖掘的进行,满足了决策者对有用信息和知识的需求。XBRL技术的运用解决了难以查询金融数据的难点。XBRL作为一种网络业务报告语言,基于XML—种业务报告信息交换应用,解决了结构化信息查询难点。XBRL以其统一规范的形式,有助于企业内外部业务信息交换和其使用者更好的利用信息,满足不同使用者诸多方面的需要。现在通过采用基于XBRL数据搜索引擎可以解决这些难点。因为XBRL文档使用标签描述数据的含义,所以在用XBRL搜索引擎进行数据搜索数据时,不是像HTML那样根据字面内容进行搜索,而是根据标签的语义进行定位,这样搜索引擎就能够快速、准确地找到用户所需的特定信息。同时,由于XBRL采用标签来标记数据,可以通过应用程序对搜索结果中的数据进行汇总。其效率远远高于目前互联网上的 PDF、W0RD和HTML等文件格式。而实现这一目标的要点在于中分类标准与实例文档的分层, 清晰的分类有利于满足丰富实例中信息的搜索。本XBRL搜索引擎具有以下优点一、增量索引和可以进行增量索引(Append)可对大量数据进行批量索引,并且接口设计用于优化批量索引和小很多系统只支持批量的索引,有时数据源有一点批量索引批量的增量索引增加也需要重建索引;二、索引内容抓取可以控制对那些标签信息进行索引,那些标签信息不需要索引,进一步的索引标签信息也可以分为需要分词和不需要分词类型;三、语言分析通过语言分析器的不同扩展,可以过滤掉不需要的词,如an、the、 of等;四、查询分析通过查询分析接口的实现,可以定制自己的查询语法规则,比如多个关键词之间可以用+、-、and、or等关系。


附图1是本发明搜索步骤流程图。附图2是本发明搜索引擎框图。附图3是本发明搜索过程流程图。附图4是本发明解析过程流程图。附图5是本发明查询过程流程图。
具体实施例方式本实施例是一种XBRL数据搜索的方法,流程图如图1所示在互联网中搜索XBRL 数据,包括以下步骤步骤A、从指定的网址上自动收集相关XBRL文档;从互联网上抓取XBRL文档,它和Web站点的Web服务器通过HTTP协议进行交互,从Web站点下载XBRL文档;包括以下分步骤如图3所示步骤A01、指定要访问抓取XBRL实例文档的网址,所述的网址是专门提供XBRL财务数据实例文档的网址;步骤A02、根据网址信息,在这个网站下搜索所有的XBRL实例文档链接;
步骤A03、根据上面找到的链接地址下载所有的XBRL文件;步骤A04、递归读取下载的XBRL文件,再根据XLink链接信息,判断对应URL地址的XBRL文件是否已经下载,如果不存在,需要下载,如果已经下载了就直接读取。步骤B、提取所述的XBRL文档的内容信息和结构信息;如图4所示,包括以下分步骤,步骤BO1、根据步骤A读取的XBRL实例文档,使用D0M4J解析器生成DOM树;步骤B02、读取DOM树结构中的单位信息,并用UnitID来标识;步骤B03、读取DOM树结构中的上下文信息,构造上下文,包括实体,时间,场景,段落元素,并用ContextID来表示;步骤B04、读取DOM树结构中的数据信息;所述的数据信息包括数据项和元组类型,其中元组又包括数据项;步骤B05、根据数据项引用的上下文ID和单位ID,关联数据项和上下文,数据项和单位。步骤C、读取解析模块解析后的数据信息;步骤D、读取元组,对元组建立索引;步骤E、读取单位,上下文和数据项,并对单位,上下文和数据项三类数据建立属性索引;步骤F、将所有的索引存入索引数据库;步骤G、根据解析后的搜索条件,在索引数据库中查询索引,根据索引找到XBRL文档;步骤H、根据XBRL文档浏览的次数,对查询到的XBRL文档进行排序,并在用户某个点击XBRL文档时,更新XBRL文档浏览的次数,展示XBRL文档给用户。如图5所示。本实施例的XBRL数据搜索引擎是根据XBRL数据的特性而设计的,框图如图1所示XBRL搜索引擎主要分为五大模块搜索模块(网络蜘蛛)、解析模块、索引模块、索引数据库与查询模块。一、搜索模块搜索模块又称网络蜘蛛程序,是从指定的网址上自动收集相关XBRL文档的,这些网址包括证券交易所提供XBRL实例文档披露网址,基金XBRL实例文档披露网址等。网站蜘蛛自动访问这些网站,根据相应的规则找到XBRL文档,并把找到的XBRL文档收集到服务器中。网络蜘蛛程序从互联网上抓取XBRL文档。它和Web站点的Web服务器通过 HTTP (超文本传输协议,Hypertext Transfer Protocol)协议进行交互,从Web站点下载 XBRL文档。在XBRL文档中的链接用XML (可扩展链接语言,Extensible Linking Language) 来描述,XML由XPointer和XLink两部分组成,其中XPointer是在XML文件中定位数据的一种语言,其定位是根据数据在文件中位置、字符内容以及属性值等特性进行的。XPointer 有URL中“#”号之后的描述组成。Xlink是XML Link Language的简称,它定义了一个在 XML文件中创建超链接的标准方式。Xlink用于创建XML文件中的超链接,XML文件中的任何元素都可以以Xlink的形式表现出来。它支持简单链接和扩展链接,且提供多目标、双向链接等。
网络蜘蛛程序从指定的网址上自动收集相关XBRL文档的,这些网址包括证券交易所提供XBRL实例文档披露网址,基金XBRL实例文档披露网址等。网站蜘蛛自动访问这些网站,根据XLINK连接规则找到XBRL文档,并把找到的XBRL文档收集到服务器中。网络蜘蛛程序从互联网上抓取XBRL文档。它和Web站点的Web服务器通过 HTTP (超文本传输协议,Hypertext Transfer Protocol)协议进行交互,从Web站点下载 XBRL文档。搜索模块主要包括以下步骤如图3所示。A.指定要访问抓取XBRL实例文档的网址,这些网址是专门提供XBRL财务数据实例文档的网址;B.搜索模块会根据网址信息,在这个网站下搜索所有的XBRL实例文档连接,即链接地址是以“.xml,,和“.xsd"为结尾的链接;C.根据上面找到的链接地址下载所有的XBRL文件,如果是相对路径地址,需要先转换成绝对地址再下载;D.递归读取下载的XBRL文件,再根据XLink链接信息,判断对应URL地址的XBRL 文件是否已经下载,如果不存在,需要下载,如果已经下载了就直接读取。二、解析模块解析模块是基于XBRL搜索引擎与普通搜索引擎不同的结构之一,是针对XBRL文档的特点所设计的模块,也是非常重要的一个模块。由于XBRL文档基于XML技术,是一种半结构化的数据,它的数据包含结构和内容两部分,在对它建立索引前首先必须对它进行解析,将结构信息和内容信息分别提取出来为它们建立索引。XBRL文档相比于普通的HTML 的特点是重数据的内容和结构,而非数据的显示,它使面向XBRL文档的搜索引擎的搜索有了针对性,故而大大提高了其查准率。解析模块就是体现这一特点的一个重要部分。解析模块分析XBRL文档信息,从中抽取出索引项,用于表示XBRL文档以及生成 XBRL文档库的索引表。解析模块的主要任务是提取XBRL文档的内容信息和结构信息,它由模块中的解析器来完成。解析器负责对输入的XBRL文档进行解析,生成DOM树。DOM树生成后,应该对树的每个节点做个标记,这个标记在它所处的文档中是唯一的,即一个标记唯一标识一个节点,这可以方便建立索引。解析模块是基于XBRL搜索引擎与普通搜索引擎不同的结构之一,是针对XBRL文档的特点所设计的模块,也是非常重要的一个模块。由于XBRL文档基于XML技术,是一种半结构化的数据,它的数据包含结构和内容两部分,在对它建立索引前首先必须对它进行解析,将结构信息和内容信息分别提取出来为它们建立索引。XBRL文档相比于普通的HTML 的特点是重数据的内容和结构,而非数据的显示,它使面向XBRL文档的搜索引擎的搜索有了针对性,故而大大提高了其查准率。解析模块就是体现这一特点的一个重要部分。解析模块分析XBRL文档信息,从中抽取出索引项,用于表示XBRL文档以及生成 XBRL文档库的索引表。解析模块的主要任务是提取XBRL文档的内容信息和结构信息,它由模块中的解析器来完成。解析器负责对输入的XBRL文档进行解析,生成DOM(Document Object Model, 文档对象模型)树。DOM树生成后,应该对树的每个节点做个标记,这个标记在它所处的文档中是唯一的,即一个标记唯一标识一个节点,这可以方便建立索引。解析模块主要包括以下步骤如图4所示。A.读取搜索模块搜索到的XBRL实例文档,使用D0M4J解析器生成DOM树;B.读取DOM树结构中的单位信息,并用UnitID来标识;C.读取DOM树结构中的上下文信息,构造上下文,包括实体,时间,场景,段落元素,并用ContextID来表示;D.读取DOM树结构中的数据信息。数据信息包括数据项和元组类型,其中元组又包括数据项;根据数据项引用的上下文ID和单位ID,关联数据项和上下文,数据项和单位。三、索引模块XBRL搜索引擎的索引部分是整个搜索引擎最关键的部分。在对XBRL文档数据建立索引时,需要保存的信息是文档中的词项信息,就是某一个词项在哪篇实例文档中出现, 出现了几次以及出现的位置。对XBRL文档数据建立索引时,需要保存的主要信息包括标签间的数据信息、标签中的词项信息和文档中标签的嵌套层次信息。为支持根据元组名、属性名和结构进行查询,即要实现以下三种操作—、给定一元组名字符串,比如说“book”去查找所有具有此名的元组,并把它们按所属的文档分类。二、给定一属性名字符串,比如说“store”去查找所有具有此名的属性,并把它们按所属的文档分类。三、给定一个元组,查找它的父元组或孩子元组、属性;给定一个属性,查找它所属的元组。所需实现的索引有元组索引、属性索引和结构索引。元组索引。可采用B+树来实现,利用名字标示作为键值,其叶节点的每一个入口均指向由固定长度的元组记录组成的集合,这些元组具有相同的名字串,并按它们所属的文档进行分组。利用元组索引可使我们快速地查找出拥有相同名字的所有元组。属性索引。结构同元组索引类似,不同之处是包含一个值标示,它被当作一个键用于从值表中获得属性值。结构索引。由线性矩阵组成,每一个线性矩阵都用来存储元组或属性的固定长度记录,这些元组或属性来自于同一个XML文档。在一个线性矩阵中,元组和属性按照它们的次序值被一起存储。在每一个记录中,存放有一个名字标示、第一个兄弟的次序值、第一个孩子节点、第一个属性节点等。索引模块主要包括以下步骤A.读取解析模块解析后的数据信息,包括单位、上下文、数据项、元组和它们相互之间的关联关系;B.读取元组,对元组建立索引;C.读取单位,上下文和数据项,对三类数据建立属性索引;D.读取单位、上下文、数据项和元组之间的关系,对关系建立结构索引;四、索引数据库索引数据库存放索引模块对XBRL文档进行解析后的索引,当用户输入关键词搜索后,分解搜索请求,由搜索系统程序从索引数据库中找到符合该关键词的所有XBRL文档。索引数据库中的索引表使用倒表表(Inversion List),既由索引项查找相应的 XBRL文档,索引表也记录索引项在文档中出现的位置,以便查询模块计算索引项之间的相邻或接近关系。索引数据库主要存放索引模块中索引元组索引、属性索引和结构索引。五、查询模块在查询模块中,当用户输入关键词搜索后,分解搜索请求,由搜索系统程序从XBRL 文档索引数据库中找到符合该关键词的所有相关XBRL文档。查询模块根据用户输入的查询条件,在索引数据库中快速查找到相关的XBRL文档,进行文档与查询相关度评价,对搜索结果进行处理排序。所有相关文档针对该关键词的相关信息在索引库中都有记录,只需综合相关信息和文档级别形成相关度数值,然后进行排序,相关度越高,排名越靠前。最后由页面生成系统将搜索结果的链接地址和文档内容摘要等内容组织起来返回给用户。当用户点击XBRL文档连接时,系统将读取XBRL文档,并将以XBRL的格式返回给客户浏览器界面。查询模块的流程如图5所示。A.用户输入搜索条件;B.查询模块对搜索条件进行分解;C.根据分解的搜索条件,在索引数据库中查询索引,根据索引找到XBRL文档;D.根据XBRL文档浏览的次数,对查询到的XBRL文档进行排序;E.用户某个点击XBRL文档时,更新XBRL文档浏览的次数,展示XBRL文档给用户。XBRL的出现成为财务发展史上的一个非常重要的里程碑,随着XBRL应用的成熟, 大量的XBRL实例文档被用来传递、存储和交换数据,用户如何有效的搜索并利用这些数据成为当前的一个挑战,因此XBRL搜索引擎对基于语义网的语义检索有重大意义。虽然目前的传统HTML搜索引擎也都可以应用于XBRL实例文档的检索,但这些传统的搜索引擎都不能够体现XBRL技术的优势。XBRL搜索引擎与传统搜索引擎的区别和带来的挑战主要表现如下一、在进行XBRL实例文档检索时,不仅要考虑XBRL实例文档的内容,更重要的是要考虑实例文档的结构,这样才能体现XBRL比HTML在结构上的优势,考虑实例文档的结构使关键词之间的关系变得更加复杂,给XBRL检索带来了新的研究空间。二、在进行XBRL检索中,为了提高用户的查询精度,需要多粒度的考虑返回文档的结构,根据不同用户的需要,可以返回不同粒度的文档,比如和HTML—样返回一整篇文档,有时候为了方便,需要的也许仅仅是XBRL文档中某一个节点的信息。对于粒度问题的考虑,增加了 XML检索在索引结构建立、词频统计、词汇权重计算方面带来了新的挑战。三、在进行XBRL信息检索中,查询结果也需要按与查询条件之间的相关度的大小进行排序输出,但在排序方法上与传统的信息检索技术有很大的不同。首先,其排序对象不同。传统信息检索中排序的对象是文档,而在)(BRL信息检索中则可以是各种不同粒度的文档。其次,在计算查询结果与查询条件之间的相关度时也有很大的不同。在传统信息检索中,相关度的计算主要依据查询关键字在查询结果中的频率分布信息;在XBRL检索中,由于查询返回的结果可能是带有结构信息的复杂元素,因此,在计算这种复杂元素与查询条件之间的相关度时,还需要考虑结构信息对相关度计算的影响,也就是查询关键字在查询结果中的结构分布情况对相关度值的影响。基于XBRL搜索引擎的总体结构和普通的基于HTML的搜索引擎一样仍然包括搜索、索引、检索和用户接口这几大模块。另外针对XBRL文档的特点,还需要包含转换模块和解析模块。XBRL文档分为实例文档信息和分类标准信息,它是严格的树状结构,各个标签之间有严格的父子、兄弟关系,标签之间是文本信息。标签中的内容用来标明夹在起始标签与结束标签间的数据的性质。建立索引之前需要提取XBRL文档的文本信息和结构信息,这个工作由解析模块来完成,解析XBRL文档的文本信息与结构信息。普通搜索引擎为了加快对用户检索要求的响应速度,需要给采集到的数据建立索弓I,XBRL文档被解析后,就由索引模块对XBRL文档的文本信息和结构信息建立索引记录, 并将记录放入索引数据库中。系统中还包含查询模块,即用户与搜索引擎的接口部分,它需要引导用户输入其查询请求。并将用户输入的查询请求翻译为搜索引擎能读懂的格式,然后查询索引数据库, 最后将结果排序后显示给用户。本实施例XBRL搜索引擎实现的主要技术一、XML文档解析技术目前,处理XML文档的方式主要有SAX、DOM、JDOM和D0M4J等几种,该系统使用 D0M4J解析XML文档,是由于D0M4J整合了 DOM和SAX的优点,对于整个XML文档,D0M4J采用SAX的方式进行扫描,但是对于符合要求的某些区域,D0M4J就建立这个区域的XML树, 采用DOM的方式访问。也即一次性的工作使用SAX方式,反复、复杂的任务交由DOM方式处理,这就大大提高了解析XML文档的效率。用D0M4J解析XML文档的过程主要分为3个步骤建立XML数据的D0M4J文档对象;遍历D0M4J文档对象;输出处理结果。二、中文自动分词技术中文是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础和关键。中文语词分析一般分为3个过程预处理过程的词语粗切分;切分排歧与未登录词识别;词性标注。ICTCLAS的中文自动分词模块的预处理过程是通过N-最短路径方法来获得几个切分概率最大的结果,作为分词结果的候选集合。实际上,N-最短路径方法是最少切分方法和全切分的泛化和综合。一方面,避免最少切分方法大量舍弃正确结果的可能,另一方面,又消除全切分搜索空间过大,运行效率差的弊端。 ICTCLAS的切分排歧与未登录词识别是通过多层隐码模型来选取切分及标注的最佳结果, 最终实现中文自动分词,词与词之间通过空格加以区分。该分词技术还能将中文中嵌套的其他语种信息也有效切分,为实现同时对多语种信息内容进行索引做准备。三、Lucene开发技术Lucene是Apache软件基金会Jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,它可以方便地嵌入到各种应用中,实现针对应用的全文索引和检索功能。Lucene主要由基础结构封装、索引核心、对外接口 3大部分构成,其源代码分为7个模块,这7个模块又分属于以上3大部分。
需要 1 明白勺 org. apache, lucene. queryPaser : 作为 org. apache, lucene. search的语法解析器存在的,不被系统之外实际调用,因此,这里没有当作对外接口看待, 而是将之独立出来。本实施例XBRL搜索引擎实现过程为能快速简便地对XBRL文档建立索引,该系统在Lucene的基础上实现一个简单的工具类IndexBuilder。只要数据源可以导出成RSS2. 0规范的XBRL结构,就可用 MdexBuilder这个命令行工具建索引。具体实现过程如下一、抓取XBRL文档网络蜘蛛程序从指定的网址上自动收集相关XBRL文档的,并把这些文档存入服务器。二、解析XBRL文档对存入服务器的文档进行解析。二、提取文本使用Lucene对解析的XBRL文档数据建立索引,首先要用D0M4J将 XBRL中的文本信息提取出来,根据相应的模式文件和链接库文件进行提取。三、设计 XBRLInstanceDocument 文档构建 XBRLInstanceDocument 文档, XBRLInstanceDocument是索引的基本单位。为提高索引速度,实现数据源平台无关性,该系搜索引擎使用XBRL作为通用数据接口即通过一个转换器将其他类型的文档首先转换为 XBRL格式的文档,然后再将XBRL类型的文档转换成XBRlJnstanceDocument。四、建立索引建立索引时,首先确定被索引的XBRL文件的存放地址和索引文件的存放地址,然后为索引器配置一个恰当的分析器,它的主要功能是将域(Field)文本转换为最基本的索引表示单元一项(Iterm)。为实现系统目标,本实施例对索引过程做以下几方面优化一、通过一个名为maxFieldLength的公有类变量对要索引的字段(Field)长度进行限制,因为,比如用户为一篇100万字的文章建立索引,可能文章的后10万字都是附录, 并非真实需要建立索引的内容。所以对其进行限制可以提高索引的性能。二、集成一个性能优良的中文自动分词系统(ICTCLAQ,因为Lucene所提供的分析器(Analyzer)在对中文进行语词分析时,效果都不理想。因此,为提高中文语词分析效果,该系统使用ICTCLAS进行语词分析,其分词正确率为97. 58%。除此之外,与以往的基于Lucene的全文检索系统不同的是,该系统是在生成Document文档以前就对D0M4J解析的XBRL文档进行语词分析,这样在索引时,就像处理英文文档一样用空格作为区分词的标志。从而大大简化索引过程,提高索引速度。三、将XBRL文档按置标的语义结构分门别类地进行索引和组织,生成索引文件, 以方便用户按置标分别查询。一〉搜索模块实现初始化Lucene的检索工具Indexkarcher,然后生成Query对象用于查询,最后通过Hits对象返回检索到的结果。为实现系统设计目标,对检索过程做以下几方面优化1)对用户的查询字符串(Query)调用ICTCLAS进行分词处理,提高分词的准确性, 进而提高查询准确性。2)对检索结果进行排序,返回最相关的结果,而不是将所有的结果都返回(这些最相关的结果几乎能够满足用户的全部信息需求),从而提高查询响应速度。3)实现了简单查询、布尔逻辑查询以及各种组合查询等高级查询功能。
二〉搜索及结果输出为用户设计了检索界面以便用户与系统进行交互,快捷地检索到所需信息资源。
权利要求
1.一种XBRL数据搜索方法,在互联网中搜索XBRL数据,其特征在于包括以下步骤 步骤A、从指定的网址上自动收集相关XBRL文档;步骤B、提取所述的XBRL文档的内容信息和结构信息; 步骤C、读取解析模块解析后的数据信息; 步骤D、读取元组,对元组建立索引;步骤E、读取单位,上下文和数据项,并对单位,上下文和数据项三类数据建立属性索引;步骤F、将所有索引存入索引数据库;步骤G、根据解析后的搜索条件,在索引数据库中查询索引,根据索引找到XBRL文档; 步骤H、根据XBRL文档浏览的次数,对查询到的XBRL文档进行排序,并在用户某个点击 XBRL文档时,更新XBRL文档浏览的次数,展示XBRL文档给用户。
2.根据权利要求1所述的一种XBRL数据搜索方法,其特征在于所述的步骤A中,指定的网址包括证券交易所提供XBRL实例文档披露网址,基金XBRL实例文档披露网址。
3.根据权利要求1所述的一种XBRL数据搜索方法,其特征在于所述的步骤A中,从互联网上抓取XBRL文档,它和Web站点的Web服务器通过HTTP协议进行交互,从Web站点下载XBRL文档;包括以下分步骤步骤A01、指定要访问抓取XBRL实例文档的网址,所述的网址是专门提供XBRL财务数据实例文档的网址;步骤A02、根据网址信息,在这个网站下搜索所有的XBRL实例文档链接; 步骤A03、根据上面找到的链接地址下载所有的XBRL文件;步骤A04、递归读取下载的XBRL文件,再根据XLink链接信息,判断对应URL地址的 XBRL文件是否已经下载,如果不存在,需要下载,如果已经下载了就直接读取。
4.根据权利要求1所述的一种XBRL数据搜索方法,其特征在于所述的步骤B中,包括以下分步骤,步骤B01、根据步骤A读取的XBRL实例文档,使用D0M4J解析器生成DOM树; 步骤B02、读取DOM树结构中的单位信息,并用UnitID来标示; 步骤B03、读取DOM树结构中的上下文信息,构造上下文,包括实体,时间,场景,段落元素,并用ContextID来表示;步骤B04、读取DOM树结构中的数据信息;所述的数据信息包括数据项和元组类型,其中元组又包括数据项;步骤B05、根据数据项引用的上下文ID和单位ID,关联数据项和上下文,数据项和单位。
5.一种XBRL数据搜索引擎,包括接入互联网的接入接口,其特征在于还包括 从指定的网址上自动收集相关XBRL文档的搜索模块;提取所述的XBRL文档的内容信息和结构信息的解析模块;读取解析模块解析后的数据信息、读取元组,对元组建立索引和读取单位,上下文和数据项,并对单位,上下文和数据项三类数据建立属性索引的索引模块;保存索引的索引数据库;根据解析后的搜索条件,在索引数据库中查询索引,根据索引找到XBRL文档;并根据 XBRL文档浏览的次数,对查询到的XBRL文档进行排序,并在用户某个点击XBRL文档时,更新XBRL文档浏览的次数,展示XBRL文档给用户的查询模块。
全文摘要
本发明公开了一种XBRL数据搜索方法和搜索引擎,根据XBRL数据的特性设计该搜索引擎包括五大模块分别是搜索模块、解析模块、索引模块、索引数据库与查询模块。本发明提供的搜索引擎在进行XBRL文档进行搜索时,不仅要考虑文档的内容,更重要的是要考虑文档的结构,这样才能体现XBRL比传统HTML页面在结构上的优势,考虑文档的结构使关键词之间的关系变得更加复杂,给XBRL文档搜索带来了新的研究空间。
文档编号G06F17/30GK102360367SQ20111030167
公开日2012年2月22日 申请日期2011年9月29日 优先权日2011年9月29日
发明者唐去克, 杨杰, 殷进春, 罗黎明, 赵海, 霍海锋 申请人:广州中浩控制技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1