主要包括Pipeline, Datasets, Metrics, and AutoClasses
HuggingFace是一个非常流行的 NLP 库。本文包含其主要类和函数的概述以及一些代码示例。可以作为该库的一个入门教程 。
Hugging Face 是一个开源库,用于构建、训练和部署最先进的 NLP 模型。Hugging Face 提供了两个主要的库,用于模型的transformers 和用于数据集的datasets 。可以直接使用 pip 安装它们。
代码语言:javascript复制pip install transformers datasets
Pipeline
使用transformers库中的Pipeline是开始试验的最快和最简单的方法:通过向Pipeline对象提供任务名称,然后从 Hugging Face 模型存储库中自动下载合适的模型,然后就可以使用了!
transformers库中已经提供了以下的几个任务,例如:
- 文本分类
- 问答
- 翻译
- 文本摘要
- 文本生成
除此以外还有计算机视觉和音频任务(主要也是基于transformer的)
下面是一个情绪分析任务的例子。为了预测句子的情绪,只需将句子传递给模型。
代码语言:javascript复制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”)和一个分数(即预测标签的分数)。
可以为分类器提供多个句子,并在一个函数调用中获得所有结果。
代码语言:javascript复制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
代码语言:javascript复制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