当前位置:首页 > AI > 正文内容

Transformers 结构 Pipeline 使命详解:文本分类(text-classification 或 sentiment-analysis)

邻居的猫1个月前 (12-09)AI663

在自然言语处理(NLP)范畴,Text-Classification(文本分类)是一项非常重要的使命,它涉及到将文本数据分配到预界说的类别中。凭借 Transformers 结构的 Pipeline API,咱们能够轻松地运用预练习模型进行文本分类,而无需深化了解杂乱的模型结构和算法。老牛同学将经过本文具体介绍 Transformers 结构中的text-classification使命,包括使命描绘、运用场景、示例代码以及具体的实战事例。

Hugging Face使命介绍

1. 使命简介

文本分类是指依据给定的文本内容,将其归类到一个或多个预界说的类别中的进程。例如:

  • 情感剖析:判别一段文本的情感倾向,如正面、负面或中性。
  • 垃圾邮件检测:辨认一封电子邮件是否为垃圾邮件。
  • 主题分类:确认一篇文章归于哪个主题,如科技、体育、文娱等。

文本分类的中心思维是经过机器学习模型从很多标示好的文本数据中学习特征,并依据这些特征对新的文本进行分类。具体过程如下:

  1. 数据预备:搜集并标示很多的文本数据,每个文本都对应一个类别标签。
  2. 特征提取:将文本转换为模型能够了解的数值表明,通常是经过分词、向量化等办法。
  3. 模型练习:运用标示好的数据练习一个分类模型,模型会学习怎么依据输入的文本特征猜测正确的类别。
  4. 模型推理:关于新的未见过的文本,模型会依据学到的特征进行分类猜测。

依据 Hugging Face 官网的数据,当时已有超越74,737个文本分类模型供挑选,包括了多种言语和运用场景:

Hugging Face模型列表

2. 运用场景

文本分类技能广泛运用于各个范畴,以下是几个典型的运用场景:

  • 情感剖析:情感剖析能够协助企业了解用户对产品或服务的心情。例如,电商渠道能够经过剖析用户谈论来判别产品的受欢迎程度,交际媒体渠道能够监控用户的言论动态,乃至政府机构能够评价大众对方针的观点。

  • 垃圾邮件检测:垃圾邮件检测是文本分类的一个经典运用。经过练习模型辨认垃圾邮件的特征,体系能够主动过滤掉不必要的邮件,维护用户的邮箱免受打扰。

  • 主题分类:新闻网站或博客渠道能够运用文本分类技能主动为文章打上标签,协助用户更快找到感兴趣的内容。例如,一篇关于人工智能的文章能够被主动分类到“科技”类别,而一篇关于足球比赛的文章则会被分类到“体育”类别。

  • 客服体系:智能客服体系能够经过文本分类技能主动辨认用户的目的,供给相应的协助。例如,当用户问询某个产品的价格时,体系能够主动将问题分类为“出售咨询”,并供给相关的产品信息。

  • 医疗确诊:在医疗范畴,文本分类能够用于剖析病历记载,协助医师快速定位患者的病况。例如,经过对病历中的症状描绘进行分类,体系能够提示医师或许的疾病类型,辅佐确诊进程。

3. 使命装备

在 Transformers 结构中,text-classificationsentiment-analysis都是文本分类使命的不同称号。虽然两者在 Pipeline 装备中有别号联系,但在实际运用时没有差异,结构终究一致运用text-classification作为使命称号。

咱们能够在 Transformers 结构的源代码中看到以下装备(源代码文件:./transformers/pipelines/__init__.py):

TASK_ALIASES = {
    "sentiment-analysis": "text-classification",
    # 其他省掉......
}

SUPPORTED_TASKS = {
    # 其他省掉......

    "text-classification": {
        "impl": TextClassificationPipeline,
        "tf": (TFAutoModelForSequenceClassification,) if is_tf_available() else (),
        "pt": (AutoModelForSequenceClassification,) if is_torch_available() else (),
        "default": {
            "model": {
                "pt": ("distilbert-base-uncased-finetuned-sst-2-english", "714eb0f"),
                "tf": ("distilbert-base-uncased-finetuned-sst-2-english", "714eb0f"),
            },
        },
        "type": "text",
    },

    # 其他省掉......
}

从上面的装备能够看出,Transformers 结构默许运用的是distilbert-base-uncased-finetuned-sst-2-english模型,这是一个在 Stanford Sentiment Treebank (SST-2) 数据集上微调过的 DistilBERT 模型,专门用于英文情感分类使命。该模型是 Hugging Face 上下载量最大的文本分类模型之一,具有较高的精确性和功率。

