5分鐘 NLP :Hugging Face 主要類和函數(shù)介紹
來源:Deephub Imba
主要包括Pipeline, Datasets, Metrics, and AutoClasses
HuggingFace是一個(gè)非常流行的 NLP 庫。本文包含其主要類和函數(shù)的概述以及一些代碼示例??梢宰鳛樵搸斓囊粋€(gè)入門教程 。
Hugging Face 是一個(gè)開源庫,用于構(gòu)建、訓(xùn)練和部署最先進(jìn)的 NLP 模型。Hugging Face 提供了兩個(gè)主要的庫,用于模型的transformers 和用于數(shù)據(jù)集的datasets ??梢灾苯邮褂?pip 安裝它們。
pip install transformers datasets
Pipeline
使用transformers庫中的Pipeline是開始試驗(yàn)的最快和最簡(jiǎn)單的方法:通過向Pipeline對(duì)象提供任務(wù)名稱,然后從 Hugging Face 模型存儲(chǔ)庫中自動(dòng)下載合適的模型,然后就可以使用了!
transformers庫中已經(jīng)提供了以下的幾個(gè)任務(wù),例如:
- 文本分類
- 問答
- 翻譯
- 文本摘要
- 文本生成
除此以外還有計(jì)算機(jī)視覺和音頻任務(wù)(主要也是基于transformer的)下面是一個(gè)情緒分析任務(wù)的例子。為了預(yù)測(cè)句子的情緒,只需將句子傳遞給模型。
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
模型的輸出是一個(gè)字典列表,其中每個(gè)字典都有一個(gè)標(biāo)簽(對(duì)于這個(gè)特定示例,值為“POSITIVE”或“NEGATIVE”)和一個(gè)分?jǐn)?shù)(即預(yù)測(cè)標(biāo)簽的分?jǐn)?shù))。
可以為分類器提供多個(gè)句子,并在一個(gè)函數(shù)調(diào)用中獲得所有結(jié)果。
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
也可以通過設(shè)置模型名稱的參數(shù)指定要使用的模型,所有的模型和關(guān)于模型的信息都在官方文檔中提供了,例如下面代碼使用的是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*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。