搭建一个根据语义相似度进行文本去重服务

背景

1、在做大模型训练的时候,我们需要进行数据集的处理,而很多情况下我们收集到的数据集会存在重复数据,针对去重,有两种,一种是完全重复,也就是数据集里面有一个A,还有存在了着另外一个A;还有一种重复是语义上面非常相似,比如“天龙八部”当前热度1800W,“天龙八部”当前热度1810W,其实这两个数据对训练/测试来说并没有什么特别的地方,所以作为这样的数据的处理,需要进行语义级别的去重。

解决方案

利用SentenceTransformer框架来搭建一个语义搜索服务,也就是将待去重的文本内容,利用sentence embedding,然后根据向量计算余弦值,得出句子的相似度,然后利用util的semantic_search方法进行搜索

代码

import torch
from sentence_transformers import SentenceTransformer, util

def semanticTextualDeduplication_loop(lines, threshold):
    embedder = SentenceTransformer("/data/dh/model/LaBSE")
    corpus = []
    corpus.append(lines[0])
    corpus_embeddings = embedder.encode(corpus, convert_to_tensor=True)
    lines.pop(0)
    for line in lines:
        queries = [line]
        print('line: {0} and corpus.size: {1}'.format(line, len(corp
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值