首頁 > 科技週邊 > 人工智慧 > 用Scikit-llm零射擊和少量的文本分類

用Scikit-llm零射擊和少量的文本分類

Jennifer Aniston
發布: 2025-03-10 11:08:08
原創
790 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板