← 返回列表

电报白嫖资源群 文本相似度计算:如何过滤Telegram群组中的重复刷屏消息?

分类:Telegram群组发布于:2026-08-27

telegram中文搜索群组

在 Telegram 群组中,重复刷屏通常不只是“完全相同的一句话”。同一条广告可能被改写标点、替换链接、增加表情,甚至拆成多条短消息发送,如果仅依靠关键词或完全一致匹配,往往会出现漏拦截误删除并存的问题。

更可靠的做法,是引入文本相似度计算,将消息清洗、分词或切分为字符片段,再根据相似程度、发送频率、用户身份和时间窗口综合判断。这样既能识别“换汤不换药”的复制广告,也能尽量保留群公告、技术讨论和正常引用内容。

本文以 Telegram Bot API 的实时消息处理为基础,介绍一套可落地的重复消息过滤方案,同时说明权限配置、算法选择、阈值调优、隐私保护和人工申诉机制,帮助群管理员建立更稳定的自动化审核流程。

🧭 一、先明确什么是“重复刷屏”

重复刷屏可以分为三种类型:第一种是内容完全一致,第二种是保留大部分句子但修改少量字符,第三种是多个账号发布结构相似、链接相同或意图一致的推广内容。第三类最难判断,因为它们不一定拥有足够高的文本相似度。

因此,文本相似度不能直接等同于违规判定。建议将相似度作为核心信号,再叠加短时间内的发送次数、是否包含外部链接、是否来自新用户以及是否触发群组黑名单等条件。

1. 先区分消息来源与处理范围

Telegram Bot 接收消息后,可以读取普通文本、媒体说明文字、发送者、群组、消息编号和时间等字段。若要处理群内所有普通消息,通常需要在 BotFather 中关闭隐私模式,并将机器人加入目标群组。

机器人还需要具备删除消息权限,否则它只能提醒管理员,无法自动清理刷屏内容。对于历史消息,Bot API 并不适合任意翻查完整群聊记录;实时监控应优先使用 Update,历史分析则要谨慎评估 Telegram 客户端接口和合规边界。

🧹 二、文本预处理决定识别效果

同一条消息在计算相似度之前,必须先进行标准化处理。常见操作包括统一 Unicode 编码、转换大小写、规整全角与半角字符、压缩连续空格,以及将 URL、用户名和表情替换成统一占位符。

电报白嫖资源群 中文场景不建议只依赖英文分词器,因为“电报群”“Telegram 群组”和“TG 群”可能被切成完全不同的词。使用二元或三元字符切片通常更稳定,即使发布者修改了几个字,也能保留较高的局部相似度。

def normalize(text):
    text = unicode_normalize_nfkc(text)
    text = text.lower()
    text = replace_urls(text, "URL_TOKEN")
    text = replace_mentions(text, "USER_TOKEN")
    text = remove_repeated_spaces(text)
    text = normalize_punctuation(text)
    return text.strip()

def char_ngrams(text, n=3):
    return {text[i:i+n] for i in range(len(text) - n + 1)}

需要注意的是,不要机械地删除所有数字、链接和特殊符号。订单号、版本号、金额或验证码可能是正常讨论的关键内容,建议只对链接域名、参数和营销追踪字段做分层处理。

2. 为不同消息建立指纹

预处理后,可以为消息生成 SHA-256 等哈希值,用于快速识别完全重复的内容。对于近似重复消息,再额外保存字符 n-gram 集合或 TF-IDF 向量,避免每次都对整段历史文本进行复杂计算。

如果群组消息量较大,可将最近一段时间的消息指纹放入 Redis 或其他高速缓存中,并设置自动过期时间。这样能够把比较范围控制在合理规模内,减少内存占用和响应延迟。

📐 三、如何选择文本相似度算法

1. Jaccard:适合快速判断局部重复

Jaccard 相似度比较两段文本的 n-gram 交集与并集比例,计算简单、容易解释,适合处理中短广告和中文群聊。两条消息共享的字符片段越多,得分就越高。

Jaccard(A, B) = |A ∩ B| / |A ∪ B|

它的不足是对长度差异比较敏感。一条长广告被拆成短句后,整体 Jaccard 可能下降,因此可以同时比较“短文本是否被长文本覆盖”,或者先合并同一用户在短时间内连续发送的消息。

