# companynameparser
[![PyPI version](https://badge.fury.io/py/companynameparser.svg)](https://badge.fury.io/py/companynameparser)
[![Downloads](https://pepy.tech/badge/companynameparser)](https://pepy.tech/project/companynameparser)
[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](CONTRIBUTING.md)
[![License Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
![Python3](https://img.shields.io/badge/Python-3.6-red.svg)
[![Wechat Group](http://vlog.sfyc.ltd/wechat_everyday/wxgroup_logo.png?imageView2/0/w/60/h/20)](#Contact)
company name parser, extract company name brand. 中文公司名称分词工具,支持公司名称中的地名,品牌名(主词),行业词,公司名后缀提取。
**Guide**
- [Feature](#Feature)
- [Install](#Install)
- [Usage](#usage)
- [Command Line Usage](#command-line-usage)
- [Contribute](#contribute)
- [Reference](#Reference)
# Feature
对公司名文本解析,识别并提取地名(place)、品牌名(brand)、行业词(trade)、公司名后缀词(suffix)。
# Evaluate
运行评估脚本[evaluate_file.py](./tests/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](./requirements.txt)再使用。
# Usage
- Extract Company Name
公司名称各元素提取功能[base_demo.py](./examples/base_demo.py)
```python
import companynameparser
company_strs = [
"武汉海明智业电子商务有限公司",
"泉州益念食品有限公司",
"常州途畅互联网科技有限公司合肥分公司",
"昆明享亚教育信息咨询有限公司",
]
for name in company_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](./examples/all_demo.py),包括:
1. 公司名称各元素提取
2. 元素名称结果带分词
3. 显示各元素的位置
4. 用户自定义分词词典,用于解决部分误杀和漏召回
```python
import companynameparser
company_strs = [
"武汉海明智业电子商务有限公司",
"泉州益念食品有限公司",
"常州途畅互联网科技有限公司合肥分公司",
"昆明享亚教育信息咨询有限公司",
"深圳光明区三晟股份有限公司",
]
for name in company_strs:
r = companynameparser.parse(name)
print(r)
print("*" * 42, ' enable word segment')
for name in company_strs:
r = companynameparser.parse(name, pos_sensitive=False, enable_word_segment=True)
print(r)
print("*" * 42, ' pos sensitive')
for name in company_strs:
r = companynameparser.parse(name, pos_sensitive=True, enable_word_segment=False)
print(r)
print("*" * 42, 'enable word segment and pos')
for name in company_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')
for i in company_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
<details>
<summary>命令行模式</summary>
支持批量提取地址的省市区信息:
```
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 ne
云哲-吉吉2021
- 粉丝: 4065
- 资源: 1128
最新资源
- MATLAB程序采用非支配排序遗传算法(NSGA2)求解分布式电源选址定容问题,可作为一个有用的参考,程序注释明确,算法原理可以自己搜
- 2-趣味数学2.3.7 完全免费的数学学习软件
- Labview 用DBC文件解析CAN报文以及DBC格式发送CAN,调用的dll有说明文档 2013,2016,2019版本 参考程序后续可以自己改动
- 计算机程序设计员三级错题总结
- WebRTC测试方法与工具:挑战及实际解决方案
- 2- 硬件检测工具CPUID CPU-Z 2.13
- 2-Excel 300+实用插件 实用增强工具
- 化学工程中无约束优化数值实验及参数估计研究
- 简单通信,任何人都可以无需技术支持、零门槛建立完全属于自己的企业内部通信系统!
- WebRTC技术及其在开放网络平台的实时通信应用
- 国产兼容三菱FX3U源码,最新一波bug修改,修改监控时卡顿问题 8位口令功能,程序消除功能,定时器特殊情况下不运行问题 带modbus-tcp功能,实时时钟,深度测试后,修改一些主要bug后,稳
- 优化铷原子四波混频实现微波-光学转换的研究
- 基于WebRTC的远程视频协作框架优化与仿真验证
- 金融投资组合优化与评估-STA4020期末项目指导
- 2-笔顺笔画大全3.0.33 汉字学习爱好者的宝藏工具
- 八段锦mmexport1735392778074.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