# envpos
**Repository Path**: bihuaibin/envpos
## Basic Information
- **Project Name**: envpos
- **Description**: 环境/政策领域词性标注、命名实体识别、术语识别工具,41类标签体系,准确率F1 91.7%,相关医学,生物等领域也可以使用。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2023-03-28
- **Last Updated**: 2025-01-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 环境领域词法分析工具
## 使用方式 QuickStart
### 1. 安装
先安装torch和transformers,
torch需要根据gpu和cuda版本选择合适的版本,如果不熟悉这些,可以先尝试用cpu版本的。
```bash
pip install torch
pip install transformers
pip install envpos
```
transformers的依赖比较多,如果出现`import error`,大概率是transformers的依赖没有装上,pip install 装上即可
**或者**可以直接从项目中安装
```
git clone https://gitee.com/bihuaibin/envpos
cd envpos && python setup.py install && cd ..
```
### 2. 词法分析
- 进行推理:(默认是albert模型,因为体积小,推理速度快)
```python
import envpos
s = '''
(一)重点行业绿色升级工程。以钢铁、有色金属、建材、石化化工等行业为重点,推进节能改造和污染物深度治理。推广高效精馏系统、高温高压干熄焦、富氧强化熔炼等节能技术,鼓励将高炉—转炉长流程炼钢转型为电炉短流程炼钢。
'''
envpos.cut(s)
```
- 可视化
```python
envpos.viz(s)
```

- 进行多句推理:
```python
s = [
"(三)城镇绿色节能改造工程。全面推进城镇绿色规划、绿色建设、绿色运行管理,推动低碳城市、韧性城市、海绵城市、“无废城市”建设。",
"(四)交通物流节能减排工程。推动绿色铁路、绿色公路、绿色港口、绿色航道、绿色机场建设,有序推进充换电、加注(气)、加氢、港口机场岸电等基础设施建设。",
"(八)煤炭清洁高效利用工程。要立足以煤为主的基本国情,坚持先立后破,严格合理控制煤炭消费增长,抓好煤炭清洁高效利用,推进存量煤电机组节煤降耗改造、供热改造、灵活性改造“三改联动”,持续推动煤电机组超低排放改造。"
]
result = envpos.cut(s)
```
- 切换bert模型,Bert模型准确率比albert高5个点以上,建议在硬件支持的情况下,优先使用bert模型。
权重下载地址:
链接:https://pan.baidu.com/s/1hYEJUM04UdHLKCnnAGIijQ
提取码:gqyz
```python
envpos.change_bert("bert模型权重所在文件夹")
```
### 3. 依赖ddparser进行句法分析
安装ddparser
```bash
pip install ddparser
```
依存关系分析:
```python
s = "要立足以煤为主的基本国情,坚持先立后破,严格合理控制煤炭消费增长"
envpos.dp_cut(s)
```
可视化:
```python
s = "要立足以煤为主的基本国情,坚持先立后破,严格合理控制煤炭消费增长"
envpos.dp_viz(s)
```
详细的使用方式见`使用示例.ipynb`
## 类别设置和标注规则
本工具对环境领域文本设计41类标注,其中词性标注15类,实体标注14类,术语标注12类。类别的设置见标注手册。
对于标注策略,本项目构建过程中参考了GB/T 20532-2006《信息处理用现代汉语词类标记规范》、北京大学《现代汉语语料库加工规范》、微软亚洲研究院《中文文本标注规范》、斯坦福CTB树库标注规范等,积累了详细且丰富(目前整理后超过30页)的标注手册,会逐渐更新在项目的wiki里:
- [gitee](https://gitee.com/bihuaibin/envpos/wikis/环境词法标注手册)
- [github](https://github.com/celtics1863/envpos/wikis/环境词法标注手册)
| 词性 | n | vn | r | v | d | a | p | f | q | m | conj | u | xc | w | ord |
| ---- | -------- | ------ | ---- | ---- | ---- | ------ | ---- | ------ | ---- | ---- | ---- | ---- | -------- | ---- | ---- |
| | 普通名词 | 动名词 | 代词 | 动词 | 副词 | 形容词 | 介词 | 方位词 | 量词 | 数词 | 连词 | 助词 | 其他虚词 | 标点 | 序数词 |
| | | | | | | | | | | | | | | | |
| 实体 | time | loc | per | com | org | gov | doc | event | pro | ins | means | meet | code | c |
| ---- | ---- | ---- | ---- | ------ | ---- | ---- | -------- | ----- | ------------------------------ | --------------- | --------------- | ------ | ---- | -------------- |
| | 时间 | 地点 | 人名 | 公司名 | 组织 | 政府 | 文件名称 | 事件 | 工程/
项目/
环境设施 | 设备/
工具 | 方法/
工艺 | 会议名 | 编码 | 其他
专名 |
| | | | | | | | | | | | | | | |
| 术语 | med | phe | pol | microbe | plant | animal | desease | hy | group | act | policy | b | env |
| ---- | -------------- | -------------- | ------ | ------- | ----- | ------ | ------- | ---- | ----- | -------------- | -------------- | ---- | ------------------ |
| | 环境
介质 | 环境
现象 | 污染物 | 微生物 | 植物 | 动物 | 疾病 | 行业 | 群体 | 政策
行动 | 政策
工具 | 属性 | 其他
环境术语 |
| | | | | | | | | | | | | | |
gitee上有镜像项目:
[envpos](https://gitee.com/bihuaibin/envpos)
## 准确率报告
### 1. 总体准确率
使用$F_1$作为评价指标
| 模型 | $F_1$ |
| ---- | ---- |
| envBert | 91.7 |
| envBert-large | 91.0 |
| envAlbert | 85.2 |
| Bert | 89.4 |
| Bert-large | 89.8 |
envBert-Large不如Bert,可能原因是1. envBert-large预训练的时间不如envBert长。2. 大模型容易过拟合,3. 数据集仍然相对比较小,虽然已经有百万字标注语料,但是相对于bert-large模型而言,还是不够。。。
## 一些例子
识别结果截图:

和LAC制作词云对比,envpos可以识别出长词,不会将长词切分为散串

与DDparser结合进行句法分析:

## liscence
Apache 2.0
## TODO List
TODO :
- [x] 上传项目
- [x] 打包至pypi库
- [x] 上传标注文档在wiki里
- [ ] 添加自定义词表功能
- [ ] 针对普通词表中的词采取输出权重抑制策略
- [ ] 针对实体/术语采取贪心识别策略
- [ ] 集成至[envtext](https://github.com/celtics1863/envText)中。