名称提取 - 简历/简历 - 斯坦福NER / OpenNLP

时间:2015-06-05 10:35:12

标签: nlp stanford-nlp opennlp named-entity-recognition named-entity-extraction

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

目前,我正在与Stanford-NER和OpenNLP合作,这些都在开箱即用的情况下取得了一定程度的成功,并且在非西方国家和#34;类型名称(不针对任何人的进攻)。

我的问题是 - 鉴于在简历/简历中一般缺乏与个人姓名相关的句子结构或背景,我是否可以通过创建类似于CV语料库的内容来获得名称识别方面的任何重大改进?

我最初的想法是,通过句子拆分,移除明显的文本并应用一些逻辑来对个人姓名进行最佳猜测,我可能会取得更大的成功。

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

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

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

旁注:我一直在使用PHP和Appache Tika从Doc / Pdf中进行初始文本提取,并正在通过PHP / Commandline试验Stanford和OpenNLP。

克里斯

2 个答案:

答案 0 :(得分:1)

我对这个问题的看法。

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

让我知道你对此的看法。

最佳,

ANKIT

答案 1 :(得分:0)

我想如果你创建一个CV语料库,你可能会改进名称识别,这也取决于你的语料库的大小(你可以通过抓取CV网站收集这样的语料库)。

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

在这种情况下,你不再是顺序标签案例(正如Stanford NER所做的那样):在CV中,名称通常不被文本包围。它很可能是候选文本段的分类任务,模式可以转换为(数字或二进制)属性。

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

我有兴趣知道哪些功能有效...您能告诉我们吗?