5分鐘 NLP :Hugging Face 主要類和函數介紹
來源:Deephub Imba
主要包括Pipeline, Datasets, Metrics, and AutoClasses
HuggingFace是一個非常流行的 NLP 庫。本文包含其主要類和函數的概述以及一些代碼示例。可以作為該庫的一個入門教程 。
Hugging Face 是一個開源庫,用于構建、訓練和部署最先進的 NLP 模型。Hugging Face 提供了兩個主要的庫,用于模型的transformers 和用于數據集的datasets 。可以直接使用 pip 安裝它們。
pip install transformers datasets
Pipeline
使用transformers庫中的Pipeline是開始試驗的最快和最簡單的方法:通過向Pipeline對象提供任務名稱,然后從 Hugging Face 模型存儲庫中自動下載合適的模型,然后就可以使用了!
transformers庫中已經提供了以下的幾個任務,例如:
- 文本分類
- 問答
- 翻譯
- 文本摘要
- 文本生成
除此以外還有計算機視覺和音頻任務(主要也是基于transformer的)下面是一個情緒分析任務的例子。為了預測句子的情緒,只需將句子傳遞給模型。
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
results = classifier("I'm so happy today!")
print(f"{results[0]['label']} with score {results[0]['score']}")
# POSITIVE with score 0.9998742341995239
模型的輸出是一個字典列表,其中每個字典都有一個標簽(對于這個特定示例,值為“POSITIVE”或“NEGATIVE”)和一個分數(即預測標簽的分數)。
可以為分類器提供多個句子,并在一個函數調用中獲得所有結果。
results = classifier(["I'm so happy today!", "I hope you don't hate him..."])
for result in results:
print(f"{result['label']} with score {result['score']}")
# POSITIVE with score 0.9998742341995239
# NEGATIVE with score 0.6760789155960083
也可以通過設置模型名稱的參數指定要使用的模型,所有的模型和關于模型的信息都在官方文檔中提供了,例如下面代碼使用的是twitter-roberta-base-sentiment
classifier = pipeline("sentiment-analysis",
model="cardiffnlp/twitter-roberta-base-sentiment",
tokenizer="cardiffnlp/twitter-roberta-base-sentiment")
# three possible outputs:
# LABEL_0 -> negative
# LABEL_1 -> neutral
# LABEL_2 -> positive
results = classifier(["We are very happy to show you the*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。