大型语言模(LLM) 之 提示词工程(三)

news2024/11/25 20:24:46

今天我学习了DeepLearning.AI的 Prompt Engineering 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。以下是我写的关于该课程的前两篇博客:

大型语言模(LLM)之提示词工程(一)

大型语言模(LLM)之提示词工程(二)

今天我们来学习第三部分内容:推断(Inferring)

推断(Inferring)

所谓推断是指ChatGPT能够从一段文本中推断出作者的情绪,比如:高兴,快乐,正面,负面等。。。

首先我们需要设置通过API来访问ChatGPT的主要代码:

import openai

openai.api_key ='YOUR_OPENAI_API_KEY'

def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=0,
    )
    return response.choices[0].message["content"]

商品评论文本

下面我们给ChatGPT提供一段消费者对某电商网站商品的评论,我们希望ChatGPT能够从这段评论中推断出消费者的情绪,由于原始评论是英文的,我将其翻译的中文也罗列出来,这样可以便于大家理解:

lamp_review = """
Needed a nice lamp for my bedroom, and this one had \
additional storage and not too high of a price point. \
Got it fast.  The string to our lamp broke during the \
transit and the company happily sent over a new one. \
Came within a few days as well. It was easy to put \
together.  I had a missing part, so I contacted their \
support and they very quickly got me the missing piece! \
Lumina seems to me to be a great company that cares \
about their customers and products!!
"""


lamp_review1="""
我的卧室需要一盏漂亮的灯,这盏有额外的存储空间,价格也不太高。速度很快。
我们的灯的绳子在运输过程中断了,公司很高兴地给我们送来了一根新的。几天之内就来了。
很容易组装起来。我有一个缺失的部分,所以我联系了他们的支持,他们很快就给我找到了缺失的部分!
在我看来,Lumina是一家关心客户和产品的伟大公司!!
"""

情绪识别(正面/负面)

下面我们要让ChatGPT针对上面英文的商品评论识别出消费者的情绪是怎么样的.

prompt = f"""
What is the sentiment of the following product review, 
which is delimited with triple backticks?

Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

 

 结果ChatGP能正确识别出这段评论的情绪是正面的。下面我们只让ChatGPT用一个词语来识别评论的情绪:

prompt = f"""
What is the sentiment of the following product review, 
which is delimited with triple backticks?

Give your answer as a single word, either "positive" \
or "negative".

Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

 识别情绪类型

下面我们让ChatGPT用最多5个词语来识别评论的情绪:

prompt = f"""
Identify a list of emotions that the writer of the \
following review is expressing. Include no more than \
five items in the list. Format your answer as a list of \
lower-case words separated by commas.

Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

 

 从上面的ChatGPT的回答可知,ChatGPT用了5个正面的词语来表达消费者的情绪,这5个词语显然是正确的。

识别愤怒

下面我们让ChatGPT识别商品评论是否是“愤怒”的情绪 

prompt = f"""
Is the writer of the following review expressing anger?\
The review is delimited with triple backticks. \
Give your answer as either yes or no.

Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

显然,ChatGPT能正确识别出这段评论没有表达出作者的愤怒情绪。

从客户评论中抽取商品和公司名称

 下面我们要让ChatGPT从商品评论中抽取商品的名称和公司的名称,并以JSON格式返回结果。

prompt = f"""
Identify the following items from the review text: 
- Item purchased by reviewer
- Company that made the item

The review is delimited with triple backticks. \
Format your response as a JSON object with \
"Item" and "Brand" as the keys. 
If the information isn't present, use "unknown" \
as the value.
Make your response as short as possible.
  
Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

 

 ChatGPT能够正确的安装我们指定的格式来返回商品和公司的名称。

同时做多项任务

接下来我们要让ChatGPT同时做以下几个任务:

  1. 情绪识别(正面或者负面)
  2. 愤怒情绪识别(是或否)
  3. 商品识别
  4. 公司识别

并以JSON格式返回结果:

prompt = f"""
Identify the following items from the review text: 
- Sentiment (positive or negative)
- Is the reviewer expressing anger? (true or false)
- Item purchased by reviewer
- Company that made the item

The review is delimited with triple backticks. \
Format your response as a JSON object with \
"Sentiment", "Anger", "Item" and "Brand" as the keys.
If the information isn't present, use "unknown" \
as the value.
Make your response as short as possible.
Format the Anger value as a boolean.

