--- pipeline_tag: sentence-similarity tags: - sentence-transformers - feature-extraction - sentence-similarity - transformers language: ru license: unlicense widget: - source_sentence: "Кошка ловит мышку." sentences: ["Кто ловит мышку?", "Где живет кошка?", "Как мышку зовут?"] --- # SBERT_PQ Это [sentence-transformers](https://www.SBERT.net) модель, предназначенная для определения релевантности короткого текста (преимущественно одно предложение длиной до 10-15 слов) и вопроса. Модель вычисляет для текста и вопроса векторы размерностью 312. Косинус угла между этими векторами дает оценку того, содержит ли текст ответ на заданный вопрос. В [проекте диалоговой системы](https://github.com/Koziev/chatbot) она используется для семантического поиска записей в базе фактов по заданному собеседником вопросу. # Скорость и точность Модель основана на [cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2). Она имеет очень небольшой размер и быстро выполняет инференс даже на CPU. Максимальное значение метрики cossim_f1 на тестовой выборке (10% датасета) равно **0.986**. При использовании модели sberbank-ai/ruBert-base в качестве базовой, максимум cossim_f1 составляет **0.992**. ## Использование с библиотекой (Sentence-Transformers) Необходимо установить [sentence-transformers](https://www.SBERT.net): ``` pip install -U sentence-transformers ``` Чтобы определить релевантность в одной паре "текст-вопрос", можно использовать такой код: ``` import sentence_transformers sentences = ["Кошка ловит мышку.", "Чем занята кошка?"] model = sentence_transformers.SentenceTransformer('inkoziev/sbert_pq') embeddings = model.encode(sentences) s = sentence_transformers.util.cos_sim(a=embeddings[0], b=embeddings[1]) print('text={} question={} cossim={}'.format(sentences[0], sentences[1], s)) ``` ## Контакты и цитирование ``` @MISC{rugpt_chitchat, author = {Ilya Koziev}, title = {Texts & Questions Relevancy Model}, url = {https://huggingface.co/inkoziev/sbert_pq}, year = 2022 } ```