Package: companynameparser
companynameparsercompany name parser, extract company name brand. 中文公司名称分词工具，支持公司名称中的地名，品牌名（主词），行业词，公司名后缀提取。GuideFeatureInstallUsageCommand Line UsageContributeReferenceFeature对公司名文本解析，识别并提取地名（place）、品牌名(brand)、行业词(trade)、公司名后缀词(suffix)。Evaluate运行评估脚本evaluate_file.py，使用预测结果与GroundTruth完成相等才为算对的保守评估方法，
评估结果：准确率：97.0%召回率：96.7%Install全自动安装：pip install -U companynameparser半自动安装：git clone https://github.com/shibing624/companynameparser.git
cd companynameparser
python setup.py install通过以上两种方法的任何一种完成安装都可以。如果不想安装，可以下载github源码包，安装依赖requirements.txt再使用。UsageExtract Company Name公司名称各元素提取功能base_demo.pyimportcompanynameparsercompany_strs=["武汉海明智业电子商务有限公司","泉州益念食品有限公司","常州途畅互联网科技有限公司合肥分公司","昆明享亚教育信息咨询有限公司",]fornameincompany_strs:r=companynameparser.parse(name)print(r)output:{'place': '武汉', 'brand': '海明智业', 'trade': '电子商务', 'suffix': '有限公司', 'symbol': ''}
{'place': '泉州', 'brand': '益念', 'trade': '食品', 'suffix': '有限公司', 'symbol': ''}
{'place': '常州,合肥', 'brand': '途畅', 'trade': '互联网科技', 'suffix': '有限公司,分公司', 'symbol': ''}
{'place': '昆明', 'brand': '享亚', 'trade': '教育信息咨询', 'suffix': '有限公司', 'symbol': ''}parse方法的此处输入name是str;输出的是一个包括place(地名)，brand(品牌名)，trade(行业词名)，suffix(后缀名)，symbol(标点符号)的dict; 多个地名词、品牌、行业词之间用,间隔，如'常州,合肥'。All Demo一个demo演示所有示例all_demo.py，包括：公司名称各元素提取元素名称结果带分词显示各元素的位置用户自定义分词词典，用于解决部分误杀和漏召回importcompanynameparsercompany_strs=["武汉海明智业电子商务有限公司","泉州益念食品有限公司","常州途畅互联网科技有限公司合肥分公司","昆明享亚教育信息咨询有限公司","深圳光明区三晟股份有限公司",]fornameincompany_strs:r=companynameparser.parse(name)print(r)print("*"*42,' enable word segment')fornameincompany_strs:r=companynameparser.parse(name,pos_sensitive=False,enable_word_segment=True)print(r)print("*"*42,' pos sensitive')fornameincompany_strs:r=companynameparser.parse(name,pos_sensitive=True,enable_word_segment=False)print(r)print("*"*42,'enable word segment and pos')fornameincompany_strs:r=companynameparser.parse(name,pos_sensitive=True,enable_word_segment=True)print(r)print("*"*42,'use custom name')companynameparser.set_custom_split_file('./custom_name_split.txt')foriincompany_strs:r=companynameparser.parse(i)print(r)output:{'place': '武汉', 'brand': '海明智业', 'trade': '电子商务', 'suffix': '有限公司', 'symbol': ''}
{'place': '泉州', 'brand': '益念', 'trade': '食品', 'suffix': '有限公司', 'symbol': ''}
{'place': '常州,合肥', 'brand': '途畅', 'trade': '互联网科技', 'suffix': '有限公司,分公司', 'symbol': ''}
{'place': '昆明', 'brand': '享亚', 'trade': '教育信息咨询', 'suffix': '有限公司', 'symbol': ''}
{'place': '深圳光明', 'brand': '区三晟', 'trade': '', 'suffix': '股份有限公司', 'symbol': ''}
******************************************  enable word segment
{'place': '武汉', 'brand': '海明智业', 'trade': '电子商务', 'suffix': '有限公司', 'symbol': ''}
{'place': '泉州', 'brand': '益念', 'trade': '食品', 'suffix': '有限公司', 'symbol': ''}
{'place': '常州,合肥', 'brand': '途畅', 'trade': '互联网,科技', 'suffix': '有限公司,分公司', 'symbol': ''}
{'place': '昆明', 'brand': '享亚', 'trade': '教育,信息,咨询', 'suffix': '有限公司', 'symbol': ''}
{'place': '深圳光明', 'brand': '区三晟', 'trade': '', 'suffix': '股份,有限公司', 'symbol': ''}
******************************************  pos sensitive
{'place': [('武汉', 0, 2)], 'brand': [('海明智业', 2, 6)], 'trade': [('电子商务', 6, 10)], 'suffix': [('有限公司', 10, 14)], 'symbol': []}
{'place': [('泉州', 0, 2)], 'brand': [('益念', 2, 4)], 'trade': [('食品', 4, 6)], 'suffix': [('有限公司', 6, 10)], 'symbol': []}
{'place': [('常州', 0, 2), ('合肥', 13, 15)], 'brand': [('途畅', 2, 4)], 'trade': [('互联网科技', 4, 9)], 'suffix': [('有限公司', 9, 13), ('分公司', 15, 18)], 'symbol': []}
{'place': [('昆明', 0, 2)], 'brand': [('享亚', 2, 4)], 'trade': [('教育信息咨询', 4, 10)], 'suffix': [('有限公司', 10, 14)], 'symbol': []}
{'place': [('深圳光明', 0, 4)], 'brand': [('区三晟', 4, 7)], 'trade': [], 'suffix': [('股份有限公司', 7, 13)], 'symbol': []}
****************************************** enable word segment and pos
{'place': [('武汉', 0, 2)], 'brand': [('海明智业', 2, 6)], 'trade': [('电子商务', 6, 10)], 'suffix': [('有限公司', 10, 14)], 'symbol': []}
{'place': [('泉州', 0, 2)], 'brand': [('益念', 2, 4)], 'trade': [('食品', 4, 6)], 'suffix': [('有限公司', 6, 10)], 'symbol': []}
{'place': [('常州', 0, 2), ('合肥', 13, 15)], 'brand': [('途畅', 2, 4)], 'trade': [('互联网', 4, 7), ('科技', 7, 9)], 'suffix': [('有限公司', 9, 13), ('分公司', 15, 18)], 'symbol': []}
{'place': [('昆明', 0, 2)], 'brand': [('享亚', 2, 4)], 'trade': [('教育', 4, 6), ('信息', 6, 8), ('咨询', 8, 10)], 'suffix': [('有限公司', 10, 14)], 'symbol': []}
{'place': [('深圳光明', 0, 4)], 'brand': [('区三晟', 4, 7)], 'trade': [], 'suffix': [('股份', 7, 9), ('有限公司', 9, 13)], 'symbol': []}
****************************************** use custom name
{'place': '武汉', 'brand': '海明智业', 'trade': '电子商务', 'suffix': '有限公司', 'symbol': ''}
{'place': '泉州', 'brand': '益念', 'trade': '食品', 'suffix': '有限公司', 'symbol': ''}
{'place': '常州,合肥', 'brand': '途畅', 'trade': '互联网科技', 'suffix': '有限公司,分公司', 'symbol': ''}
{'place': '昆明', 'brand': '享亚', 'trade': '教育信息咨询', 'suffix': '有限公司', 'symbol': ''}
{'place': '深圳光明区', 'brand': '三晟', 'trade': '', 'suffix': '股份有限公司', 'symbol': ''}Command Line Usage命令行模式支持批量提取地址的省市区信息：python3 -m companynameparser company_demo.txt -o out.csv

usage: python3 -m companynameparser [-h] -o OUTPUT input
@description:

positional arguments:
  input                 the input file path, file encode need utf-8.

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        the output file path.输入文件：company_demo.txt；输出文件：out.csv，地名、品牌名、行业名、后缀名以\t间隔Todo补充中国三级地名，优化地名提取效果优化品牌名边界问题多个行业词提取ContactIssue(建议)：邮件我：xuming:xuming624@qq.com微信我：加我微信号：xuming624, 进Python-NLP交流群，备注：姓名-公司名-NLPCitation如果你在研究中使用了companynameparser，请按如下格式引用：@software{companynameparser,
  author ={Xu Ming},
  title ={companynameparser: Company Name parser Tool},
  year ={2021},
  url ={https://github.com/shibing624/companynameparser},}LicenseApache License 2.0Contribute项目代码还很粗糙，如果大家对代码有所改进，欢迎提交回本项目
，在提交之前，注意以下两点：在tests添加相应的单元测试使用python -m pytest来运行所有单元测试，确保所有单测都是通过的之后即可提交PR。Referenceaddressparser