transformer库是huggingface发布的1个框架,非常好用,很多外行看起来高大上的问题,用它都可以轻松解决,先来看1个小例子:

 一、情感分析

from transformers import pipeline
classifier = pipeline('sentiment-analysis')
classifier('you are beautiful')

这简单的三行代码,就能分析出"you are beautiful" 这句话的情感,是积极正向的(即:好话),还是消极负面(即:坏话)。顺利的话,会看到类似下面的输出:

[{'label': 'POSITIVE', 'score': 0.9998794794082642}] 表明这是一句好话,score可以理解为可信度,0.9998即99.98%。另外注意到首次使用 sentiment-analysis 这个分类器时,会从huggingface下载依赖的模型。

万事开头难,如果你第1个示例就跑不通,出现下面的错误:

多半是transformers版本太低。可以用

import transformers
transformers.__version__

看看当前版本,如果是2.1.1就表示太低了,可另开1个终端输入:

pip install --upgrade transformers -i https://pypi.tuna.tsinghua.edu.cn/simple

将其升级至最新版本。

from transformers import pipeline
print(transformers.__version__)
classifier = pipeline('sentiment-analysis')
classifier('you are beautiful')

这次对了,如下图:

但是有一行警告文字 :

No model was supplied, defaulted to distilbert-base-uncased-finetuned-sst-2-english and revision af0f99b (https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english).
Using a pipeline without specifying a model name and revision in production is not recommended.

这个的意思是说,没有指定具体的模型,所以情感分析默认使用了https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english这个模型,建议指定1个具体的模型。

from transformers import pipeline
print(transformers.__version__)
model_id="distilbert-base-uncased-finetuned-sst-2-english"
classifier = pipeline('sentiment-analysis',model=model_id)
classifier('you are beautiful')

警告就被消除了。默认的模型对中文支持并不好,可以到HuggingFace上搜索"sentiment chinese",参考下图:

可以看到很多模型,我们选下载量排行第1的这个(下图)

复制名称(参考下图)

试一下:

from transformers import pipeline
model_id="hw2942/bert-base-chinese-finetuning-financial-news-sentiment-v2"
classifier = pipeline('sentiment-analysis',model=model_id)
classifier(['这是什么鬼天气!','你可真棒!','看你那脸,拉得跟驴似的!','今天手气真差,又他妈输了!'])

模型首次使用会先下载,然后输出分析结果,可以看到,总体还算靠谱,但也有不太合理的,比如:“这是什么鬼天气!”,“看你那脸,拉得跟驴似的!” ,这二句明显是负面情绪,会被标为“中性”,所以效果好不好,主要还得看模型本身的质量。不过总体来讲,这比先前默认的英文模型,还是要强一些,来看看对比:

二、0样本分类

from transformers import pipeline
classifier = pipeline("zero-shot-classification")
classifier(
"This is a course about the Transformers library",
candidate_labels=["education", "politics", "business"],
)

效果:给一段话和几个候选标签,让代码分析每个标签匹配的可信度。以上面的例子来说,最接近education(教育)

三、文本生成

from transformers import pipeline
generator = pipeline("text-generation",model="distilgpt2")
generator("once upon a time", max_length=30,num_return_sequences=2)

简单说,就是起个头,让它自己接着编

  

四、填空

from transformers import pipeline
unmasker = pipeline("fill-mask",model="distilroberta-base")
unmasker("I love sweet foods,such as <mask>.", top_k=2)

<mask>部分将由算法自动填充

五、阅读理解(提取答案)

from transformers import pipeline

question_answerer = pipeline("question-answering")
question_answerer(
question="Is it raining today?",
context="In the evening, a large cloud drifted in the distance, and soon it began to rain"
)

大致效果就是给它一段话,然后提问,让它从这段话中把跟答案相关的内容找出来。

六、翻译 

汉译英

from transformers import pipeline
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-zh-en")
translator("今天是周四,我要吃肯德基。")

英译汉

from transformers import pipeline
translator= pipeline("translation", model="Helsinki-NLP/opus-mt-en-zh")
translator("It's Thursday. I'm gonna eat Kentucky Fried Chicken.")

七、生成摘要

from transformers import pipeline
summarizer = pipeline("summarization",model="sshleifer/distilbart-cnn-12-6")
summarizer("""Speaking a language is a skill, like driving a car, playing a musical instrument or learning to swim.
To be a good driver, you need to practise driving. You can read a book about car mechanics. You can study the rules of the road.
But nothing is as good for your driving as spending time behind the wheel of a car, actually driving.
It's the same with speaking English. No matter how much you study grammar and vocabulary, if you don't practise spoken communication, it's very difficult to get good at it.
So maybe you talk to yourself in English as you go about your day. Or maybe you look for opportunities to chat in English with people you meet.
But however you do it, the most powerful way to improve your English speaking skills is to use them. """,max_length=100)

全民AI计划:快来尝试你的第一个AI程序 (baidu.com)

2 Transformers pipeline 使用 (zhihu.com)

transformers/README_zh-hans.md at main · huggingface/transformers (github.com)

