finetuned_textile_modelscope

86 downloads 0 likes on ModelScope updated

Model card

纺织品领域分词模型 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. 注意事项

  1. 模型加载时会出现No preprocessor field found in cfg等警告,属于ModelScope配置文件缺失提示,不影响模型推理功能;
  2. 出现You are using a model of type bert to instantiate a model of type structbert警告,是因为模型基座与加载逻辑的类型映射问题,无需处理;
  3. 模型仅针对纺织品领域文本优化,非纺织品领域文本分词效果可能下降;
  4. 输入文本长度建议不超过512个字符,超出部分会被截断。

6. 模型适用场景

  • 纺织品电商标题分词
  • 纺织品工艺文档解析
  • 纺织行业数据标注
  • 纺织品规格参数提取

总结

  1. 本模型是针对纺织品领域优化的高精度分词模型,训练集/验证集分词准确率分别达98.68%/100%,标签匹配率达98.79%/99.53%;
  2. 支持ModelScope Pipeline和Transformers两种推理方式,可直接加载./finetuned_textile_modelscope目录下的模型文件使用;
  3. 模型加载时的警告不影响实际推理效果,主要适用于纺织品领域的文本分词任务。