← 返回列表

Telegram中文社区 数据清洗流水线:过滤群组无效广告与垃圾链接的算法

分类:Telegram群组发布于:2026-09-10

telegram搜

在 Telegram 群组、频道或社区中,广告刷屏、短链接、重复推广文案和伪装资源链接会持续消耗管理成本。更麻烦的是,正常的产品分享、活动通知与垃圾广告往往只差一个判断场景,单纯依靠关键词屏蔽,容易误伤真实用户。

一套可靠的数据清洗流水线,应当同时处理文本、链接、发送行为和群组关系,并将自动过滤、人工复核、用户申诉连接起来。本文以可落地的算法流程为主线,说明如何识别无效广告、评估垃圾链接风险,并在准确率与召回率之间取得平衡。

Telegram中文社区 🧭 一、先定义清洗目标与数据标签

清洗之前不要急着写规则,首先要明确待处理对象。常见对象包括单条消息、URL、发送者、群组以及同一用户在多个群组中的重复行为,不同对象应使用不同的判断粒度。

  • 正常内容:与群组主题相关,链接来源清晰,表达具有独立性。
  • Telegram中文社区 低价值广告:重复发布、强引导私聊、无关推广或批量复制的营销文本。
  • 高风险链接:伪装域名、可疑跳转、恶意下载、钓鱼页面或无法验证来源的短链接。

标签最好分为“正常”“疑似广告”“确认广告”“可疑链接”和“安全链接”五类,而不是简单设置为删除与保留。这样既能支持后续模型训练,也能为人工复核提供明确依据。

{
  "message_id": "唯一消息标识",
  "group_id": "群组标识",
  "sender_hash": "脱敏后的发送者标识",
  "text": "规范化后的文本",
  "urls": ["提取出的链接"],
  "label": "normal_or_review_or_spam",
  "reason_codes": ["重复模板", "链接风险", "异常频率"]
}

🧹 二、第一阶段:对文本与 URL 进行标准化

垃圾发布者经常使用全角字符、零宽字符、混合大小写和符号插入来绕过关键词过滤。因此,系统需要先统一大小写、清除不可见字符、转换常见全角符号,并对 Unicode 文本进行规范化。

URL 处理也不能只做字符串匹配。应当提取协议、主域名、路径、查询参数和跳转链,同时保留原始链接用于审计,避免因直接删除参数而破坏合法的活动追踪或登录流程。

def normalize_text(text):
    value = unicode_normalize(text)
    value = remove_zero_width_chars(value)
    value = convert_full_width_chars(value)
    value = collapse_repeated_spaces(value)
    return value.casefold().strip()

def normalize_url(url):
    parsed = parse_url(url)
    host = convert_domain_to_ascii(parsed.host).lower()
    path = normalize_path(parsed.path)
    query = keep_safe_query_keys(parsed.query)
    return build_url(parsed.scheme.lower(), host, path, query)

对于短链接和多级跳转,建议在隔离环境中进行解析,并设置超时、最大跳转次数和响应体大小限制。未知链接不应在业务服务器上直接打开,更不能让爬虫执行页面中的脚本。

🔎 三、第二阶段:使用规则引擎快速拦截明显垃圾

规则引擎适合处理高确定性的场景,例如已确认的恶意域名、明显的批量重复文本、异常密集的链接组合和违反群规的固定话术。它的优势是响应快、可解释、便于审计,但不应成为唯一判断方式。

规则应当带有版本号、创建人、命中原因和生效范围,并支持灰度发布。对于“疑似推广”这类边界样本,建议进入复核队列,而不是直接删除,避免正常活动通知被误伤。

max_urls_per_message: 3
duplicate_similarity_threshold: 0.92
high_risk_score_threshold: 0.85
manual_review_score_range: 0.60-0.85
max_redirect_hops: 3
recent_duplicate_window: 24h
domain_reputation_refresh: 6h

以上参数只能作为初始化参考,不能被当成放之四海而皆准的标准。不同群组的主题、活跃时段和内容密度差异很大,阈值应依据人工标注数据持续校准

Telegram中文社区 🧠 四、第三阶段:建立多特征垃圾评分算法

当规则无法明确判断时,可以为每条消息计算综合风险分。特征包括链接数量、文本重复度、行动号召词密度、发送频率、账号历史信誉、域名信誉,以及消息与近期广告模板的相似度。

一个易于解释的方案是加权评分模型,再将结果分成放行、复核和隔离三个等级。模型输出必须同时返回命中特征与原因码,这样管理员才能理解系统为何做出判断。

spam_score =
    0.22 * link_density +
    0.18 * template_similarity +
    0.16 * sender_frequency +
    0.15 * domain_risk +
    0.14 * promotion_language +
    0.10 * account_anomaly +
    0.05 * group_irrelevance

if spam_score >= high_risk_threshold:
    action = "quarantine"
elif spam_score >= review_threshold:
    action = "manual_review"
else:
    action = "allow"

