最近在做一个项目,涉及AI编码表和标准码表。那么什么AI编码表,什么是标准码表,AI编码表生成的逻辑是什么呢?
文章目录
- [1. 什么是AI编码表,什么是标准码表?](#1. 什么是AI编码表,什么是标准码表?)
- [2. AI编码码表的生成逻辑是怎么样的?](#2. AI编码码表的生成逻辑是怎么样的?)
- [3. prompt构建](#3. prompt构建)
1. 什么是AI编码表,什么是标准码表?
AI编码表:由AI生成的码表。
标准码表:根据AI编码结果,人工校对后的表。
2. AI编码码表的生成逻辑是怎么样的?
一般在调用GPT接口前,我们会写一个prompt,告诉它生成的规则,是怎么样的。
举例来说,我要想要GPT分析原文内容,得到观点、品牌、产品。其中,观点包括多个nets-code,给出的范例具体如下表。( nets指的时指定分析维度,code是编码结果。)
表中品牌和产品是一个二元组,当这两者其中一个不相同时AI会新增答案。比如表中的原文序号3的原文内容包括3个品牌:必胜客、萨莉亚、麦当劳,那么原文序号3AI给出的编码会有3个答案。
AI会根据范例,对新的数据进行标注。
原文序号 | 原文内容 | 观点 | 品牌 | 产品 | 评价 | 推荐来源 | 消费意愿 |
---|---|---|---|---|---|---|---|
1 | 我喜欢吃麦当劳的甜筒 | ['评价-喜欢'] | 麦当劳 | 甜筒 | 喜欢 | ||
2 | 朋友一直推荐我吃肯德基的全家桶,但是我晚上想吃尊宝的榴莲pizza ,感觉还不错 | ['推荐来源-朋友'] | 肯德基 | 全家桶 | 朋友 | ||
2 | 朋友一直推荐我吃肯德基的全家桶,但是我晚上想吃尊宝的榴莲pizza,感觉还不错 | ['评价-感觉还不错','消费意愿-想品尝'] | 尊宝 | 榴莲pizza | 想品尝 | ||
3 | 学校门口有必胜客、萨莉亚、麦当劳,你看你想吃啥 | [ ] | 必胜客 | 未提及 | |||
3 | 学校门口有必胜客、萨莉亚、麦当劳,你看你想吃啥 | [ ] | 萨莉亚 | 未提及 | |||
3 | 学校门口有必胜客、萨莉亚、麦当劳,你看你想吃啥 | [ ] | 麦当劳 | 未提及 |
3. prompt构建
那么,我们就可以写这样的prompt:
def create_prompt(texts, n, common_fields, nets):
'''
构建prompt
@param
texts (list<dict<str>>):需要打标的文本
n (int): n元组
common_fields (str): n元组的公共标签字段。示例:品牌名、产品、宠物种类
nets (str): 指定分析维度。示例:评价、推荐来源、消费意愿
@return
prompt (str): 输出的 prompt
'''
common_fields = 品牌、产品"
nets = "评价、推荐来源、消费意愿"
n = 2
m = n-1
template_texts = [{'原文序号': 1, '原文': '我喜欢吃麦当劳的甜筒},
{'原文序号': 2, '原文': '朋友一直推荐我吃肯德基的全家桶,但是我晚上想吃尊宝的榴莲pizza'},
{'原文序号': 3, '原文': '学校门口有必胜客、萨莉亚、麦当劳,你看你想吃啥'}
]
template_results = [{'原文序号': 1, '标注结果': [{"品牌": "麦当劳", "产品": "甜筒", "观点": ["评价-喜欢"]}
]},
{'原文序号': 2, '标注结果': [{"品牌": "肯德基", "产品": 全家桶", "观点": ["推荐来源-朋友"]},
{'原文序号': 2, '标注结果': [{"品牌": "尊宝", "产品": 榴莲pizza", "观点": ["评价-感觉还不错", "消费意愿-想品尝"]}
]},
{'原文序号': 3, '标注结果': [{"品牌": "必胜客, "产品": "未提及", "观点": [ ]},
{"品牌": "萨莉亚", , "产品": "未提及", "观点": [ ]},
{"品牌": "麦当劳, , "产品": "未提及", "观点": [ ]}
]}
]
prompt = f'''你是1个数据标注师,要求你标注文本的观点{n}元组,必须满足以下要求:
1.观点{n}元组的标签为:{common_fields}、观点
2.1条文本可能有多个观点{n}元组,但每个观点{n}元组的{common_fields}必须唯一
3.如果文本中没有提及{common_fields}{m}个标签相关的内容,标"未提及"
4.观点可以从{nets}等方面具体讲述
5.不要进行任何解释,直接以Python列表格式输出原文序号和标注结果
以下是标注范例供你参考:
文本:
{template_texts}
标注结果:
{template_results}
以下是你本次任务需要打标的文本:
{texts}
'''
return prompt
写prompt要注意的:
① 你要告诉AI它的身份,要完成什么样的任务
② 把需要的注意的事项分条列点罗列