transformer小白入门的更多相关文章

  1. Web前端小白入门指迷

    前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...

  2. 【Unity游戏开发】SDK接入与集成——小白入门篇

    一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...

  3. React Native小白入门学习路径——五

    React Native小白入门学习路径--五 序 "哦天呐!" 这句话成了我在实验室的口头禅, 老师可能觉得我们都是大神吧,都还在看着基础就给布置了那么多任务:写一个RN的TDD ...

  4. DeepFaceLab小白入门(4):提取人脸图片!

    通过上面级片文章,你应该基本知道了换脸的流出,也能换出一个视频来.此时,你可能会产生好多疑问,比如每个环节点点到底是什么意思,那些黑漆漆屏幕输出的又是什么内容,我换脸效果这么差,该如何提升?等等,好奇 ...

  5. gitlab版本管理小白入门

    在新公司入职已经一周了,由于刚好在版本空档期,没有什么开发任务,就自己熟悉熟悉代码什么的. 目前公司用的是git,原来公司用的是svn,今天就记录下从小白入门. gitlab分布式版本管理,理论介绍就 ...

  6. Ruby小白入门笔记之<个人记录档>

    书写缘由 快两年的JAVA开发,因为来到一家新公司,产品需要用Ruby开发,故此才有了这从头开始,一入编程深似海啊...... 因为入门时是JAVA,所以理念跟规范早已形成,故此感觉突然采用Ruby编 ...

  7. Vizceral小白入门

    Vizceral小白入门 接到一个任务,要求将N个program可视化,能一目了然查看当前爬虫状态.记得之前做测试时,一个queue service前端可视化效果不错,经询问是用vizceral开源框 ...

  8. Python爬虫小白入门(一)写在前面

    一.前言 你是不是在为想收集数据而不知道如何收集而着急? 你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼? Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式, ...

  9. Linux运维完全小白入门指南

    前几天整理了一下自己入门时候搜集的资料,一边整理一边回忆. 那时候我还是个小白,用虚拟机装了个CentOS系统来玩,但是总也装不上,在论坛上求助也没人理.半天终于有个人说在某网站看过这个问题,我又找了 ...

  10. 零基础小白入门IT开发指南

    先自我介绍以下,本人是一枚刚毕业不到两年的某一线城市的程序员,本科阶段专业是计算机科学与技术.从大四开始出去实习到现在的编码经验也有快2年半了,两年半的时间包括实习在内任职过有4家公司,包括一家互联网 ...

随机推荐

  1. 使用离线部署32B模型实现OpenDeepWiki项目代码自动分析与文档生成

    背景介绍 在企业环境中,我们经常需要对公司项目代码进行分析和文档生成.然而,考虑到代码的保密性,将代码上传至公共AI平台存在安全隐患.为解决这一问题,我们可以在公司内部GPU服务器上部署强大的大语言模 ...

  2. MFC单文档应用程序引入GDI+

    在MFC中引入GDI+,步骤如下: 1.在需要用到GDI+的文件中添加GDI+文件 1 #include <gdiplus.h> 2 using namespace Gdiplus; 2. ...

  3. C#中无法将文件”obj\debug\XXX.dll复制到“bin\Debug\XXX.dll” 拒绝访问

    较为方便有效的方法就是,把项目属性中的"应用程序集"的"程序集名称"修改为另一个名称即可.

  4. ✨生物大语言模型Evo2——解码基因密码的AI革命🚀

    2025:生物AI的"DeepSeek时刻" 当整个中文互联网为国产大语言模型DeepSeek欢呼时,生命科学界正悄然掀起一场静默革命--由Arc Institute领衔,斯坦福. ...

  5. 使用Vditor将Markdown文档渲染成网页(Vite+JS+Vditor)

    1. 引言 编写Markdown文档现在可以说是程序员的必备技能了,因为Markdown很好地实现了内容与排版分离,可以让程序员更专注于内容的创作.现在很多技术文档,博客发布甚至AI文字输出的内容都是 ...

  6. manim边做边学--显函数图像

    在Manim库中,FunctionGraph类是一个核心组件,专门用于在坐标系中绘制函数图像. FunctionGraph的主要作用是将数学函数以直观的图形形式展示出来,使得复杂的数学概念更加容易理解 ...

  7. 洛谷 P5066 [Ynoi2014] 人人本着正义之名

    洛谷 P5066 [Ynoi2014] 人人本着正义之名 Problem 对一个01序列进行以下\(m\)个操作: 区间覆盖为0 区间覆盖为1 将区间\([l,r-1]\)中的数\(a_i\)同时变为 ...

  8. 记一道有趣的交互题 noi.ac #2035歪比巴卜

    记一道有趣的交互题 noi.ac #2035歪比巴卜 Problem Alice手上有两个\(\le n\)且不同的正整数\(x,y\),Bob手上有一个正整数\(z\),已经确认是\(x\)或\(y ...

  9. 「Log」2023.8.28 小记

    序幕 七点多到校,整理博客,开了一篇新做题记录. 整理一下学过知识点,准备阶段复习. 八点整开始打模拟赛,接下来算游记. T1 是个静态区间第 \(k\) 小板子,纯主席树被空间卡掉了,打了 \(60 ...

  10. Docker安装运行报错wsl问题排查方案

    Docker运行报错wsl问题排查方案 在window中安装运行Docker Desktop时容易遇到有关wsl的报错问题,这里给出几个排查解决的方法用于记录. 排查步骤如下: 一.开启虚拟化问题 1 ...