You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于上下文将WhatsApp聊天内容拆分为多个独立对话块?

实现WhatsApp聊天记录拆分对话块的完整步骤

第一步:数据预处理

  • 清洗原始CSV文件,过滤所有非用户发送的系统通知(比如好友添加提醒、消息撤回提示、通话记录等),保留核心字段:消息发送时间、发送人标识、消息内容、引用消息标记(WhatsApp导出的CSV会带回复引用的关联标识)
  • 把消息发送时间统一转换为毫秒级时间戳,发送人标识统一映射为U1、U2两类固定标签,消息内容做标准化处理:去除多余换行符、统一emoji编码、清理无意义的特殊符号
  • 按时间戳正序对所有消息做全量排序,确保聊天时序完全正确

第二步:特征提取

  • 计算每条消息与上一条消息的时间间隔差,单位统一为分钟
  • 对所有消息内容做分词、向量化处理,计算单条消息与上一个对话块所有内容的语义相似度
  • 标记每条消息的行为特征:是否带引用回复标记、是否包含上一个对话块的核心关键词、是否为典型的新会话发起话术

第三步:对话块划分与校验

  • 逐行遍历所有消息,按照下文的判断规则标记每个对话块的起始与结束边界
  • 对初步划分的对话块做二次校验,修正明显的划分错误(比如间隔超过24小时但明确是回复之前对话的内容,重新归到对应块中)
  • 输出划分结果,每个对话块可单独存储,标注块发起人、起始/结束时间、核心话题标签
消息承接/新对话的判断规则

按照优先级从高到低排序,满足高优先级规则直接判定,无需匹配低优先级规则:

  1. 引用回复优先规则:只要当前消息带引用回复标记,无论和上一条消息间隔多久,直接判定为承接上一个对话块
  2. 新会话发起规则:如果当前消息以典型的新对话开头话术起头(比如「在吗」「忙不」「问你个事」「嗨」),且没有带引用标记,直接判定为开启新对话
  3. 时间阈值规则:当前消息与上一条消息间隔小于2小时,默认判定为承接旧对话;间隔大于24小时,默认判定为开启新对话;间隔在2~24小时区间,进入语义相似度判断环节
  4. 语义相似度规则:计算当前消息与上一个对话块所有内容的余弦相似度,相似度≥0.6判定为承接,≤0.3判定为开启新对话,中间区间匹配核心关键词重合度:重合度≥30%判定为承接,否则判定为新对话
  5. 话题跳转规则:如果当前消息的核心关键词和上一个对话块完全无重合(比如上一个块聊的是「周末聚餐地点」,新消息核心关键词是「笔记本电脑维修」),无论间隔多久,都判定为开启新对话

内容的提问来源于stack exchange,提问作者Wolfox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:45:03