如何获取所有人的姓名数据库(或至少是英语常用名称)?

时间:2009-11-14 22:23:42

标签: string

我正在设计一个需要从短文中提取人名的应用程序。

最好的方法是什么?是否有一个名称数据库,我可以测试,知道名称在哪里?虽然文本很短,但在处理需求方面可能并不那么密集。

有什么想法吗?

谢谢,

5 个答案:

答案 0 :(得分:7)

您可以使用统计Named Entity Recognizer(NER),例如Stanford's NERLingPipe's。这些是基于机器学习的识别器,不需要巨大的名称字典作为输入。

或者,您可以从Web获取人名列表(有很多),并使用Aho-Corasick string searching algorithm从文本中有效地从列表中提取名称。

答案 1 :(得分:3)

如果您使用的是* nix系统,请尝试查看/usr/share/dict/propernames。 Mac OS X有它,我认为至少Ubuntu也有。

您可以将其与grep

一起使用
grep -f /usr/share/dict/propernames short_text.txt

答案 2 :(得分:3)

答案 3 :(得分:2)

获取名称数据集:
我为这样的任务制作了一组数据集。您可以在此处使用我的数据集:https://mbejda.github.io。它们都是CSV格式。名称按种族和性别分类。

命名实体识别器:
查看OpenNLP或StanfordNLP以获取命名实体识别器和提取。

答案 4 :(得分:1)

美国人口普查局genealogy data

怎么样?