高效使用ChatGPT—Coggle 8月竞赛学习笔记

目录

项目链接

背景介绍

任务1:初识ChatGPT

 任务2:ChatGPT编写正则

任务3:ChatGPT自动EDA

 任务4:ChatGPT文本分类

任务5:ChatGPT实体抽取

任务6:ChatGPT关系抽取

 任务7:ChatGPT渲染表格

 任务8:ChatGPT文本匹配


项目链接

Coggle 8月竞赛学习:高效使用ChatGPT (qq.com)

背景介绍

ChatGPT是一个基于OpenAI的GPT(Generative Pre-trained Transformer)模型的变种,它是一个强大的自然语言处理(NLP)工具。GPT系列模型的主要特点是预训练和生成能力,能够根据输入的文本生成具有连贯性和合理性的输出文本。ChatGPT特别针对对话式应用进行了优化。它经过在大规模文本数据上进行预训练,并通过阅读大量的对话数据来学习对话风格和语言表达。因此,它可以用于许多自然语言处理任务,如对话生成、问答系统、文本摘要、语言翻译等。

Prompt是用户向模型提供任务指导和输入信息的方式,它直接影响了模型生成的回答或结果的质量和准确性。一个好的prompt可以引导模型产生有用、合理且符合预期的回答,而一个不合适或模糊的prompt可能导致模型输出错误、无关或混乱的内容。

(注:本介绍来源于Coggle数据科学)

任务1:初识ChatGPT

任务说明:熟悉ChatGPT的基本使用方法,了解如何与模型进行交互,并生成文本输出。
实践步骤:

  • 通过网页端ChatGPT或ChatGPT API发送prompt,可以尝试不同的prompt,观察模型的输出。
  • 理解ChatGPT的对话机制,尝试在网页端ChatGPT和API进行对话。
  • 将ChatGPT或API的实验过程进行截图,并思考为什么ChatGPT能回答不同的文本。
  • import requests
    url = "https://openai.api2d.net/v1/chat/completions" # 服务域名+接口
    
    headers = {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer fkxxxxx' # <-- 把 fkxxxxx 替换成你自己的 Forward Key
    }
    
    
    data = {
      "model": "gpt-3.5-turbo",
      "messages": [{"role": "user", "content": "你好!请介绍你自己。"}]
    }
    
    response = requests.post(url, headers=headers, json=data)
    print("Status Code", response.status_code)
    print("JSON Response ", response.json())

    data = {
      "model": "gpt-3.5-turbo",
      "messages": [{"role": "user", "content": "我该如何学习使用chatGPT?"}]
    }
    
    response = requests.post(url, headers=headers, json=data)
    print("Status Code", response.status_code)
    print("JSON Response ", response.json())

 任务2:ChatGPT编写正则

任务说明:在ChatGPT中编写和使用正则表达式,以实现文本匹配和模式提取的功能。
待匹配文本:
实践步骤:

  • 编写prompt让ChatGPT写一个能识别首字母大写单词的正则。
  • 编写prompt让ChatGPT写一个能识别首字母大写且字符个数小于10的正则。
  • 编写prompt让ChatGPT写一个能识别单词末尾为标点符号的正则。
  • 上述实验过程进行截图,通过Python代码验证ChatGPT输出正则的有效性。
text = "Enron Dataset: Over half a million anonymized emails from over 100 users. It’s one of the few publically available collections of “real” emails available for study and training sets.\
Google Blogger Corpus: Nearly 700,000 blog posts from blogger.com. The meat of the blogs contain commonly occurring English words, at least 200 of them in each entry.\
SMS Spam Collection: Excellent dataset focused on spam. Nearly 6000 messages tagged as legitimate or spam messages with a useful subset extracted directly from Grumbletext.\
Recommender Systems Datasets: Datasets from a variety of sources, including fitness tracking, video games, song data, and social media. Labels include star ratings, time stamps, social networks, and images.\
Project Gutenberg: Extensive collection of book texts. These are public domain and available in a variety of languages, spanning a long period of time."

task1  

task_1 = "你好!你是一个机器科学工程师,请用python语言编写一个能识别首字母大写单词的正则表达式,使我能从一篇英文材料中找出所有首字母为大写的单词。要求:1.输出该方法的代码内容,写在一行里不要换行;2.不输出任何中文字符;3.不输出除代码以外的任何解释"
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

