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

Python?sentence-transformers庫示例詳解

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

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

?? 什么是sentence-transformers?

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

?? 主要用途

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

?? 安裝方式

pip install sentence-transformers

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

pip install sentence-transformers[torch]

?? 使用示例

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

from sentence_transformers import SentenceTransformer
# 加載預訓練模型(首次運行會自動下載)
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ù)通用任務
paraphrase-MiniLM-L3-v2更小,適合資源受限環(huán)境
all-mpnet-base-v2高性能版本,效果更好但稍慢
multi-qa-mpnet-base-dot-v1適用于問答、檢索任務
distiluse-base-multilingual-cased-v1支持 50+ 種語言,適合多語言場景
LaBSE支持 109 種語言,適合跨語言檢索

??? 自定義訓練模型(進階)

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

from sentence_transformers import SentenceTransformer, InputExample, losses
from torch.utils.data import DataLoader
# 構建訓練樣本
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)
# 開始訓練
model.fit(
    train_objectives=[(train_dataloader, train_loss)],
    epochs=3,
    output_path='./my_model/'
)

?? 常見結合使用的庫

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

? 總結

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

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

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

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

相關文章

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

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

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

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

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

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

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

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

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

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

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

    解決pytorch?model代碼內tensor?device不一致的問題

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

    Python Web版語音合成實例詳解

    這篇文章主要介紹了Python Web版語音合成實例詳解,語音合成技術能將用戶輸入的文字,轉換成流暢自然的語音輸出,并且可以支持語速、音調、音量設置,讓人機溝通更自然,需要的朋友可以參考下
    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的所有基礎使用案例詳解

    python中mpi4py的所有基礎使用案例詳解

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

最新評論

左云县| 青阳县| 华阴市| 秭归县| 龙泉市| 饶平县| 太保市| 天等县| 夹江县| 龙里县| 谢通门县| 梅州市| 马鞍山市| 达拉特旗| 成都市| 凤翔县| 新绛县| 太康县| 萨嘎县| 房产| 理塘县| 阳高县| 金堂县| 河南省| 卓资县| 闽侯县| 普洱| 富平县| 府谷县| 阳城县| 建平县| 信丰县| 和林格尔县| 理塘县| 乐亭县| 大荔县| 赣榆县| 深泽县| 陆良县| 原阳县| 犍为县|