新闻 / 资讯聚合去重方案:多源采集如何用相似度检测接口去重
# 新闻 / 资讯聚合去重方案:多源采集如何用相似度检测接口去重
> 元信息:接口/接入点 中文文本相似度检测接口(294/1、294/2)· 免费 · 返回格式 JSON · 适用人群 资讯/爬虫/聚合平台开发者 · 阅读时间 约 8 分钟
## 核心要点
- 多源新闻常出现"同一事件、不同标题正文"的同源稿,用相似度可把同题稿件聚成一簇,避免首页刷出 10 条一样的新闻。
- 典型流程:采集 → 抽取标题/正文 → 粗筛同事件候选 → 接入点 2 批量定位最相似 → 聚类落库。
- 相似度只是"同题"信号,最终合并展示仍需结合发布时间、来源权威度等业务规则。
## Why:聚合站的命门是"别重复"
做资讯聚合,最尴尬的就是同一件事被 5 家媒体发了 5 遍,你的首页全是一条。读者觉得你是垃圾站,广告主也跑光。把相似度当"同题聚类"的尺子,能在入库前把同源稿并成一簇,只推最值得的一条。
## What:方案速览
| 项 | 说明 |
|----|------|
| 检测接口 | 294/1(两两比)、294/2(1 vs 候选集) |
| 输入 | 各源采集的标题 + 正文 |
| 输出 | `like` / `likeValue`(0~1) |
| 动作 | 同题聚类、保留代表稿、折叠其余 |
| 限制 | 仅中文;免费档位限流,需配合缓存与粗筛 |
## How:同题新闻聚类
### 步骤 1:采集与归一
抓取各源,提取 `title` 与 `content`,做基础清洗(去 HTML、去版权行、繁简统一)。
### 步骤 2:粗筛同事件候选
用标题关键词交集 / SimHash 先把"可能同题"的稿件聚成小候选集,避免全量两两比。
### 步骤 3:批量接口定位最相似
```python
import requests, json
def find_cluster_rep(new_item, candidates):
"""candidates: list[{id, title, content}],返回最相似候选。"""
texts = [f'{c["title"]} {c["content"]}' for c in candidates]
r = requests.post("https://route.showapi.com/294-2",
params={"appKey": "YOUR_APPKEY"},
data={"t1": f'{new_item["title"]} {new_item["content"]}',
"t2": json.dumps(texts, ensure_ascii=False)},
timeout=10).json()
b = r["showapi_res_body"]
if b.get("ret_code") != 0:
return None
return candidates[b["mostLike"]], b["likeValue"]
```
### 步骤 4:聚类落库
```python
MERGE = 0.9
rep, score = find_cluster_rep(new_item, cluster_candidates)
if rep and score >= MERGE:
attach_to_cluster(new_item, rep.cluster_id) # 并入已有簇
else:
create_new_cluster(new_item) # 新建簇
```
## 返回示例与解析
接入点 2 的 `mostLike` 给出最相似候选下标,`likeValue` 给出相似度,据此决定是否并入同一簇。
## 进阶 / 边界
- **标题比重应高于正文**:新闻改写常动正文不动标题,可给标题更高权重(拼接时重复标题或分开比后加权)。
- **仅中文**:国际稿、英文源不在支持范围,需先做语言识别或走英文方案(见[语言边界篇](https://www.showapi.com/guides/text-similarity-chinese-only-294))。
- **省额度**:同簇已比过的 pair 缓存结果,避免重复调用(见[缓存篇](https://www.showapi.com/guides/text-similarity-cache-cost-294))。
## FAQ
**Q1:相似度多高算同一事件?**
没有固定值,资讯场景常见起点 0.9,但应结合标题重合度、来源、时间窗校准(见[阈值篇](https://www.showapi.com/guides/text-similarity-threshold-294))。
**Q2:只用正文比够吗?**
不够。新闻改写常保留标题,建议标题与正文分别加权,标题相似度权重更高。
**Q3:英文国际新闻能去重吗?**
不能。本接口仅支持中文,英文源需另行处理。
**Q4:聚合量大会超免费额度吗?**
会。多源采集量大,务必配合缓存、粗筛与限流(见[缓存篇](https://www.showapi.com/guides/text-similarity-cache-cost-294))。
## 下一步阅读
- [中文文本相似度检测接口实战:UGC 评论 / 文章去重从采集到判重的全链路设计](https://www.showapi.com/guides/text-similarity-dedup-294)
- [免费档位下如何设计缓存节省调用?L0~L4 档位与 QPS 限制下的优化](https://www.showapi.com/guides/text-similarity-cache-cost-294)
- [UGC 社区内容治理:用中文文本相似度检测接口打击重复灌水](https://www.showapi.com/guides/text-similarity-ugc-moderation-294)
- **本系列共 12 篇**:查看[中文文本相似度检测接口指南总目录](https://www.showapi.com/guides/text-similarity-guides-294)