【发布时间】:2012-01-02 04:56:51
【问题描述】:
我正在开发一个对美国名片进行 OCR 并尝试返回名字、姓氏等信息的程序。挑战在于如何做到这一点。
到目前为止,我已经构建了以下数据文件:
first_names.txt (Contains 23k+ first names)
last_names.txt (Contains 86k+ last names)
job_title.txt (Contains 500+ job titles)
us_cities.txt (Contains 10k+ us cities)
states_full.txt (Contains full names of all US states)
states_abv.txt (Contains all US state abbreviations)
我的目标是按空格标记 OCR 数据,并尝试根据每个字符串是某种数据类型的可能性来授予“权重”。
例如,文本 blob 中较早的字符串更有可能是名称、公司或职位。同样,如果在 first_names.txt 或 last_names.txt 中找到一个字符串,那么它将对名字/姓氏具有更大的权重。
这种方法在理论上听起来不错,但我想知道从编程的角度来处理它的最佳方法。 (PHP,语言无关紧要)棘手的部分是某些令牌的权重是相对于其他令牌的。例如:
- 如果一个标记看起来可能是名字,那么下一个标记很可能是姓氏。
- 有些标记是相互关联的,但如果事物被空格分解,我不知道如何关联它们。例如,“Anne Marie, FL”将被视为三个标记 - “Anne”、“Marie”和“FL”。更糟糕的是,“Anne”和“Marie”会因为成为名字而变得更重要。现在,如果权重也根据位置来授予,则先前具有名字权重的字符串可能会获胜,从而释放这些字符串以被检测为城市。
我知道那里有很多聪明人,所以也许有人对这个有想法!
【问题讨论】:
-
我的名字更常见于姓氏;为此,您将永远需要人类
-
哦,我的街头鬃毛是如此常见的名字 - 祝你好运:-)
-
+1 表示有勇气承担这个项目。
标签: php algorithm logic tagging tokenize