ONNX 模型库
返回模型

说明文档


language: en license: mit library_name: transformers tags:

  • token-classification
  • ner
  • plants
  • botany
  • roberta
  • biology
  • horticulture datasets:
  • custom widget:
  • text: "I have a Rosa damascena and some Quercus alba trees in my garden." example_title: "Scientific plant names"
  • text: "My hibiscus and pachypodium plants need watering." example_title: "Common plant names"
  • text: "The beautiful roses are blooming next to the oak tree." example_title: "Mixed plant references" pipeline_tag: token-classification model-index:
  • name: roberta-plant-ner results:
    • task: type: token-classification name: Token Classification dataset: type: custom name: Plant NER Dataset metrics:
      • type: f1 value: 0.92 name: F1 Score
      • type: precision value: 0.90 name: Precision
      • type: recall value: 0.94 name: Recall

RoBERTa 植物命名实体识别

模型描述

本模型是基于 FacebookAI/roberta-base 针对植物命名实体识别进行微调的版本。它可以识别文本中的植物名称并将其分为两类:

  • PLANT_COMMON:植物的俗名(如 "rose"、"hibiscus"、"oak tree")
  • PLANT_SCI:植物的学名/植物学名称(如 "Rosa damascena"、"Quercus alba")

预期用途与限制

预期用途

  • 植物学文本分析:从研究论文、文章和文档中提取植物提及
  • 园艺应用:识别园艺指南、论坛和养护说明中提到的植物
  • 农业文本处理:解析农业文档和报告
  • 教育工具:辅助植物学和园艺学教育
  • 内容管理:自动标记和分类植物相关内容

限制

  • 主要在英文文本上训练
  • 对稀有或高度专业化的植物物种可能准确率较低
  • 在非正式文本、社交媒体或大量缩写的内容上表现可能有所差异
  • 无法区分活体植物和植物制品(如 "rose oil")

训练数据

该模型在包含以下内容的自定义数据集上训练:

  • 植物学文献和研究论文
  • 园艺指南和植物养护说明
  • 农业文档
  • 园艺数据库
  • 植物识别指南

数据格式:采用全词分词的 CoNLL 风格 IOB2 标注 训练样本:数千条包含植物引用的标注句子

训练过程

训练超参数

  • 基础模型:FacebookAI/roberta-base
  • 训练框架:Hugging Face Transformers
  • 分词方式:RoBERTa 分词器,带全词对齐
  • 标签编码:IOB2(Inside-Outside-Begin)格式
  • 序列长度:最大 512 个 token
  • 批次大小:针对训练效率优化
  • 学习率:带预热的自适应学习率
  • 训练轮数:多轮训练,带早停机制

标签模式

O              # 不在任何植物实体内
B-PLANT_COMMON # 植物俗名的起始
I-PLANT_COMMON # 植物俗名的内部/延续
B-PLANT_SCI    # 植物学名的起始
I-PLANT_SCI    # 植物学名的内部/延续

训练特性

  • 全词分词:确保正确处理植物名称
  • B-I-O 验证:自动纠正无效的标签序列
  • 类别平衡:加权采样以平衡实体类型
  • 数据增强:合成样本以提高鲁棒性

评估结果

该模型在植物实体识别方面表现出色:

指标 整体 PLANT_COMMON PLANT_SCI
精确率 0.90 0.88 0.92
召回率 0.94 0.96 0.91
F1 分数 0.92 0.92 0.91

性能说明

  • 植物俗名的召回率极佳(0.96)
  • 学名的精确率很高(0.92)
  • 在不同文本类型上表现稳健

使用方法

快速开始

from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline

# 加载模型和分词器
model_name = "Dudeman523/roberta-plant-ner"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTokenClassification.from_pretrained(model_name)

# 创建流水线
ner_pipeline = pipeline(
    "token-classification", 
    model=model, 
    tokenizer=tokenizer,
    aggregation_strategy="simple"
)

# 提取植物实体
text = "I love my Rosa damascena roses and the old oak tree in my garden."
entities = ner_pipeline(text)

for entity in entities:
    print(f"Plant: {entity['word']} | Type: {entity['entity_group']} | Confidence: {entity['score']:.2f}")

高级用法

from transformers import AutoTokenizer, AutoModelForTokenClassification
import torch

# 加载模型
tokenizer = AutoTokenizer.from_pretrained("Dudeman523/roberta-plant-ner")
model = AutoModelForTokenClassification.from_pretrained("Dudeman523/roberta-plant-ner")

# 分词输入
text = "The Pachypodium lamerei succulent needs minimal watering."
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)

# 获取预测结果
with torch.no_grad():
    outputs = model(**inputs)
    predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)

# 处理结果
tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])
predicted_labels = torch.argmax(predictions, dim=-1)[0]

for token, label_id in zip(tokens, predicted_labels):
    label = model.config.id2label[label_id.item()]
    if label != "O":
        print(f"Token: {token} | Label: {label}")

批量处理

# 高效处理多个文本
texts = [
    "My hibiscus is blooming beautifully this spring.",
    "Quercus alba and Acer saccharum are common in this forest.",
    "I need care instructions for my Rosa damascena plant."
]

# 批量预测
results = ner_pipeline(texts)

for i, (text, entities) in enumerate(zip(texts, results)):
    print(f"\nText {i+1}: {text}")
    for entity in entities:
        print(f"  🌱 {entity['word']} ({entity['entity_group']}) - {entity['score']:.2f}")

模型架构

  • 基础架构:RoBERTa(稳健优化的 BERT 预训练方法)
  • 参数量:约 1.25 亿参数
  • 层数:12 个 Transformer 层
  • 隐藏层大小:768
  • 注意力头数:12
  • 词表大小:50,265 个 token
  • 分类头:用于 5 类 token 分类的线性层

伦理考量

偏见与公平性

  • 模型可能反映训练数据中存在的地理和文化偏见
  • 可能对某些地区或文化的植物代表性不足
  • 对常见栽培植物的表现可能优于野生或稀有物种

环境影响

  • 训练计算成本:中等(仅微调)
  • 推理效率:针对生产环境优化
  • 碳足迹:相比基础模型的增量影响极小

技术规格

  • 输入:最长 512 个 token 的文本序列
  • 输出:带置信度分数的 token 级别分类
  • 推理速度:约 100-500 文本/秒(取决于硬件)
  • 内存需求:推理约需 500MB RAM
  • 支持的格式:原始文本、分词后的输入

引用

如果您在研究中使用此模型,请引用:

@misc{roberta-plant-ner,
  title={RoBERTa Plant Named Entity Recognition Model},
  author={Dudeman523},
  year={2024},
  publisher={Hugging Face},
  url={https://huggingface.co/Dudeman523/roberta-plant-ner}
}

联系方式

如有问题、议题或合作机会,请在模型仓库提交 issue 或联系模型作者。


模型版本:1.0 最后更新:2024 年 12 月 框架兼容性:transformers >= 4.21.0

Dudeman523/RoBERTa_ner_plant_names_onnx

作者 Dudeman523

↓ 1 ♥ 0

创建时间: 2025-05-26 17:27:01+00:00

更新时间: 2025-05-29 12:49:13+00:00

在 Hugging Face 上查看

文件 (10)

.gitattributes
README.md
config.json
merges.txt
onnx/model.onnx ONNX
onnx/model_quantized.onnx ONNX
special_tokens_map.json
tokenizer.json
tokenizer_config.json
vocab.json