1.一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述方法包括以下步骤:I)输入待检索的法律案例;
II)利用法律案例特征向量模型获得待检索的法律案例和数据库中法律案例的特征向量;
III)采用逼近最近邻(ANN)算法计算待检索的法律案例与数据库中法律案例的相似度;
IV)输出相似度满足要求的数据库中法律案例;
所述步骤II)中,所述法律案例特征向量模型的生成步骤如下:
2.1)采集法律案例数据,进行数据预处理,获得法律案例数据集E;
2.2)根据法律案例创建[上文,文本,下文]三元组,根据词汇表字典中对应三元组的位置,生成三元组序列,并根据BOW模型、one-hot模型、Word Embedding模型分别生成三元组对应的三元组词袋序列、三元组独热序列、三元组词嵌入序列;
2.3)利用自注意力机制构成编码器对文本进行编码,输出文本编码向量;
2.4)利用自注意力机制构成解码器对上文、下文进行解码;
2.5)以总损失最小为目标函数,训练编码器和解码器,生成法律案例特征向量模型。
2.根据权利要求1所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤2.1)中,数据预处理包括以下步骤:
2.1.1)文本分句处理,用正则方法提取法律案例的正文,按句号分割;
2.1.2)停用句处理,统计句子频率,去除停用句,所述停用句为句子频率超出阈值的句子;
2.1.3)文本分词处理,利用有用词典进行分词操作,去除停用词。
3.根根据权利要求1或2所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤2.2)中,词汇表字典的第一个词为结束标志词,第二个词为未知标志词,第三个到第vocab_size个词,获取方法为:统计法律案例数据集E的词汇频率,按照词频率从高到低的排序,截取vocab_size-2个词汇,其中vocab_size为预设的词汇表字典的词汇数量。
4.根根据权利要求1或2所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤2.2)的过程为:根据法律案例创建(上文,文本,下文)三元组,其中上文包含预设的sent_pre_size个句子,文本包含预设的sent_size个句子,下文包含预设的sent_post_size个句子,一个法律案例可以形成text_size-2个三元组,其中text为法律案例包含的句子数量,一个三元组可以表示为([P1,P2,…,Pp],[C1,C2,…,Cc],[S1,S2,…,Ss]),其中,Pp为上文中第p个词汇,Cc为文本中第c个词汇,Ss为下文中第s个词汇;
根据词汇表字典中对应三元组的位置,生成三元组序列([P1’,P2’,…,P’p,0],[C’1,C'2,…,C’c,0],[S’1,S'2,…,S’s,0]),其中P’p=vocab_dict[Pp]、C'c=vocab_dict[Cc]、S’s=vocab_dict[Ss],vocab_dict[Pp]表示上文中第p个词汇对应词汇表中的位置;
并根据BOW模型、one-hot模型、Word Embedding模型分别生成三元组对应的三元组词袋序列(decode_pre_ids,encode_ids,decode_post_ids)、三元组独热序列(decode_pre_mask,encode_mask,decode_post_mask)、三元组词嵌入序列(decode_pre_emb,encode_emb,decode_post_emb),其中三元组词嵌入序列的输入是三元组词袋序列。
5.根据权利要求4所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤2.3)中,利用自注意力机制构成编码器对三元组词嵌入序列中的encode_emb进行编码,输出文本编码向量,过程为:第一个编码器以encode_emb作为输入值,输出值通过输入值乘以权重值直接得到,输出值带着第一个编码器学习的信息传递给下一个编码器,作为下一个编码器的输入,共encoder_num个编码器,输出文本编码向量encode_output;
所述权重值利用自注意力机制获得,包括以下步骤:
2.3.1)创建q,k,v三个矢量,初始化三个变量WQ,WK,WV,WQ_=[WQ_1 WQ_2…WQ_T]
K_ K_1 K_2 K_T
W =[W W …W ]
WV_=[WV_1 WV_2…WV_T]
q=[q1 q2…qT]
k=[k1 k2…kT]
v=[v1 v2…vT];
q,k,v根据encode_mask为零的对应索引上替换为同维度的零向量;
2.3.2)计算自注意力,根据(q1,k1,v1)计算文本中第一个词的自注意力,第一个得分第二个得分 以此类推第vocab_size个得分将 其中bk1为k1的维度;
2.3.3)Key Masking:对k进行求和为key_mask,记录key_mask为0时的索引,根据步骤
2.3.2)输出的score在相同索引处替换为有区分度的小数字,保持关注的词或字的值不变并淹没不相关的词或字;
2.3.4)通过softmax将步骤2.3.3输出的分数标准化,由softmax分数乘以v1为z1,即第一个词的注意力向量,以此类推文本的注意力向量Z1=[z1 z2…zvocab_size],将第二头注意
2 2 2 T T T
力至第T头注意力(q ,k ,v)-(q ,k ,v)重复步骤3.2至步骤3.3,得到注意力Z'=[Z1 Z2…Z8],初始化权重WO,文本的编码向量为:encode_output=Z'WO。
6.根据权利要求5所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤2.4)中,利用自注意力机制和解码器对上文、下文进行解码,过程为:第一个解码器以decode_pre_emb作为输入值,输出值通过输入值乘以权重值直接得到,输出值带着第一个解码器学习的信息传递给下一个解码器,作为下一个解码器的输入,共decoder_num个解码器,输出上文解码向量decode_pre_output;
所述权重值利用自注意力机制获得,包括以下步骤:
2.4.1)利用自注意力机制对上文进行解码,根据步骤2.2.3输出的decode_pre_emb输入到一个编码器中得到上文编码向量decode_pre_output;创建q',k',v'三个矢量,初始化三个变量WQ',WK',WV',WQ'_=[WQ'_1 WQ'_2…WQ'_T]
WK'_=[WK'_1 WK'_2…WK'_T]
WV'_=[WV'_1 WV'_2…WV'_T]
q’1=decode_pre_output×WQ’_1
K'_1
k'1=encode_output×W
v'1=encode_output×WV'_1
q'=[q'1 q'2…q'T]
k'=[k'1 k'2…k'T]
v'=[v'1 v'2…v'T]
根据公式 计算上文中的每个单词与文本
中的每个单词之间的关联度,更新上文解码向量;
2.4.2)同上步骤,获得下文解码向量decode_post_output。
7.根据权利要求6所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤2.5)中,以总损失最小为目标函数,训练编码器和解码器,生成法律案例特征向量模型,过程为:
2.5.1)解码后的上文对齐:将步骤2.4.1更新的上文解码向量decode_pre_output∈R20000×200重构为decode_pre_output∈R1×4000000,利用全连接将decode_pre_output转为decode_pre_output∈R1×20000,利用softmax将decode_pre_output与步骤2.2.3输出的decode_pre_ids对齐,通过交叉熵函数得到上文损失利用步骤2.2.3输出的
decode_pre_mask屏蔽干扰信息得到新的上文损失losspre:losspre=lossespre×decode_pre_mask (9)
2.5.2)解码后的下文对齐:同步骤2.5.1将步骤2.4.2更新的下文解码向量decode_post_output与步骤2.2.3输出的decode_post_ids对齐,并屏蔽干扰信息得到下文损失losspost;
2.5.3)损失更新优化:根据步骤2.5.1与步骤2.5.2输出的上文损失与下文损失,得到Q K V Q'总损失loss=losspre+losspost,根据总损失更新编码器与解码器中的变量(W ,W ,W ,W ,WK',WV')反复迭代训练网络至总损失值不再减小为止,保存网络模型为M。
8.根据权利要求1或2所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤I)中,输入待检索的法律案例的过程为:用正则方法提取待检索的法律案例的正文,按句号分割,根据停用句词典去除停用句,利用有用词典进行分词操作,去除停用词,获得文档doc=[A1,A2,…,AN],其中为文档中的第N句文本, 为第N条句子中第n个单词;
创建[上文,文本,下文]三元组,根据词汇表字典中对应三元组的位置,生成三元组序列,并根据BOW模型、one-hot模型、Word Embedding模型分别生成三元组对应的三元组词袋序列(doc_encode_ids)、三元组独热序列(doc_encode_mask)、三元组词嵌入序列(doc_encode_emb);
所述步骤II)中,将doc_encode_emb,doc_encode_mask输入法律案例特征向量模型,获得待检索的法律案例编码向量doc_encode_output。
9.根据权利要求1或2所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述步骤III)中,采用逼近最近邻ANN算法计算待检索的法律案例与数据库中法律案例的相似度的过程为:将待检索的法律案例在数据库中的法律案例里进行搜索,为了加快查找的速度,ANN算法通过对数据库中的法律案例空间进行分割,将其分割成很多小的子空间,在搜索的时候,通过基于树的方法、哈希方法或者矢量量化方法,快速锁定在某一子空间,该子空间里的数据即近邻集合,通过归一化的欧氏距离:vectors=sqrt(2-2*cos(u,v))计算待检索的法律案例与近邻集合中的数据的距离并进行排序;
所述步骤IV)中,相似度从大到小排序,输出前MM个数据库中法律案例。
10.根据权利要求1或2所述的一种基于自编码神经网络的相似法律案例检索方法,其特征在于:所述多个编码器和多个解码器之间的信息传递为前馈神经网络。