Search ML NLP Java

Mynlp中的高性能、自动歧义识别的人名识别算法

人名识别

Mynlp的人名识别是基于结构化感知机、序列标注模型的实现。独特之处在于特征函数和Label的设计和其他NLP工具的差别。

该人名识别算法是基于字符输入的,也就是说不需要预先分词,直接从文本中提取人名,
天然具有歧义识别。在PKU数据集上,最终F1达94.91,如果剔除古汉语人名的影响,F1可以更高。

Mynlp项目地址:
https://github.com/mayabot/mynlp

调用非常简单

<dependency>
  <groupId>com.mayabot.mynlp</groupId>
  <artifactId>mynlp-segment</artifactId>
  <version>3.0.0</version>
</dependency>
       PerceptronPersonNameService pps = Mynlps.instanceOf(PerceptronPersonNameService.class);

        List<PersonName> names = pps.findName(" 黄英男 12345328978 湖南娄底双峰A街道华洪水大厦A座102");
        List<PersonName> names2 = pps.findName("小明送给张贺年老师一张贺年卡");

        System.out.println(names);
        System.out.println(names2);

输出:

[PersonName(name=黄英男, offset=1)]
[PersonName(name=小明, offset=0), PersonName(name=张贺年, offset=4)]

注意:在第二句实例中,有两次出现(张贺年),自动判断第二个不是人名。

该模型大小为11.5M,内存占用45M。

赞(1) 打赏
未经允许不得转载:Mayabot技术团队 » Mynlp中的高性能、自动歧义识别的人名识别算法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

开源项目

Mynlp开源项目

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