algorithm - 从非结构化年鉴文本中提取人名

标签 algorithm nlp text-mining opennlp named-entity-recognition

我有很多美国学校年鉴的扫描页,上面有人物肖像和名字。页面中的所有文本都经过 OCR 处理,并在每个页面的多个版本中收集:

  1. 非结构化文本文件。 Example
  2. 带有每个句子坐标的 Xml。 Example
  3. 带有每个字母坐标的 Xml。 Example

Sample yearbooks page

目标是确定哪些文本字符串代表人名并将其与肖像相关联。问题是每本年鉴都是唯一的,每一页也可能是唯一的,因此无法应用通用模式(但可能有一些通用模式)。另一个问题是页面中除了名称之外还包含许多其他文本,而且集合非常庞大。

上面的例子中名字是用大写字母写的,所以很容易识别,但这不是常见的情况。

另一个例子:

Sample yearbooks page Text/XML1/XML2

这里是 few more examples

我在考虑几个方向:

  1. 使用美国名字字典建立索引并搜索每个 此索引中页面中的单个单词以查找可能的名称。
  2. 使用全名识别。我尝试了 opennlp Java 库,但是 它仅适用于以大写字母开头的名称。 也许其他图书馆也可以。
  3. 训练一些神经网络。这样的结果能比 前两个选项?

您能建议哪些算法可以帮助解决这个问题吗?

最佳答案

确实 NER 会有所帮助,使用现有软件是可以的,但我建议,对于这样的子域(人名),使用可能的名字/姓氏列表作为特征和标准线索(例如大写字母,小姐/先生)。

使用男性/女性特征将名字与肖像联系起来当然是个好主意。

将两者分开实现(姓名识别/肖像匹配)作为模棱两可的过程会很好:它将允许在可能的假设中选择那些最大化其他标准的那些:姓名 nb 与肖像 nb,布局的规律性以关联姓名有肖像等。

主要是常识,但希望对您有所帮助!

PS不要忘记无法将姓名与肖像相关联的情况,例如通过使用似然阈值(乍一看,您的上一张图片似乎就是这种情况?)

关于algorithm - 从非结构化年鉴文本中提取人名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668856/

相关文章:

algorithm - raft leader 是同步处理客户端请求还是异步处理?

c++ - 为什么我们在C++中已经可以使用STL排序功能,还需要学习不同的排序算法?

python - 宽敞的管道?

python - 如何将自定义停用词列表添加到 StopWordsRemover

python - 属性错误: 'GridSearchCV' object has no attribute 'cv_results_'

arrays - 在没有双重匹配的情况下为每个单词找到最佳匹配

algorithm - 在钟形值列表中找到最大值的快速算法

java - 是否存在不以完整解析为目标的选区解析器?

python - 将 WordNetLemmatizer.lemmatize() 与 pos_tags 一起使用会引发 KeyError

python - 来自 Scopus API 的请求仅写入 PDF 的第一页