推理: false
流水线标签: 句子相似度
语言:
- 保加利亚语
许可证: mit
数据集:
- oscar
- chitanka
- wikipedia
标签:
- torch
基于私有保加利亚语-英语平行数据训练的ROBERTA BASE(区分大小写)
这是一个多语言Roberta模型,可用于生成保加利亚语句子的嵌入向量。
该模型的训练灵感来自Sentence-BERT,其核心思想是将翻译后的句子映射到与原句相同的向量空间位置。
此模型区分大小写:例如“bulgarian”和“Bulgarian”会被视为不同的词。
训练数据为私有的保加利亚语-英语平行语料库。
使用方法
以下是在PyTorch中使用该模型的示例代码:
>>> import scipy
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer
>>>
>>> model = AutoModel.from_pretrained('rmihaylov/roberta-base-nli-stsb-bg')
>>> tokenizer = AutoTokenizer.from_pretrained('rmihaylov/roberta-base-nli-stsb-bg')
>>>
>>> def embed(text):
>>> inputs = tokenizer.encode_plus(text, return_tensors='pt')
>>> outputs = model(**inputs)
>>> sequence_output = outputs[0]
>>> input_mask_expanded = inputs['attention_mask'].unsqueeze(-1).expand(sequence_output.size()).float()
>>> embeddings = torch.sum(sequence_output * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
>>> return embeddings.detach().numpy()[0]
>>>
>>>
>>> query_embedding = embed("Какви са съставките на бисквитките?")
>>>
>>> questions = [
>>> "Какво е бисквитка?",
>>> "От какво са направени бисквитките?",
>>> "Използват ли в Англия думата бисквитки?",
>>> "Къде се правят бисквитките?",
>>> "Какви видове бисквитки има?",
>>> "Къде човек може да купи бисквитки?",
>>> "Откъде дойде думата бисквитка?",
>>> "Кое е чудовището на бисквитките?",
>>> "Как да си направите бисквитки у дома?",
>>> "Колко калории има типичната бисквитка?",
>>> "Какви напитки вървят добре с бисквитките?",
>>> "Бисквитките наричат ли се също сладки?"
>>> ]
>>>
>>> corpus, corpus_embeddings = [], []
>>> for question in questions:
>>> embedding = embed(question)
>>> corpus.append(question)
>>> corpus_embeddings.append(embedding)
>>>
>>> distances = scipy.spatial.distance.cdist([query_embedding], corpus_embeddings, "cosine")[0]
>>>
>>> results = zip(range(len(distances)), distances)
>>> results = sorted(results, key=lambda x: x[1])
>>>
>>> print([[corpus[idx].strip(), (1.0 - distance)] for idx, distance in results])
[['Какви видове бисквитки има?', 0.9749538412820795],
['От какво са направени бисквитките?', 0.9720467855849998],
['Къде се правят бисквитките?', 0.9622582076645853],
['Какво е бисквитка?', 0.9352896865855094],
['Използват ли в Англия думата бисквитки?', 0.8981422328370646],
['Откъде дойде думата бисквитка?', 0.8955433698658758],
['Кое е чудовището на бисквитките?', 0.8902666858687854],
['Бисквитките наричат ли се също сладки?', 0.8839303534407483],
['Какви напитки вървят добре с бисквитките?', 0.8582087653310524],
['Къде човек може да купи бисквитки?', 0.8570532540073935],
['Колко калории има типичната бисквитка?', 0.8387529949080176],
['Как да си направите бисквитки у дома?', 0.8243675958097614]]