基于语义搜索的意图识别

本文介绍了如何使用tex2vec和faiss进行语义搜索,通过计算文本向量的相似度来识别意图。提到中文和英文模型的选择,以及如何创建和搜索索引,以减少错误率并优化阈值设置。

        语义是基于tex2vec文本向量化模型,通过计算文本向量之间的距离来实现的。向量搜索使用faiss来进行,搜索的结果通过设置相似度的阈值来判断是否属于某个意图,为了减少输出结果的错误率,建议把阈值尽量设置高一些,避免乱推荐/乱弹,但也不是越高越好,太高了就不出结果了,在严肃场景,当然也是可以不出结果的,这个需要根据具体的意图来进行设置。根据经验,通常建议设置阈值为0.9以上。

        语义搜索基于faiss搜索来实现,通过sbert计算两个句子之间的相似度,用于识别意图。中文模型建议使用text2vec-base-chinese-sentence,英文模型建议使用distilbert-base-nli-mean-tokens,英文模型也支持中文,但效果不及专门的中文模型,同时英文模型也支持泰语、菲利宾语、阿拉伯语等各种语言,当然效果通常不及专门训练的对应语言的模型。

        首先,创建faiss索引:

    if language == "zh":
        model = SentenceTransformer('text2vec-base-chinese-sentence')
    elif language == "en":
        model = SentenceTransformer('distilbert-base-nli-mean-tokens')

    encoded_data = model.encode(data) #data 为你的数据list,如:相似问列表。
    index = faiss.IndexIDMap(faiss.IndexFlatIP(768))
    index.add_with_ids(encoded_da

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jacky_wxl(微信同号)

喜欢作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值