Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取一个人';Perl中文本块的全名是什么?_Perl_Parsing_Nlp_Cpan_Named Entity Recognition - Fatal编程技术网

提取一个人';Perl中文本块的全名是什么?

提取一个人';Perl中文本块的全名是什么?,perl,parsing,nlp,cpan,named-entity-recognition,Perl,Parsing,Nlp,Cpan,Named Entity Recognition,我需要使用Perl从文本块中提取名称(包括不常见的名称)。我研究过提取姓名的模块,但它只有1990年美国最流行的1000个名字和姓氏;我需要更全面的东西 我曾考虑过使用社会保障指数建立一个数据库进行比较,但这似乎非常繁琐,而且需要大量的处理。有没有一种方法可以使用另一种方法从Perl中提取名称 要分析的文本示例: LADNIER路易·安东尼·拉德尼尔,48岁,阿拉巴马州莫比尔市人,于2012年11月16日星期五在家中去世。路易于1964年1月9日出生于阿拉巴马州莫比尔市。他是老约翰·E·拉德尼尔

我需要使用Perl从文本块中提取名称(包括不常见的名称)。我研究过提取姓名的模块,但它只有1990年美国最流行的1000个名字和姓氏;我需要更全面的东西

我曾考虑过使用社会保障指数建立一个数据库进行比较,但这似乎非常繁琐,而且需要大量的处理。有没有一种方法可以使用另一种方法从Perl中提取名称

要分析的文本示例:

LADNIER
路易·安东尼·拉德尼尔,48岁,阿拉巴马州莫比尔市人,于2012年11月16日星期五在家中去世。
路易于1964年1月9日出生于阿拉巴马州莫比尔市。他是老约翰·E·拉德尼尔和格洛丽亚·博萨吉·拉德尼尔的儿子。他毕业于麦吉尔ToelEn高中,就读于南阿拉巴马大学。他在医疗退休前一直担任Bayou La Batre警察局的通讯主管<他的父亲约翰先于他去世。他的母亲格洛丽亚、侄子、多米尼克·拉德尼尔和克里斯蒂安·鲁比奥(Christian Rubio)以及侄子杰米、乔伊、埃迪、威尔、本和侄女,都是他亲生的儿子、姐妹、玛吉·拉德尼尔和摩根·戈迪[朱利安]以及兄弟埃迪·拉德尼尔[辛迪]幸存下来的,安娜和伊丽莎白。
纪念仪式将于周三下午1点在莫比尔的圣多米尼克天主教堂举行
由宁静殡仪馆负责安排
可向圣多明尼克学校、4160缅甸公路移动电话、AL 36693、克里斯蒂安·鲁比奥和麦吉尔·图伦高中教育基金、1501老壳牌公路移动电话、AL 36604、多明尼克·拉德尼尔教育基金发送纪念品,代替鲜花
家人感谢在此期间所有的祈祷和支持。路易对我们大家来说都是一块石头和一种快乐


由于英语的性质,没有可靠的方法可以做到这一点。您要么需要(模糊)比较列表,要么将不得不接受严重的准确性惩罚。

您正在尝试实现一个新的列表。坏消息是这真的很难。 但是,您可以尝试:

$ perl -MLingua::EN::NamedEntity -nE 'say $_ for map { $_->{class} eq "person" ? $_->{entity} : () } extract_entities($_)' names.txt 
Louie
Louis Anthony Ladnier
Louie
John E
Bayou La Batre Police Department
Gloria
Julian
Cindy
Eddie Ladnier
Eddie
John
Catholic Church
Christian Rubio
Dominic Ladnier
Burma Road Mobile
Louie
您还可以使用路透社的自然语言处理Web服务,它提供了更好的结果:


我想你应该用谷歌搜索一下:

perl part of speech tagging

Apache基金会有几个项目,包括用特定的预先训练的英文名字(NoFEEDER)模型来描述实体提取的主题。我推荐openLNP或Stanbol。同时,如果你有一些疑问,我有一个NLP,我已经用C#在我的应用程序部分实现了

最好的

不要使用斯坦福大学的NER(GPL)。演示:


你能展示一下你要从中提取姓名的文本样本吗?嗯。。。您是否希望输出中也包含
Serenity
McGill
?给定示例文本,请显示您希望生成的相应输出。“Louis'Louie'Anthony Ladnier”。我需要它来产生文本中遇到的第一个名字,包括任何称呼、姓氏、中间名、昵称等。名字可以出现在称呼、句子、陈述等之后。名字的呈现方式、位置和可能根本不存在都有很多变化,这时需要人工检查。。。但我需要的名字几乎总是第一个遇到的。阅读帮助了解名字的可变性。好吧,至少我试过了。我想我们将继续使用我们的最佳猜测系统。这是一项众所周知的自然语言处理任务,在这一领域进行了许多研究,最新的进展令人印象深刻。@ugexe没有确定的方法,但也没有显著的准确性损失:)Calais在示例文本中遗漏了4个名称,甚至不包含不常见的名称。这个问题本身提到了不常见的名字,所以明智的做法是根据不常见的名字测试任何可能的答案。根据卡利亚斯的说法,字符串“Adiyah Ahkmed去了市场。”没有返回任何名称。这两种情况都不可接受