电报白嫖资源群 2. 余弦相似度:适合处理改写内容

余弦相似度将文本转换为向量,再比较两个向量的夹角,适合识别词语结构相近但长度不同的消息。采用 TF-IDF 时,频繁出现的普通词权重较低,而具有区分度的推广词、品牌名和链接关键词权重更高。

实际项目中可以采用“两级检测”:先用哈希完成完全重复匹配,再用 n-gram Jaccard 或余弦相似度处理近似重复。这样既能提高速度,也方便管理员解释每次拦截的依据。

exact_hash: 直接判定为重复
jaccard_threshold: 0.82
cosine_threshold: 0.90
time_window: 10 分钟
candidate_limit: 最近 100 条消息
admin_whitelist: 启用
link_domain_check: 启用

这些数值只是初始配置,不能视为所有群组通用的标准答案。技术交流群、交易群和资源群的语言模式差异明显,应通过历史样本统计误报率和漏报率,再逐步调整阈值。

电报精准找群黑科技提示:

由于 Telegram 官方搜索对中文支持极差,很多优质的推广、技术和资源群组隐藏极深。如果你正在寻找相关的活跃社群,强烈推荐使用本站首页的 【TTSO - Telegram 智能搜索 Bot】。作为目前最好用的电报综合搜索导航,只需输入关键词,即可秒级触达数十万个精选 TG 中文群组、资源频道。一键直达,帮你节省 90% 的找群时间!

🤖 四、Telegram Bot 的实际处理流程

收到新消息后,机器人可以先判断消息是否来自目标群组,再排除管理员、已批准账号和系统消息。随后提取 text 或 caption,完成标准化、生成指纹,并从当前时间窗口中筛选候选消息进行比较。

电报白嫖资源群 不要一发现相似就立即删除。更稳妥的策略是将“相似度、重复次数、账号风险和链接风险”合并成一个分数,第一次命中时提醒或标记,短时间内再次命中才执行删除或禁言。

on_new_message(message):
    if message.chat_id not in monitored_groups:
        return

    if is_admin(message.sender_id) or is_whitelisted(message.sender_id):
        return

    text = message.text or message.caption or ""
    clean_text = normalize(text)

    if is_too_short(clean_text):
        return

    current_hash = sha256(clean_text)
    previous = find_recent_candidates(message.chat_id, limit=100)

    if exact_hash_exists(current_hash, previous):
        risk = 1.0
    else:
        risk = max_similarity(clean_text, previous)

    if risk >= 0.90 and repeated_in_window(message.sender_id):
        warn_or_delete(message)
        record_audit_log(message, risk)

1. 正确设置隐私模式与群权限

如果机器人没有接收到普通群消息,首先检查隐私模式、群组权限和更新类型。关闭隐私模式后,机器人通常才能观察到更多普通消息,但仍应遵守 Telegram 的平台规则,并避免收集与审核无关的个人信息。

BotFather 操作:
/setprivacy
选择目标 Bot
Disable

群组权限:
加入目标群组
授予删除消息权限
按需授予限制用户权限
保留管理员白名单

还要处理 edited_message 等编辑事件,因为刷屏者可能先发送普通文本,再迅速修改为广告链接。对于图片、视频和文件,应同时检查媒体的 caption;如果需要识别图片内容,则应另外设计 OCR 流程,不要把它误认为普通文本相似度问题。

2. 设置冷却时间,避免机器人反向刷屏

机器人每次删除后都发送一条提示,可能造成新的消息噪音。建议将多个处罚动作合并记录,只在必要时发送简短通知,并为同一用户和同一群组设置冷却时间。

删除动作还应考虑 Telegram 的请求频率限制。遇到大量刷屏时,可以先进入队列,再按群组和时间顺序处理,避免并发调用过多导致接口报错。

🛡️ 五、降低误删:相似度之外还要看上下文

群公告、活动规则和技术教程可能被多人转发,但这类内容不一定是垃圾消息。可以为管理员账号、固定公告格式、可信域名和指定关键词设置白名单,并在计算风险时降低它们的处罚权重。

