MetoStudio在可视化环境下是怎么生成信息抽取规则的?
MAP文件实际上是一个标准的XSLT文件,MetaStudio中的生成网页内容抽取规则的算法就是产生这个XSLT文件。整个工作台上定义的所有的整理箱的信息提取和内容格式化规则都在一个XSLT文件中描述。
当前版本这个算法是用C++实现的,实际上算法的实现思路很简单,就是为每一个信息属性计算XPath表达式,然后组织成xsl:template或者其它内容转换xsl指令。只是到了V3版本后,被抽取的数据可以是树状结构,而不仅仅是简单的二维表结构,使算法变得复杂了一些,另外为了达到比较精确定位的目的,采用了FreeFormat技术,使算法进一步复杂化,原来一轮计算就能产生XSLT文件,现在需要逐级并双向多轮计算才能将完整的MAP文件计算出来,所以,为了提高性能,使用了C++语言,其它代码全部是javascript,如果用javascript实现这个算法,经常弹出告警窗,因为Mozilla感觉这一次计算花的时间太长,而且代码空间中加载了太多javascript语句,而采用C++不再出现这种问题。
然而C++的空指针使用问题是很头疼的,即将发布的V4版本希望能够将空指针有关的bug排除掉。
GEM文件当前基本上是没有用的,在V2版本及其以前,该文件被数据集成程序用来识别信息提取结果文件结构,在V3版本不再使用,以后版本可能会变成XML schema角色。
数据抽取规则主要汇集在MAP文件中
MAP文件实际上是一个标准的XSLT文件,MetaStudio中的生成网页内容抽取规则的算法就是产生这个XSLT文件。整个工作台上定义的所有的整理箱的信息提取和内容格式化规则都在一个XSLT文件中描述。
当前版本这个算法是用C++实现的,实际上算法的实现思路很简单,就是为每一个信息属性计算XPath表达式,然后组织成xsl:template或者其它内容转换xsl指令。只是到了V3版本后,被抽取的数据可以是树状结构,而不仅仅是简单的二维表结构,使算法变得复杂了一些,另外为了达到比较精确定位的目的,采用了FreeFormat技术,使算法进一步复杂化,原来一轮计算就能产生XSLT文件,现在需要逐级并双向多轮计算才能将完整的MAP文件计算出来,所以,为了提高性能,使用了C++语言,其它代码全部是javascript,如果用javascript实现这个算法,经常弹出告警窗,因为Mozilla感觉这一次计算花的时间太长,而且代码空间中加载了太多javascript语句,而采用C++不再出现这种问题。
然而C++的空指针使用问题是很头疼的,即将发布的V4版本希望能够将空指针有关的bug排除掉。
GEM文件当前基本上是没有用的,在V2版本及其以前,该文件被数据集成程序用来识别信息提取结果文件结构,在V3版本不再使用,以后版本可能会变成XML schema角色。