【问题标题】:Name Extraction - CV/Resume - Stanford NER/OpenNLP姓名提取 - 简历/简历 - 斯坦福 NER/OpenNLP
【发布时间】:2015-08-20 06:40:43
【问题描述】:

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

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

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

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

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

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

我很感激人们的想法、意见和建议。

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

克里斯

【问题讨论】:

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


    【解决方案1】:

    我在这个问题上的 2cents。

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

    让我知道您对此的看法。

    最好的,

    Ankit

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-17
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多