最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?sentence-transformers庫示例詳解

 更新時間:2025年08月28日 15:28:36   作者:音程  
Sentence?Transformer是一個Python框架,用于句子、文本和圖像嵌入Embedding,它基于Transformer架構(gòu)的預(yù)訓(xùn)練模型,并在大量語義相似性數(shù)據(jù)上進(jìn)行了微調(diào),能夠捕捉句子之間的深層語義關(guān)系,本文給大家介紹Python?sentence-transformers庫的相關(guān)知識,感興趣的朋友一起看看吧

sentence-transformers 是一個非常流行的 Python 庫,專門用于將文本(句子、段落、文檔)轉(zhuǎn)換為高質(zhì)量的語義向量(嵌入)。它基于 Transformer 架構(gòu)(如 BERT、RoBERTa、DistilBERT 等) 的預(yù)訓(xùn)練模型,并在大量語義相似性數(shù)據(jù)上進(jìn)行了微調(diào),能夠捕捉句子之間的深層語義關(guān)系。

?? 什么是sentence-transformers?

  • 項目地址:https://www.sbert.net/
  • 作者:Nils Reimers 和 Iryna Gurevych(德國達(dá)姆施塔特工業(yè)大學(xué))
  • 主要功能
    • 將文本轉(zhuǎn)化為稠密向量(sentence embeddings)
    • 支持多種語言
    • 支持多任務(wù)學(xué)習(xí)和跨語言檢索
  • 底層依賴:基于 PyTorch 和 HuggingFace Transformers

?? 主要用途

場景描述
文本相似度計算判斷兩個句子是否語義相似(例如問答系統(tǒng)中的答案匹配)
聚類對大量文本進(jìn)行自動聚類(如新聞分類、評論分組)
信息檢索基于語義的搜索,而非關(guān)鍵詞匹配
語義搜索 / 向量數(shù)據(jù)庫結(jié)合 FAISS、Annoy 等庫構(gòu)建高效的語義搜索引擎
無監(jiān)督/弱監(jiān)督學(xué)習(xí)在沒有標(biāo)簽的情況下提取語義特征進(jìn)行下游任務(wù)

?? 安裝方式

pip install sentence-transformers

?? 注意:安裝前確保你已經(jīng)安裝了 PyTorch,否則可以使用 torch extra:

pip install sentence-transformers[torch]

?? 使用示例

示例1:加載模型并編碼句子

from sentence_transformers import SentenceTransformer
# 加載預(yù)訓(xùn)練模型(首次運行會自動下載)
model = SentenceTransformer('all-MiniLM-L6-v2')
# 待編碼的句子
sentences = [
    "這是一個示例句子。",
    "另一個句子用來測試。",
    "這兩句話看起來不太一樣。"
]
# 編碼成向量(每個句子變成一個固定維度的向量,如 384 維)
embeddings = model.encode(sentences)
print(embeddings.shape)  # (3, 384)

示例2:計算兩個句子之間的余弦相似度

from sklearn.metrics.pairwise import cosine_similarity
# 計算相似度矩陣
similarity_matrix = cosine_similarity(embeddings)
print(similarity_matrix)

輸出是一個 3x3 的矩陣,顯示每對句子之間的語義相似度(值范圍在 [0, 1] 之間)。

示例3:使用 GPU 加速推理

import torch
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model.to(device)
embeddings = model.encode(sentences, device=device)

?? 支持的模型(推薦)

你可以從 HuggingFace Model Hub 上選擇不同類型的模型,以下是幾個常用的:

模型名稱特點
all-MiniLM-L6-v2輕量級,速度快,適合大多數(shù)通用任務(wù)
paraphrase-MiniLM-L3-v2更小,適合資源受限環(huán)境
all-mpnet-base-v2高性能版本,效果更好但稍慢
multi-qa-mpnet-base-dot-v1適用于問答、檢索任務(wù)
distiluse-base-multilingual-cased-v1支持 50+ 種語言,適合多語言場景
LaBSE支持 109 種語言,適合跨語言檢索

??? 自定義訓(xùn)練模型(進(jìn)階)

如果你有自己的語義匹配任務(wù)(如問答、對話理解),可以使用 sentence-transformers 提供的訓(xùn)練框架進(jìn)行 fine-tune:

from sentence_transformers import SentenceTransformer, InputExample, losses
from torch.utils.data import DataLoader
# 構(gòu)建訓(xùn)練樣本
train_examples = [
    InputExample(texts=["春天來了", "天氣變暖了"], label=0.8),
    InputExample(texts=["我愛中國", "我是中國人"], label=0.9),
    ...
]
# 創(chuàng)建數(shù)據(jù)加載器
train_dataloader = DataLoader(train_examples, shuffle=True, batch_size=16)
# 加載模型
model = SentenceTransformer('bert-base-chinese')
# 使用余弦相似度損失函數(shù)
train_loss = losses.CosineSimilarityLoss(model)
# 開始訓(xùn)練
model.fit(
    train_objectives=[(train_dataloader, train_loss)],
    epochs=3,
    output_path='./my_model/'
)

