sbert_synonymy / README.md
inkoziev's picture
Add metadata for dataset used to train model (#1)
6035359
|
raw
history blame
3.71 kB
metadata
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 модель, предназначенная для определения синонимичности двух коротких текстов, преимущественно одиночных предложений длиной до 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
}