我的目标是为Rails编写一个验证类,它能够使用名片中的OCR识别文本,并能够检测字符串片段并将它们分配给正确的属性。我知道这可能不是100%完美,但我希望尽可能接近。到目前为止,这是我的方法:
navigator.mediaDevices
result = [['John Doe'], ['+49 160 123456'], ['Mainstr. 45a'], ['12345 Berlin'], ['CEO'], ['johndoe@business-website.de'], ['www.business-website.de']]
然后我遍历数组并进行一些检查,例如
使用people
库(https://github.com/mericson/people)
将名称拆分为firstname和lastname(另外还有标题
或中间名)使用phonelib
库
(https://github.com/daddyz/phonelib)查找有效的电话号码
并将其格式化为国际字符串
我现在想念的是:
一般来说:你喜欢我的方法还是这样太复杂了?你知道一些看起来更好的最佳实践吗?
答案 0 :(得分:0)
不要认为这是一个完整的答案,但要做出评论太过分了。 你的工作方式似乎还可以,但我不会使用OCR服务,因为还有其他方法,Tesseract是最知名的。
如果你这样做并且所有结果都是可比较的,那么它似乎并不太难,因为每一条信息都有它自己的特点。
您可以识别名称部分,因为它不会包含数字,其余部分也是如此,您也可以将其包含在“Mr.”中或“太太”或者这样而不是“Str。”,“street”等。您也可以使用Google地图检查正确的地址,有Ruby宝石,但没有经验。
您的人物宝石也可以提供帮助。
您可以猜测所有这些,在您的网页上显示结果并让用户确认或调整。
你也可以通过查看任意顺序的数字和字符串组合来RegExpr后城市组合,但你也可以使用像ZipCodes这样的宝石帮助。
对不起,现在没时间测试一些正则表达式而且我没有测试就发布代码。
希望这是一些帮助,成功!