自然语言处理NLP入门 -- 第八节OpenAI GPT 在 NLP 任务中的应用
在前面的学习中,我们已经了解了如何使用一些经典的方法和模型来处理自然语言任务,如文本分类、命名实体识别等。但当我们需要更强的语言生成能力时,往往会求助于更先进的预训练语言模型。OpenAI 旗下的 GPT 系列模型(如 GPT-3、GPT-3.5、GPT-4 等)在生成文本方面拥有强大的表现。它们不仅能进行语言生成,也可用于诸多 NLP 任务,包括文本摘要和情感分析。
本章将重点介绍:
- GPT 的文本生成原理和应用场景。
- 使用 OpenAI API 进行文本摘要与情感分析的示例。
希望你能通过本章的学习,初步掌握如何集成 GPT 模型到你的实际项目中,为后续更复杂的应用打好基础。
1 GPT 生成文本
1.1 GPT 模型简介
- GPT(Generative Pre-trained Transformer) 系列是基于 Transformer 架构预训练的大型语言模型,可以看作一个“通用的文本生成引擎”。
- GPT 擅长生成符合上下文的文本。与传统的机器学习方法相比,GPT 在自然语言理解、生成方面的能力强大得多,因为它曾在海量文本上进行训练,能够捕捉到语言中的语义、上下文信息。
注意: 我们并不需要深入了解 Transformer 的所有数学细节,只要知道它是一种基于自注意力(Self-attention)机制的模型,在学习语句间的依赖关系时非常有效。
1.2 GPT 生成文本的实际应用背景
- 文案或创意写作:快速生成广告文案、短篇故事或营销邮件。
- 教育与辅助写作:帮助学生或作家给出写作思路、段落补全等。
- 对话聊天机器人:GPT 可以与用户进行自然对话,模拟聊天场景。
举个简单例子:假设你运营着一个电商平台,需要在最短时间内产出多种产品描述文案,而让人工逐一撰写费时费力。GPT 就能在几秒钟之内帮你自动生成多份高质量的文案供筛选,大大提升效率。
1.3 使用 Python 调用 OpenAI API 进行文本生成
1.3.1 先决条件
- 安装 OpenAI 库
pip install openai - 获取 API Key
- 在 OpenAI 官方网站 注册账号,进入个人账户后可创建新的 API Key。
- 请注意不要泄露你的 API Key,因为它就像“门钥匙”一样,可以访问你的账户配额。
1.3.2 核心代码示例
import openai# 1. 设置 API Key
openai.api_key = "YOUR_OPENAI_API_KEY"# 2. 构造请求参数
prompt_text = "帮我写一段介绍AI产品的文案,产品主要卖点是节省人力。"# 3. 调用 GPT 模型生成文本
response = openai.chat.completions.create(model="gpt-3.5-turbo",messages=[{"role": "user", "content": prompt_text}],temperature=0.7
)# 4. 获取生成结果
generated_text = response.choices[0].message
print("生成的文案如下:")
print(generated_text.content)
示例输出:
生成的文案如下:
欢迎来到我们的AI产品世界!我们的产品利用最先进的人工智能技术,为您提供高效、智能的解决方案。无论是数据分析、客服服务还是生产流程优化,我们的AI产品都能帮助您节省大量人力资源,提高工作效率。让我们的智能系统为您解放双手,让您的团队更专注于创新和发展,实现更高效的业务运营。选择我们的AI产品,让未来的工作变得更加轻松、高效!赶快体验我们的产品,感受人工智能带来的无限可能吧!
- *model
- *:指定要使用的 GPT 模型,例如
text-davinci-003、gpt-3.5-turbo等,视你的权限和需要而定。 - prompt:输入给模型的提示或指令,建议你在实践中多测试不同的提示方式。
- temperature:从 0 到 1 之间的浮点数,用于调节生成的“随机度”或“创造力”。
**提示:**多尝试改变
prompt、temperature等参数,你会发现 GPT 生成的内容会有不小的差异。
2 使用 OpenAI API 进行文本摘要
2.1 为什么需要文本摘要?
在当今的信息时代,我们每天要接触海量的文本,比如新闻文章、学术论文、会议纪要等。要想快速地抓住要点,文本摘要就是一个有效的解决方案。GPT 模型可以一口气读完大段文本并给出简练的概要,为我们节省大量的时间。
实际应用场景举例
- 新闻聚合平台:将每日热点新闻进行自动摘要,让读者用最短的时间了解核心内容。
- 企业内部文档管理:员工可以对长篇报告、会议记录进行摘要,帮助其他同事快速掌握关键信息。
2.2 代码示例:文本摘要
import openaiopenai.api_key = "YOUR_OPENAI_API_KEY"# 待摘要的长文本
long_text = """
在今天的公司季度会议上,我们讨论了明年的市场战略,以及
如何在竞争激烈的环境中保持产品的创新性。会议结论包括:
1. 增加研发投入
2. 聚焦于核心产品市场
3. 尝试新的数字化营销策略
4. 与更多伙伴建立合作关系
"""# 构造一个摘要请求
prompt_for_summary = f"请为下面的文本生成一个简短的摘要:\n\n{long_text}\n\n摘要:"response = openai.chat.completions.create(model = "gpt-3.5-turbo",messages = [{"role": "user", "content": prompt_for_summary}],temperature = 0.7
)summary_text = response.choices[0].message
print("文本摘要:")
print(summary_text.content)
示例输出:
文本摘要:
在公司季度会议上讨论了明年的市场战略和产品创新,会议结论包括增加研发投入、聚焦核心产品市场、尝试新的数字化营销策略以及与更多伙伴建立合作关系。
- 这里我们将长文本(long_text)通过 prompt 传给 GPT,并让它给出一个“简短的摘要”。
- 也可以在 prompt 中说明更多要求,例如“请用 50 字左右”“请列出关键点”等。越明确的指令通常会带来更准确的结果。
2.3 难点与技巧
- 长度限制:GPT 模型对单次请求的文本长度是有限制的。如果你的文本非常长,需要先做分段处理,再逐步摘要。
- 提示工程(Prompt Engineering):摘要的质量往往取决于 prompt 写得是否清晰。要想要点提炼更到位, prompt 中可以加入具体要求,例如“用 3 条关键点说明”等。
- 温度选择:对于摘要这类比较注重准确性的任务,通常把
temperature调低,比如 0.2 ~ 0.5。否则会出现一些“创造性”但不精准的表达。
3 使用 OpenAI API 进行情感分析
3.1 情感分析的应用背景
- 用户评论监测:许多电商平台会通过情感分析了解产品口碑,以及找出用户在评论中最关心的问题。
- 社交媒体舆情监控:帮助企业或机构快速识别负面情绪的爆发点,及时应对危机。
- 市场调研:自动化地筛选和分析大众对新品发布的态度,为下一步营销策略提供参考。
3.2 GPT 的情感分析流程
GPT 并不像传统的机器学习模型需要训练一个“情感分类器”。它可直接通过 prompt 指令“让 GPT 帮你分辨情感”,它会根据内置的知识来理解文本的语义。相当于“零样本学习(Zero-shot Learning)”,极大地减少了实现成本。
3.3 代码示例:情感分析
import openaiopenai.api_key = "YOUR_OPENAI_API_KEY"test_texts = ["我非常喜欢这款手机,使用体验无可挑剔!","这次的售后服务太糟糕了,让我非常失望!","品质还行吧,但价格稍微有点高。",
]for txt in test_texts:prompt_for_sentiment = f"请判断下面文本的情感倾向(正面、中性、负面),并简要说明原因:\n\n文本:{txt}\n\n输出格式:情感 - 原因"response = openai.chat.completions.create(model = "gpt-3.5-turbo",messages = [{"role": "user", "content": prompt_for_sentiment}],temperature = 0.7)sentiment_result = response.choices[0].message.contentprint(f"原文本: {txt}")print(f"分析结果: {sentiment_result}\n")
示例输出:
原文本: 我非常喜欢这款手机,使用体验无可挑剔!
分析结果: 情感 - 正面。因为作者表示非常喜欢这款手机,使用体验无可挑剔,表明他对手机的评价是积极的。原文本: 这次的售后服务太糟糕了,让我非常失望!
分析结果: 情感 - 负面。原因是因为文本中表达了对售后服务的不满和失望。原文本: 品质还行吧,但价格稍微有点高。
分析结果: 中性 - 文本中提到产品的品质还行,这是一个中性评价,但同时也指出价格稍微有点高,这可能会让消费者感到不太满意,因此整体情感是中性的。
重点:相比传统的分类器,需要先拿到大量的正负样本并训练模型,GPT 的好处在于无需额外训练,就能对情感进行分类分析。
4 小结与难点汇总
-
文本生成:
- 难点在于 prompt 的设计和对生成质量的把控。
- 对于长度较长或者定制化的需求,可以采用多轮 prompt 或者 fine-tuning(微调)策略。
-
文本摘要:
- 精度依赖 prompt 的清晰度和具体性。
- 文本过长时,可能需要分段总结后再做合并。
-
情感分析:
- GPT 等大模型在面临通用情感分析时,已经有了很好的表现。
- 对于 专业领域(如医疗、法律等),可能需要额外的领域数据或特定的指令。
5 课后练习
-
文本生成加固
- 使用不同的场景或角色来生成短篇故事。例如,“请以科幻的风格,写一个关于宇航员登陆火星的简短故事”。
- 比较在不同
temperature参数下,生成故事的差异,并做简单的分析。
-
摘要任务进阶
- 尝试对一篇较长的新闻报道分段处理,再分别做摘要,然后将所有子摘要综合起来形成一个总的摘要。
-
情感分析的自定义标签
- 将情感分析不仅限定在“正面、中性、负面”,还可加入“愤怒”、“兴奋”之类的子分类。尝试编写 prompt,让 GPT 帮你做更多维度的情感标注,并观察准确性。
-
思考题:Prompt Engineering
- 试着在 prompt 中给 GPT 更多“上下文信息”或更详细的指令。观察 GPT 的结果是否更符合需求。
- 如果结果不尽如人意,该如何迭代优化 prompt?
练习题示例及解析
- 示例题目:为一款线上语言学习APP写3条不同风格的推广文案,并做简短的情感分析。
- 示例解析:这是结合你之前所学的文本生成+情感分析,将生成和分析结合到一起。
- 思考提示:如何在 prompt 中一次性对 GPT 提出多个要求(既要生成文案,又要分析情感)?这涉及到多功能 prompt 设计。
6 结语
恭喜你走到这里!我们见识了 GPT 在自然语言生成方面的强大能力,也看到了它在摘要和情感分析等任务上的直接应用。和传统的 NLP 方法不同,GPT 的出现让我们可以用更少的训练和数据准备,获得更好的结果。这就意味着做 NLP 项目不会再被海量标注数据所束缚,门槛相对降低,也给更多人带来创造灵感。
在接下来的学习或工作中,希望你能多花一些时间进行Prompt Engineering,因为写得越好的指令,就能激发出 GPT 越强的潜力。同时,也别忘了关注相关的隐私与安全问题。至此,我们的 GPT 专题内容就告一段落了,期待你在后续章节里继续探索更高阶或更专业的 NLP 应用!
本章总结:
- GPT 是一个强大的文本生成和理解模型,在多种 NLP 任务(文本生成、摘要、情感分析等)都有亮眼表现。
- OpenAI API 的调用方式并不复杂,核心在于编写好的 prompt 。
- 对于不同行业或需求,prompt engineering 是成败的关键。
- 当面对长文本或定制化场景时,需要通过分段处理或微调等方式来增强效果。
希望你能通过本章的示例和练习,真正动手试一试。加油!
相关文章:
自然语言处理NLP入门 -- 第八节OpenAI GPT 在 NLP 任务中的应用
在前面的学习中,我们已经了解了如何使用一些经典的方法和模型来处理自然语言任务,如文本分类、命名实体识别等。但当我们需要更强的语言生成能力时,往往会求助于更先进的预训练语言模型。OpenAI 旗下的 GPT 系列模型(如 GPT-3、GP…...
HTML:自闭合标签简单介绍
1. 什么是自结束标签? 定义:自结束标签(Self-closing Tag)是指 不需要单独结束标签 的 HTML 标签,它们通过自身的语法结构闭合。语法形式: 在 HTML5 中:直接写作 <tag>,例如 …...
智能家居遥控革命!昂瑞微HS6621EM:用「芯」定义AIoT时代的语音交互标杆
AIoT爆发期,遥控器为何成为智能家居的「隐形战场」? 随着Meta、苹果等巨头加速布局空间计算,智能家居生态正从「单一设备联网」向「全场景无感交互」跃迁。作为高频使用的入口设备,语音遥控器的性能直接决定用户体验天花板。昂瑞微…...
AI学习第七天
数组:基础概念、存储特性及力扣实战应用 在计算机科学与数学的广袤领域中,数组作为一种极为重要的数据结构,发挥着不可或缺的作用。它就像一个有序的 “数据仓库”,能高效地存储和管理大量数据。接下来,让我们深入了解…...
Grafana使用日志7--开启Sigv4
背景 在Grafana中,有些data source是需要开启sigv4认证的,例如OpenSearch,这个配置项默认是关闭的,这里我们介绍一下怎么开启 步骤 传统方式 如果我们想在Grafana中开启sigv4认证,我们需要在grafana.ini中修改一个…...
【Redis】Redis 入门
借鉴枫枫知道 一、连接 redis 1.1 命令行连接 // 完整的命令 redis-cli -h 127.0.0.1 -p 6379 -a password// 简写 redis-cli// 认证,进行redis之后 auth password1.2 go 代码连接 package mainimport ("fmt""github.com/go-redis/redis" …...
一文了解:部署 Deepseek 各版本的硬件要求
很多朋友在咨询关于 DeepSeek 模型部署所需硬件资源的需求,最近自己实践了一部分,部分信息是通过各渠道收集整理,so 仅供参考。 言归正转,大家都知道,DeepSeek 模型的性能在很大程度上取决于它运行的硬件。我们先看一下…...
15.14 QLoRA量化低秩适配微调:华盛顿大学的显存优化革命
QLoRA量化低秩适配微调:华盛顿大学的显存优化革命 一、技术架构解析 #mermaid-svg-Rkx3w3RQJ1e7odbb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Rkx3w3RQJ1e7odbb .error-icon{fill:#552222;}#mermaid-svg-Rk…...
软件工程复试专业课-能力成熟度模型CMM
CMM CMM概念CMM的核心CMM来由CMM的目的成熟度等级初始级可重复级已定义级已管理级优化级 CMM概念 即能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 CMM是改进软件过程的有效策略。它的基本思想是࿰…...
Dify使用和入门
第一步:了解 Dify 在开始之前,先简单了解一下 Dify 是什么: Dify 是一个开源的 LLM 应用开发平台,专注于帮助开发者快速构建生产级的生成式 AI 应用。它支持知识库集成、RAG(检索增强生成)技术、复杂工作…...
Mercury、LLaDA 扩散大语言模型
LLaDA 参考: https://github.com/ML-GSAI/LLaDA https://ml-gsai.github.io/LLaDA-demo/ 在线demo: https://huggingface.co/spaces/multimodalart/LLaDA Mercury 在线demo: https://chat.inceptionlabs.ai/ 速度很快生成...
Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(十二)
API 更改 ADS 功能增加了以下公共 API 功能: 枚举系统中的多路复用器设备。查询有关多路复用器的信息,例如,它连接了哪些目标,以及当前切换到哪个目标。触发多路复用器切换。如何检测多路复用器是否已切换。 枚举系统中的多路复…...
Windows环境下SuperMapGIS 11i 使用达梦数据库
1. 环境介绍: 1.1. 操作系统: windows server 2019 1.2. GIS 软件: 1.2.1. GIS 桌面 supermap-idesktopx-11.3.0-windows-x64-bin 下载链接:SuperMap技术资源中心|为您提供全面的在线技术服务 安装教程:绿色版&…...
Claude 3.7 Sonnet深度解析:混合推理模型如何重塑AI编程能力
引言 2025年2月25日,人工智能领域领先企业Anthropic正式发布了新一代大语言模型Claude 3.7 Sonnet。作为全球首个混合推理AI模型,Claude 3.7 Sonnet在编程开发、逻辑推理以及任务处理效率等方面实现了突破性进展。本文将从核心特性、性能评测、竞品对比…...
IP属地是通过卫星定位的吗?如何保护用户隐私
在数字时代,网络空间成为了人们日常生活不可或缺的一部分。随着社交媒体、在线服务等平台的兴起,用户IP属地信息的重要性日益凸显。然而,关于IP属地是如何确定的,尤其是是否通过卫星定位这一问题,却常常引发公众的疑问…...
金融赋能绍兴纺织 民生银行助力外贸中小微企业“走出去”
在浙江绍兴,纺织业作为一张熠熠生辉的产业名片,承载着深厚的历史底蕴与蓬勃的发展活力。这里依傍长三角经济圈,交通网络纵横交错,将原材料产地与广阔市场紧密相连;产业集群高度成熟,上下游产业链完备&#…...
标记符号“<”和“>”符号被称为“尖括号”或“角括号”
你提到的“<”和“>”符号被称为“尖括号”或“角括号”。它们常用于编程语言中表示类型参数(如泛型)、HTML标签(如<div>)、数学中的不等式(如< 5)等。 好的,我来用通俗的方式解…...
一键部署DeepSeek
腾讯Cloud Studio提供DeepSeek一键部署功能,0行代码,秒级部署使用! 重点是每月免费提供10000分钟! 不用等待模型下载,创建即可使用。 内置 Ollama、DeepSeek-R1 1.5B、7B、8B、14B 及 32B 模型。 热门模板 AI模板 前…...
科普:ROC AUC与PR AUC
在评价二分类模型性能时,有许多评价指标,其中,有一对是用面积AUC(Area Under the Curve)做评价的:ROC AUC与PR AUC 本文我们对ROC AUC与PR AUC进行多维度对比分析: 一、定义与核心原理 维度RO…...
自动化测试无法启动(java.net.SocketException)
在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行 这个有两种原因(我使用的是谷歌浏览器): 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动 浏览器版本…...
大白话解释xxl-job是什么 有什么用 怎么用
XXL-JOB是什么? XXL-JOB就像快递公司的“总调度中心”,专门帮你的程序在不同服务器之间协调和执行定时任务。比如你有个电商系统,每天凌晨要统计订单数据、每小时要发促销短信,这些定时任务交给XXL-JOB来统一管理,它能…...
STM32G473VET6 在 Keil MDK 下手动移植 FreeRTOS 指南
下面将详细介绍如何在 Keil MDK 环境下将 FreeRTOS 手动移植到 STM32G473VET6 微控制器上。内容涵盖工程创建、获取源码、文件组织、移植层适配、测试任务编写以及编译调试等步骤。 1. 工程搭建(Keil 项目创建) 创建基础工程:首先准备一个基…...
WPF中对滚动条进行平滑滚动
有时候我们在动态添加内容时,需要将滚动条滚动到指定内容处。 一般我们会调用ScrollViewer的ScrollToVerticalOffset(垂直方向)函数和ScrollToHorizontalOffset(水平方向)函数来控制滚动条滚动到指定位置。 正常滚动效…...
API,URL,Token,XML,JSON是干嘛的
API,URL,Token,XML,JSON是干嘛的 API的作用 API(Application Programming Interface,应用程序编程接口)是一组定义和协议,用于构建和交互软件应用程序。API允许不同的软件系统之间…...
Threejs 解析几何体提取顶点数据流程
目录 前言 原生WebGL 整体解析过程简介 顶点颜色属性Geometry.colors Geometry转化为BufferGeometry 相关函数 WebGLAttributes.js WebGLGeometries.js WebGLObjects.js WebGLRenderer.js WebGLRenderer.js 前言 解析几何体对象,提取顶点数据…...
浮动与清除浮动
浮动(float)是CSS中用于布局的重要属性,它使元素脱离正常的文档流,并向左或向右移动,直到碰到另一个浮动元素或父元素的边界。 浮动的定义和作用 定义:浮动是通过设置 float 属性使元素脱离正常的文档流&a…...
YOLOv5 + SE注意力机制:提升目标检测性能的实践
一、引言 目标检测是计算机视觉领域的一个重要任务,广泛应用于自动驾驶、安防监控、工业检测等领域。YOLOv5作为YOLO系列的最新版本,以其高效性和准确性在实际应用中表现出色。然而,随着应用场景的复杂化,传统的卷积神经网络在处…...
极简Redis速成学习
redis是什么? 是一种以键值对形式存储的数据库,特点是基于内存存储,读写快,性能高,常用于缓存、消息队列等应用情境 redis的五种数据类型是什么? 分别是String、Hash、List、Set和Zset(操作命…...
教育培训APP开发全攻略:从网校系统源码搭建到功能优化的技术方案
本篇文章,笔者将从网校系统源码搭建到功能优化的角度,全面解析教育培训APP的开发技术方案,帮助企业和开发者更好地理解如何提升在线教育平台的性能与用户体验。 一、教育培训APP开发的核心架构 教育培训APP的架构设计是其能否顺利运行和扩展…...
网络安全与认知安全的区别 网络和安全的关系
前言 说说信息安全 与网络安全 的关系 一、包含和被包含的关系 信息安全包括网络安全,信息安全还包括操作系统安全,数据库安全 ,硬件设备和设施安全,物理安全,人员安全,软件开发,应用安全等。…...