?? 常見結(jié)合使用的庫

庫名作用
faiss快速構(gòu)建高維向量索引,用于語義搜索
annoy近似最近鄰搜索,適合內(nèi)存有限的設(shè)備
pandas處理大規(guī)模文本數(shù)據(jù)
transformers獲取原始 Transformer 模型
scikit-learn聚類、降維等后處理

? 總結(jié)

功能描述
中文支持??(需使用中文預(yù)訓(xùn)練模型)
多語言支持??(部分模型支持 50~109 種語言)
易用性??(API 簡潔清晰)
可擴(kuò)展性??(可自定義訓(xùn)練、結(jié)合其他庫)
推薦應(yīng)用場景語義搜索、文本聚類、相似度判斷、信息檢索

如果你正在做以下工作,建議使用 sentence-transformers

  • 想要做語義級別的文本匹配
  • 不想手動寫特征工程
  • 想快速部署一個語義搜索引擎
  • 想要在無標(biāo)簽情況下做文本聚類分析

到此這篇關(guān)于Python sentence-transformers庫的文章就介紹到這了,更多相關(guān)Python sentence-transformers內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)時鐘顯示效果思路詳解

    Python實現(xiàn)時鐘顯示效果思路詳解

    這篇文章主要介紹了Python實現(xiàn)時鐘顯示,需要的朋友可以參考下
    2018-04-04
  • 詳解Python如何實現(xiàn)惰性導(dǎo)入-lazy import

    詳解Python如何實現(xiàn)惰性導(dǎo)入-lazy import

    如果你的 Python 程序程序有大量的 import,而且啟動非常慢,那么你應(yīng)該嘗試懶導(dǎo)入,本文分享一種實現(xiàn)惰性導(dǎo)入的一種方法,需要的可以參考一下
    2022-10-10
  • tensorflow指定GPU與動態(tài)分配GPU memory設(shè)置

    tensorflow指定GPU與動態(tài)分配GPU memory設(shè)置

    今天小編就為大家分享一篇tensorflow指定GPU與動態(tài)分配GPU memory設(shè)置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 使用pandas忽略行列索引,縱向拼接多個dataframe

    使用pandas忽略行列索引,縱向拼接多個dataframe

    這篇文章主要介紹了使用pandas忽略行列索引,縱向拼接多個dataframe的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python 二叉樹的層序建立與三種遍歷實現(xiàn)詳解

    Python 二叉樹的層序建立與三種遍歷實現(xiàn)詳解

    這篇文章主要介紹了Python 二叉樹的層序建立與三種遍歷實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 解決pytorch?model代碼內(nèi)tensor?device不一致的問題

    解決pytorch?model代碼內(nèi)tensor?device不一致的問題

    這篇文章主要介紹了pytorch?model代碼內(nèi)tensor?device不一致的問題,本文給大家分享完美解決方案,對pytorch?tensor?device不一致問題解決方案感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Python Web版語音合成實例詳解

    Python Web版語音合成實例詳解

    這篇文章主要介紹了Python Web版語音合成實例詳解,語音合成技術(shù)能將用戶輸入的文字,轉(zhuǎn)換成流暢自然的語音輸出,并且可以支持語速、音調(diào)、音量設(shè)置,讓人機溝通更自然,需要的朋友可以參考下
    2019-07-07
  • 利用python爬取城市公交站點

    利用python爬取城市公交站點

    這篇文章主要介紹了利用Python爬蟲爬取城市公交站點的數(shù)據(jù),文中的代碼具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-12-12
  • Python實現(xiàn)npy/mat文件的保存與讀取

    Python實現(xiàn)npy/mat文件的保存與讀取

    除了常用的csv文件和excel文件之外,我們還可以通過Python把數(shù)據(jù)保存文npy文件格式和mat文件格式。本文為大家展示了實現(xiàn)npy文件與mat文件的保存與讀取的示例代碼,需要的可以參考一下
    2022-04-04
  • python中mpi4py的所有基礎(chǔ)使用案例詳解

    python中mpi4py的所有基礎(chǔ)使用案例詳解

    這篇文章主要介紹了python中mpi4py的所有基礎(chǔ)使用,本文通過10個案例給大家詳細(xì)講解,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08

最新評論

海丰县| 西青区| 岚皋县| 淳化县| 自贡市| 聊城市| 土默特右旗| 开平市| 南投市| 琼海市| 镇安县| 霍林郭勒市| 屯昌县| 澎湖县| 乐至县| 抚宁县| 鸡东县| 赤水市| 同心县| 湖北省| 改则县| 壶关县| 双鸭山市| 日喀则市| 丰原市| 乌兰浩特市| 泰宁县| 天柱县| 隆德县| 札达县| 德阳市| 诸城市| 泌阳县| 宁国市| 通城县| 新建县| 枣阳市| 当涂县| 桦川县| 斗六市| 南充市|