/Role-element-extraction

赛事背景 在数字化时代,企业积累了大量对话数据,这些数据不仅是交流记录,还隐藏着宝贵的信息。群聊对话分角色要素提取是企业营销和服务的重要策略,通过分析这些数据,企业可以更好地理解客户需求,提供个性化服务,提升客户满意度和商业价值。 赛事任务 从给定的<客服>与<客户>的群聊对话中,提取出指定的字段信息,具体待提取的字段信息见下文。

Primary LanguagePython

Role-element-extraction

赛事背景 在数字化时代,企业积累了大量对话数据,这些数据不仅是交流记录,还隐藏着宝贵的信息。群聊对话分角色要素提取是企业营销和服务的重要策略,通过分析这些数据,企业可以更好地理解客户需求,提供个性化服务,提升客户满意度和商业价值。 赛事任务 从给定的<客服>与<客户>的群聊对话中,提取出指定的字段信息,具体待提取的字段信息见下文。

代码文件介绍

根目录下的main.py是baseline的代码,填写自己的星火模型密钥,然后直接运行就可以了,得到相应的json文件,在pp飞浆官网提交评审。 dataset目录下存放官方给的训练和测试数据集。 data目录下是baseline2的微调代码,test.csv是用于微调的测试数据集,traindata.jsonl为训练数据集,将这两个文件提交到讯飞星火大模型定制平台进行微调。

评审规则

  1. 平台说明 参赛选手需基于讯飞星火大模型Spark Max完成任务,可使用大模型微调。报名参赛选手将获得API和微调训练资源福利,详情请登录讯飞开放平台和大模型训练平台查看。
  2. 数据说明 赛题提供了184条真实场景的群聊对话数据,包括训练数据129条,测试数据55条。字段提取的难易程度分为1、2、3三种,具体得分规则如下:

序号 字段名称 是否单值 是否可为空 难度分数 答案是否唯一 1 基本信息-姓名 是 是 1 是
2 基本信息-手机号码 是 是 1 是
3 基本信息-邮箱 是 是 1 是
4 基本信息-地区 是 是 1 是
5 基本信息-详细地址 是 是 1 是
6 基本信息-性别 是 是 1 是
7 基本信息-年龄 是 是 1 是
8 基本信息-生日 是 是 1 是
9 咨询类型 否 是 2 是
10 意向产品 否 是 3 是
11 购买异议点 否 是 3 是
12 客户预算-预算是否充足 是 是 2 是
13 客户预算-总体预算金额 是 是 2 是
14 客户预算-预算明细 是 是 3 否
15 竞品信息 是 是 2 是
16 客户是否有意向 是 是 1 是
17 客户是否有卡点 是 是 1 是
18 客户购买阶段 是 是 2 是
19 下一步跟进计划-参与人 否 是 2 是
20 下一步跟进计划-时间点 是 是 2 是
21 下一步跟进计划-具体事项 是 是 3 否

备注

  1. 可为空的字段,当判定无相应信息、无法做出判断等情况,统一取值为空字符串。
  2. 对于非单值字段,请使用列表(list)来表示。

赛题数据集

  • 训练数据集:train.json,格式大致如下:
