小议信息抽取系统的结构(1) ------by songlinhai

    小弟是从去年6月份开始研究信息抽取的,读了不少文献,写了两个半吊子的信息抽取系统,算是对信息抽取比较了解了。今年8、9月份就要硕士开题,我捉摸着得把自己的东西弄到一起,要不然做了的东西领导又看不见,这不白瞎了。于是我就想整个信息抽取的框架出来,自己定义些内部的接口,把写过的代码按照接口封装到框架里。这样领导看的清楚,后来的师弟师妹接我的活也方便。

    大三的时候,做ms的实训,对三层架构记忆犹新,于是咱也把3层架构搬到内容抽取上。解释层,逻辑层,表示层是我给三层起的名字。解释层,顾名思义就是解释网页,它拿网页作为输入,向逻辑层提供token接口和DOM接口(copy了html parser 的设计)。逻辑层包含了实现抽取算法的代码。表示层是展示抽取结果的,我想到的也就是作为web服务展示,把抽取结果插入到数据库里,要不然就是按照特殊的格式写道文件里。

    解释层

    咱们coder干活的时候,总想着站在巨人的肩膀上,实在不行抱抱大腿也行。写这层代码的时候,我想咱尽可能的要得多用点开源软件。用过的具有解析html网页功能的开源软件有以下3个:

    1、htmlcxx(http://htmlcxx.sourceforge.net/),c++写的,功能最差。不提供标签的补齐,不提供中文字符集的转化,处理中文的时候还经常咣当下挡掉。不过毕竟是c++的作品,跑得速度很快。

    2、beautifulsoup(http://www.crummy.com/software/BeautifulSoup/),python写的。解析中文网页的时候,会默认的把网页转化成unicode,这点相当恶心,要是想转回来,除了改变字符集之外,还得记得吧charset标签的属性一并的改过来。有自动补齐标签的功能,不过得读读源码,看看是怎么补齐的。要不然,用补齐网页训练的wrapper去抽没补齐的网页,经常抽不出来。

    3、html parser(http://htmlparser.sourceforge.net/),java写的。提供了token和dom两个接口,有标签补齐的功能。不过利用标签补齐的时候,向beautifulsoup那样得读读源码吧。   

    解释层是我们框架的最底层,有个底层设计的标准是这么说的:

    一个底层结构设计是否成功,这个设计者是否称职,我一直觉得是有一个很简单的衡量标准的。你不需要看这个设计人用了多少NB的技术,你只需要关心,他的设计,是否给其他开发人员带来了困难。一个NB的设计,是将所有困难都集中在底层搞定,把其他开发人员换成白痴都可以工作的那种;一个SB的设计,是自己弄了半天,只是为了给其他开发人员一个长达250条的注意事项,然后很NB的说,你们按照这个手册去开发,就不会有问题了。。。

    照这个看法,直接用那三个开源软件还远不够,继续封装,继续改造吧。我最近还有个想法是到开源浏览器firefox和chrome中去找找代码,期望能有现成的解决方案。

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值