4. 文本分类实战

首要,保证装置了 Transformers 库和其他必要的依靠包:

pip install transformers torch

办法一:主动下载模型

咱们能够直接从 Hugging Face 下载模型。如果您的网络环境答应,能够直接下载;不然,能够经过设置镜像来加快下载进程:

import os

# 设置署理
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"

# 设置本地缓存目录
cache_dir = os.path.join('D:', os.path.sep, 'ModelSpace', 'Cache')
os.environ['HF_HOME'] = cache_dir

from transformers import pipeline

# 创立Pipeline使命
nlp = pipeline("text-classification", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english")

# 履行文本分类使命
result = nlp("I like Transformers.")
print(result)  # 输出:[{'label': 'POSITIVE', 'score': 0.9973547458648682}]

result = nlp("I don't like overtime.")
print(result)  # 输出:[{'label': 'NEGATIVE', 'score': 0.9958478212356567}]

Pipeline 使命的输出成果将类似于以下格局:

[{'label': 'POSITIVE', 'score': 0.9876}]

其间,label表明分类成果,score表明模型对该分类的决心分数,范围在 0 到 1 之间,值越挨近 1 表明模型越坚信该分类是正确的。

运转上述代码后,咱们能够得到比较精确的成果:喜爱归于正面(POSITIVE)心情,不喜爱归于负面(NEGATIVE)心情。

办法二:自主下载模型

如果您期望经过本地模型文件进行推理,能够依照以下过程操作。实际上,与主动下载比较,仅有的差异是指定分词器和模型即可。假定咱们下载的模型目录是/models/pipeline,则用法如下:

from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
import os

# 下载模型目录
model_dir = '/models/pipeline'

# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_dir, local_files_only=True)
model = AutoModelForSequenceClassification.from_pretrained(model_dir, torch_dtype="auto", device_map="auto", local_files_only=True, num_labels=2)

# 创立Pipeline使命
nlp = pipeline("text-classification", tokenizer=tokenizer, model=model)

# 后续用法与主动下载相同

咱们能够看到,使命的输出成果,和主动下载是相同的。

4. WebUI 页面

经过 Gradio,咱们能够轻松地为 Transformers 结构中的text-classification使命创立一个可视化的 WebUI 界面,用户能够经过浏览器输入文本并实时取得分类成果。

首要,咱们需求装置依靠包:

pip install gradio

接下来,咱们开端创立 Web 页面,咱们能够复用 Pipeline 实例:

import sys

# 直接复用Pipeline实例
sys.path.append("./")
pipeline = __import__("02-text-classification")

import gradio as gr


# 界说分类函数
def classify_text(text):
    # 运用Pipeline进行分类
    result = pipeline.nlp(text)

    # 提取分类标签和置信度
    label = result[0]['label']
    score = result[0]['score']

    # 回来格局化后的成果
    return f"分类成果: {label}, 置信度: {score:.4f}"


# 创立Gradio界面
with gr.Blocks() as demo:
    gr.Markdown("# 文本分类器")
    gr.Markdown(
        "这是一个根据Transformers结构的情感剖析东西。您能够输入恣意文本,点击“提交”按钮后,体系将主动判别其情感倾向(正面或负面)。")

    with gr.Row():
        input_text = gr.Textbox(placeholder="请输入要分类的文本...", label="输入文本")

    with gr.Row():
        submit_button = gr.Button("提交")

    with gr.Row():
        output_label = gr.Label(label="分类成果")

    # 设置按钮点击事情,触发分类函数
    submit_button.click(classify_text, inputs=input_text, outputs=output_label)

# 发动Gradio运用
if __name__ == "__main__":
    demo.launch()

运转上述代码,咱们能够看到 URL 信息:

* Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

经过浏览器翻开地址,就能够经过可视化的办法进行文本分类了:

WebUI界面

5. 总结

本文具体介绍了 Transformers 结构中的text-classification使命,包括了使命描绘、运用场景、示例代码以及具体的实战事例。经过运用 Transformers 的 Pipeline API,咱们能够轻松地完成文本分类使命,而无需深化了解杂乱的模型结构和算法。无论是情感剖析、垃圾邮件检测仍是主题分类,Transformers 结构都能供给强壮的支撑,协助您快速构建高效的文字处理体系。

老牛同学将持续推出更多关于 Transformers 结构 Pipeline 使命的文章,敬请期待!我们若有任何问题或主张,欢迎在谈论区留言沟通!

Transformers 结构 Pipeline 使命


Pipeline使命:

Transformers 结构使命概览:从零开端把握 Pipeline(管道)与 Task(使命)

Transformers结构 Pipeline 使命详解:文本转音频(text-to-audio或text-to-speech)

往期引荐文章:

深化解析 Transformers 结构(一):包和目标加载中的规划巧思与实用技巧

深化解析 Transformers 结构(二):AutoModel 初始化及 Qwen2.5 模型加载全流程

深化解析 Transformers 结构(三):Qwen2.5 大模型的 AutoTokenizer 技能细节

深化解析 Transformers 结构(四):Qwen2.5/GPT 分词流程与 BPE 分词算法技能细节详解

根据 Qwen2.5-Coder 模型和 CrewAI 多智能体结构,完成智能编程体系的实战教程

vLLM CPU 和 GPU 形式署和推理 Qwen2 等大言语模型具体教程

根据 Qwen2/Lllama3 等大模型,布置团队私有化 RAG 知识库体系的具体教程(Docker+AnythingLLM)

运用 Llama3/Qwen2 等开源大模型,布置团队私有化 Code Copilot 和运用教程

根据 Qwen2 大模型微调技能具体教程(LoRA 参数高效微谐和 SwanLab 可视化监控)

ChatTTS 长音频组成和本地布置 2 种办法,让你的“儿童绘本”发声的实战教程

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=349

分享给朋友:

“Transformers 结构 Pipeline 使命详解:文本分类(text-classification 或 sentiment-analysis)” 的相关文章

ai综合作业,教育变革的新趋势

ai综合作业,教育变革的新趋势

1. HIX Tutor: 这是一款值得信赖的AI问答系统,可以解决任何科目的作业。从基础算术到高级微积分,再到物理、化学、生物学等,HIX Tutor都能提供详细的解决方案和分步指南。你只需输入问题或上传文档、图片即可获得帮助。2. Asksia AI家庭作业助手: Asksia的AI...

机器学习的发展,机器学习的发展概述

机器学习的发展,机器学习的发展概述

1. 深度学习的兴起:深度学习是机器学习的一个子领域,它使用多层神经网络来处理和学习数据。近年来,深度学习在图像识别、语音识别、自然语言处理等领域取得了突破性进展。2. 强化学习的应用:强化学习是一种让计算机通过与环境交互来学习最优行为的机器学习方法。它在游戏、机器人控制和自动驾驶汽车等领域有广泛应...

什么是机器学习方法,什么是机器学习方法?

什么是机器学习方法,什么是机器学习方法?

机器学习方法是指通过计算机算法,使计算机能够从数据中学习并做出决策或预测的技术。这些方法可以自动地从数据中提取知识,并根据这些知识做出预测或决策,而不需要人类进行显式的编程。机器学习方法通常可以分为以下几类:4. 强化学习(Reinforcement Learning):通过让计算机在与环境交互的过...

机器学习感知算法,机器学习感知算法概述

机器学习感知算法,机器学习感知算法概述

机器学习感知算法,通常指的是一种用于模式识别和分类的算法。它通过从训练数据中学习,来识别和分类新的数据。这种算法的核心思想是模仿人脑的感知过程,即通过感知器(Perceptron)来对输入数据进行处理,并输出相应的分类结果。感知器是一种简单的二分类线性模型,它由输入层、一个或多个隐藏层以及输出层组成...

ai综合售卖机,未来零售的智能触角

ai综合售卖机,未来零售的智能触角

AI综合售卖机是一种结合了人工智能技术的自动售货机,旨在提供更加智能、便捷的购物体验。以下是关于AI综合售卖机的一些关键信息:1. 主要功能: 智能库存管理:AI综合售卖机可以实时监控商品库存,当某商品即将售罄时,系统会自动发出预警信号,便于及时补货。 动态定价:系统可以根据库存情况和市...

机器学习人工智能,未来科技发展的核心驱动力

机器学习人工智能,未来科技发展的核心驱动力

机器学习是人工智能的一个分支,它使计算机系统能够通过数据学习并改进其性能,而无需明确编程。机器学习算法能够从数据中识别模式,并使用这些模式来做出预测或决策。这些算法通常分为三类:监督学习、无监督学习和强化学习。强化学习:在这种学习方式中,算法通过与环境的交互来学习。算法会尝试不同的行动,并根据这些行...