大概学了原理,简单实践一下发现了一些问题:
1.对于不同长度的诗句可能要用0来补齐向量长度
2.直接用两个句子的last_hidden_state向量计算余弦相似度时会报梯度相关的错误 不能计算。不很懂为什么。
用的是BERT-CCPoem 传送门
参考了 传送门 虽然不是中文的bert 但是基本的原理差不多,有些类型转换的细节要改一改
from transformers import BertModel,BertTokenizer
import torch
import numpy
from sklearn.metrics.pairwise import cosine_similarity
tokenizer = BertTokenizer.from_pretrained('C:\\Users\\1323231\\Desktop\\BERT_CCPoem_v1')
model = BertModel.from_pretrained('C:\\Users\\1323231\\Desktop\\BERT_CCPoem_v1')
sentences = ["折断绿杨枝","无令长相忆"