【问题标题】:Distinguish name of a person vs of an organization区分个人与组织的名称
【发布时间】:2016-08-19 05:22:44
【问题描述】:

鉴于来自电子邮件的 From: 标头的显示名称,我想确定它是代表人名还是其他名称。其他东西通常可能是组织的名称,或者可能是头衔/角色。

一些例子:

  • Alice Smith => 人名
  • Google Inc. => 不是一个人的名字(它是一个组织)
  • 亚马逊客户支持 => 不是人名(它是头衔/角色)
  • 工程总监 => 不是一个人的名字(它是一个头衔/角色)

如何识别发件人姓名是否代表个人姓名?


一种可能的方法是使用机器学习并训练分类器。但如果我这样做,我应该使用哪些功能?我一直在阅读文献,并没有找到任何人准确地解决了这个问题,尽管我已经看到了一些用于相关问题的功能:

  • “Word Word”或“Word, Word”或“Word, Word Letter”或“Word Letter Word”或“Word, Word Letter”形式的短语。或“Word Letter. Word”更可能是一个名称(想想“First Last”和“Last, First”和“Last, First MI”和“First MI Last”)。

  • 以标题(先生、夫人、小姐、女士、博士、教授、中尉、中士等)开头的短语更有可能是名称。以通用名称后缀(Jr.、Sr.、Phd、Esq)结尾的短语更有可能是名称。以公司指示符(Inc., Corp., Corporation)结尾的短语可能不是名称(它可能是一个组织)。

  • 可以从美国人口普查中下载最常见的名字和姓氏的list。如果该短语包含其中一个字符串,则它更有可能是一个名称。或者,可以使用现有的词典,例如 BaLIE 或 Oak 词典。

  • 如果短语包含在字典中找到的单词,则它更有可能不是名称(例如,组织/职务/角色)。

  • 如果名称中的某个词与相应电子邮件地址的域名中的某个词匹配,则它很可能不是人名(例如,Paypal 客户服务)。

    李>
  • 如果单词包含内部撇号或连字符,则更有可能是人名(例如,O'Connor、Jean-Claude)。

但我不知道什么会真正起作用。我应该使用哪些功能?或者,是否有任何预训练的分类器或任何描述有效方法的经验报告?

我读过一些关于命名实体识别的文章,但这似乎是一个更难的问题。

【问题讨论】:

标签: text nlp named-entity-recognition


【解决方案1】:

看看OpenNLP NER 已经有很多支持了。

他们有这些针对名称、组织、位置等的预训练模型, here

this blog 可以帮助您开始并加快进度。

OpenNLP 的预训练模型对我来说效果很好。它以美国/英国的名字进行训练,所以它必须适合你。它也是基于上下文的。即使模型由于称呼不知道 X 的名字,它也能认出 X 先生。

它对我来说非常认可组织。一旦您拥有良好的训练数据(15000 句以获得良好结果),您就可以训练自己的模型。训练过程在我上面提到的博客中有很好的解释。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2012-03-23
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多