约 192GB 短信样本如何标记分类?

andforce · 2024-9-24 23:28:16 · 213 次点击
之前开发了一个《垃圾短信过滤 App 》- [胖鱼信使]( https://apps.apple.com/app/id6448448856)

## 为什么要重新造轮子?
主要是 2 个原因:
1: 市面上没有`完全不联网`的垃圾短信过滤 App
2: 想学习一下人工智能分类

## 192.36 GB 纯文本短信数据

上架研发初期,垃圾短信的训练样本都是来自互联网,然后加上自己和家人的几百条数据,

偶尔有用户会给我回馈几条,还能处理。

后来想更提高一把模型准确性,想多搞点样本,有个用户提供了这些个短信数据。

> 192,184,722,019 字节(磁盘上的 192.36 GB )

纯文本数据,这也太多了。。。。

有什么工具能对其进行批量标注吗?
举报· 213 次点击
登录 注册 站外分享
25 条回复  
raycool 小成 2024-9-24 23:36:41
部署个 qwen2.5 最新开源的大模型
使用大模型快速标注
lozzow 小成 2024-9-25 00:04:41
可以简单的使用文本正则处理一次,然后用这些基于正则的数据跑一个分类模型出来,再用这个分类模型(需要适当的调整下输入的数据)去处理剩余的数据,如果是我的话会这么处理,或者第一步用正则处理出来的数据+用大模型处理的一些数据来做
guiyumin 小成 2024-9-25 00:17:33
有吧?那个熊猫吃短信
noqwerty 小成 2024-9-25 00:33:38
@andforce 不联网怎么提交反馈呢
rechardwong0522 小成 2024-9-25 00:34:28
可以先用聚类试着清理掉重复度高的样本,然后选出一部分来训练就可以了。
syaoranex 初学 2024-9-25 02:17:50
没必要所有的短信都拿来训练,同意楼上所说,可以先聚类再挑选聚类中心的一部分短信来用于训练。没有被挑中的就拿来当测试集就 OK 了。因为聚成一类的大多数都是重复的模式。

聚类的时候,可以先用正则等文本匹配来识别短信发送源,例如 [XX 应用] 之类的,然后在每个发送源下,使用文本嵌入模型转换向量,之后对向量进行聚类,建议聚多个类,挑选多个聚类中心的前 3~5%的短信来训练。足够有代表性。这一步可以很快,因为文本嵌入模型一般不大,运行速度尚可接受。至此筛选出 2-3kW 条典型短信。

如果还想更快,可以使用分词+词表统计的方法统计词频生成稀疏向量再聚类的办法,这种方法也许更适合,如果数据集中同一来源的大多数短信是套取模板(比如运营商的话费流量短信)生成的,那么可以针对模板类短信取其中千分之一的样本,模板类短信之外的取较大比例的样本,覆盖度更好。

之后就是用 LLM 来进行文本分类了,文本分类任务上,再优秀的传统模型的效果可能才刚好够上最烂的大模型。至于速度问题,可以搭配提示工程尝试效果不错的小模型,或者使用 Groq 等平台,它们提供了吞吐速度较快的大模型,分类任务足够了;而且可以搭配工程实现的优化:对于同一个聚类样本,例如 2K 条样本,如果在分类过程中前 1K 条样本有 95%以上都被判定为垃圾短信,那么可以将后 1K 条样本直接划为垃圾短信,这样做可以节省大量时间。同时也可以考虑多个平台多个账号并发处理,我认为资金充足的情况下,1 秒 10 个的处理速度还是可以达到的。按照这个速度,一个月可以弄完 2.5 kW 条样本的分类。
GeekGao 小成 2024-9-25 06:05:51
参考 ActiveLearner 主动学习
https://github.com/hrwleo/dwnlpinterview/blob/main/Trick/SmallSampleProblem/activeLearn/readme.md
murmur 小成 2024-9-25 08:37:11
短信现在感觉没有分类的意义了,长文本才有分类的意义,因为短文本本身就表意不明,长语句现在更倾向于微信说话

最后分类出来要么是验证码要么是广告
ibazhx 初学 2024-9-25 08:49:14
可以使用智谱的 batch api
123下一页
返回顶部