织女 发表于 2009-2-6 09:34:50

字符串识别算法

最近,一个项目,做一个工具,代替原来的人工识别文档的工作,
    有辛,本人被安排研究字符串识别算法,
    历经7天, 已经实现改算法, 识别率相当的高!
    被分析字符串来自excel的一行. 按照业务逻辑来看,一行excel里面 只有两中域 一种叫可变域,另一种叫非可变域,
    研究发现,可变域(下面称为FIELD)有着比较明显的特点,都是以特殊字符打头,以某几种方式存在,
    因为以特殊字符打头""""所以,算法来了!
    1.关键头字触发
    触发什么呢?暗示程序下面可能会有一个FIELD, 那么下面就开始看,是不是一个FIELD,我的实现办法主要是:正则表达式匹配出满足特征的字符,
    一个正则表达式子就解决问题了吗?没有""""""关于FIELD的设计思路在这里体现出来了!
    //'X','X','*','Y','M','D','H','Z','9'
      //'X'   list_x.add("X \\-X ");
   list_x.add("X ");
   //'X'   list_X2.add("(X ) X");
   list_X2.add("(X ) ");
   //'Y'   list_Y.add("{4}[/]{2}[/]{2}");
   list_Y.add("{4}");
   //'*'   list_xx.add("(* ){3}. (* ){3}");
   //'H'   list_H.add("HH:MI:SS");   list_H.add("HH:MI");
   //'M'   list_M.add("{2}/{2}");
   list_M.add("{2}");
   //'D'   list_D.add("{2}");
   //'Z'   list_Z.add("{1,3},(ZZZ,)*{1,2}9");
   list_Z.add("{1,3}9");   list_Z.add("{1,3}");
   //'9'   list_9.add("9999");
   
    实现一个
页: [1]
查看完整版本: 字符串识别算法