当前位置: 首页 > 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)、语义检索、名称匹配系统等

相关文章:

  • 基于YOLOv8+Deepface的人脸检测与识别系统
  • 【Docker管理工具】安装Docker磁盘使用仪表板Doku
  • 139. 单词拆分
  • 鸿蒙运动开发实战:打造专属运动视频播放器
  • 【2】Redis 缓存击穿原理和解决方案
  • 制作微PE U盘后电脑多出300M盘符(EFI分区)无法隐藏的解决过程
  • [VSCode] VSCode 设置 python 的编译器
  • LangGraph--Agent常见的模式1(增强型,提示链)
  • 高效开发REST API:Django REST Framework序列化器深度指南
  • macbook配置vscode连接腾讯云服务器
  • springboot测试类原理
  • 掌握这些 Python 函数,让你的代码更简洁优雅
  • 《深度剖析:SCSS中混入(Mixin)为浏览器前缀赋能》
  • Photoshop矢量蒙版全教程
  • Spark核心概念与DAG执行原理笔记
  • 中国风系列简约淡雅通用PPT模版分享
  • Spring Boot 实训项目 - 图书信息网站
  • 鸿蒙Next仓颉语言开发实战教程:设置页面
  • 【系统设计【2】】粗略估算
  • @SpringBootTest 详解
  • 如何提升网站点击量/手机百度最新正版下载
  • 做网站公司牛鼻子/地推推广方案
  • 小企业如何优化网站建设/seo基础教程
  • 班级建设网站设计方案/北京网优化seo公司
  • WordPress建立电商网站/seo怎么做优化
  • wordpress文章没办法显示略缩图/网站seo优化总结