当前位置: 首页 > news >正文

快速上手文本向量模型 Sentence-Transformers

sentence-transformers 是一个极为强大的 Python 库,用于将文本转换成向量(embeddings),广泛应用于语义搜索、文本相似度、问答系统、向量数据库(如 Qdrant)等场景。

本篇将手把手教你完成以下内容:

  • ✅ 安装 Sentence-Transformers(含依赖环境说明)

  • 🔍 模型选择与加载

  • 🧪 简单向量测试(含维度与余弦相似度)

  • 🧠 模型适配建议(结合 Qdrant 等向量库)


✅ 一、环境准备与安装说明

如果你已经有一个 Python 项目环境,推荐在 虚拟环境 中安装:

pip install sentence-transformers

安装说明:

  • 自动依赖安装:它会自动安装 transformers、torch、scikit-learn 等依赖。

  • ✅ 不需要 GPU 也可以正常使用(默认使用 CPU)。

  • 建议使用 Python 3.8–3.11 版本(3.13 有些库还不完全支持)。

  • 模型会自动下载哦

📌 你可以通过以下方式检查安装结果:

pip list | grep sentence-transformers

或在 Python 交互环境中测试导入:

from sentence_transformers import SentenceTransformer

运行一段向量化文本的代码会自动下载模型,如下图:


🔍 二、加载模型并生成文本向量

from sentence_transformers import SentenceTransformermodel = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')# 示例文本
sentence1 = "Tokyo is the capital of Japan."
sentence2 = "Kyoto used to be Japan's capital."# 向量化
vec1 = model.encode(sentence1)
vec2 = model.encode(sentence2)print("向量维度:", len(vec1))
print("前五维:", vec1[:5])


🧪 三、计算余弦相似度(文本语义相似度)

from sklearn.metrics.pairwise import cosine_similarity
import numpy as npsimilarity = cosine_similarity([vec1], [vec2])
print("句子相似度(cosine):", similarity[0][0])
🔢 输出是一个 0.0~1.0 之间的值,越接近 1 表示语义越相似。


🧠 四、推荐模型列表(不同任务适配)

模型名称

支持语言

维度

适合场景

paraphrase-MiniLM-L6-v2

英文

384

快速语义相似度、推荐

paraphrase-multilingual-MiniLM-L12-v2

多语种

384

多语言文本搜索(推荐!)

all-mpnet-base-v2

英文

768

高精度检索(稍慢)

e5-small-v2 / e5-base-v2

英文

384 / 768

搜索引擎优化

如果你和 Qdrant 搭配使用,建议选用 384 维模型,如 MiniLM 系列,更省空间、速度更快。


🎯 Bonus:批量编码文本

sentences = ["I love Python.", "Python is great for machine learning.", "Tokyo is in Japan."]
vectors = model.encode(sentences)print("共编码 %d 条文本,每条向量维度:%d" % (len(vectors), len(vectors[0])))


🚀 实战建议(结合 Qdrant 等向量数据库)

  • 使用 sentence-transformers 将文本向量化后可存入 Qdrant、FAISS、Milvus 等数据库;

  • 建议统一模型后再建立数据库索引,避免向量维度不一致;

  • 可配合 score_threshold 设置查询置信度;

  • 若部署在服务器端,可将模型持久化加载,加快响应速度。


📌 总结

项目

内容

安装命令

pip install sentence-transformers

最常用模型

paraphrase-multilingual-MiniLM-L12-v2(多语言,384维)

相似度计算

使用 cosine_similarity()

搭配推荐

向量数据库(Qdrant、FAISS)、语义检索、名称匹配系统等

http://www.xdnf.cn/news/1052695.html

相关文章:

  • Java正则分组:高效捕获与引用技巧
  • InnoDB的undo日志的数据结构
  • 从0开始学习R语言--Day24--稀疏建模
  • 基于MSE-Nacos实现服务的动态发现和配置动态管理
  • 车载软件架构 --- 汽车中央控制单元HPC软件架构方案实例
  • 生成对抗网络(GANs)入门介绍指南:让AI学会“创造“的魔法(一)
  • 已知路由表和分组的目的地址求对应的下一跳地址
  • 一阶偏微分方程特征线与解分析
  • C#最佳实践:为何应减少嵌套
  • JavaScript学习笔记
  • java基础面试题。
  • 信息学奥赛一本通 1541:【例 1】数列区间最大值
  • C# 枚举(位标志)
  • FastAPI-MCP构建自定义MCP工具实操指南
  • 敏捷开发的特点
  • 【计算机 电脑任务管理器中,性能界面的各项指标的含义及影响】
  • idea2024使用卡顿
  • 《k8s 部署》常见报错类型1
  • 华为OD-2024年E卷-英文输入法[100分] -- python
  • [Java 基础]日期时间
  • 力扣的SQL
  • Spring AI 对话记忆持久化实战-MySQL方案
  • 【分析学】 从确界定理出发——实数系完备定理
  • Proteus8.17仿真51单片机驱动ST7920 LCD12864
  • MyBatisPlus 全面学习路径
  • 《仿盒马》app开发技术分享-- 回收金提现记录查询(端云一体)
  • java 集合 泛型
  • 第2讲、LangChain应用架构与核心组件:构建LLM应用的基石
  • 访问网页的全过程
  • 电脑端应用使用统计工具,精准分析你的习惯