import re
print(re.findall(r'\b[A-Z][a-zA-Z]*\b', text))

task2

task_2 = "你好!你是一个机器科学工程师,请用python语言编写一个能识别首字母大写且字符个数小于10的正则表达式,使我能从一篇英文材料中找出所有这样的单词。\
要求:1.输出该方法的代码内容,写在第一行里不要换行;2.在第二行,给出一个案例,对代码进行验证,只显示验证过程,不要给出任何解释;3.在第3行,显示案例的运行结果,不要给出运行结果之外的任何解释"
data_2 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_2}]
}

response_2 = requests.post(url,headers=headers,json=data_2)
response_2.json()


import re
re.findall(r'\b[A-Z]\w{0,8}\b',text)

 task3

task_3 = "你好!你是一个自然语言处理专家,请用python语言编写一个正则表达式,使我能从一篇英文材料中找出所有末尾后连着标点符号的单词,这个正则应该考虑所有标点符号类型,使得单词后面不管跟着什么标点符号,都能够被准确的识别出来。\
要求:1.输出该方法的代码内容,写在第一行里不要换行;2.在第二行,给出一个案例,对代码进行验证;3.在第3行,显示案例的运行结果;4.对代码进行解释"
data_3 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_3}]
}

response_3 = requests.post(url,headers=headers,json=data_3)
response_3.json()


pattern = r'\b\w+(?:[^\w\s]+)'
re.findall(pattern, text)

任务3:ChatGPT自动EDA

任务说明:使用ChatGPT模型对表格数据进行自动EDA,以发现数据中的模式、趋势和特征。
任务数据集:'https://mirror.coggle.club/dataset/affairs.txt'
实践步骤:

  • 1.将数据集关键信息整理为prompt内容,让ChatGPT输出Pandas代码来统计每列缺失值。
  • 2.编写prompt让ChatGPT输出Pandas代码来统计affairs列的分布并绘制饼图。
  • 3.编写prompt让ChatGPT输出Pandas代码来统计affairs列在yrs_married下的分布并绘制柱状图。
  • 4.编写prompt让ChatGPT输出Pandas代码来绘制age列和yrs_married列的散点图。
  • 上述实验过程进行截图,通过Python代码验证ChatGPT输出Python代码的有效性。
import pandas as pd
df = pd.read_csv('https://mirror.coggle.club/dataset/affairs.txt')
df.info()

 task1

task_1 = "你好!你是一个资深的数据分析师,我现在有一个数据表df(格式为DataFrame),表格信息如下:1.表格共有6366行,6列,列名及数据格式分别为:\
rate_marriage(int64),age(float64),yrs_married(float64),children(float64),religious(int64),affairs(affairs),\
请使用Pandas编写一个方法,统计df中每列的缺失值。要求:输出该方法的代码内容,写在一行里,不同语句之间用','分隔"
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

df.isnull().sum()

task2 

task_2 = "你好!你是一个资深的数据分析师,我现在有一个数据表df(格式为DataFrame),表格信息如下:1.表格共有6366行,6列,列名及数据格式分别为:\
rate_marriage(int64),age(float64),yrs_married(float64),children(float64),religious(int64),affairs(affairs),\
请使用Pandas编写一个方法,统计affairs列的分布并绘制饼图。要求:输出该方法的代码内容,写在一行里,不同语句之间用','分隔"
data_2 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_2}]
}

response_2 = requests.post(url,headers=headers,json=data_2)
response_2.json()

df['affairs'].value_counts().plot(kind='pie')

task3 

task_3 = "你好!你是一个资深的数据分析师,我现在有一个数据表df(格式为DataFrame),表格信息如下:1.表格共有6366行,6列,列名及数据格式分别为:\
rate_marriage(int64),age(float64),yrs_married(float64),children(float64),religious(int64),affairs(affairs),\
请使用Pandas编写一个方法,统计affairs列在yrs_married下的分布并绘制柱状图。要求:输出该方法的代码内容,写在一行里,不同语句之间用','分隔"
data_3 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_3}]
}

response_3 = requests.post(url,headers=headers,json=data_3)
response_3.json()

df.groupby('yrs_married')['affairs'].value_counts().unstack().plot(kind='bar')

 task4

