对于分词而言,命名实体识别是一项非常重要的功能,当然发现新词同样重要(这部分内容被我放在之后的“提取关键词、短语提取与自动摘要、新词识别”与再之后的案例中了。
首先是一个简单的例子,展示一下命名实体识别的效果。之后是正式内容:
正式内容
中国人名识别
说明
目前分词器基本上都默认开启了中国人名识别,比如HanLP.segment()接口中使用的分词器等等,用户不必手动开启;上面的代码只是为了强调。
有一定的误命中率,比如误命中关键年,则可以通过在data/dictionary/person/nr.txt加入一条关键年 A 1来排除关键年作为人名的可能性,也可以将关键年作为新词登记到自定义词典中。
如果你通过上述办法解决了问题,欢迎向我提交pull request,词典也是宝贵的财富。
建议NLP用户使用感知机或CRF词法分析器,精度更高。
算法详解
《实战HMM-Viterbi角色标注中国人名识别》
音译人名识别
说明
目前分词器基本上都默认开启了音译人名识别,用户不必手动开启;上面的代码只是为了强调。
算法详解
日本人名识别
说明
目前标准分词器默认关闭了日本人名识别,用户需要手动开启;这是因为日本人名的出现频率较低,但是又消耗性能。
算法详解
地名识别
说明
目前标准分词器都默认关闭了地名识别,用户需要手动开启;这是因为消耗性能,其实多数地名都收录在核心词典和用户自定义词典中。
在生产环境中,能靠词典解决的问题就靠词典解决,这是最高效稳定的方法。
建议对命名实体识别要求较高的用户使用感知机词法分析器。
算法详解
《实战HMM-Viterbi角色标注地名识别》
机构名识别
说明
目前分词器默认关闭了机构名识别,用户需要手动开启;这是因为消耗性能,其实常用机构名都收录在核心词典和用户自定义词典中。
HanLP的目的不是演示动态识别,在生产环境中,能靠词典解决的问题就靠词典解决,这是最高效稳定的方法。
建议对命名实体识别要求较高的用户使用感知机词法分析器。
算法详解
《层叠HMM-Viterbi角色标注模型下的机构名识别》
地名识别
说明
目前标准分词器都默认关闭了地名识别,用户需要手动开启;这是因为消耗性能,其实多数地名都收录在核心词典和用户自定义词典中。
在生产环境中,能靠词典解决的问题就靠词典解决,这是最高效稳定的方法。
建议对命名实体识别要求较高的用户使用感知机词法分析器。
算法详解
《实战HMM-Viterbi角色标注地名识别》
URL 识别
自动识别URL,该部分是在demo中发现的,但是原作者并没有在文档中提到这个,该部分可以发现URL,测试发现其他分类器应该是默认不开启这个的,而且config中并没有开启该功能的选项,因此这应该是一个额外的类。我建议如果有需要的,你可以尝试先利用URLTokenizer获取URL,然后添加进用户词典。或者直接使用其他工具或者自定义函数解决该问题。
文章来源于Font Tian的博客
网友评论