• AI编码prompt编写及内在逻辑


    最近在做一个项目,涉及AI编码表和标准码表。那么什么AI编码表,什么是标准码表,AI编码表生成的逻辑是什么呢?

    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>):需要打标的文本
        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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    写prompt要注意的:
    ① 你要告诉AI它的身份,要完成什么样的任务
    ② 把需要的注意的事项分条列点罗列

  • 相关阅读:
    智慧城市运营中心建设方案(SCOC)智慧城市的心脏
    MySQL(3)
    redis实现分布式全局唯一id
    Python学习笔记
    Android窗口层级(Window Type)分析
    持续集成部署-k8s-服务发现-Service:Service、Endpoint、Pod之间的关系与原理
    Spring(Bean 作用域和生命周期)
    java毕业设计个人博客系统mybatis+源码+调试部署+系统+数据库+lw
    MATLAB常用绘图函数的使用
    计算机视觉之三维重建——第八章:SLAM系统设计《深入浅出sfm和SLAM核心算法 (鲁鹏)》
  • 原文地址:https://blog.csdn.net/qq_41715032/article/details/138159133