task_4 = "你好!你是一个资深的数据分析师,我现在有一个数据表df(格式为DataFrame),表格信息如下:1.表格共有6366行,6列,列名及数据格式分别为:\
rate_marriage(int64),age(float64),yrs_married(float64),children(float64),religious(int64),affairs(affairs),\
请使用Pandas编写一个方法,绘制age列和yrs_married列的散点图。要求:输出该方法的代码内容,写在一行里,不同语句之间用','分隔"
data_4 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_4}]
}

response_4 = requests.post(url,headers=headers,json=data_4)
response_4.json()

df.plot.scatter(x='age', y='yrs_married')

 任务4:ChatGPT文本分类

任务说明:了解如何使用ChatGPT模型实现文本分类,并将文本数据分配到正确的类别中。

任务训练集: |label|review| |-|-| |0|辣,饭冷啦,都两三小时才送来慢| |0|足足等了將近一個半小時,飯也基本不太熱了,因為網上付款了所以吃飯就不退送餐費,所以你們就任意遲到,我說的有錯嗎| |0|送餐的师傅,服务质量太差,送过来都已经坨了| |1|送的慢了点| |1|还行,就是速度好慢,一个多小时| |0|好慢,差一点就超时能打五折了| |0|皮太厚,不喜欢| |0|卷饼味道真的很一般| |0|就是太慢了,我12:44才收到,晚了一个小时,饭都凉了。| |0|土豆要多煮一下|

任务测试集: |label|review| |-|-| |0|味道没有传说中好| |0|太糟了。等了两个小时,牛肉我吃的快吐了,再也不可能第二次| |1|微辣一点都不辣啊| |1|定很多次啦!菜很好吃!也很及时!| |0|太慢了、恶死了|

实践步骤:

  • 1.在不使用训练集的情况下,编写prompt让ChatGPT对于输入的文本进行分类,需要支持输入5条文本一次回答得到所有类别结果,且分类结果为0或1。
  • 2.在使用训练集的情况下,编写prompt让ChatGPT对于输入的文本进行分类,需要支持输入5条文本一次回答得到所有类别结果,且分类结果为0或1。
  • 上述实验过程进行截图,哪种方法可以得到更加有效的结果,为什么?

 task1

task_1 = "你好!你是一个资深的自然语言专家,我有五条文本,放在[]中:[1.味道没有传说中好;2.太糟了。等了两个小时,牛肉我吃的快吐了,再也不可能第二次;\
3.微辣一点都不辣啊;4.定很多次啦!菜很好吃!也很及时!;5.太慢了、恶死了;]请对以上文本进行二分类,分类结果为0或1,给出分类结果,并说明分类原因。\
要求:支持输入5条文本一次回答得到所有类别结果"
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

  task2

task_2 = "你好!你是一个资深的自然语言专家,你现在有一个训练数据集和一个测试数据集,\
训练数据集将以{分类结果1:文本数据1;分类结果2:文本数据2}的键值对形式给出,训练数据如下:{0:辣,饭冷啦,都两三小时才送来慢,;0:足足等了將近一個半小時,飯也基本不太熱了,因為網上付款了所以吃飯就不退送餐費,所以你們就任意遲到,我說的有錯嗎;\
0:送餐的师傅,服务质量太差,送过来都已经坨了;1:送的慢了点;1:还行,就是速度好慢,一个多小时;0:好慢,差一点就超时能打五折了;0:皮太厚,不喜欢;\
0:卷饼味道真的很一般;0:就是太慢了,我12:44才收到,晚了一个小时,饭都凉了。;0:土豆要多煮一下}\
测试数据集共有五条文本,放在[]中:[1.味道没有传说中好;2.太糟了。等了两个小时,牛肉我吃的快吐了,再也不可能第二次;\
3.微辣一点都不辣啊;4.定很多次啦!菜很好吃!也很及时!;5.太慢了、恶死了;]请仔细、深入地分析和学习训练数据集的分类方法,并使用同样的分类方法对测试数据集进行二分类(0或1),给出分类结果,并说明分类原因。\
要求:支持输入5条文本一次回答得到所有类别结果"
data_2 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_2}]
}

response_2 = requests.post(url,headers=headers,json=data_2)
response_2.json()

 

任务5:ChatGPT实体抽取

