Vol. 34, No. 12Dec., 2020
第34卷第12期
2020年12月
中文信息学报
JOURNAL  OF  CHINESE  INFORMATION  PROCESSING
文章编号:1003-0077(2020)12-0082-10
基于深度神经网络的诗词检索
2019小年梁健楠—2d 孙茂松】23,矣晓沅123
(1.清华大学计算机科学与技术系,北京100084;
2.清华大学人工智能研究院,北京100084;
3.清华大学智能技术与系统国家重点实验室,北京100084)
摘 要:中国古典诗词是中国古典文学的代表之一,是中华传统文化的宝藏•源远流长。中国古典诗词研究是自然
语言处理方向的一项重要且富有意义的工作。随着人工智能的发展,人工神经网络在图像、文本等领域得到广泛 的应用,取得了显著的突破•给人工智能与中国古典诗词相结合提供了新的思路和方法。让机器去理解中国古典 诗词的韵律和意境是一项极具挑战的工作,其中,通过研究诗词的相似性来提升机器对诗词的理解这一研究课题
被赋予了更为重要的意义。诗词检索是对诗词内容做对比•查出在语义和意境上相接近的诗词,这要求对整首
诗词的内容和意境有深入的理解。该文模型以数十万首古诗作为基础,利用循环神经网络(RNN )自动学习古诗句 的语义表示,并设计了多种方法自动计算两首诗之间的关联性,以此计算两首诗词之间的语义距离,实现诗词的推
荐。自动评测和人工评测的实验结果都表明,该文模型能够生成质量较好的诗词检索结果。关键词:神经网络;中国古典诗词;诗词检索
中图分类号:TP391 文献标识码:A
Neural  Network-Based  Poetry  Retrieval
LIANG  Jiannan 1-2,3, SUN  Maosong 1,2'3 , YI  Xiaoyuan 1'2,3
(1.Department  of  Computer  Science  and  Technology ・ Tsinghua  University, Beijing  100084» China;
2. Institute  of  Artificial  Intelligenee, Tsinghua  University » Beijing  100084 , China ;
3. State  Key  Laboratory  of  Intelligent  Technology  and  Systems* Tsinghua  University, Beijing  100084♦ China)Abstract : Chinese  classical  poetry ・ with  its  long  history* is  one  of  the  representatives  of  Chinese  classical  literature
and  a  treasure  of  Chinese  traditional  culture. Poetry  retrieval  is  a  comparison  of  the  content  between  poetry, finding  poems  that  are  similar  in  semantics  and  artistic  conception* which  demands  requires  an  in-depth  understanding  of  the
content  and  mood  of  the  whole  poem. This  paper  applies  the  recurrent  neural  network  (RNN) to  automatically  learn  the  semantic  representation  of  ancient  poems. A  variety  of  methods  is  designed  to  automatically  calculate  the  correla ­
tion  between  two  poems  to  further  calculate  the  semantic  distance  between  them, achieving  the  recommendation  of
poetry. The  experimental  results  of  automatic  and  manual  evaluation  show  that  the  model  can  gen e rate  good  quality  poetry  retrieval  results.
Keywords : neural  network; Chinese  classical  poetry ; poetry  retrieval
0引言
随着中国的崛起.中国古典文学受到越来越多
研究者的关注。其中,古诗词作为古典文学的代表
之一,深受人民的喜爱。
目前,对中国古典诗词自动生成的研究逐渐成
为自然语言处理的研究热点。对诗词研究的最重要
一步是机器自动语义理解。计算机的诗词自动语义 理解需要理解其内部词语的关联、意象的使用等规
律,从而促使人们对诗词创作有更为直观的理解。 诗词中的意象搭配、字词搭配等.也可以辅助研究者
收稿日期:2019-09-01定稿日期:2019-10-19基金项目:国家社会科学基金重大项目(18ZDA238)
12期梁健楠等:基于深度神经网络的诗词检索83
对诗词展开进一步的文学研究。将传统文化和人工智能相结合,能够为中华诗词的传承与发展贡献力量。近年来神经网络,尤其是基于循环神经网络(recurrent neural network,RNN)[1J的模型得到了极大的发展,并且在图像识别、语音识别、机器翻译等任务上取得了显著突破.RNN能够从大规模语料中学习得到句子的向量表示。前人的工作已经表明.RNN能够用于英文诗:呦和中国古典诗词〔询的自动生成,并且能取得不错的效果。
诗词检索推荐是对诗词语义研究的一项重要任务,可应用在诗词教学和诗词领域的检索系统中。这要求推荐的诗词与原诗在语义上相近,意境上相似,风格上相仿,并要求创作者有丰富的诗词积累,对每首诗词有深入的理解。目前,大部分系统使用的检索推荐系统都是基于题目、诗人、标签信息做规则化推荐。
please的形容词本文使用最新的深度神经网络方法学习诗词的句向量表示,用句向量来探索诗词检索推荐问题.实现能
够检索出与原诗在语义上相近、意境上相似、风格上相仿的诗词检索算法。基于句向量表示测量语义相似性已在集句诗⑺中得到应用,取得不错的效果。
综上,本文的贡献如下:
(1)着重解决诗词检索任务,并设计了相应的自动评测实验。
(2)基于深度神经网络学习的诗词检索模型利用句向量可以自动计算语义,测量语义相似性。
(3)自动评测和人工评测结果都表明,对于查询诗词,本文模型能够检索出与其语义相关性强的诗词。
1相关工作
对诗词的自动分析和生成研究是计算机自动理解和使用人类语言的一个重要切入点。国内外在这一领域的研究已经持续了数十年。国内相关研究起步于20世纪90年代。研究者们在古诗文语料库建设、诗词检索、内容自动分析等方面做出了奠基性的工作。钱钟书先生亲自指导并参与筹建了中国社科院计算机室进行中国古籍数字化.运用计算机技术来保存和整理中国古典文献。刘岩斌等⑷构建了一个古诗词研究系统,支持对古诗词电子文本的阅览、快速检索和统计。罗凤珠等⑹则构建了“倚声填词”格律检索与教学系统,支持对宋词词牌和词韵的检索;在古诗词分词这一任务上.俞士汶和胡俊峰
提出了基于“共现度”和“结合强度”的切分方法并构建了相应的古诗词典。苏劲松等结合人工规则和统计信息对宋词进行了自动切分。此外,穗志方结合知识库和互信息,实现了对宋代名家诗作的自动注音,在一定程度上解决了多音字带来的歧义问题。苏劲松〔⑶结合遗传算法和K最近邻方法实现了对宋词风格的自动识别,并采用多重松弛迭代算法进行了对宋词的情感分析。
随着技术的发展,研究者开始将文本与高维度的向量空间映射起来,来研究文本之间的关系。使用Word2Vec[l4]获得词向量后,使用句子中词的词向量转换成句向量。2014年提出了一种基于循环神经网络的Seq2Seq模型,使用了一个编码器(encoder)加上一个解码器(decoder)的结构,实现了一种端到端的机器翻译模型,该模型将输入的句子通过编码器得到隐向量。2018年,谷歌团队发布T BERT模型(bidirectional encoder representations from transformers,BERT)」"。BERT是一种基于多层双向Transformer|7-编码器训练出来的语言模型,其性能比许多任务中特定架构的系统都有所提升。在刚发布时,BERT刷新了11项NLP任务的最佳性能记录。
2模型设计
2.1任务及模型概述
目前,主流网站上设有诗词检索功能,满足用户拓展诗词积累的需求和加深对诗词的理解。大部分诗词检索算法是基于对古诗的题目、作者和内容等信息做字符串匹配检索和基于人工标注的标签分类进
行推荐。字符串匹配只是单纯地从字面上求近似,并没有理解到诗词的内容语义,结果并不一定准确。而人工标注需要的成本很高,标注的诗词数量有限。因此,这两种方法都有一定的局限性。
本研究提出使用基于深度神经网络的向量表示来进行诗词检索。首先,形式化地定义诗词检索问题:
设查询的诗词记为Q|,”=Q|Q2“・Q”山为该诗词的句子数.Q,为该诗词的第,个句子。候选诗词P i:m=P t P2-P m为诗库{S}中的诗词,巾为该候选诗词的句子数.P,为该候选诗词的第i句。
定义评分函数R(Q%,P“”)来衡量候选诗词
84中文信息学报2020年
P.”与查询诗词Q-”的相关程度。最后根据评分函数R(Q-”.P“)对诗库{S}中所有候选诗词进行排序,给出推荐诗词。
本文涉及的诗词主要在近体诗范围内进行讨论。
本文把句向量表示拓展到诗词检索问题上。下面将介绍本研究在基于深度神经网络的文本向量表示来实现诗词检索的尝试。
2.2句向量的选取方法
把文本映射成句向量方法有很多。下面将介绍两个比较新的深度神经网络的方法,用这两个方法来计算句子的句向量。
第一种方法是使用基于LSTM带Attention机制的Encoder-Decoder框架求句向量。将诗句S输入到LSTM Encoder中,从输出的隐向量计算该句诗句的向量表示,如式(1)所示。
]T
v(S)=〒工S,(1)
其中丁为句长。LSTM能够学习到较好的诗句向量表示。
第二种方法是使用BERT模型(bidirectional encoder representations from transformers,BERT)求句向量。诗句经过BERT后可以获得多层输出,每一层输出包括输入的诗句每个字对应的隐向量,通过取高层的隐向量求得对应的句向量。具体实验中,分别使用了由Google提供的预训练好的中文BERT模型参数BERT-base-Chinese和在BERT-base-Chinese的基础上使用古诗库的语料作为输入再训练获得的参数。使用古诗库语料再训练,是因为谷歌提供的BERT-base-Chinese使用大量的中文语料库,其中古诗的语料占比非常少,因此希望通过再训练,使得BERT的模型参数对古诗语料更敏感一些。
2.3诗词向量
本文受由字的隐向量求句向量的启发,设计了一种由句向量表示求出诗词的向量表示的方法,如图1所示。一个简单的做法是将诗词中的各句子对应的句向量做一次池化操作,这里使用的是均值池化处理。如式(2)所示。
1w
讥P“”,)=—(2)
图1诗词向量结构图
确定了诗词的向量表示后,可以使用向量的余弦距离来计算两首诗词的相似程度,称该方法为诗词向量诗词检索法(poetry retrieval with poem vec­tor,PRPVec).如式(3)所示。
R(Qi,”,Pi,”)=cos(a(Qi,”),v(P lim))(3)该算法存在的问题是诗词向量糅合了整首诗词的字、句的向量,而忽略了诗词中字词的具体语义。
2.4诗句向量
通过句向量直接取均值来作为诗词向量表示的方法过于简单,减少了对诗词中的语义信息的关注。因此,本文保留诗词中的句向量表示,尝试利用合理的配对方法来计算两首诗词的相似程度。
两首诗词Q.”和P.”的配对问题可看作是二分图,如图2所示。诗句看作节点,左侧有”个节点,分别为QiQz-0,,对应的句向量,右侧有m个节点,分别为P t P2-P,…对应的句向量。左侧第i 个节点连接右侧第j个节点的边的权值为W(z,;).表示Q,与P,的相似程度,如式(4)所示。
J)=cos(u(Q,)))(4)以下介绍三种匹配的方法。
2.4.1对应位置匹配
第一种匹配方法是考虑近体诗中一般每个位置的句子都有其任务,例如绝句中的四句诗句,一般都是按起承转合的顺序进行编排。开头两句诗一般描写风景,如“横看成岭侧成峰,远近高低各不同”;而第三句往往是感情的转折点一一“不识庐山真面目”;最后一句“只缘身在此山中”
用以抒发作者的观
12期
梁健楠等:基于深度神经网络的诗词检索
85
点和情绪。不同位置的诗句表示着不同的情景和情 感,因此相同位置上的诗句•相似的可能性更高。
图2诗词检索的二分图结构
如图3所示,按照句子所在的位置•求对应位置 句子的句向量之间的余弦距离的均值,称该方法为
行连接诗词检索法(poetry  retrieval  with  line  con ­
nection, PRLC ) o 公式如式(5)所示。
R (Qi :”,Pi :,”)=
mi n( >i . m  )
A  cos(v(Q ;) »v(P,))
]
min  (n  )
(5)
图3对应位置匹配法
固定了匹配的位置,算法可以使用较小的计算 所有候选诗词中,分析了查询诗词的每一句余弦距代价求得诗词间的相似程度。
离最近的候选句位置的分布情况。结果见表1和本文做了一项数据分布统计,分别尝试了 8首 表2。
绝句和8首律诗作为查询诗词Q-”,在查询诗词与
表1绝句各句最佳匹配句分布(%)
第一句
第二句
第三句
第四句
第一句27.7838.11
5.1628.95
第二句22.7246.18
3.01
28.09
第三句
13.04  5.0272.65
9.29
健康承诺书
第四句
16.15
37.70
4.12
42.03
表2律诗各句最佳匹配句分布(%)
第一句
女包品牌第二句第三句第四句第五句第六句第七句第八句
第一句
翻身农奴把歌唱歌词14.9416.677.0313.968.9914.5312.7511.13
第二句
10.4827.250.4217.090.30
23.540.42
20.50第三句9.79
0.9927.520.5825.570.5234.07
0.97第四句
8.5817.26
7.46
17.87
7.85
13.63
4.83
22.51
吉他左手按弦技巧
86中文信息学报2020年
续表第一句第二句第三句第四句第五句第六句第七句第八句第五句12.870.7227.950.5332.870.3823.980.69第六句  6.3924.18  6.2712.94  6.3823.147.0913.61第七句9.27  1.2517.890.7814.020.5553.02  3.22第八句  6.7916.84  5.1016.55  5.1614.029.7425.79
由表1中可以观察到.查询诗句的第一句在27.78%的候选诗词(与查询诗词同是绝句的诗词)中余弦距离最近的是候选诗词的第一句,余弦距离最近的诗句为第二句、第三句和第四句的分别占3&11%,5.16%和2&95%。在表1和表2对绝句和律诗的统计中,在大部分情况下,与查询诗句的诗句余弦距离最近的为相同位置的概率是最高的。但是,只有在绝句的第三句和律诗的第七句中余弦距离最近的为相同位置诗句的概率超过1/2,其他情况都未达到一半。因此,行连接诗词检索法得到的结果在诗词相似性的表现上往往并不理想。2.4.2全连接匹配
第二种匹配方法的考虑是语义上最相近的句子,不一定位于两首诗词的对应的位置。因此,本方法使用全连接匹配,求出两首诗词的句子两两之间的余弦距离的均值,称该方法为全连接诗词检索法(poetry retrieval with full connection,PRFC)o如图4所示,该方法求对应位置句子的向量之间的余弦距离的均值,如公式(6)所示。
R(Qi,”,Pi””)cos(z?(Q,)))
(6)
但是,该方法会导致余弦距离相对较远的形成
噪音,使得两首诗词的评分函数R(Qi,”,Pi”Q得分降低.影响候选诗词最终的排名。
2.4.3最佳匹配
在实际检索中,读者更加关注诗句的语义相近的句子的情况。为了将注意力放到语义最相似的诗句对上,本研究使用二分图最佳匹配(见图5)来解决这一问题。设二元组集合{(J71,>,),(J-2,JJ2)-…满足Wmin(",,")‘且\/
K?-jWk满足■?,,,y,,,称为二分图匹配A,将所有满足以上条件的二分图匹配,组成二分图匹配集.记为{A}。二分图最佳匹配即集合{A}中匹配边的权重和最大的匹配。本文称该方法为最佳匹配诗词检索法(poetry retrieval with best matching.PRBM)o公式如式(7)所示。
max A6iA|
R(Ql,”,P l,m)=
T:「2cos(v(Q,),v(Pj))
I A|A
二分图最佳匹配相比于上述其他方法,最大的弊端是计算复杂度极高.计算一对诗词的二分图最佳匹配使用暴力枚举,需要的时间复杂度是O(N!)。虽然使用KM算法计算二分图最佳匹配可以有效地提升计算效率,但依然相对于之前的方法耗时更大.难以投入到实际系统当中。
这里使用一种贪心的方式,结构见图6。在匹配的时候,算法只需考虑每句话的局部最优,计算Q」和P中的每一句能匹配到的最优余弦距离的和.称该方法为行最佳匹配诗词检索法(poetry re­trieval with line best matching,PRLBM)<,公式如式(8)所示