强大的ETL工具fme和python结合实现不动产登记确权项目入库扫描件自动分类归档

从最开始接触fme的时候,我就一直有一个想法,fme能不能和机器学习、深度学习、统计学回归算法结合实现大批量数据的智能操作,奈何学识一直有限,到目前都没实现突破。

但是房地一体确权登记项目的扫描件相对很多不规范数据来说通过提取特征文字实现自动分类归档是可以通过用python调用谷歌的汉字识别库pytesseract来实现特征值提取,然后用fme进行数据清洗,最后整理数据输出成我们想要的档案档案结构。

既然大体思路已经定下来了,剩下的就是从各个技术难度逐一突破的问题了,首先python提取图片的包OpenCV,我们通过这个模块来实现fme的pythoncaller的对接

 设置为截取图片上半截,可以看到fme成功和对接上了图片,接下来我们只需要调用pytesseract库来提取里面的文字,然后把提取出来的成果封装到字段内

可以看到提取效果并不是很理想,但是核心关键的属性提取出来,给我们做分类是没有什么问题的。

接下来就是运用大量正则表达式,大量的字段替换清洗,特征值判断,来得到我们最终需要的属性

最终是将这些繁琐的扫描件成果分类,但是依旧存在少数文字识别错误无法提取对应特征值的属性,这种目前我只有将其单独标注出来,整理完成后手动修改,我测试了117条数据,有3条数据无法判读。

最后我们就只需要整理一下路径、参数,然后封装成映射文件,就可以投入使用了。下面是成果展示:

因为命名要求不同,这边项目要求没得权属来源的户按名字命名,其他则按照不动产单元号命名。

 可以看到判读失败的图片被放在了最下方方便人工处理

 

总结:谷歌研发文字识别库pytesseract对文字的识别效率还是太低,但是用于分类还是能满足项目需求。但是悟空依然觉得这套模板还有很大的进步空间,已经扩展性。或许使用sklearn做SVM监督学习,然后通过大量的数据投放,训练学习,最终实现0误差分类。或者用OpenCV和深度学习结合,生成智能识别框,按指定位置提取指定信息到指定字段,或许还能实现身份证、户口簿图片的信息提取。虽然现在市面上充斥着大量的这种产品,但是大都是调用的开源的识别的库,错误率非常之大,因为训练出一个合格的识别库需要花大量的时间精力,同时还得有顶级设备的支持。还好我之前提前购买了3090,希望后面能用他24的显存来让这个模板实现突破。需要该模板的小伙伴可以私聊我。关注一手,持续更新各种fme的扩展玩法。

 

 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在定义扫描规则时,您可以使用正则表达式来匹配您想要扫描的特定字符串或模式。例如,假设您想扫描所有包含字符串"hello"的行,则可以使用以下正则表达式: ``` .*hello.* ``` 此正则表达式将匹配任何包含"hello"的行,包括"hello"前后可能会有任意数量的其他字符。 您可以使用Lua的string.match函数来检查行是否与给定的正则表达式匹配。例如: ``` if string.match(line, ".*hello.*") then -- 这一行包含字符串"hello",因此执行一些操作 end ``` 此外,您还可以使用正则表达式中的捕获组来提取匹配的文本。例如,假设您想提取所有包含"hello"的行中的"hello"字符串本身,则可以使用以下正则表达式: ``` .*(hello).* ``` 您可以使用string.match函数的第二个返回值来访问捕获组中的文本。例如: ``` local matched_text = string.match(line, ".*(hello).*") if matched_text then -- 这一行包含字符串"hello",并且已提取出来 end ``` 正则表达式是一种强大工具,可用于匹配和提取各种文本模式。有关更多信息,可以参考Lua的 ### 回答2: 要自定义Lua代码的扫描规则,可以使用一些专门的工具和技术来实现。下面简要介绍一种常用的方法: 1. 使用词法分析器(lexer):词法分析是将源代码分解为词法单元的过程。可以使用词法分析器来解析Lua代码并标记出关键字、标识符、运算符等。可以基于Lua的语法规则,自定义一套词法规则并编写相应的正则表达式模式。 2. 使用语法分析器(parser):语法分析是根据源代码的语法规则,构建语法树的过程。可以使用语法分析器来解析Lua代码并生成相应的语法树。通过理解Lua的语法规则,并根据自定义的规则,可以修改或扩展语法解析过程中的规则。 3. 静态代码分析工具:静态代码分析工具可以提供更高级的分析功能。可以使用这些工具来分析Lua代码,并根据自定义的规则来检查代码中的问题,比如未使用的变量、类型错误、未初始化的变量等等。可以选择合适的静态代码分析工具,并配置相应的规则来满足个人或项目的需求。 4. 定制开发环境:为了方便自定义扫描规则,可以使用定制开发环境(IDE)来提供更好的支持。一些IDE提供了自定义规则的功能,并可以根据规则来检查代码并提供相应的错误或建议。根据实际需求,可以选择适合的IDE,并配置相应的规则。 总结起来,自定义Lua代码的扫描规则通常涉及到使用词法分析器、语法分析器、静态代码分析工具和定制开发环境等工具和技术。通过理解Lua的语法规则,并根据实际需求,可以修改或扩展这些工具和技术的规则,从而达到自定义扫描规则的目的。 ### 回答3: 要自定义Lua代码的扫描规则,可以采用以下步骤: 1.了解扫描规则:首先,了解扫描规则是什么以及如何工作。扫描规则是一组用于识别代码结构、语义和模式的规则。它们可以根据需求进行自定义。 2.选择适当的工具:根据自己的需求,选择合适的工具来自定义扫描规则。例如,可以使用静态代码分析工具(如Luacheck、LuaInspect等)或使用编程语言(如Python等)编写脚本来实现自定义规则。 3.定义规则:确定要自定义的规则类型,例如命名约定、代码结构、循环、函数调用等。根据规则类型,编写相应的规则描述。规则描述可以使用正则表达式、语法树或模式匹配等方式。规则描述应该尽可能准确和详细。 4.实现规则:将规则描述转换为实际代码。根据选择的工具,编写相应的规则实现代码。这可能涉及到配置文、插或自定义脚本。根据工具的文档和示例,可以了解如何正确地实现规则。 5.测试规则:使用自定义规则对Lua代码进行测试。使用一些样本代码来检查规则是否按预期工作。根据测试结果进行调整和优化规则。 6.应用规则:将自定义规则应用到实际项目中。根据项目的需要,选择合适的工具和集成方式。确保规则自动应用,并及时检查代码中的问题。 总结起来,自定义Lua代码的扫描规则涉及了对扫描规则的了解、选择合适的工具、规则定义、实现规则、测试规则和应用规则等步骤。通过这个过程,可以根据项目的需要,定制适合的规则来提高代码质量和可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的悟空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值