任务说明:学习如何使用ChatGPT模型实现实体抽取,并从文本中准确地抽取出实体信息。
待处理文本:山药去皮洗净,切成小丁,用水浸泡,避免氧化变色。豌豆剥好,冲洗干净。胡萝卜去皮洗净,切成小丁。葱姜末、小米椒碎准备好。 锅内加水,煮开后放入少许盐,倒入豌豆,煮几分钟,至豌豆断生,煮好后捞出沥干水分。 另起锅加油,烧热后倒入姜末、小米椒碎爆锅,再倒入胡萝卜、山药翻炒,炒两分钟。 最后倒入豌豆翻炒均匀,再加入盐、鸡精、葱末翻炒几下,就可以出锅了,很好吃下饭香,快尝尝吧。

实践步骤:

  • 1.编写prompt让ChatGPT识别文本中的食物。
  • 2.编写prompt让ChatGPT识别文本中的时间。
  • 3.编写prompt让ChatGPT识别文本中的动作。
  • 上述实验过程进行截图,人工验证抽取结果的有效性。

 task1

task_1 = "你好!你是一个资深的自然语言专家,擅长对文本中的词语类别和表达内容进行分类,我有一段文本,放在[]中:\
[山药去皮洗净,切成小丁,用水浸泡,避免氧化变色。豌豆剥好,冲洗干净。胡萝卜去皮洗净,切成小丁。葱姜末、小米椒碎准备好。\
锅内加水,煮开后放入少许盐,倒入豌豆,煮几分钟,至豌豆断生,煮好后捞出沥干水分。 另起锅加油,烧热后倒入姜末、小米椒碎爆锅,\
再倒入胡萝卜、山药翻炒,炒两分钟。最后倒入豌豆翻炒均匀,再加入盐、鸡精、葱末翻炒几下,就可以出锅了,很好吃下饭香,快尝尝吧。]\
请识别出以上文本中的食物。"
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

task2 

task_2 = "你好!你是一个资深的自然语言专家,擅长对文本中的词语类别和表达内容进行分类,我有一段文本,放在[]中:\
[山药去皮洗净,切成小丁,用水浸泡,避免氧化变色。豌豆剥好,冲洗干净。胡萝卜去皮洗净,切成小丁。葱姜末、小米椒碎准备好。\
锅内加水,煮开后放入少许盐,倒入豌豆,煮几分钟,至豌豆断生,煮好后捞出沥干水分。 另起锅加油,烧热后倒入姜末、小米椒碎爆锅,\
再倒入胡萝卜、山药翻炒,炒两分钟。最后倒入豌豆翻炒均匀,再加入盐、鸡精、葱末翻炒几下,就可以出锅了,很好吃下饭香,快尝尝吧。]\
请仔细分析以上文本,识别并给出以上文本中与时间相关的词语。"
data_2 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_2}]
}

response_2 = requests.post(url,headers=headers,json=data_2)
response_2.json()

 task3

task_3 = "你好!你是一个资深的自然语言专家,擅长对文本中的词性和表达内容进行分类,我有一段文本,放在[]中:\
[山药去皮洗净,切成小丁,用水浸泡,避免氧化变色。豌豆剥好,冲洗干净。胡萝卜去皮洗净,切成小丁。葱姜末、小米椒碎准备好。\
锅内加水,煮开后放入少许盐,倒入豌豆,煮几分钟,至豌豆断生,煮好后捞出沥干水分。 另起锅加油,烧热后倒入姜末、小米椒碎爆锅,\
再倒入胡萝卜、山药翻炒,炒两分钟。最后倒入豌豆翻炒均匀,再加入盐、鸡精、葱末翻炒几下,就可以出锅了,很好吃下饭香,快尝尝吧。]\
请仔细分析以上文本,识别并给出以上文本中的动词。"
data_3 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_3}]
}

response_3 = requests.post(url,headers=headers,json=data_3)
response_3.json()

任务6:ChatGPT关系抽取

任务说明:将学习如何使用ChatGPT模型实现关系抽取,并从文本中准确地抽取出实体之间的关系信息。
实践步骤:

  • 1.编写prompt让ChatGPT识别文本中的人名和两者之间的关系。
  • 2.编写prompt让ChatGPT识别文本中有夫妻关系的人名和关系。
  • 3.编写prompt让ChatGPT识别文本中与香秀相关的人名和关系。
  • 上述实验过程进行截图,人工验证抽取结果的有效性。 要求输出格式:
  • 实体A - 关系1 - 实体B
  • 实体B - 关系2 - 实体C
