Instructions to use inkoziev/sbert_synonymy with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use inkoziev/sbert_synonymy with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("inkoziev/sbert_synonymy") sentences = [ "Кошка ловит мышку", "Мышка преследуема кошкой", "Кошка гонится за мышью", "Кошка ловит кайф" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Transformers
How to use inkoziev/sbert_synonymy with Transformers:
# Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("inkoziev/sbert_synonymy") model = AutoModel.from_pretrained("inkoziev/sbert_synonymy") - Notebooks
- Google Colab
- Kaggle
Детектор синонимичности фраз
Это sentence-transformers модель, предназначенная для определения синонимичности двух коротких текстов, преимущественно одиночных предложений длиной до 10-15 слов. Часть обучающего датасета доступна в репозитории inkoziev/paraphrases.
Модель вычисляет для текста и вопроса векторы размерностью 312. Косинус угла между этими векторами дает оценку того, насколько они близки по смыслу. В проекте диалоговой системы она используется для определения перефразировок высказыванийи и фактов.
Модель основана на cointegrated/rubert-tiny2. Она имеет очень небольшой размер и быстро выполняет инференс даже на CPU.
Использование с библиотекой Sentence-Transformers
Для удобства установите sentence-transformers:
pip install -U sentence-transformers
Чтобы определить синонимичность пар предложений, можно использовать такой код:
import sentence_transformers
sentences = ["Одна голова - хорошо, а две - лучше",
"пара голов имеет преимущество перед единственной",
"Потерявши голову, по волосам не плачут",]
model = sentence_transformers.SentenceTransformer('inkoziev/sbert_synonymy')
embeddings = model.encode(sentences)
s1 = sentences[0]
v1 = embeddings[0]
for i2 in range(1, 3):
s = sentence_transformers.util.cos_sim(a=v1, b=embeddings[i2]).item()
print('text1={} text2={} cossim={}'.format(s1, sentences[i2], s))
Результат будет примерно таким:
text1=Одна голова - хорошо, а две - лучше text2=пара голов имеет преимущество перед единственной cossim=0.8603419065475464
text1=Одна голова - хорошо, а две - лучше text2=Потерявши голову, по волосам не плачут cossim=0.013120125979185104
Связанные проекты
Генеративный поэтический перефразировщик доступен в хабе hugginggace: inkoziev/paraphraser. Код обучения этой модели доступен в репозитории на гитхабе.
Контакты и цитирование
@MISC{rugpt_chitchat,
author = {Ilya Koziev},
title = {Paraphrase Detection Model},
url = {https://huggingface.co/inkoziev/sbert_synonymy},
year = 2022
}
- Downloads last month
- 89