-1

我目前正在进行一个学习项目,以从他们的简历/简历中提取个人姓名。

目前我正在与 Stanford-NER 和 OpenNLP 合作,它们都在开箱即用方面取得了一定程度的成功,倾向于在“非西方”类型名称上挣扎(无意冒犯任何人)。

我的问题是 - 鉴于简历/简历中个人姓名普遍缺乏句子结构或上下文,我是否可能通过创建类似于 CV 语料库的内容来显着改善姓名识别?

我最初的想法是,我可能会通过拆分句子、删除明显的文本并应用一些逻辑来对个人的名字做出最好的猜测来获得更大的成功。

如果名称出现在结构化句子中,我可以看到培训将如何工作,但是作为没有上下文的独立实体(例如 Akbar Agho),我怀疑无论培训如何,它都会遇到困难。

是否存在某种程度的 AI,如果给定足够的数据将开始制定查找名称的模式,或者我是否应该只应用基于逻辑的字符串提取级别?

我很欣赏人们的想法、意见和建议。

旁注:我一直在使用 PHP 和 Appache Tika 从 Doc/Pdf 中进行初始文本提取,并且正在通过 PHP/命令行尝试斯坦福和 OpenNLP。

克里斯

4

2 回答 2

1

我在这个问题上的 2cents。

因此,坚持您上面列出的 NER 标记器将是我在管道中的第一个块,如果我可以识别那里的东西,Viola,如果没有,则无需继续,那么我建议您采用基于规则的方法。当我们谈论简历时,候选人的名字通常在简历的前 10% 行。在许多情况下,它后面还会跟着“姓名:Ankit Solanki” 如果尝试查找电子邮件地址并将其与您从简历中的其他文本中获得的不同 NP 对匹配,则与您找到的最匹配的那个应该是您的姓名,因为在大多数情况下,出于专业目的的人的电子邮件地址(如简历)将有他们的姓名,例如john.mayer89abc.com将被清理为john.mayer这反过来又通过一个算法,该算法将找到与已清理的电子邮件名称最接近的名词短语。

让我知道你对此的看法。

最好的,

Ankit

于 2015-06-09T16:19:03.933 回答
0

我想如果你创建一个简历语料库,你可能会提高姓名识别,这也取决于你的语料库的大小(你可以通过爬取简历网站来收集这样的语料库)。

在我看来,使用数据挖掘可能是你最好的选择。我不详细了解 Apache Tika 提出了哪些选项,但是您对 CV 布局的了解越多越好。例如,模式可能应该依赖于名称位于文档顶部并且接近出生日期/婚姻状况/图像/地址的事实。

在这种情况下,您将不再处于顺序标记情况(就像斯坦福 NER 所做的那样):在 CV 中,名称通常不会被文本包围。它很可能应该是候选文本段的分类任务,模式可以转换为(数字或二进制)属性。

模式提取器很容易找到或实现,应被视为机器学习之前的预处理。确实,不要忘记使用名字和姓氏列表(以及常见的前缀/后缀:-son、-vitch、-man、Ben-、de 等),这些确实是决定什么段是不可避免的标准很可能是一个名字。由于其他名字经常出现在简历中,这就是为什么我认为使用布局也应该是一个重要功能。

我很想知道哪些功能是有效的……你能告诉我们吗?

于 2015-06-09T11:02:44.557 回答