我有一个庞大的人名全名列表,我必须在一个巨大的文字中搜索.
只有部分名称可能出现在文本中.而且有可能被拼错,misstyped或简写为.文本没有令牌,因此我不知道文本中人名的起源.如果知道该名称是否会出现在文本中,我也不知道.
例:
我的名单中有"Barack Hussein Obama",因此我必须在以下文本中检查该名称的出现情况:
...候选人巴拉克奥巴马当选为美国总统......(不完整)
......候选人巴拉克·侯赛因当选为美国总统......(不完整)
......候选人Barack HO被选为美国总统......(简称)
......候选人巴拉克·奥巴纳当选为美国总统......(拼写错误)
......候选人巴拉克·奥瓦马当选为美国总统......(错误排列,B在V旁边)
...候选人约翰麦凯恩输掉了选举......(没有出现奥巴马的名字)
Certanily没有确定性的解决方案,但......
这种搜索有什么好的启发式方法?
如果你不得不,你会怎么做?
你说它大概有200页.
将其分为200页的单页PDF.
将每页都放在Mechanical Turk上,同时列出名称.每页约5美元的奖励.
拆除空格中的所有内容,删除特殊字符(逗号,句号等).然后使用像soundex这样的东西来处理拼写错误.或者,如果你需要搜索大量的文档,你可以使用像lucene这样的东西.