成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Hugging Face Transformer檢測文本中的情緒 原創

發布于 2024-8-28 08:16
瀏覽
0收藏

本文介紹了如何利用Hugging Face預訓練語言模型對推文隱藏的情緒進行分類。

Hugging Face上有各種基于Transformer的語言模型,專門用于處理語言理解和語言生成任務,包括但不限于:

  • 文本分類
  • 命名實體識別(NER)
  • 文本生成
  • 問題回答
  • 摘要
  • 翻譯

文本分類任務的一個特殊又很常見的案例是情緒分析,其目的是識別給定文本的情緒。“最簡單”的一類情緒分析語言模型經過訓練后,確定輸入文本(比如客戶對產品的評價)是積極的還是消極的,或者是積極的、消極的還是中立的。這兩個具體問題分別被表述為二元分類任務或多類分類任務。

還有一些語言模型雖然仍可以歸為情緒分析模型,但經過訓練后,可以將文本分類為幾種情緒,比如憤怒、快樂和悲傷等。

這篇基于Python的教程側重于加載和闡明使用一個Hugging Face預訓練模型來分類與輸入文本相關的主要情緒。我們將使用在Hugging Face中心上公開可用的情緒數據集。這個數據集含有成千上萬條用英語寫的推文消息。

加載數據集

我們將運行以下指令,加載情緒數據集中的訓練數據:

!pip install datasets
from datasets import load_dataset
all_data = load_dataset("jeffnyman/emotions")
train_data = all_data["train"]

下面是train_data變量中訓練子集所包含內容的摘要:

Dataset({
features: ['text', 'label'],
num_rows: 16000
})

情緒數據集中的訓練內容含有16000個與推文消息相關的實例。每個實例有兩個特征:一個輸入特征含有實際的消息文本,一個輸出特征或標簽含有其相關的情緒(用數字標識符標識)。

0:悲傷

1:快樂

2:喜愛

3:憤怒

4:恐懼

5:驚喜

比如說,訓練內容中的第一個標記實例被歸類為“悲傷”情緒:

train_data [0]

輸出:

{'text': 'i didnt feel humiliated', 'label': 0}

加載語言模型

一旦我們加載了數據,下一步就是從Hugging Face加載一個合適的預訓練語言模型,用于我們的目標情緒檢測任務。使用Hugging Face的Transformer庫加載和使用語言模型有兩種主要方法:

  • 管道提供了一個非常高的抽象級別,可以準備加載語言模型,并立即對其執行推理,只需很少的代碼行,不過代價是幾乎沒什么可配置性。
  • 自動類提供了較低層次的抽象,需要更多的編碼技能,但在調整模型參數以及定制文本預處理步驟(如標記化)方面提供了更大的靈活性。

為了方便起見,本教程側重于使用管道來加載模型。管道要求起碼指定語言任務的類型,并指定要加載的模型名(可選)。由于情緒檢測是文本分類問題的一種非常特殊的形式,因此在加載模型時使用的任務參數應該是“text-classification”。

from transformers import pipeline
classifier = pipeline("text-classification", 
model="j-hartmann/emotion-english-distilroberta-base")

另一方面,強烈建議用“model”參數指定Hugging Face中心中一個特定模型的名稱,該模型能夠解決我們的特定情緒檢測任務。否則,默認情況下,我們可能會為這個特定的6類分類問題加載一個沒有經過數據訓練的文本分類模型。

你可能會問自己:“我怎么知道使用哪個模型名稱?”。答案很簡單:在Hugging Face網站上搜索一番,找到合適的模型,或者根據特定數據集(比如情緒數據)訓練的模型。

下一步是開始進行預測。管道使得這個推理過程非常簡單,只需要調用我們新實例化的管道變量,并將輸入文本作為參數來傳遞:

example_tweet = "I love hugging face transformers!"
prediction = classifier(example_tweet)
print(prediction)

結果,我們得到一個預測標簽和一個置信度分數:這個分數越接近1,所做的預測就越“可靠”。

[{'label': 'joy', 'score': 0.9825918674468994}]

所以,我們的輸入例子“I love hugging face transformers!”明確地傳達了一種喜悅的情緒。

你可以將多個輸入文本傳遞給管道以同時執行幾個預測,如下所示:

example_tweets = ["I love hugging face transformers!", "I really like coffee 
but it's too bitter..."]
prediction = classifier(example_tweets)
print(prediction)

這個例子中的第二個輸入對于模型執行自信分類更具挑戰性:

[{'label': 'joy', 'score': 0.9825918674468994}, {'label': 'sadness', 'score': 
0.38266682624816895}]

最后,我們還可以從數據集傳遞一批實例,比如之前加載的“情緒”數據。這個例子將前10個訓練輸入傳遞給我們的語言模型管道,對它們的情緒進行分類,然后輸出一個含有每個預測標簽的列表,將他們的置信度分數放在一邊:

train_batch = train_data[:10]["text"]
predictions = classifier(train_batch)
labels = [x['label'] for x in predictions]
print(labels)

輸出:

['sadness', 'sadness', 'anger', 'joy', 'anger', 'sadness', 'surprise', 
'fear', 'joy', 'joy']

為了比較,下面是這10個訓練實例的原始標簽:

print(train_data[:10]["label"])

輸出:

[0, 0, 3, 2, 3, 0, 5, 4, 1, 2]

如果觀察每個數字標識符所關聯的情緒,我們可以看到,10個預測中有7個與這10個實例的實際標簽相匹配。

你已知道如何使用Hugging Face transformer模型來檢測文本情緒,何不探究預訓練的語言模型可以提供幫助的其他用例和語言任務呢?

原文標題:Using Hugging Face Transformers for Emotion Detection in Text,作者:Iván Palomares Carrascosa

鏈接:https://www.kdnuggets.com/using-hugging-face-transformers-for-emotion-detection-in-text。

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2024-8-28 10:58:34修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 国产在线一区二区 | 91精品久久久久久久99 | 91精品在线播放 | 天天干天天插天天 | 国产探花 | 日韩aⅴ在线观看 | 亚洲精品无人区 | 天堂视频中文在线 | 欧美精品在线播放 | 男人天堂99 | 国内自拍偷拍 | 国产99久久| 在线免费观看日本 | 国产精品成人一区 | 99久久日韩精品免费热麻豆美女 | 久久99视频精品 | 欧美性网 | 久久不卡视频 | 美女福利网站 | 国产日韩一区二区三区 | 成人妇女免费播放久久久 | 亚洲人人| 免费视频一区二区 | 国产精品久久久久久网站 | 亚洲成人久久久 | 欧美成人一区二区三区 | 久久99精品国产 | 亚洲日韩视频 | 特级丰满少妇一级aaaa爱毛片 | 黄色网址在线播放 | 日韩精品久久久久久 | 日韩在线观看中文字幕 | 成人在线免费视频观看 | 国产综合久久久久久鬼色 | 欧美理伦片在线播放 | 国产在线视频在线观看 | 亚洲欧美精品在线 | 国产精品久久久久久久久久妇女 | 操人网| 欧美视频一区 | 中文字幕一区二区三区精彩视频 |