首页 >科技周边 >人工智能 >用Scikit-llm零射击和少量的文本分类

用Scikit-llm零射击和少量的文本分类

Jennifer Aniston
Jennifer Aniston原创
2025-03-10 11:08:08794浏览

Zero-Shot and Few-Shot Text Classification with SCIKIT-LLM

在传统上,分析客户反馈和识别文本数据中的关键主题是一个费力的过程。 它涉及数据收集,手动标签以及专用模型的微调。 但是,零击文本分类提供了一种简化的方法,利用大型语言模型(LLMS)的力量绕开了对广泛模型培训的需求。本文探讨了如何使用SKLLM库(结合Scikit-Learn和LLMS)简化情感分析,并演示其在Kaggle妇女电子商务服装评论数据集中的应用。

键学习成果

本教程将涵盖:

常规的情感分析工作流程及其局限性。
    用LLMS零摄像的文本分类的原理和好处。
  • SKLLM库的简介及其与Scikit-Learn的集成。
  • 零摄像分类的实际应用在女性电子商务服装评论数据集中。
  • >现实世界中的零摄像分类的实践经验。
  • *本文是***
  • 数据科学blogathon的一部分。

目录的> 什么是零击文本分类?

>

为什么零射击如此高效?

>
    数据集概述
  • >逐步指南
  • 潜在的缺点
  • 少数文本分类
  • 经过思考的文本分类
  • 摘要
  • 常见问题
  • 什么是零击文本分类?
  • >
  • 分析在线零售商收到的大量客户评论对有效的情感分析和主题识别提出了重大挑战。 传统方法涉及:

收集和清洁审核数据。

>手动标记数千个样本(例如,“正”,“负”,“中性”)。 使用此标记的数据进行细微调整专用分类模型。

    这个过程是耗时的和资源密集的。零弹性文本分类提供了一个解决方案:直接使用LLMS无需自定义培训来对文本进行分类。 通过提供描述性标签(例如,“正面”,“负”,“中性”),该模型渗透了正确的类。
  • >
  • 为什么零射击如此高效?
  • >
  • 零拍的效率源于:
    • 消除微调:避免了像GPT-4这样的微调LLM的昂贵过程。 预先训练的LLM可直接使用,提供了立即的高质量分类。
    • >
    • >简单的标签改编:更改标签集(例如,从一般情感到更具体的情感)仅需要更新标签列表;不需要模型再培训。
    • >
    • >降低数据要求:与监督学习不同,零摄像分类只需要描述性标签,使其适用于具有有限或未标记数据的情况。
    • >
    • >>更快的部署:通过跳过数据注释和模型培训,部署大大加速了。>
    数据集概述

    >本教程中使用了Kaggle的女性电子商务服装评论数据集。

    [链接到数据集]

    密钥数据集特性:

    >包含成千上万的有关女装的客户评论。
      >
    • “评论文本”列包含主要文本数据。
    • 其他元数据(“标题”,“评级”,“推荐的IND”等)可用,但对于零摄影分类而不是必不可少。
    • >逐步指南

    >本节详细介绍了如何使用LLMS和SKLLM库进行零摄像分类执行情感分析和主题检测。

    >步骤1:安装和设置

    确保安装Python 3.7并安装SKLLM:

    >获得LLM提供商(例如OpenAI)的有效API密钥,并将其设置在您的环境中:

    pip install scikit-llm

    步骤2:导入库和加载数据

    from skllm.config import SKLLMConfig
    
    # Replace with your OpenAI API key
    SKLLMConfig.set_openai_key("your_openai_api_key")

    >步骤3:定义标签

    import pandas as pd
    from skllm.models.gpt.classification.zero_shot import ZeroShotGPTClassifier
    
    # Load dataset
    df = pd.read_csv("Womens Clothing E-Commerce Reviews.csv")
    
    # Handle missing review texts
    df = df.dropna(subset=["Review Text"]).reset_index(drop=True)
    X = df["Review Text"].tolist()
    用于情感分类,使用:

    。 可以根据需要自定义。

    >

    >步骤4:零射击分类["positive", "negative", "neutral"]

    实例化

    (使用

    或其他合适的模型):

    > ZeroShotGPTClassifier gpt-4o

    表示不需要培训数据;分类器以标签集初始化。
    clf = ZeroShotGPTClassifier(model="gpt-4o")
    clf.fit(None, ["positive", "negative", "neutral"])

    >步骤5:分类评论fit(None, labels)

    这显示了前五个评论及其预测的观点。

    结果比较
    predictions = clf.predict(X)
    
    for review_text, sentiment in zip(X[:5], predictions[:5]):
        print(f"Review: {review_text}")
        print(f"Predicted Sentiment: {sentiment}")
        print("-" * 50)

    传统的ML方法需要标签,模型培训,验证和连续更新。零拍摄可显着降低此开销,从而立即获得结果,而无需标记数据和易于标签的细化。

    潜在的缺点

    • 准确性波动:准确性可以根据文本的复杂性和模型解释特定域行话的能力而有所不同。
    • >
    • 成本注意事项:>使用强大的模型(例如GPT-4)会产生API成本。
    • >
    • 数据隐私:在将数据发送到外部API时,请确保符合数据隐私法规。
    • 少数文本分类
    几乎没有射击分类使用少数标记的示例来指导模型。 SKLLM估计器使用整个培训集来创建几个示例。 对于大型数据集,请考虑将数据分开并使用一个小的培训子集(例如,每个课程不超过10个示例),然后将示例放置为

    经过思考的文本分类

    pip install scikit-llm
    经过思考链分类产生了中间推理步骤,有可能提高准确性,但可以提高令牌使用和成本。

    与基线零射击方法相比,使用少量射击和链链方法进行实验可能会产生更好的结果。

    摘要

    SKLLM库为建立自定义情感分析管道提供了快速有效的替代方案。 零射击分类可以快速分析客户反馈,而无需手动标签或模型培训。 这对于迭代任务和标签扩展尤其有价值。
    from skllm.config import SKLLMConfig
    
    # Replace with your OpenAI API key
    SKLLMConfig.set_openai_key("your_openai_api_key")
    >

    >关键点

    零射击分类简化了无需手动标签或模型培训的情感分析。

    skllm将Scikit-learn与llms集成以进行有效的文本分类。

    像GPT-4这样的LLMS

    LLMS立即提供高质量的分类结果。
      零射击分类是快速,适应性的,并且需要最少的数据。>
    • 常见问题
    • Q1。在零射击,很少射击和经营链之间进行选择:
    • 零射击是快速原型制作和有限数据的理想选择;通过一个小标记的数据集,很少能提高准确性;经过思考链会提高性能,但增加了成本。
    Q2。几次示例的数量:

    建议每班最多10个示例;避免偏见的示例示例。

    Q3。对准确性的影响链的影响:不能保证提高准确性;有效性取决于任务的复杂性和迅速的清晰度。

    Q4。规模上的成本:成本取决于令牌使用,模型选择,及时长度和数据集大小。 经过思考链会增加由于更长的提示而增加的成本。

    >

    注意:>本文中使用的图像不归作者所有,并且随许可使用。>

以上是用Scikit-llm零射击和少量的文本分类的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn