Skip to content

Commit 250cf06

Browse files
committed
rephrase and polish a paragraph
1 parent 2489184 commit 250cf06

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

content/zh/post/2025/基于贝叶斯算法的Telegram广告拦截机器人(二).md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title = "基于贝叶斯算法的Telegram广告拦截机器人(二):上线半月的故障、挑战与优化之路"
33
author = ["Ramsay Leung"]
44
date = 2025-09-13T14:28:00-07:00
5-
lastmod = 2025-09-14T11:12:53-07:00
5+
lastmod = 2025-09-14T11:22:03-07:00
66
tags = ["telegram", "design", "programming", "rails", "rust"]
77
categories = ["telegram", "基于贝叶斯算法的Telegram广告拦截机器人"]
88
draft = false
@@ -69,19 +69,21 @@ Email 大多时候都是长文的,内容较长,并且大多情况,一封
6969

7070
### <span class="section-num">3.2</span> 漏删与误删 {#漏删与误删}
7171

72-
漏删广告与误删消息是相互矛盾的结果
72+
漏删与误删是广告拦截中不可避免的矛盾权衡。
7373

74-
因为如果想要提高拦截度,自然就需要把置信度降低,把疑似是广告的消息都拦截掉,但是因为拦截强度的上升,又会把正常消息误删
74+
若想提高拦截率(召回率),就需降低置信度阈值,将更多疑似广告的消息拦截,但这也会增加误删正常消息的风险
7575

76-
如果想要不误删消息,那么难免需要增加拦截的阈值,只有超过一定的置信阈值才拦截,这样准确度增加了,难免就会存在漏删广告的可能性
76+
反之,若想避免误删(提高精确率),则必须提高置信度阈值,但这又会导致更多广告被漏掉
7777

78-
那么是否可以既准确拦截广告,又避免误删正常消息呢?
78+
在即时消息短小、上下文缺失的特性下,想同时实现零误删和零漏删几乎是不可能的。
7979

80-
在即时消息上下文不齐整,消息短而密集的特性下,可以基本是不可能的。
80+
权衡之下,我选择优先保证用户体验: ****宁可漏删,不可误删****
8181

82-
而用户对消息被误删,以及垃圾广告被漏删的容忍度也是不同的,漏删广告,群成员可以举报或管理员删,但是误删就没法恢复.
82+
因为漏掉的广告,群友可以举报或由管理员手动删除;但误删的正常消息却无法恢复,对用户的伤害更大。
8383

84-
所以我只能是提高置信度,把阈值设置成95%, 也就是说只有模型认为超过95%的概率这个是广告,才能把这条消息删掉,虽然会增加漏删广告的概率,但是起码能保证不误删正常消息。
84+
因此,我将拦截阈值设置为95%,即仅当模型有极高把握(&gt;95%概率)判定为广告时才会删除。
85+
86+
这虽然会放过一些疑似广告,但最大程度地保障了正常聊天不被误删。
8587

8688

8789
## <span class="section-num">4</span> 优化之路 {#优化之路}
@@ -229,7 +231,8 @@ Telegram客户端不一定支持会跳转被恢复的旧消息,这意味着,
229231
| 训练数据量 | 10543 |
230232

231233
最开心的是看到我自己的程序在这些群成功拦截垃圾广告,就很有成就感,证明我做的东西真的能用户解决问题。
232-
![](/ox-hugo/detect_spam_success.jpg)
234+
235+
{{< figure src="/ox-hugo/detect_spam_success.jpg" >}}
233236

234237

235238
## <span class="section-num">7</span> 结语 {#结语}

0 commit comments

Comments
 (0)