Skip to content
Projects

llm-xiaoye/NER-BAC has 41 GitHub stars and 0 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 21:14 UTC. Last push 2026-11-05.

How these counts are measured

结合 BiLSTM、加性注意力与 CRF 的命名实体识别模型,支持 BIO 标注校验、训练、评估及实体预测。

Measured star growth

in 24h
0
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

NER-BAC:命名实体识别

结合 BiLSTM、加性注意力与 CRF,完成命名实体识别和序列标注。支持使用自有 BIO 标注数据完成校验、训练、评估与预测。

核心功能

  • 使用双向 LSTM 编码序列上下文,通过加性注意力加权词元表示。
  • 使用线性链 CRF 学习标签序列,通过带 BIO 约束的 Viterbi 算法解码。
  • 支持从训练数据推断实体类型,也可在配置中显式定义标签。
  • 提供 BIO 合法性校验、动态批次填充与打包序列处理。
  • 按验证集实体 F1 恢复最佳检查点,报告严格实体级精确率、召回率和 F1。
  • 保存模型、配置、词表与标签,支持独立加载并执行评估和预测。

模型结构

词元输入 → 嵌入表示 → 双向 LSTM → 加性注意力 → 发射分数 → 线性链 CRF → 标签序列。

张量形状、动态填充和标签约束见架构说明。

环境与安装

需要 Python 3.10+。

git clone https://github.com/llm-xiaoye/NER-BAC.git
cd NER-BAC
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .

Windows 环境使用 .venv\Scripts\activate 激活虚拟环境。

数据格式

使用 UTF-8 TSV 文件,每行包含词元与 BIO 标签,以制表符分隔;句子之间用空行分隔:

电	B-EQ
机	I-EQ
发	B-PF
热	I-PF

轴	B-EQ
承	I-EQ
异	B-PF
响	I-PF

实体名称由用户定义。标签使用 O、B-TYPE、I-TYPE,并遵循合法 BIO 转移。完整格式与自有数据接入方式见数据格式及自定义数据集。

使用方式

校验与划分

bac-validate examples/data/train.tsv examples/data/dev.tsv examples/data/test.tsv
bac-split --input data/all.tsv --output-dir data/split --train-ratio 0.8 --dev-ratio 0.1 --test-ratio 0.1 --seed 42

训练

bac-train --config configs/motor_fault_example.yaml --train-file examples/data/train.tsv --dev-file examples/data/dev.tsv --test-file examples/data/test.tsv --output-dir artifacts/example

可将示例路径替换为自己的训练、验证和测试文件。

评估

bac-evaluate --checkpoint artifacts/example --test-file examples/data/test.tsv

预测

bac-predict --checkpoint artifacts/example --text "电机温度过高"

配置与输出

默认从训练文件推断标签,也可在 YAML 中显式配置:

labels:
  - O
  - B-PER
  - I-PER
  - B-ORG
  - I-ORG

标签列表首项为 O。训练目录包含:

artifacts/example/
├── model.pt
├── config.json
├── vocab.json
├── labels.json
├── best_dev_metrics.json
├── metrics.json
└── training_history.json

加载时保持这些文件位于同一目录,评估和预测无需原训练数据。

开发与验证

python -m pip install -e ".[dev]"
pytest

许可证与软件引用

采用 MIT 许可证。软件引用信息见 CITATION.cff。

Explore related projects