Views
No views yet
| Data | size(train) | size(valid) | size(test) |
|---|---|---|---|
| ATEC | 62477 | 20000 | 20000 |
| BQ | 100000 | 10000 | 10000 |
| LCQMC | 238766 | 8802 | 12500 |
| PAWSX | 49401 | 2000 | 2000 |
| STS-B | 5231 | 1458 | 1361 |
| SNLI | 146828 | 2699 | 2618 |
| MNLI | 122547 | 2932 | 2397 |
| Model | STS-B(w-avg) | ATEC | BQ | LCQMC | PAWSX | Avg. |
|---|---|---|---|---|---|---|
| BAAI/bge-large-zh | 78.61 | - | - | - | - | - |
| BAAI/bge-large-zh-v1.5 | 79.07 | - | - | - | - | - |
| hellonlp/simcse-large-zh | 81.32 | - | - | - | - | - |
1import torch
2from transformers import BertTokenizer
3from transformers import BertModel
4from sklearn.metrics.pairwise import cosine_similarity
5
6# model
7simcse_sup_path = "hellonlp/simcse-roberta-large-zh"
8tokenizer = BertTokenizer.from_pretrained(simcse_sup_path)
9MODEL = BertModel.from_pretrained(simcse_sup_path)
10
11def get_vector_simcse(sentence):
12 """
13 预测simcse的语义向量。
14 """
15 input_ids = torch.tensor(tokenizer.encode(sentence)).unsqueeze(0)
16 output = MODEL(input_ids)
17 return output.last_hidden_state[:, 0].squeeze(0)
18
19embeddings = get_vector_simcse("武汉是一个美丽的城市。")
20print(embeddings.shape)
21#torch.Size([1024])1def get_similarity_two(sentence1, sentence2):
2 vec1 = get_vector_simcse(sentence1).tolist()
3 vec2 = get_vector_simcse(sentence2).tolist()
4 similarity_list = cosine_similarity([vec1], [vec2]).tolist()[0][0]
5 return similarity_list
6
7sentence1 = '你好吗'
8sentence2 = '你还好吗'
9result = get_similarity_two(sentence1,sentence2)
10print(result)
11#0.848331