1.一种基于BERT模型的两阶段民间故事检索方法,其特征在于由下述步骤组成:(1)收集民间故事
从民族民间文化资源管理系统中找到民间故事部分,采用爬虫方法将民间故事中的文本数据爬取下来,得到民间故事;
(2)民间故事数据预处理
删除民间故事内容中的乱码、内容为空、与内容不符、同义词随机替换的部分;
(3)构建民间故事数据集
将民间故事处理成标题‑内容的民间故事对,制作成民间故事数据集Y,Y∈{t1:c1,t2:c2,…,tn:cn},其中tn表示第n个民间故事的标题,cn表示第n个民间故事的内容,n选取10000条民间故事,按9:1的比例分为训练集、测试集;
(4)一阶段构建向量搜索引擎
采用BERT‑whitening模型将民间故事数据集Y转化成词向量J,用Faiss检索方法对词向量J建立数据库向量D,D∈{d1,d2,…,dn},将数据库向量D采用倒排快速索引方法分割为N个空间,N为有限的正整数,构建成向量搜索引擎;
(5)筛选候选民间故事集合
将用户的查询请求q通过BERT‑whitening模型转化成查询向量qV,将查询向量qv与数据库向量D按下式确定余弦相似度cosθ:其中·表示点积操作,d表示数据库向量中的一个向量,|| ||表示取模操作,返回前k个候选民间故事集合G,G∈{g1,g2,…,gk},k取值为20~50;
(6)训练BERT模型
将民间故事数据集Y输入至BERT模型进行训练,按下式确定交叉熵损失函数L(y,a):L(y,a)=y×lna+(1‑y)×ln(1‑a)‑5 ‑3
其中,y为真实值,y取值为0或1,a为预测值,a∈(0,1);模型的学习率r∈[10 ,10 ],丢弃率取值为[0.05,0.1],训练轮数为[10,15],每轮训练的批尺寸为8,优化器选择Adam,迭代至交叉熵损失函数L(y,a)收敛;
(7)二阶段确定相关度
l
将训练好的BERT模型输出的词嵌入E和第l个编码层的输出X,l为有限的正整数,对查询请求q和候选民间故事集合按下式确定候选民间故事集合G的相关度F1:E=Es+Ep+Et
1
X=E
l‑1 Q
Q=X ×W
l‑1 K
K=X ×W
l‑1 V
V=X ×W
12
F1=s(H )
其中 表示多头注意力计算的输出,Es表示句子词嵌入,Ep表示位置词嵌入,Et表示词
12 l‑1
嵌入,C表示将注意力矩阵连接操作,Aj表示注意力矩阵,s(H )表示softmax函数,X 是Q K VBERT模型的第l‑1层输出,dk是输入向量的维度,j表示多头注意力的个数,W ,W ,W是线性映射矩阵,Q、K、V表示在训练过程中学习参数矩阵;
按下式确定相关度F:
F=0.5×F1+0.5×F2
wi=s(ri)
其中,F2表示查询请求和候选民间故事子片段的相似度和,ri表示查询请求和候选民间故事子片段的相似度,wi表示每个子片段相关度的权重,s(ri)表示softmax函数;
(8)展示检索结果
将相关度F进行由高到低的排序,相似度最高的民间故事作为最终检索结果展示给用户。
2.根据权利要求1所述的基于BERT的两阶段民间故事检索方法,其特征在于在(3)步骤中,所述的标题‑内容的民间故事对为:将民间故事的标题和内容进行分词,标题拆分为:T={t1,t2,…,tu}
其中u为标题的长度;
内容拆分为:
S={s1,s2,…,sz}
其中z为内容的长度。
3.根据权利要求1所述的基于BERT的两阶段民间故事检索方法,其特征在于在(5)和(7)步骤中,所述的查询请求q为:进行解析、分词处理,通过BERT‑whitening模型转换成词向量V。
4.根据权利要求1所述的基于BERT的两阶段民间故事检索方法,其特征在于在(6)步骤中,所述的将民间故事数据集Y输入至BERT模型进行训练,按下式确定交叉熵损失函数L(y,a):L(y,a)=y×lna+(1‑y)×ln(1‑a)‑4
其中,y为真实值,y取值为0或1,a为预测值,a为0.5,模型的学习率r为10 ,丢弃率取值为0.08,训练轮数为12,每轮训练的批尺寸为8,优化器选择Adam,迭代至交叉熵损失函数L(y,a)收敛。
5.根据权利要求1所述的基于BERT的两阶段民间故事检索方法,其特征在于在(7)步骤中,所述的候选民间故事集合G包含有5个子片段,每个子片段的长度为128,前一个子片段的结尾与后一个子片段的开头有10%的内容重复。
6.根据权利要求1所述的基于BERT的两阶段民间故事检索方法,其特征在于在(7)步骤中的下式中:1
X=E
l
其中X表示BERT模型第l个编码层的输出,l取值为[1,12]。