🔤 文本相似度与模板识别

批量广告通常只改变几个数字、表情或域名,核心句式保持不变。可以使用 SimHash、MinHash 或向量相似度识别近似重复内容,并设置时间窗口,避免把长期存在的群规、公告误判为垃圾消息。

如果数据量较大,可以把规则特征与轻量分类模型结合。模型应定期使用新样本重新训练,并检查概念漂移,例如广告商开始改用图片、语音或特殊字符后,旧模型可能迅速失效。

Telegram中文社区 🕸️ 五、第四阶段:利用行为与关系图谱发现批量投放

单条消息看似正常,但多个账号在相近时间发布相同链接,往往说明存在批量投放。系统可以构建“发送者—群组—域名—消息模板”的关系图,统计共同域名、共同模板、跨群发布时间和账号活跃突增。

图谱特征适合发现隐蔽的广告网络,但必须避免把正常的公共项目、媒体账号或同一企业的官方账号误判为违规集群。实际部署时应使用脱敏标识和聚合统计,不要收集与审核无关的个人信息。

🛡️ 链接安全检查的边界

链接信誉可以参考历史命中记录、域名年龄、证书状态、跳转行为和外部安全情报,但任何单一指标都不能直接证明链接恶意。对高风险 URL 应采取隔离、延迟展示和人工复核,而不是让系统自动访问并执行其内容。

✅ 六、第五阶段:采用可回滚的分级处置

推荐采用“放行、降权、复核、隔离”四级处置,而不是只有保留和删除两个按钮。放行内容正常展示,降权内容减少推荐范围,复核内容进入管理员队列,隔离内容暂时隐藏但保留证据。

  • 放行:风险分较低,且没有命中确定性黑名单规则。
  • 复核:存在重复模板、异常频率或主题不相关等组合信号。
  • 隔离:命中高可信恶意域名、批量投放特征或严重违反群规。

每次处置都应记录时间、规则版本、模型版本、命中特征和最终结果。这样既能支持误判回滚,也能为后续的模型评估和管理员复盘提供证据。

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

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

Telegram中文社区 📊 七、第六阶段:用数据评估清洗效果

不要只看“删除了多少条消息”,因为删除量高并不代表系统准确。更重要的指标包括精确率、召回率、误杀率、人工复核通过率、平均处理延迟,以及不同群组之间的表现差异。

评估集应由多种主题、不同活跃程度和不同语言风格的样本组成,并保留一部分从未参与训练的测试数据。对于高风险链接,宁可单独建立更严格的安全集,也不要把它和普通广告样本混在一起。

precision = true_positive / predicted_positive
recall = true_positive / actual_positive
false_positive_rate = false_positive / actual_negative

review_pass_rate = approved_after_review / total_reviewed
model_drift = compare_recent_distribution_with_baseline()

建议每周抽取自动放行和自动隔离样本进行盲审,重点查看误判集中出现的主题、域名类型和文本表达。根据反馈更新规则与训练集,而不是临时增加大量关键词,避免系统越来越僵化。

🔐 八、隐私、透明度与用户申诉

数据清洗系统应遵循最小化原则,只保存完成审核所必需的数据。发送者标识可以使用不可逆哈希,原始消息设置合理保留期限,审核日志则应限制访问权限并记录操作人。

当消息被隔离时,最好向用户展示简短原因,例如“检测到重复推广模板”或“链接正在安全复核”,而不是笼统地提示系统错误。透明的原因说明能够降低争议,也能帮助用户修改后重新提交。

您好,您的消息暂时进入人工复核,原因是系统检测到:
1. 文本与近期多条推广内容高度相似;
2. 消息包含尚未完成安全验证的链接。

如果该内容属于正常分享,请补充来源、用途和相关背景,我们会在复核后恢复展示。
感谢您的理解与配合。

❓ 常见问题解答(FAQ)

1. 只用关键词黑名单能否过滤垃圾广告?

不能。垃圾发布者会使用错别字、图片文字、特殊符号和不断变化的域名绕过关键词,单一黑名单还容易误伤正常讨论。更可靠的做法是结合文本相似度、链接信誉、发送频率和人工反馈。

2. 为什么不建议把所有短链接直接删除?

短链接本身只是跳转形式,并不必然代表恶意。应检查其最终域名、跳转次数、历史信誉和群组上下文,再决定放行、复核或隔离。

3. 小型群组是否需要机器学习模型?

不一定。小型群组可以先使用文本规范化、重复检测、链接提取、频率限制和人工复核,形成稳定样本后再引入模型。数据量不足时,复杂模型反而可能增加维护成本。

4. 如何降低误杀正常推广内容的概率?

将推广识别与恶意链接识别分开建模,并设置复核区间和可回滚机制。对于有明确来源、内容独立且符合群组主题的分享,应优先保留或交由管理员确认,而不是直接删除。

telegram中文搜索群组
Telegram搜索入口客服ID@TTSO联系