4.7 KiB
4.7 KiB
涉毒风险监测数据处理系统
从文本和图片中识别化学品 CAS 号、关键词,并进行多模态风险分析。
快速开始
# 安装依赖
pip install pandas openpyxl
# 进入脚本目录
cd scripts/
# 关键词匹配
python3 keyword_matcher.py
# 图片识别(模拟模式,无需 API)
python3 image_batch_recognizer.py --mock --limit 5
功能 1:关键词匹配
从文本中识别 CAS 号和关键词。
两种匹配模式:
- CAS 号识别:正则提取并标准化为
XXX-XX-X格式 - 精确匹配:匹配中文名、英文名、简称等
基本用法
cd scripts/
# 默认运行两种模式
python3 keyword_matcher.py
# 仅 CAS 号识别
python3 keyword_matcher.py -m cas
# 仅精确匹配
python3 keyword_matcher.py -m exact
# 自定义文件路径
python3 keyword_matcher.py \
-k ../data/input/keyword_all.xlsx \
-t ../data/input/clickin_text_img.xlsx \
-o ../data/output/results.xlsx
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
-k, --keywords |
关键词文件 | ../data/input/keywords.xlsx |
-t, --text |
文本文件 | ../data/input/clickin_text_img.xlsx |
-o, --output |
输出文件 | ../data/output/keyword_matched_results.xlsx |
-c, --text-column |
文本列名 | 文本 |
-m, --modes |
匹配模式 | cas exact |
--separator |
关键词分隔符 | ||| |
输出说明
每种模式生成独立文件:
keyword_matched_results_cas.xlsx- CAS 号匹配结果keyword_matched_results_exact.xlsx- 精确匹配结果
输出列:
匹配到的关键词- 匹配的关键词列表匹配模式- 使用的匹配模式
功能 2:图片批量识别
调用大模型 API 识别图片中的文字、物品和风险信息。
基本用法
cd scripts/
# 模拟模式(无需 API,用于测试)
python3 image_batch_recognizer.py --mock --limit 5
# 使用 OpenAI API
python3 image_batch_recognizer.py --api-type openai --limit 10
# 使用 DMX API
python3 image_batch_recognizer.py --api-type dmx --limit 10
# 并行处理
python3 image_batch_recognizer.py --api-type openai --max-workers 3
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
--image-dir |
图片目录 | ../data/images |
--output |
输出文件 | ../data/output/image_recognition_results.xlsx |
--api-type |
API 类型 | 从 .env 读取 |
--model |
模型名称 | 从 .env 读取 |
--limit |
最大处理数 | 无限制 |
--offset |
跳过前 N 张 | 0 |
--max-workers |
并行线程数 | 1 |
--mock |
模拟模式 | 否 |
--recursive |
递归子目录 | 否 |
API 配置
复制 .env 配置文件并填写:
cp config.env.example .env
.env 示例:
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini
DMX_API_KEY=sk-dmx-...
DMX_BASE_URL=https://www.dmxapi.cn
DMX_MODEL=gpt-5-mini
LLM_API_TYPE=openai
输出说明
输出 Excel 包含以下列:
detected_text- 识别的文字detected_objects- 物品描述sensitive_items- 敏感要素summary- 风险摘要confidence- 置信度
目录结构
20251126_s2/
├── scripts/
│ ├── keyword_matcher.py # 关键词匹配
│ ├── image_batch_recognizer.py # 图片识别
│ ├── run.sh # 批处理管理
│ └── run_batch_background.sh # 后台运行
├── data/
│ ├── input/ # 输入数据
│ │ ├── clickin_text_img.xlsx # 文本数据
│ │ └── keywords.xlsx # 关键词库
│ ├── output/ # 输出结果
│ └── images/ # 图片文件
├── .env # API 配置
└── config.env.example # 配置模板
批处理管理
使用 run.sh 管理后台任务:
cd scripts/
./run.sh start # 启动任务
./run.sh stop # 停止任务
./run.sh status # 查看状态
./run.sh log # 实时日志
设置参数:
API_TYPE=openai MAX_WORKERS=3 ./run.sh start
依赖安装
# 必需
pip install pandas openpyxl
# 可选(提升性能)
pip install pyahocorasick # 关键词匹配加速
pip install tqdm # 进度条
pip install requests # HTTP 请求
常见问题
Q: 如何提升匹配速度?
安装 pyahocorasick,精确模式自动使用 Aho-Corasick 算法加速。
Q: 没有 API Key 能测试吗?
使用 --mock 参数运行模拟模式。
Q: 输出的分隔符能改吗?
使用 --separator 参数,默认 ||| 不与化学名称冲突。
技术支持
- Python 3.7+
- 查看帮助:
python3 script.py -h