text = "王小蒙的豆腐厂上线,每天忙里忙外,不得清闲。谢永强则专注自己的果园,和小蒙几天都见不上一面。两个孩子忙事业始终推迟婚期,急坏永强的父亲谢广坤。\
赵玉田和刘英结婚后,开始忙于花圃的经营。来村中实习的女大学生陈艳南吸引了赵玉田的注意,刘英大吃其醋,无事忙刘能对女婿的做法也颇为不满。\
香秀迎来了新同事王天来,李大国担心嫉妒,从中作梗。王天来单恋陈艳南,又和赵玉田矛盾不断。\
长贵一方面想吸引王大拿来村里投资,一方面又怕谢大脚被大拿抢走,他和大脚之间若即若离,忽冷忽热,闹出不少笑话。"

task1 

task_1 = "你好!你是一个资深的自然语言专家,擅长从文本中抽取实体并给出实体之间的关系,我有一段文本,放在[]中:\
[王小蒙的豆腐厂上线,每天忙里忙外,不得清闲。谢永强则专注自己的果园,和小蒙几天都见不上一面。两个孩子忙事业始终推迟婚期,急坏永强的父亲谢广坤。\
赵玉田和刘英结婚后,开始忙于花圃的经营。来村中实习的女大学生陈艳南吸引了赵玉田的注意,刘英大吃其醋,无事忙刘能对女婿的做法也颇为不满。\
香秀迎来了新同事王天来,李大国担心嫉妒,从中作梗。王天来单恋陈艳南,又和赵玉田矛盾不断。\
长贵一方面想吸引王大拿来村里投资,一方面又怕谢大脚被大拿抢走,他和大脚之间若即若离,忽冷忽热,闹出不少笑话]\
请识别出识别文本中的人名和两者之间的关系并以(实体A - 关系1 - 实体B)的格式输出。要求:1.实体A和实体B必须都是人名,不包含其他事情、物品或非人主体;2.关系应描述明确"
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

task2 

task_2 = "你好!你是一个资深的自然语言专家,擅长从文本中抽取实体并给出实体之间的关系,我有一段文本,放在[]中:\
[王小蒙的豆腐厂上线,每天忙里忙外,不得清闲。谢永强则专注自己的果园,和小蒙几天都见不上一面。两个孩子忙事业始终推迟婚期,急坏永强的父亲谢广坤。\
赵玉田和刘英结婚后,开始忙于花圃的经营。来村中实习的女大学生陈艳南吸引了赵玉田的注意,刘英大吃其醋,无事忙刘能对女婿的做法也颇为不满。\
香秀迎来了新同事王天来,李大国担心嫉妒,从中作梗。王天来单恋陈艳南,又和赵玉田矛盾不断。\
长贵一方面想吸引王大拿来村里投资,一方面又怕谢大脚被大拿抢走,他和大脚之间若即若离,忽冷忽热,闹出不少笑话]\
请识别出识别文本中文本中有夫妻关系的人名和关系,并以(实体A - 关系1 - 实体B)的格式输出。要求:1.实体A和实体B必须都是人名,不包含其他事情、物品或非人主体;2.关系必须为夫妻关系"
data23 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_2}]
}

response_2 = requests.post(url,headers=headers,json=data_2)
response_2.json()

 task3

task_3 = "你好!你是一个资深的自然语言专家,擅长从文本中抽取实体并给出实体之间的关系,我有一段文本,放在[]中:\
[王小蒙的豆腐厂上线,每天忙里忙外,不得清闲。谢永强则专注自己的果园,和小蒙几天都见不上一面。两个孩子忙事业始终推迟婚期,急坏永强的父亲谢广坤。\
赵玉田和刘英结婚后,开始忙于花圃的经营。来村中实习的女大学生陈艳南吸引了赵玉田的注意,刘英大吃其醋,无事忙刘能对女婿的做法也颇为不满。\
香秀迎来了新同事王天来,李大国担心嫉妒,从中作梗。王天来单恋陈艳南,又和赵玉田矛盾不断。\
长贵一方面想吸引王大拿来村里投资,一方面又怕谢大脚被大拿抢走,他和大脚之间若即若离,忽冷忽热,闹出不少笑话]\
请识别出识别文本中与香秀相关的人名和关系,并以(实体A - 关系1 - 实体B)的格式输出。要求:1.实体A和实体B至少有一个必须是香秀"
data_3 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_3}]
}