[
    {
        "chat_text": "王勇7:哈喽吴娜8,企微那边关于外部联系人上回说的沟通对接有什么反馈嘛\n王勇7:价格有没有调整\n吴娜8:目前应该是没有 具体的方案还没出来 我估计对方是突然不需要了就不搞了吧\n王勇7:[图片]\n王勇7:会话存档又有新动作了\n吴娜8:企微好友这块还没明确\n吴娜8:[图片]\n吴娜8:不知道到底啥情况hhh\n王勇7:他们腾讯内部针对代理商售卖折扣做了调整,可能只是渠道这一类\n王勇7:现在他们有很多腾讯代理商也是企微服务商,做底走单子\n王勇7:[图片]\n王勇7:看样子这条路也堵住了\n王勇7:太难了\n吴娜8:真不容易hhh\n王勇7:哎对了吴娜8,咨询你个事\n王勇7:今天辉煌有限公司这个公司咨询我们工具\n吴娜8:也是元保的 子公司\n王勇7:我记得这个公司是之前元保对接下过会话存档,他是和元保啥关系\n王勇7:哦哦\n王勇7:原来如此\n王勇7:okok\n王勇7:懂了\n吴娜8:就是一个子公司hhh\n王勇7:付款还是元保付嘛\n王勇7:还是他们自己也可以走对接\n吴娜8:都是同一批人吧 最终还是采购部采购 \n吴娜8:是不是换人了\n王勇7:对 换人了\n王勇7:那我找元保的采购老师问问吧\n吴娜8:嗯嗯 采购部新招了好几个人 \n吴娜8:其实都是一个部门的  分工有调整\n吴娜8:或者业务先咨询 后面转采购也是有可能的\n王勇7:get 还得是你呀\n王勇7:最近我们公司有一批腾讯龙年的企鹅公仔\n王勇7:给你寄一个吧\n王勇7:2024年的新款\n吴娜8:之前元保采购就两个人 我和领导 \n吴娜8:我走了之后变成了 六七个人 哈哈哈哈哈\n王勇7:[图片]\n王勇7:[图片]\n王勇7:这是一条引用/回复消息:\n\"吴娜8:\n我走了之后变成了 六七个人 哈哈哈哈哈\"\n------\n这说明你一个人顶六七个人,牛蛙牛蛙\n吴娜8:一把辛酸泪hhh    不用给我寄啦哈哈~别客气\n王勇7:[表情]\n王勇7:行吧行吧\n吴娜8:[表情]\n王勇7:后面企微有新动静都帮你关注,第一时间跟你说~\n吴娜8:好嘞~\n王勇7:哦了",
        "infos": [
            {
                "基本信息-姓名": "吴娜8",
                "基本信息-手机号码": "",
                "基本信息-邮箱": "",
                "基本信息-地区": "",
                "基本信息-详细地址": "",
                "基本信息-性别": "",
                "基本信息-年龄": "",
                "基本信息-生日": "",
                "咨询类型": [
                    "答疑"
                ],
                "意向产品": [],
                "购买异议点": [
                    "客户内部问题"
                ],
                "客户预算-预算是否充足": "",
                "客户预算-总体预算金额": "",
                "客户预算-预算明细": "",
                "竞品信息": "",
                "客户是否有意向": "无意向",
                "客户是否有卡点": "无卡点",
                "客户购买阶段": "项目搁置",
                "下一步跟进计划-参与人": [],
                "下一步跟进计划-时间点": "",
                "下一步跟进计划-具体事项": ""
            }
        ]
    },
    ...
]

我们需要关注的字段解释如下:

  • chat_text:群聊消息记录
  • infos:提取的字段信息

测试数据集

[
    {
        "chat_text": "王勇4:钱老师,客户那边确定了时间了嘛?\n钱洋9:确定了呀 我发咱们群里了\n王勇4:是不是还有其他群啊?我在的这个群,没收到信息呢\n王勇4:[图片]\n王勇4:现在确定的具体时间是怎样的呢,我好内部协调下时间安排,谢啦\n钱洋9:哦哦sorry[捂脸]下周一(12.4号)下午两点交流哈\n钱洋9:时间没问题吧\n王勇4:收到,我去内部协调时间哈\n钱洋9:多谢\n王勇4:[握手]\n王勇4:钱老师,下周一我们售前是线上支持,届时需要您帮忙创建一个线上会议链接哈。我要他们通过个微登录进去。\n钱洋9:啊能尽量现场支持一下吗\n王勇4:我去沟通下哈,请问客户侧此次参加的是哪个部门呢\n钱洋9:sorry刚在客户,多谢哈,线上支持这个效果可能达不到预期,因为这块确实咱们巨石蓝海的同事更专业, 而且客户这边层级还是蛮高的是客户CTO和营销系统总监\n王勇4:好滴\n王勇4:我内部协调下哈\n钱洋9:感谢\n王勇4:已经确定好了哈,售前会去现场\n钱洋9:感谢感谢 可以拉进群里到时候好碰头[抱拳]\n王勇4:嗯嗯,好滴\n钱洋9:王勇4 麻烦问下吉祥汽车你们有在接触吗\n钱洋9:上次听他们IT说也有scrm需求不知道你们是不是已经对接了\n王勇4:吉利是我们合作的\n王勇4:但是吉祥没有呢\n钱洋9:OK\n王勇4:早上好啊,极石客户那边上次提到和业务部门进行需求确定,有给答复嘛?\n王勇4:风华有限公司,上次咱们聊到的吉祥汽车,我们内部暂时没有人在对接的哈\n钱洋9:好的 客户还没反馈哈 估计要下周了\n王勇4:好滴\n钱洋9:[会话记录消息]\n钱洋9:洛轲那边年前需求就能确定 跟王勇4老师同步下[呲牙]\n王勇4:好嘞\n王勇4:那就等他们的最新消息了\n钱洋9:嗯啊",
        "infos": []
    },
    ...
]

