Compare commits
2 Commits
34ad16ff02
...
1545a85b09
| Author | SHA1 | Date | |
|---|---|---|---|
|
1545a85b09
|
|||
|
115d95bbef
|
@@ -34,6 +34,12 @@
|
||||
|
||||
对于旧数据:有风险分类信息,但在本轮聚类中没有被选为聚类代表的新闻,**不会** 被更新风险分类信息。
|
||||
|
||||
## 关于数据聚类算法的说明
|
||||
|
||||
文本向量是维度为 1024 的 float16 一维数组。向量之间使用 cosine 距离计算相似度。
|
||||
|
||||
由于聚类的目的是去重,因此 DBSCAN 是比较合适的算法。目前指定使用参数 EPS=0.25 最小聚类数量 2。基本上有 2 条重复的或者语义相似的新闻都可以识别到同一个聚类中。
|
||||
|
||||
## 重复数据说明
|
||||
|
||||
由于新闻洗稿、转载、抄袭等原因,可能会出现同一篇新闻在多个平台发布的情况。牛媒数据中台把他们当作不同的新闻对待(拥有不同的 ID)。聚类算法可以从语义信息层面识别到这些重复新闻(包括完全重复和语义相似),并把他们归为一类。
|
||||
|
||||
@@ -118,6 +118,8 @@ async def batch_risk_analyze(
|
||||
task.response = await risk_analyze(task, model)
|
||||
queue.task_done()
|
||||
bar.update(1)
|
||||
if bar.n % 100 == 0:
|
||||
print(f"已完成 {bar.n} 条风险分析")
|
||||
|
||||
async def producer():
|
||||
for task in tasks:
|
||||
@@ -131,6 +133,8 @@ async def batch_risk_analyze(
|
||||
await queue.put(None)
|
||||
await asyncio.gather(*workers)
|
||||
|
||||
print("风险分析完成")
|
||||
|
||||
return tasks
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user