transform学习资料
一、NLP:自然语言处理
NLP 是机器学习在语言学领域的研究,专注于理解与人类语言相关的一切。NLP 的目标不仅是要理解每个单独的单词,而且能理解这些单词与之相关联的上下文之间的意思。
常见的NLP 任务列表:
- 对整句的分类:如获取评论的好坏、垃圾邮件的分类,如判断两个句子的逻辑相关性;
- 对句中单词的分类:如单词的语法构成(名词、动词、形容词)、单词的实体命名(人、地点、时间)
- 文本内容的生成:如文章续写、屏蔽词填充;
- 语义提取:给定问题,根据上下文信息提前答案;
- 从提示文本生成新句子:如文本翻译、文本总结;
NLP 并不局限于书面文本,它也能解决语音识别、计算机视觉方方面的问题,如生成音频样本的转录、图像的描述等;
二、Transformer
Hugging Face Hub 社区是最大的Transformer开发者的交流地,里面分享了数千个预训练模型,任何人都可以下载和使用。而Transformers 库提供了创建和使用这些共享模型的功能。
# # 安装
pip install transformers
# # 导入
import transformers
2.1、pipeline() 管道函数
Transformers 库最基本的对象是pipeline()管道函数,它将必要的预处理和后处理连接起来,使我们能直接输入文本并获取对应需求的答案。将文本传递到管道时主要涉及三个步骤:
- 人类可理解的文本被预处理为模型可理解的数据格式;
- 将可理解的数据传递给模型,模型做出预测;
- 模型的预测再经过后处理,输出人类可理解的文本。
情感分析
from transformers import pipeline
classifier = pipeline("sentiment-analysis")
classifier("I've been waiting for a HuggingFace course my whole life.")
# # [{'label': 'POSITIVE', 'score': 0.9598047137260437}]
classifier(["I've been waiting for a HuggingFace course my whole life.", "I hate this so much!"])
## [{'label': 'POSITIVE', 'score': 0.9598047137260437},
## {'label': 'NEGATIVE', 'score': 0.9994558095932007}]
零样本分类
from transformers import pipeline
classifier = pipeline("zero-shot-classification")
classifier("This is a course about the Transformers library",
candidate_labels=["education", "politics", "business"])