相反,如果同一账号在 10 分钟内重复发布高度相似内容,且每条都包含外部链接或联系方式,应提高风险等级。多个新账号发布相似文本时,还可以增加“账号集群”信号,但不建议仅凭账号新旧直接封禁。

建立可追溯的审核日志

每次处理至少记录群组 ID、消息 ID、发送者 ID、检测时间、相似度、命中的历史消息 ID 和最终动作。日志中不必长期保存完整原文,可以保存哈希、截断摘要和必要的审核证据。

管理员每周抽查误删与漏删样本,将结果分为“应该删除”“应该保留”和“需要人工判断”。通过这些真实样本重新校准阈值,比盲目提高相似度数值更有效。

提供清晰的申诉入口

电报白嫖资源群 自动化审核必须允许纠错,否则成员会因为一次误判而失去对群组管理的信任。机器人可以在删除提示中提供联系管理员的方式,并让管理员根据原始消息、上下文和账号历史进行复核。

管理员您好,我的消息可能被系统判定为重复内容。
消息时间:____
消息编号:____
实际用途:____
是否包含推广链接:是 / 否
申请结果:请协助复核并恢复正常发言权限。

📊 六、上线前的性能与隐私检查

消息比较的时间复杂度会随着候选数量增加而上升,因此实时场景不应让每条消息扫描全部历史记录。将候选限制在最近若干分钟或最近若干条消息,并用哈希表快速排除不可能重复的内容,通常已经足够应对中小型群组。

对于大型群组,可以使用 SimHash 或 MinHash 建立近似检索索引,再对少量候选执行精确相似度计算。这样能够降低计算成本,但索引参数仍需要通过真实群聊样本测试,不能直接照搬其他项目配置。

隐私方面,应遵循最小化收集原则:只处理反垃圾所需字段,限制日志保存时间,保护 Bot Token,不在公开频道输出用户完整消息。若需要接入外部 AI 或第三方分析服务,应先评估敏感信息泄露、数据跨境和群成员知情问题。

上线后重点观察四项指标:重复消息拦截量、人工确认后的准确率、误删申诉率和机器人接口失败率。只有把算法结果与管理员反馈闭环连接起来,文本相似度系统才会从“能运行”逐渐变成“值得信赖”。

✅ 总结:用多信号而不是单一阈值过滤刷屏

过滤 Telegram 群组中的重复刷屏消息,推荐采用“文本标准化、完全重复哈希、近似相似度、时间窗口、账号行为和人工复核”的组合方案。Jaccard 适合快速比较字符片段,余弦相似度适合识别结构相近的改写内容。

最重要的是,相似度负责发现线索,群规和人工审核负责做最终判断。通过白名单、风险分级、审计日志和申诉机制,可以在减少刷屏的同时,最大限度保护正常交流体验。

❓ 常见问题解答(FAQ)

Q1:完全相同的消息是否可以直接删除?

可以对完全一致的消息进行快速标记,但最好先排除管理员公告、白名单账号和群规允许的转发内容。对于普通成员,首次命中可以提醒,短时间内连续重复时再删除或限制发言。

电报白嫖资源群 Q2:中文消息使用什么相似度算法最好?

没有绝对通用的最佳算法。中短中文广告可以优先采用字符三元组加 Jaccard,改写明显或长度差异较大的内容可以增加 TF-IDF 余弦相似度,实际阈值应根据群组样本校准。

Q3:为什么机器人加入群组后仍然收不到普通消息?

常见原因包括隐私模式未关闭、机器人没有加入正确群组、更新处理器未监听对应事件,或代码只读取 text 而忽略了 caption。还应确认机器人没有被限制查看消息,并检查 Webhook 或 Long Polling 是否正常工作。

Q4:相似度很高但内容是正常公告,应该怎么办?

电报白嫖资源群 为管理员、公告频道、固定模板和可信链接建立白名单,并将“是否重复”与“是否违规”分开判断。系统可以保留相似度记录,但不直接执行删除。

Q5:是否需要保存所有群消息原文?

通常不需要。保存哈希、消息编号、风险分数和有限长度的审核摘要即可满足大多数排查需求,完整原文应设置严格的访问权限和较短的保留周期。

telegram搜
Telegram搜索入口客服ID@TTSO联系