Review text: '''{lamp_review}'''
"""
response = get_completion(prompt)
print(response)

 

从返回的结果看ChatGPT能按照我们的要求返回正确的结果。 

 推断主题

 下面我们给ChatGPT一共一段文本关于政府对公共部门满意度调查的内容,我们希望ChatGPT能从这段文本中总结出5个相关的主题词,或者说是文章的标题。

story = """
In a recent survey conducted by the government, 
public sector employees were asked to rate their level 
of satisfaction with the department they work at. 
The results revealed that NASA was the most popular 
department with a satisfaction rating of 95%.

One NASA employee, John Smith, commented on the findings, 
stating, "I'm not surprised that NASA came out on top. 
It's a great place to work with amazing people and 
incredible opportunities. I'm proud to be a part of 
such an innovative organization."

The results were also welcomed by NASA's management team, 
with Director Tom Johnson stating, "We are thrilled to 
hear that our employees are satisfied with their work at NASA. 
We have a talented and dedicated team who work tirelessly 
to achieve our goals, and it's fantastic to see that their 
hard work is paying off."

The survey also revealed that the 
Social Security Administration had the lowest satisfaction 
rating, with only 45% of employees indicating they were 
satisfied with their job. The government has pledged to 
address the concerns raised by employees in the survey and 
work towards improving job satisfaction across all departments.
"""

 推断5个主题(标题)

我们要求ChatGPT从上面的文本中推断出5个主题词,并且每个主题词不能超过2个单词。

prompt = f"""
Determine five topics that are being discussed in the \
following text, which is delimited by triple backticks.

Make each item one or two words long. 

Format your response as a list of items separated by commas.

Text sample: '''{story}'''
"""
response = get_completion(prompt)
print(response)

 从结果上看这5个主题词基本满足要求。

为某些主题制作新闻提醒(Make a news alert for certain topics)

在前面我们看到ChatGPT能够识别商品的评论是否是"愤怒"情绪,这里我们也可以让ChatGP来判断文本是否表达某种主题,下面我们事先设置5个主题词,然后让ChatGPT来识别上面的文本是否符合这5个自定义的主题词,如果符合则标记为1,不符合则标记为0.

topic_list = [
    "nasa", "local government", "engineering", 
    "employee satisfaction", "federal government"
]


prompt = f"""
Determine whether each item in the following list of \
topics is a topic in the text below, which
is delimited with triple backticks.

Give your answer as list with 0 or 1 for each topic.\

List of topics: {", ".join(topic_list)}

