虽然这两个包本身开发语言不是python,但是都有python接口,可以从github上安装(安装过程都挺复杂)
https://github.com/hankcs/pyhanlp
https://github.com/HIT-SCIR/pyltp? ?(还得下载模型)
先说结论,由于做公告信息抽取,需要识别一些公司名,在中文命名实体识别包中,选择了python可以调用的这两个接口。
最终效果,只替换这两个接口,hanlp的正确率只是pyltp的一半。
粗体为识别出来的公司
例1:(hanlp能识别“本公司”和公司简称,pyltp只能识别公司全称)
hanlp:2014年5月30日,本公司接到控股股东彩虹集团电子股份有限公司(以下简称“彩虹电子”)通知,彩虹电子于2014年5月28日通过上海证券交易所大宗交易系统出售了本公司无限售条件流通股股份400万股,占公司股份总数的0.543%;于2014年5月30日通过上海证券交易所大宗交易系统出售了本公司无限售条件流通股股份500万股,占公司股份总数的0.679%,合计减持900万股,占公司股份总数的1.222%。
pyltp:2014年5月30日,本公司接到控股股东彩虹集团电子股份有限公司(以下简称“彩虹电子”)通知,彩虹电子于2014年5月28日通过上海证券交易所大宗交易系统出售了本公司无限售条件流通股股份400万股,占公司股份总数的0.543%;于2014年5月30日通过上海证券交易所大宗交易系统出售了本公司无限售条件流通股股份500万股,占公司股份总数的0.679%,合计减持900万股,占公司股份总数的1.222%。
例2:(hanlp能识别公司很容易漏掉公司之前的城市,pyltp能识别正确)
hanlp: 山东金城医药化工股份有限公司关于持股5%以上股东减持股份的提示性公告本公司及其董事、监事、高级管理人员保证公告内容真实、准确和完整,并对公告中的虚假记载、误导性陈述或者重大遗漏承担责任。
pyltp:山东金城医药化工股份有限公司关于持股5%以上股东减持股份的提示性公告本公司及其董事、监事、高级管理人员保证公告内容真实、准确和完整,并对公告中的虚假记载、误导性陈述或者重大遗漏承担责任。
例3:(hanlp能识别第一个公司,不能识别”责任公司“不能识别简称,pyltp都能识别,简称也能识别)
hanlp:北京城建投资发展股份有限公司(以下简称“公司”)于2014年5月19日下午收市后接到控股股东北京城建集团有限责任公司(以下简称“城建集团”)通知
pyltp:北京城建投资发展股份有限公司(以下简称“公司”)于2014年5月19日下午收市后接到控股股东北京城建集团有限责任公司(以下简称“城建集团”)通知