提交示例

[
    {
        "infos": [],
        "index": 1
    },
    {
        "infos": [],
        "index": 2
    },
    {
        "infos": [],
        "index": 3
    },
    {
        "infos": [],
        "index": 4
    },
    {
        "infos": [],
        "index": 5
    },
    {
        "infos": [],
        "index": 6
    },
    {
        "infos": [],
        "index": 7
    },
    {
        "infos": [],
        "index": 8
    },
    {
        "infos": [],
        "index": 9
    },
    {
        "infos": [],
        "index": 10
    },
    {
        "infos": [],
        "index": 11
    },
    {
        "infos": [],
        "index": 12
    },
    {
        "infos": [],
        "index": 13
    },
    {
        "infos": [],
        "index": 14
    },
    {
        "infos": [],
        "index": 15
    },
    {
        "infos": [],
        "index": 16
    },
    {
        "infos": [],
        "index": 17
    },
    {
        "infos": [],
        "index": 18
    },
    {
        "infos": [],
        "index": 19
    },
    {
        "infos": [],
        "index": 20
    },
    {
        "infos": [],
        "index": 21
    },
    {
        "infos": [],
        "index": 22
    },
    {
        "infos": [],
        "index": 23
    },
    {
        "infos": [],
        "index": 24
    },
    {
        "infos": [],
        "index": 25
    },
    {
        "infos": [],
        "index": 26
    },
    {
        "infos": [],
        "index": 27
    },
    {
        "infos": [],
        "index": 28
    },
    {
        "infos": [],
        "index": 29
    },
    {
        "infos": [],
        "index": 30
    },
    {
        "infos": [],
        "index": 31
    },
    {
        "infos": [],
        "index": 32
    },
    {
        "infos": [],
        "index": 33
    },
    {
        "infos": [],
        "index": 34
    },
    {
        "infos": [],
        "index": 35
    },
    {
        "infos": [],
        "index": 36
    },
    {
        "infos": [],
        "index": 37
    },
    {
        "infos": [],
        "index": 38
    },
    {
        "infos": [],
        "index": 39
    },
    {
        "infos": [],
        "index": 40
    },
    {
        "infos": [],
        "index": 41
    },
    {
        "infos": [],
        "index": 42
    },
    {
        "infos": [],
        "index": 43
    },
    {
        "infos": [],
        "index": 44
    },
    {
        "infos": [],
        "index": 45
    },
    {
        "infos": [],
        "index": 46
    },
    {
        "infos": [],
        "index": 47
    },
    {
        "infos": [],
        "index": 48
    },
    {
        "infos": [],
        "index": 49
    },
    {
        "infos": [],
        "index": 50
    },
    {
        "infos": [],
        "index": 51
    },
    {
        "infos": [],
        "index": 52
    },
    {
        "infos": [],
        "index": 53
    },
    {
        "infos": [],
        "index": 54
    },
    {
        "infos": [],
        "index": 55
    }
]