response_3 = requests.post(url,headers=headers,json=data_3)
response_3.json()

 

 任务7:ChatGPT渲染表格

任务说明:使用ChatGPT模型来生成和渲染表格,以便将数据以表格形式展示。
待处理文本:
''' precision recall f1-score support

 class 0       0.50      1.00      0.67         1
 class 1       0.00      0.00      0.00         1
 class 2       1.00      0.67      0.80         3

accuracy                           0.60         5
macro avg       0.50      0.56      0.49         5
weighted avg       0.70      0.60      0.61         5

'''
实践步骤:编写prompt让ChatGPT将数据集处理为如下格式,要求prompt越短越好

task_1 = """
你好!你是一个擅长markdown语言的资深工程师,你有数据如下:\

[precision    recall  f1-score   support\

class 0       0.50      1.00      0.67         1\
     class 1       0.00      0.00      0.00         1\
     class 2       1.00      0.67      0.80         3\

accuracy                           0.60         5\
   macro avg       0.50      0.56      0.49         5\
weighted avg       0.70      0.60      0.61         5]\
请将以上数据整理成可在markdown语言中渲染为表格展示的形式
"""

           
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

 任务8:ChatGPT文本匹配

任务说明:使用ChatGPT的嵌入API,您可以将文本转换为嵌入向量,然后计算向量之间的相似度来实现文本匹配。
待处理数据集:

文本1

文本2

标签

魔兽世界坐骑去哪买奥比岛在哪有皇室舞会的邀请函?0
在淘宝去哪里充值好在淘宝里怎么买火车票,哪里有0
鱼不可以和什么蔬菜一起吃鱼不能和什么药物一起吃0
读音是什么?怎么组词熙的读音和组词是什么?1
七夕到了,单身该怎么过啊?七夕单身的人怎么过?1
什么品牌的智能手机好用现在什么牌子的智能手机好用,又便宜呀1
一个人怎么过七夕?七夕一个人怎么过1
  • 实践步骤:
  • 1.使用BERT对上面文本进行编码,然后计算每个样本句子相似度与标签的相关性。
  • 2.使用ChatGPT对上面文本进行编码,然后计算每个样本句子相似度与标签的相关性。
  • 上述实验过程进行截图,对比两种方法的有效性。

 

import requests

url = "https://openai.api2d.net/v1/embeddings"

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer fkxxxxx' # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。
}

data = {
    "model": "text-embedding-ada-002",
    "input": "魔兽世界坐骑去哪买"
}
response = requests.post(url, headers=headers, json=data)

print("Status Code", response.status_code)
print("JSON Response ", response.json())


data_2 = {
    "model": "text-embedding-ada-002",
    "input": "奥比岛在哪有皇室舞会的邀请函?"
}
response_2 = requests.post(url, headers=headers, json=data_2)


v1 = response.json()['data'][0]['embedding']
v2 = response_2.json()['data'][0]['embedding']
url = "https://openai.api2d.net/v1/chat/completions" # 服务域名+接口

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer fkxxxxx' # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。
}

task_1 = "你好!你是一个资深的自然语言专家,擅长对文本进行编码并计算不同文本间的相似性,现有两条文本:'魔兽世界坐骑去哪买'和'奥比岛在哪有皇室舞会的邀请函?'\
请使用BERT分别对上述两条文本进行编码,并计算两条文本之间的相似度,并输出两条文本编码后的向量和相似度的值。"
data_1 = {
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content":task_1}]
}

response_1 = requests.post(url,headers=headers,json=data_1)
response_1.json()

博主对nlp和BERT了解不多,没有进一步探索这个任务,也希望如果有了解相关知识的小伙伴看到这篇笔记,能够一起探讨下~

无论在写汇报材料方面,还是写代码方面,我现在工作已经完全离不开chatGPT了,chatGPT的助力也帮助我实现了效率的极大提升。这次的学习对于prompt的撰写和chatGPT的具体应用场景的扩展方面都为我带来了新的思考,感谢Coggle数据科学~

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值