แพ็คเกจนี้รวมตัวแปลงประโยค (หรือที่เรียกว่าประโยค-BERT) ไว้ใน spaCy โดยตรง คุณสามารถแทนที่เวกเตอร์ที่ให้ไว้ในโมเดล spaCy ใดๆ ด้วยเวกเตอร์ที่ได้รับการปรับแต่งโดยเฉพาะสำหรับความคล้ายคลึงทางความหมาย
แนะนำให้ใช้แบบจำลองด้านล่างนี้เพื่อวิเคราะห์ความคล้ายคลึงกันของประโยค ดังที่เกณฑ์มาตรฐาน STS ระบุ โปรดจำไว้ว่า sentence-transformers
ได้รับการกำหนดค่าให้มีความยาวลำดับสูงสุด 128 ดังนั้นสำหรับข้อความที่ยาวกว่า การทำงานร่วมกับรุ่นอื่นๆ อาจเหมาะสมกว่า (เช่น Universal Sentence Encoder)
ความเข้ากันได้:
เมื่อต้องการติดตั้งแพ็คเกจนี้ คุณสามารถเรียกใช้หนึ่งในรายการต่อไปนี้:
pip install spacy-sentence-bert
pip install git+https://github.com/MartinoMensio/spacy-sentence-bert.git
คุณสามารถติดตั้งแพ็คเกจ spaCy แบบสแตนด์อโลนได้จาก GitHub ด้วย pip หากคุณติดตั้งแพ็คเกจแบบสแตนด์อโลน คุณจะสามารถโหลดโมเดลภาษาได้โดยตรงโดยใช้ spacy.load
API โดยไม่จำเป็นต้องเพิ่มขั้นตอนไปป์ไลน์ ตารางนี้ใช้โมเดลที่ระบุไว้ในเอกสาร Sentence Transformers และแสดงสถิติบางส่วนพร้อมกับคำแนะนำในการติดตั้งโมเดลแบบสแตนด์อโลน หากคุณไม่ต้องการติดตั้งโมเดลสแตนด์อโลน คุณยังคงสามารถใช้งานได้โดยเพิ่มขั้นตอนไปป์ไลน์ (ดูด้านล่าง)
ประโยค-ชื่อเบิร์ต | ชื่อโมเดลอวกาศ | ขนาด | ภาษา | มาตรฐาน STS | ติดตั้งแบบสแตนด์อโลน |
---|---|---|---|---|---|
paraphrase-distilroberta-base-v1 | en_paraphrase_distilroberta_base_v1 | 768 | ห้องน้ำในตัว | 81.81 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_paraphrase_distilroberta_base_v1-0.1.2.tar.gz#en_paraphrase_distilroberta_base_v1-0.1.2 |
paraphrase-xlm-r-multilingual-v1 | xx_paraphrase_xlm_r_multilingual_v1 | 768 | 50+ | 83.50 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/xx_paraphrase_xlm_r_multilingual_v1-0.1.2.tar.gz#xx_paraphrase_xlm_r_multilingual_v1-0.1.2 |
stsb-roberta-large | en_stsb_roberta_large | 1,024 | ห้องน้ำในตัว | 86.39 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_stsb_roberta_large-0.1.2.tar.gz#en_stsb_roberta_large-0.1.2 |
stsb-roberta-base | en_stsb_roberta_base | 768 | ห้องน้ำในตัว | 85.44 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_stsb_roberta_base-0.1.2.tar.gz#en_stsb_roberta_base-0.1.2 |
stsb-bert-large | en_stsb_bert_large | 1,024 | ห้องน้ำในตัว | 85.29 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_stsb_bert_large-0.1.2.tar.gz#en_stsb_bert_large-0.1.2 |
stsb-distilbert-base | en_stsb_distilbert_base | 768 | ห้องน้ำในตัว | 85.16 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_stsb_distilbert_base-0.1.2.tar.gz#en_stsb_distilbert_base-0.1.2 |
stsb-bert-base | en_stsb_bert_base | 768 | ห้องน้ำในตัว | 85.14 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_stsb_bert_base-0.1.2.tar.gz#en_stsb_bert_base-0.1.2 |
nli-bert-large | en_nli_bert_large | 1,024 | ห้องน้ำในตัว | 79.19 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_bert_large-0.1.2.tar.gz#en_nli_bert_large-0.1.2 |
nli-distilbert-base | en_nli_distilbert_base | 768 | ห้องน้ำในตัว | 78.69 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_distilbert_base-0.1.2.tar.gz#en_nli_distilbert_base-0.1.2 |
nli-roberta-large | en_nli_roberta_large | 1,024 | ห้องน้ำในตัว | 78.69 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_roberta_large-0.1.2.tar.gz#en_nli_roberta_large-0.1.2 |
nli-bert-large-max-pooling | en_nli_bert_large_max_pooling | 1,024 | ห้องน้ำในตัว | 78.41 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_bert_large_max_pooling-0.1.2.tar.gz#en_nli_bert_large_max_pooling-0.1.2 |
nli-bert-large-cls-pooling | en_nli_bert_large_cls_pooling | 1,024 | ห้องน้ำในตัว | 78.29 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_bert_large_cls_pooling-0.1.2.tar.gz#en_nli_bert_large_cls_pooling-0.1.2 |
nli-distilbert-base-max-pooling | en_nli_distilbert_base_max_pooling | 768 | ห้องน้ำในตัว | 77.61 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_distilbert_base_max_pooling-0.1.2.tar.gz#en_nli_distilbert_base_max_pooling-0.1.2 |
nli-roberta-base | en_nli_roberta_base | 768 | ห้องน้ำในตัว | 77.49 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_roberta_base-0.1.2.tar.gz#en_nli_roberta_base-0.1.2 |
nli-bert-base-max-pooling | en_nli_bert_base_max_pooling | 768 | ห้องน้ำในตัว | 77.21 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_bert_base_max_pooling-0.1.2.tar.gz#en_nli_bert_base_max_pooling-0.1.2 |
nli-bert-base | en_nli_bert_base | 768 | ห้องน้ำในตัว | 77.12 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_bert_base-0.1.2.tar.gz#en_nli_bert_base-0.1.2 |
nli-bert-base-cls-pooling | en_nli_bert_base_cls_pooling | 768 | ห้องน้ำในตัว | 76.30 น | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nli_bert_base_cls_pooling-0.1.2.tar.gz#en_nli_bert_base_cls_pooling-0.1.2 |
average_word_embeddings_glove.6B.300d | en_average_word_embeddings_glove.6B.300d | 768 | ห้องน้ำในตัว | 61.77 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_average_word_embeddings_glove.6B.300d-0.1.2.tar.gz#en_average_word_embeddings_glove.6B.300d-0.1.2 |
average_word_embeddings_komninos | en_average_word_embeddings_komninos | 768 | ห้องน้ำในตัว | 61.56 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_average_word_embeddings_komninos-0.1.2.tar.gz#en_average_word_embeddings_komninos-0.1.2 |
average_word_embeddings_levy_dependency | en_average_word_embeddings_levy_dependency | 768 | ห้องน้ำในตัว | 59.22 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_average_word_embeddings_levy_dependency-0.1.2.tar.gz#en_average_word_embeddings_levy_dependency-0.1.2 |
average_word_embeddings_glove.840B.300d | en_average_word_embeddings_glove.840B.300d | 768 | ห้องน้ำในตัว | 52.54 | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_average_word_embeddings_glove.840B.300d-0.1.2.tar.gz#en_average_word_embeddings_glove.840B.300d-0.1.2 |
quora-distilbert-base | en_quora_distilbert_base | 768 | ห้องน้ำในตัว | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_quora_distilbert_base-0.1.2.tar.gz#en_quora_distilbert_base-0.1.2 |
quora-distilbert-multilingual | xx_quora_distilbert_multilingual | 768 | 50+ | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/xx_quora_distilbert_multilingual-0.1.2.tar.gz#xx_quora_distilbert_multilingual-0.1.2 |
msmarco-distilroberta-base-v2 | en_msmarco_distilroberta_base_v2 | 768 | ห้องน้ำในตัว | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_msmarco_distilroberta_base_v2-0.1.2.tar.gz#en_msmarco_distilroberta_base_v2-0.1.2 |
msmarco-roberta-base-v2 | en_msmarco_roberta_base_v2 | 768 | ห้องน้ำในตัว | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_msmarco_roberta_base_v2-0.1.2.tar.gz#en_msmarco_roberta_base_v2-0.1.2 |
msmarco-distilbert-base-v2 | en_msmarco_distilbert_base_v2 | 768 | ห้องน้ำในตัว | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_msmarco_distilbert_base_v2-0.1.2.tar.gz#en_msmarco_distilbert_base_v2-0.1.2 |
nq-distilbert-base-v1 | en_nq_distilbert_base_v1 | 768 | ห้องน้ำในตัว | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_nq_distilbert_base_v1-0.1.2.tar.gz#en_nq_distilbert_base_v1-0.1.2 |
distiluse-base-multilingual-cased-v2 | xx_distiluse_base_multilingual_cased_v2 | 512 | 50+ | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/xx_distiluse_base_multilingual_cased_v2-0.1.2.tar.gz#xx_distiluse_base_multilingual_cased_v2-0.1.2 |
stsb-xlm-r-multilingual | xx_stsb_xlm_r_multilingual | 768 | 50+ | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/xx_stsb_xlm_r_multilingual-0.1.2.tar.gz#xx_stsb_xlm_r_multilingual-0.1.2 |
T-Systems-onsite/cross-en-de-roberta-sentence-transformer | xx_cross_en_de_roberta_sentence_transformer | 768 | en,de | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/xx_cross_en_de_roberta_sentence_transformer-0.1.2.tar.gz#xx_cross_en_de_roberta_sentence_transformer-0.1.2 |
LaBSE | xx_LaBSE | 768 | 109 | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/xx_LaBSE-0.1.2.tar.gz#xx_LaBSE-0.1.2 |
allenai-specter | en_allenai_specter | 768 | ห้องน้ำในตัว | ไม่มี | pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_allenai_specter-0.1.2.tar.gz#en_allenai_specter-0.1.2 |
หากโมเดลของคุณไม่อยู่ในรายการนี้ (เช่น xlm-r-base-en-ko-nli-ststb
) คุณยังคงสามารถใช้งานได้กับไลบรารีนี้ แต่ไม่ใช่เป็นภาษาสแตนด์อโลน คุณจะต้องเพิ่มขั้นตอนไปป์ไลน์ที่กำหนดค่าอย่างถูกต้อง (ดูด้านล่าง nlp.add_pipe
API)
มีหลายวิธีในการโหลดโมเดลของ sentence-bert
spacy.load
API: คุณต้องติดตั้งหนึ่งในโมเดลจากตารางด้านบนspacy_sentence_bert.load_model
: คุณสามารถโหลดหนึ่งในโมเดลจากตารางด้านบนโดยไม่ต้องติดตั้งแพ็คเกจแบบสแตนด์อโลนnlp.add_pipe
API: คุณสามารถโหลดโมเดล sentence-bert
ใดก็ได้ที่ด้านบนของวัตถุ nlp
ของคุณspacy.load
API รุ่นสแตนด์อโลนที่ติดตั้งจาก GitHub (เช่นจากตารางด้านบน pip install https://github.com/MartinoMensio/spacy-sentence-bert/releases/download/v0.1.2/en_stsb_roberta_large-0.1.2.tar.gz#en_stsb_roberta_large-0.1.2
) คุณสามารถโหลดโมเดลได้โดยตรงด้วย spaCy API:
import spacy
nlp = spacy . load ( 'en_stsb_roberta_large' )
spacy_sentence_bert.load_model
APIคุณสามารถได้รับผลลัพธ์เดียวกันโดยไม่ต้องติดตั้งโมเดลสแตนด์อโลน โดยใช้วิธีนี้:
import spacy_sentence_bert
nlp = spacy_sentence_bert . load_model ( 'en_stsb_roberta_large' )
nlp.add_pipe
API หากคุณต้องการใช้ประโยคใดประโยคหนึ่งที่ฝังไว้บนอ็อบเจ็กต์ภาษาที่มีอยู่ คุณสามารถใช้เมธอด nlp.add_pipe
ได้ นอกจากนี้ยังใช้งานได้หากคุณต้องการใช้โมเดลภาษาที่ไม่อยู่ในตารางด้านบน เพียงตรวจสอบให้แน่ใจว่าตัวแปลงประโยครองรับ
import spacy
nlp = spacy . blank ( 'en' )
nlp . add_pipe ( 'sentence_bert' , config = { 'model_name' : 'allenai-specter' })
nlp . pipe_names
เมื่อใช้ครั้งแรก โมเดลจะดาวน์โหลดประโยค-BERT ไปยังโฟลเดอร์ที่กำหนดด้วย TORCH_HOME
ในตัวแปรสภาพแวดล้อม (ค่าเริ่มต้น ~/.cache/torch
)
เมื่อคุณโหลดโมเดลแล้ว ให้ใช้มันผ่านคุณสมบัติ vector
และวิธี similarity
ของ spaCy:
# get two documents
doc_1 = nlp ( 'Hi there, how are you?' )
doc_2 = nlp ( 'Hello there, how are you doing today?' )
# get the vector of the Doc, Span or Token
print ( doc_1 . vector . shape )
print ( doc_1 [ 3 ]. vector . shape )
print ( doc_1 [ 2 : 4 ]. vector . shape )
# or use the similarity method that is based on the vectors, on Doc, Span or Token
print ( doc_1 . similarity ( doc_2 [ 0 : 7 ]))
เพื่อสร้างและอัพโหลด
VERSION=0.1.2
# build the standalone models (17)
./build_models.sh
# build the archive at dist/spacy_sentence_bert-${VERSION}.tar.gz
python setup.py sdist
# upload to pypi
twine upload dist/spacy_sentence_bert- ${VERSION} .tar.gz