Text sample: '''{story}'''
"""
response = get_completion(prompt)
print(response)

topic_dict = {i.split(': ')[0]: int(i.split(': ')[1]) 
              for i in response.split(sep='\n')}
if topic_dict['nasa'] == 1:
    print("ALERT: New NASA story!")

 这里我们看到自定义的两个主题词:local government(地方政府)、engineering(工程)和我们的文本内容不相关,因此它们被标记为0。其他三个词都与文本内容有一定的相关性,因此都被标记为了1.

总结

今天我们学习了如何让ChatGPT从文本内容中推断出作者的情绪、识别愤怒情绪、抽取文本实体(如商品和公司名称)、推断主题词、识别主题词等功能,我们还学习了如何让ChatGPT来同时做多个任务。希望这些内容对大家有所帮助!

参考资料

Courses - DeepLearning.AI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【express模块】课程笔记

目标: express.static()快速托管静态资源express路由精简项目结构常见express中间件使用express创建API接口在express中启用cors跨域资源共享 目录 一. 初识Express 1.1 Express简介 1. 什么是express 2. 进一步理解Express 3. Express能做什么 1.2 Express…

聊聊那些奇葩的代码规范 —— 滥用 lombok

因为有些要求感觉实是太过奇葩,收集下来娱乐下大家。 代码规范要求 在所有无参数构造函数,全参数构造函数,Getter 和 Setter 方法必须要使用 Lombok。 所有的 Builder 方法也必须要用 Lombok。 简单来说是就是 Lombok 没有提供的才可以使用…

《统计学习方法》——逻辑斯谛回归与最大熵模型(上)

引言 逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。 由于后面最优化方法中用到了最优化理论中的一些知识,建议先阅读最优化简介。 逻辑…

chatgpt赋能python:Python开发环境的安装方法

Python开发环境的安装方法 Python已经成为了当今最流行的编程语言之一,它易于学习和使用,而且庞大的社区提供了大量的资源和库。那么,如果你是一位Python初学者或新手,本篇文章将为您介绍如何安装Python开发环境。 Python环境的…

技巧:win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章,《Windows10下美化字体,达到类似mac的效果》,当时还很迷恋macType这个软件的使用,觉得好牛逼…

DAY11——栈与队列part2

双端队列Deque——Double ended Queue 插入和删除为O(1), 查询为O(n) 使用Deque - 廖雪峰的官方网站 (liaoxuefeng.com) Priority Queue 优先级队列 插入操作 O(1) 取出元素O(logN)——按照元素的优先级取出 底层数据结构为heap,bst... 题目一 最近相关性——使…

《Reinforcement Learning: An Introduction》第3章笔记

Chapter 3 Finite Markov Decision 本章正式介绍有限马尔科夫决策过程(finite Markov decision processes, finite MDP), 它包括第二章介绍的评估性反馈和关联(associative)—在不同情景下选择不同的状态。 MDP是序贯决策问题的经典形式化表达,它的动作…

【玩转Linux操作】硬链接和软连接

🎊专栏【玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题🥰 欢迎大家访问“在下小吉.”(偷偷告诉你这个是我的大号哦&#…

创客匠人5月活动总结

为了帮助老师做好知识变现、拓客增长,让好老师走进千万家,让知识创造价值,五月,创客匠人组织了一系列线上线下干货满满的赋能活动! 一、老蒋商业变现营线上 5月10日-5月14日,在线上举办了首期【老蒋商业变现…

C++作业day1

思维导图 有以下定义,说明哪些量可以改变哪些不可以改变? const char *p; p指向的指向不能修改 const (char *) p; char *const p; p不能改 const char* const p; 都不能修改 …

Python对接亚马逊电商平台SP-API的一些概念理解准备

❝ 除了第三方服务商,其实亚马逊卖家本身也可以通过和SP-API的对接,利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作,简单的应用比如可以利用SP-API的对接,实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工…

分享两个小众的办公软件

01 Apache OpenOffice是一款开源办公套件软件,主要用于文档处理、电子表格、演示文稿和数据库管理等方面。它包括Writer、Calc、Impress、Draw和Base五个组件。 Writer是Apache OpenOffice的文本编辑器,可用于创建各种类型的文档,如信函、报…

四、文字到语音模型库之Bark

随着人工智能技术的发展,文本到音频(Text-to-Audio,简称 TTA)转换已经成为一个热门的研究领域,旨在通过深度学习模型将任意文本转换为逼真的音频,包括语音、音乐、声效等。近日,一家名为 Suno 的公司在 GitHub 上开源了一个名为 Bark 的 TTA 模型,引起了广泛关注。Bark…

Java stream多字段分组(groupingBy)

近期的项目里&#xff0c;遇到一个需求&#xff1a;对于含有多个元素的List<Person>&#xff0c;按照其中的某几个属性进行分组&#xff0c;比如Persion::getAge、Persion::getType、Persion::getGender等字段。下面就让我们讨论一下如何比较优雅的按多字段进行分组group…

vue3 使用element plus 打包时 报错

vue3vitetselementPlus中运行正常打包出错 能正常运行&#xff0c;但是打包出错 解决打包时出现导入element plus相关的爆红&#xff0c;导致无法打包的问题 如若出现类似于&#xff1a;Module ‘“element-plus”’ has no exported member ‘ElMessage’. Did you mean to …

使用Fiddler进行Mock测试的原理和方法

叨叨在前&#xff1a;之前工作中&#xff0c;做的纯接口测试&#xff0c;当时公司有自己的Mock平台&#xff0c;可以进行接口Mock测试。后来离开公司后&#xff0c;再想做Mock测试&#xff0c;就只能使用开源工具&#xff0c;或者自己用Flask写Mock了。今儿整理一下&#xff0c…

二、视频换脸

介绍一个优秀的开源项目,DeepFaceLab。开发者是来自俄罗斯的Iperov,同时,他也是曾经应用最广泛的DeepFaceLab的开发者质之一。开源地址:https://github.com/iperov/DeepFaceLab 而这种高质量伪造图像的背后,依托的是“生成对抗网络”(GAN)技术。这类网络由两个 AI 代…

chatgpt赋能python:Python嵌入包:让你的程序更灵活

Python嵌入包&#xff1a;让你的程序更灵活 Python是一种动态、面向对象、高级编程语言&#xff0c;被广泛应用于科学计算、Web开发、大数据、人工智能等领域。Python提供了大量的标准库和第三方库&#xff0c;让开发者能够快速、高效地实现各种功能需求。 但是&#xff0c;在…

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 安装(Ubuntu20.04)

ROS EKF 机器人位姿估计功能包&#xff1a;robot_pose_ekf 安装&#xff08;Ubuntu20.04&#xff09; 功能包简介安装 功能包简介 robot_pose_ekf软件包用于基于来自不同来源的&#xff08;部分&#xff09;位姿测量值来估计机器人的3D姿势。它使用带有6D模型&#xff08;3D位…

想要精通算法和SQL的成长之路 - 两两交换链表中的节点

想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改…