返回模型
说明文档
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
- task:
type: token-classification
name: Token Classification
dataset:
type: custom
name: Plant NER Dataset
metrics:
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