纺织品领域分词模型 README
1. 模型概述
本模型基于StructBERT/BERT架构针对纺织品领域文本进行专项微调,实现对纺织品相关专业术语、规格参数、工艺名称等文本的高精度分词。模型采用BIES(Begin/Inside/End/Single)标签体系完成序列标注任务,最终输出符合纺织品行业特征的分词结果。
2. 模型训练信息
2.1 训练完成情况
- 训练批次:532/532(完整训练)
- 最终训练损失:0.0558
- 验证平均损失:0.0285
- 学习率:0(训练末期已降至最低)
- 模型保存路径:
./finetuned_textile_modelscope(ModelScope格式)
2.2 训练环境说明
- 模型基座:StructBERT/BERT(注:加载时存在模型类型匹配警告,不影响推理效果)
- 序列长度:512
- 训练框架:ModelScope + Transformers
3. 模型效果评估
3.1 训练集效果(532个样本)
- BIES标签匹配率:98.79%(2129/2155)
- 分词结果一致率:98.68%(525/532)
3.2 验证集效果(107个样本)
- BIES标签匹配率:99.53%(425/427)
- 分词结果一致率:100.00%(107/107)
3.3 典型样本效果
| 输入文本 | 分词结果 | 标签预测 | 结果一致性 |
|---|---|---|---|
| 织物抗起毛起球仪 | ['织物抗起毛起球仪'] | BIIIIIIE | ✅ 一致 |
| 60支纯棉贡缎床品 | ['60支', '纯棉', '贡缎', '床品'] | BIEBEBEBE | ✅ 准确 |
| 抗静电半衰期≤2s | ['抗静电半衰期≤2s'] | BIIIIIIIE | ✅ 一致 |
| 远红外整理 | ['远红外整理'] | BIIIE | ✅ 一致 |
4. 模型使用方法
4.1 依赖安装
pip install modelscope transformers torch
4.2 ModelScope Pipeline 推理
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
# 加载微调后的模型
text_segmentation_pipeline = pipeline(
task=Tasks.token_classification,
model='./finetuned_textile_modelscope',
sequence_length=512
)
# 单文本测试
test_text = "60支纯棉贡缎床品"
result = text_segmentation_pipeline(test_text)
# 解析分词结果
segments = []
current_segment = ""
for item in result:
if item['label'] == 'B': # 开始
if current_segment:
segments.append(current_segment)
current_segment = item['token']
elif item['label'] == 'I': # 中间
current_segment += item['token']
elif item['label'] == 'E': # 结束
current_segment += item['token']
segments.append(current_segment)
current_segment = ""
print("分词结果:", segments) # 输出:['60支', '纯棉', '贡缎', '床品']
4.3 Transformers 原生推理
from transformers import AutoTokenizer, AutoModelForTokenClassification
import torch
# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained('./finetuned_textile_modelscope')
model = AutoModelForTokenClassification.from_pretrained('./finetuned_textile_modelscope')
# 测试文本处理
test_text = "60支纯棉贡缎床品"
inputs = tokenizer(test_text, return_tensors="pt", padding=True, truncation=True, max_length=512)
# 模型推理
with torch.no_grad():
outputs = model(**inputs)
# 解析预测标签
predictions = torch.argmax(outputs.logits, dim=2)
labels = [model.config.id2label[id] for id in predictions[0].tolist() if id != -100]
labels = labels[1:-1] # 去除CLS和SEP标签
# 生成分词结果
segments = []
current_segment = ""
for char, label in zip(test_text, labels):
if label == 'B':
if current_segment:
segments.append(current_segment)
current_segment = char
elif label == 'I':
current_segment += char
elif label == 'E':
current_segment += char
segments.append(current_segment)
current_segment = ""
print("BIES标签:", "".join(labels)) # 输出:BIEBEBEBE
print("分词结果:", segments) # 输出:['60支', '纯棉', '贡缎', '床品']
5. 注意事项
- 模型加载时会出现
No preprocessor field found in cfg等警告,属于ModelScope配置文件缺失提示,不影响模型推理功能; - 出现
You are using a model of type bert to instantiate a model of type structbert警告,是因为模型基座与加载逻辑的类型映射问题,无需处理; - 模型仅针对纺织品领域文本优化,非纺织品领域文本分词效果可能下降;
- 输入文本长度建议不超过512个字符,超出部分会被截断。
6. 模型适用场景
- 纺织品电商标题分词
- 纺织品工艺文档解析
- 纺织行业数据标注
- 纺织品规格参数提取
总结
- 本模型是针对纺织品领域优化的高精度分词模型,训练集/验证集分词准确率分别达98.68%/100%,标签匹配率达98.79%/99.53%;
- 支持ModelScope Pipeline和Transformers两种推理方式,可直接加载
./finetuned_textile_modelscope目录下的模型文件使用; - 模型加载时的警告不影响实际推理效果,主要适用于纺织品领域的文本分词任务。