【限时免费】 项目实战:用sdgBERT构建一个智能可持续发展目标分类器,只需100行代码!...

项目实战:用sdgBERT构建一个智能可持续发展目标分类器,只需100行代码!

【免费下载链接】sdgBERT 【免费下载链接】sdgBERT 项目地址: https://gitcode.com/mirrors/sadickam/sdgBERT

项目构想:我们要做什么?

在这个项目中,我们将利用开源模型sdgBERT构建一个智能可持续发展目标(SDG)分类器。该应用的功能是:输入一段英文文本,模型会自动判断这段文本与17个可持续发展目标(SDG)中的哪些目标相关,并输出对应的SDG编号和名称。

  • 输入:一段英文文本(例如:"A circular economy is a way of achieving sustainable consumption and production, as well as nature positive outcomes.")。
  • 输出:文本对应的SDG编号和名称(例如:SDG 12 - Responsible Consumption and Production)。

技术选型:为什么是sdgBERT?

sdgBERT是一个基于BERT的文本分类模型,专门用于识别文本与可持续发展目标(SDG)的关联性。以下是选择它的核心原因:

  1. 专为SDG分类优化:sdgBERT是通过对bert-base-uncased模型进行微调得到的,训练数据来源于公开的OSDG社区数据集,能够准确识别文本与SDG的关联性。
  2. 高准确率:模型的准确率达到90%,Matthews相关系数为0.89,表现优异。
  3. 开箱即用:模型已经过微调,无需额外训练,可直接用于分类任务。
  4. 支持多领域文本:训练数据覆盖多个行业和研究领域,适用范围广。

核心实现逻辑

项目的核心逻辑分为以下几步:

  1. 加载模型和分词器:使用transformers库加载预训练的sdgBERT模型和对应的分词器。
  2. 文本预处理:对输入的文本进行分词和编码,生成模型可接受的输入格式。
  3. 模型推理:将编码后的文本输入模型,获取分类结果。
  4. 结果解析:将模型的输出转换为对应的SDG编号和名称。

代码全览与讲解

以下是完整的项目代码,关键部分附有详细注释:

# 导入必要的库
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

# 加载模型和分词器
model_name = "sadickam/sdg-classification-bert"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

# 定义SDG编号与名称的映射
sdg_mapping = {
    0: "No Poverty",
    1: "Zero Hunger",
    2: "Good Health and Well-being",
    3: "Quality Education",
    4: "Gender Equality",
    5: "Clean Water and Sanitation",
    6: "Affordable and Clean Energy",
    7: "Decent Work and Economic Growth",
    8: "Industry, Innovation and Infrastructure",
    9: "Reduced Inequalities",
    10: "Sustainable Cities and Communities",
    11: "Responsible Consumption and Production",
    12: "Climate Action",
    13: "Life Below Water",
    14: "Life On Land",
    15: "Peace, Justice and Strong Institutions"
}

def classify_sdg(text):
    # 对输入文本进行分词和编码
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
    
    # 模型推理
    with torch.no_grad():
        outputs = model(**inputs)
    
    # 获取预测结果
    predicted_class = torch.argmax(outputs.logits, dim=1).item()
    
    # 返回对应的SDG编号和名称
    return predicted_class, sdg_mapping.get(predicted_class, "Unknown")

# 示例使用
text = "A circular economy is a way of achieving sustainable consumption and production, as well as nature positive outcomes."
sdg_number, sdg_name = classify_sdg(text)
print(f"Predicted SDG: SDG {sdg_number} - {sdg_name}")

代码讲解:

  1. 模型加载:使用AutoTokenizerAutoModelForSequenceClassification加载预训练的sdgBERT模型和分词器。
  2. SDG映射:定义了一个字典sdg_mapping,将模型的输出编号映射为对应的SDG名称。
  3. 分类函数classify_sdg函数完成文本的分词、编码、推理和结果解析。
  4. 示例使用:输入一段文本,调用classify_sdg函数并打印结果。

效果展示与功能扩展

效果展示

输入文本:

"A circular economy is a way of achieving sustainable consumption and production, as well as nature positive outcomes."

输出结果:

Predicted SDG: SDG 12 - Responsible Consumption and Production

功能扩展

  1. 多语言支持:目前模型仅支持英文,未来可以扩展为多语言分类器。
  2. 批量处理:优化代码以支持批量文本输入,提高效率。
  3. 可视化界面:使用Streamlit或Gradio构建一个简单的Web界面,方便用户交互。
  4. 自定义训练:如果用户有特定领域的数据,可以进一步微调模型以提高分类准确率。

结语

【免费下载链接】sdgBERT 【免费下载链接】sdgBERT 项目地址: https://gitcode.com/mirrors/sadickam/sdgBERT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值