我正在设计一个需要从短文中提取人名的应用程序。
最好的方法是什么?是否有一个名称数据库,我可以测试,知道名称在哪里?虽然文本很短,但在处理需求方面可能并不那么密集。
有什么想法吗?
谢谢,
担
答案 0 :(得分:7)
您可以使用统计Named Entity Recognizer(NER),例如Stanford's NER或LingPipe'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
怎么样?