2016-08-19 56 views
0

给定电子邮件From:标题的显示名称,我想确定它是代表某人的姓名还是其他名称。别的东西往往可能是一个组织的名称,或者可能是一个标题/角色。区分一个人与一个组织的名称

一些例子:

  • 爱丽丝·史密斯=>一个人
  • 谷歌公司=>不是一个人的名字的名字(这是一个组织)
  • 亚马逊客户支持=>不一个人(这是一个标题/角色)的名称
  • 工程总监=>不是一个人(这是一个标题/角色)

我怎样才能为r的名字确认发件人的名称是否代表个人的名字?


一种可能的方法是使用机器学习和训练分类器。但是如果我这样做,我应该使用哪些功能?我一直在阅读文献中,并没有发现任何人谁恰好解决了这个问题,但我见过被用于相关问题的一些特点:

  • 形式的短语“字字”或“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客户服务)。

  • 如果一个单词包含一个内部撇号或连字符,它更可能是一个人的名字(例如,奥康纳,让 - 克劳德)。

但我不知道什么会实际工作。我应该使用哪些功能?或者,是否有任何预先训练的分类器或任何经验报告来描述什么可行?

我已经读了一些关于命名实体识别的内容,但这似乎是一个更难的问题。

+0

你可以使用NER,它不难。你可以检查:第5点 - 命名实体识别 - http://www.nltk.org/book/ch07.html – RAVI

回答

1

看看OpenNLP NER很多支持已经在那里。

他们有这些预先训练模型的名称,组织,地点等, here

this blog可以让你开始和节奏了你的东西。

OpenNLP的预训练模型对我来说工作得非常好,它在美国/英国的名字训练,所以它必须为你工作。它也是基于上下文的。它承认X先生,尽管模型由于称呼而不知道名称X.

它对我来说非常好。一旦你有良好的训练数据,你就可以训练你自己的模型(15000个句子以获得好的结果)。而且我在上面提到的博客中很好地解释了培训过程。

希望这会有所帮助。

相关问题