初始化项目,由ModelHub XC社区提供模型
Model: inkoziev/sbert_synonymy Source: Original Platform
This commit is contained in:
84
README.md
Normal file
84
README.md
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
pipeline_tag: sentence-similarity
|
||||
tags:
|
||||
- sentence-transformers
|
||||
- feature-extraction
|
||||
- sentence-similarity
|
||||
- transformers
|
||||
language: ru
|
||||
license: unlicense
|
||||
widget:
|
||||
- source_sentence: Кошка ловит мышку
|
||||
sentences:
|
||||
- Мышка преследуема кошкой
|
||||
- Кошка гонится за мышью
|
||||
- Кошка ловит кайф
|
||||
datasets:
|
||||
- inkoziev/paraphrases
|
||||
---
|
||||
|
||||
|
||||
# Детектор синонимичности фраз
|
||||
|
||||
Это [sentence-transformers](https://www.SBERT.net) модель, предназначенная
|
||||
для определения синонимичности двух коротких текстов, преимущественно одиночных предложений длиной до 10-15 слов.
|
||||
Часть обучающего датасета доступна в репозитории [inkoziev/paraphrases](https://huggingface.co/datasets/inkoziev/paraphrases).
|
||||
|
||||
Модель вычисляет для текста и вопроса векторы размерностью 312. Косинус угла между этими векторами
|
||||
дает оценку того, насколько они близки по смыслу. В [проекте диалоговой системы](https://github.com/Koziev/chatbot)
|
||||
она используется для определения перефразировок высказыванийи и фактов.
|
||||
|
||||
Модель основана на [cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2).
|
||||
Она имеет очень небольшой размер и быстро выполняет инференс даже на CPU.
|
||||
|
||||
|
||||
## Использование с библиотекой Sentence-Transformers
|
||||
|
||||
Для удобства установите [sentence-transformers](https://www.SBERT.net):
|
||||
|
||||
```
|
||||
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](https://huggingface.co/inkoziev/paraphraser).
|
||||
Код обучения этой модели доступен в [репозитории на гитхабе](https://github.com/Koziev/paraphraser).
|
||||
|
||||
|
||||
## Контакты и цитирование
|
||||
|
||||
```
|
||||
@MISC{rugpt_chitchat,
|
||||
author = {Ilya Koziev},
|
||||
title = {Paraphrase Detection Model},
|
||||
url = {https://huggingface.co/inkoziev/sbert_synonymy},
|
||||
year = 2022
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user