蒋彦廷, 张健铖
(北京师范大学 a.文学院 b.信息科学与技术学院,北京 100875)
“中国风”是21世纪初兴起的一种音乐体式。自2003年由方文山作词、台湾歌手周杰伦演唱的《东风破》获得巨大成功起,华语流行乐坛刮起了声势浩大的“中国风”。关于“中国风”概念的界定说法颇多,目前的主流观点由广东音乐人黄晓亮提出,指“三古三新(古诗文、古文化、古旋律、新唱法、新编曲、新概念)”相结合的中国特色乐种[1]。具体而言,它结合中国传统民间乐器与现代乐器,在曲调上以民族宫调式为主,最重要的是,其歌词以传统诗词为辞藻风格。
在以往的研究中,研究者们注意到“中国风”歌曲词汇在多方面的特色。例如,杨杰[2]、张新标[3]从词语选用、修辞技巧、意境营造、情感表露等方面,探寻了唐诗宋词和现代歌词的源流关系。刘芳智[4]3-10等则对某一“中国风”歌词作者的作品进行了题材分类、风格评析,总的来看,现阶段的研究主要是用传统文学赏析的办法,解读个别歌曲中的具体字句,尚未运用统计方法展现“中国风”歌词的宏观面貌。而且,研究对象或是笼统的“中国风”歌曲,或是某位词作者的歌词,缺失不同作品之间的比较研究。
在前人的基础上,我们参考“计量风格学”中的统计技术,立足于文本词汇,对“中国风”歌词进行全面的计量分析,比较其与唐宋诗词、一般流行歌曲的异同。计量风格学是以定量的手段,利用文本中可以统计的语言特征项来探索文本风格的一门学科[5],具体包括“余弦相似性”等计算文本相似度的方法、“信息增益”等挖掘某一类别文本特征词的方法,以及基于监督学习的文本分类算法等。在古诗词语料方面,我们以清代蘅塘退士《唐诗三百首》[6]选本(实收诗320首)和朱孝臧《宋词三百首》[7](第三版选本,实收词285首)为唐诗宋词的代表;在“中国风”歌曲的语料采集上,我们选取了2003年到2017年2月发行的来自62位作者的106首具有古典意味的歌曲歌词;在一般流行歌曲方面,由于目前还没有比较成熟、权威的中文歌词语料库,歌词语料从网络广泛搜集得到,在排除其中属于106首“中国风”歌曲的语料后,共得5425首歌的歌词。
文本预处理主要包括三项主要操作,一是停用词(Stop Words)的选取,二是利用分词系统,三是去除标点。在计算文本相似度、选取特征词任务中,三项均需进行;在文本分类任务中,则只进行第二、三项操作。
停用词指经常出现在文本中,却不承载较多信息量的词语,它们对文本主题没有太多贡献度,最好的办法就是在处理文本的过程中删除它。我们主要把“有”“无”“来”等常用的动词,“上”“下”“中”等方位名词,“人”“天”等常见的名词,“和”“及”等连词,“的”“了”等助词,“不”等副词选为歌词文本、《唐诗三百首》文本和《宋词三百首》文本的停用词。
需说明的是,这些词被停用后,只是不再以词的身份单独出现,但仍可以构词语素的身份出现,例如“无情”“佳人”。这样的合成词对于文本内容仍具一定意义。
分词作为中文信息处理基础工作,是后续环节的前提。一方面,唐宋诗词正处于中古汉语到近古汉语的过渡时期,汉语主要的词汇形式逐渐从单音节过渡到双音节。加之每个人的语感不同,中古汉语语料库常出现人工分词不一致的现象[8]。这直接影响了建立在人工标记基础上的机器分词的准确率与认可度。因此就总体情况来看,目前还缺乏开源且公认性能较好的中古汉语分词系统。
另外,虽然与现代汉语相比,唐诗宋词中的单音节词较多,一字一词地切分文本似乎可行。但是,据胡俊峰、俞士汶[9]等学者对语料的观察,除多音节的联绵词、专有名词外,如“丽人”“宝剑”“悲伤”等偏正、并列结构的多音节词已在唐宋诗词中大量出现。另外,虽然“白云”“秋风”等一般被看作词组而非凝固的词,但由于其在古诗词中有特定的隐喻象征义,因此也具有词的性质。此外,古诗词的许多词在现代汉语书面语中也并不鲜见。
最后,由于我们着重分析古诗词与现代歌词在词汇方面的关系,在同一任务下,对它们使用统一的分词系统是十分必要的,所以应把古诗词里处于中间状态的组合都暂时作为词来对待。
基于上述考虑,我们采用中科院计算所基于多层隐马尔可夫模型(Hidden Markov Model,HMM)的NLPIR/ICTCLAS2016词法分析系统(1)来给各文本分词。之后,我们去除文本中不必要的空白字符、标点,对文本作了清洗。
余弦相似性(Cosine Similarity)是衡量文本相似度的重要方法之一。它基于Salton等人提出的文本向量空间模型(Vector Space Model, VSM)[10]。在VSM模型里,文本可以表示为由各词语构成的特征项集合,每个特征项都有一定权重。由此,一个含有n个不同词语的文本可以转化为一个n维向量d={t1,w1;t2,w2;…… ;ti,wi;……;tn,wn}。其中,ti为文本中的一个特征(即词语);而ti所对应的权重wi可以用TF-IDF(Term Frequency-Inverse Document Frequency)方法表示[11]:
wi=tf(ti,d)·idf (ti,d)
=tf(ti,d)·log(N/nt)
tf(ti,d)为词语ti在特定文本d中出现的频次;idf(ti,d)为词语ti的逆文本频率指数,公式为log(N/nt),N为文本总数,nt是包含词语ti的文本数量。
以唐诗、宋词中2个较长的文本与106首较短的“中国风”歌词文本并列作为idf值的影响因素,在计算歌词与唐诗、宋词余弦相似度的具体任务下有其合理性:古诗词文本数为2,对idf值影响较小;影响它的关键就是106首歌词文本。如果一个词频繁出现在许多歌词文本中,那么它区别歌词异质性的能力就有所降低,对于歌词与古诗词之间相似度的贡献值就应降低。而“1唐诗+1宋词+106歌词”的文本分割方式就恰能通过idf方法实现这样的权重调节机制,从而减少过于常见的词语对文本相似度的干扰。
在计算出所有词的idf值后,我们以各词的tf·idf值作为权重,将每个文本向量化。可通过比较向量间的夹角来反映文本间的距离。向量夹角能较好地处理文本长度不一致的情况。如果两个向量夹角很小,就说明它们共现词较多,用词趋势接近。
我们把《唐诗三百首》《宋词三百首》向量化后作为参照,计算每一个歌词向量分别与这两者的余弦相似度。试验结果统计如下表1、2:
表1 “中国风”歌曲与《唐诗三百首》文本相似度前15位排序表
表2 “中国风”歌曲与《宋词三百首》文本相似度前15位排序表
综合上面表1、2及有关实验数据,值得注意的有两处:
一是表1出现的15首歌曲有7首仍保留在表2;表1的前5首歌曲有4首在表2中仍保持在同样区间,说明这些“中国风”歌词在创作中有意或无意地同时靠近唐诗、宋词的用语。
二是歌词普遍更接近于《宋词三百首》。一方面,若计算余弦相似度的平均值,表1的15首歌词与唐诗的平均相似度为0.129,而表2中15首歌词与宋词的平均相似度却达到0.153;另一方面,若将样本元素扩大到106首“中国风”歌词,它们与《唐诗三百首》的平均相似度为0.073,与《宋词三百首》则达到0.083;此外,与宋词相似度超过与唐诗相似度的歌词,在106例中达78例,占比超过73%。由于在去除停用词、分词环节之后,唐诗、宋词的文本长度已较为接近(前者为17213字,后者为19299字),加之余弦相似度能较好地避免较大规模语料间在长度上细微差异的影响,由此可以认为,相较于唐诗,中国风歌词总体更倾向学习借鉴《宋词三百首》中的词汇。
承续宋词的典型,就是《长安忆》的歌词。它在表1、2中均位居首位,在有限的篇幅里,将羁旅送别、思乡怀人、边塞战争等古诗词经典的类型场景描绘得精致细腻。歌词与《宋词三百首》文本的共现单音节词41个,双音节词32个,总计73个,具体如下表3所示:
表3 《长安忆》与《宋词三百首》的共现词
歌词用典、化用诗词之处甚为丰富。其中的片段“落日孤城闭,燕然归无计”“二十三弦急,落花人独立”“长门又误佳期,声清凄”“知音稀,弦断有谁来听”明显分别语出范仲淹《渔家傲》、晏几道《临江仙》、辛弃疾《摸鱼儿》、岳飞《小重山》等词作。歌词里的“子规”即杜鹃鸟的别名,因其叫声凄厉,在古诗词中常作为借来抒发悲苦哀怨之情;“留意”表示“驻留的意愿”,与现代汉语中的同形动词意义不同;除了借鉴实词,语气词“兮”也带有明显的仿古色彩。
该任务试图挖掘“中国风”歌曲承续自唐诗宋词,且较能区别于一般流行歌曲的特色词汇。具体步骤为,首先检索出1936个“中国风”歌词与《唐诗三百首》《宋词三百首》共现的不重复词型;其次,从中过滤掉在5425首一般流行歌曲中分布频率更高的词汇,保留1651个词型;最后,在“106个中国风文本/5425个一般流行歌曲文本”两个类别中提取包含在这些词型中的特征词。
在文本分类中,常用的特征选择方法有互信息(MI)、信息增益(IG)、文档频率(DF)和卡方检验(CHI)等。Yang等[13]比较了4种方法,认为卡方检验(CHI)和信息增益(IG)的效果最佳。单丽莉等[14]指出信息增益的不足之处,在于它考虑了词语不出现在某类文档中对类别的影响。虽然某个词语不出现可能有助于判断文本类别,但实验证明,这种考虑的干扰性更大。为避免单一方法的片面性,我们采用卡方检验和改进后的信息增益两种方法选择特征词。对于卡方检验,设文本总数为N,某词语wi和某类别Ci之间的关联度可由卡方值χ2体现。首先计算四个观察值:包含特征词wi且属于类别Ci的文本数,记为A;包含特征词wi但不属于类别Ci的文本数,记为B;不含特征词wi但属于类别Ci的文本数,记为C;不含特征词wi且不属于类别Ci的文本数,记为D。则:
对于改进后的信息增益方法,某词语wi对于文本类别的区分能力可由IG(wi)衡量。有:
其中m为文本类别数;p(Ci)为某一类别的文本出现的概率;p(wi)是文本数据集中出现词语wi的文本数除以总文本数的值;p(Ci/wi)是类型Ci中出现词语wi的文本数除以出现词语wi的总文本数。如上式所示,改进后的信息增益方法不考虑词语在文本中未出现的情况。
分别按照卡方检验、信息增益值,我们就得到两份特征词的降序排序表。其各自前20位特征词如表4所示。对两种方法所得的前300个特征取并集,就得到一个含有406个特征词的集合U。
由特征值位列前20的词语可以管窥,尽管两种特征选取的方法对词语的排序有所不同,但都取得了良好效果,能把在“中国风”歌词与唐诗宋词中共现,且在“中国风”歌曲中常见、在一般流行歌曲中不常见的词语挖掘出来,相得益彰。综合表4及相关数据我们可以看出,“中国风”特征词在词类、话题等方面呈现如下特征:
如表4所示的40个词中,双音节词达12个,占比30%。在含406个特征词的集合U中,双音节词达144个,占比约35%。由于这些词也都出现在《唐诗三百首》《宋词三百首》中,因此也可以佐证唐宋时期汉语词汇双音节化的趋势。
如表4所示,在卡方检验的前20位特征词中,名词有18个,占比90%;在信息增益的前20位特征词中,名词有15个,占比75%;视野扩大到含406个特征词的集合U,名词有263个,占比也超过64%。具体而言,“中国风”歌词偏好继承古诗词中以下几大类名词:
表4 “中国风”歌词中特征值前20位的词语表
(1)自然景观名词。其包括两大类,一是自然、气候现象类,二是动植物尤其是花卉类。前者如表4中的“风月”,以及集合U中的“江”“雪”“烟”“雨”“风”“尘”“溪”“山水”“落日”“烟波”“月色”“月华”“残雪”“风露”等。后者如表4中的“苔”“梨花”“芳草”“落花”,以及集合U中的“莺”“鸿”“鹊”“燕”“鹤”“柳”“桑”“荷”“鹧鸪”“柳絮”“飞絮”“芙蓉”“桃花”“寒梅”“幽篁”“芭蕉”等。这些词作为古典文学作品中的意象,大都具有清新自然之美。
(2)与时令、时间有关的词。这一类以双音节词居多,如集合U中的“秋”“黄昏”“暮春”“岁岁”“时节”“三月”“今朝”“前朝”“当年”“今生”“千古”“三生”等。这些词有的囊括较长的时间段乃至一生,以此表达感情之强烈,起到“作决绝语而妙”的表意效果;有的起到抚今追昔的功能,通过怀念过去,拓展歌词意境的时间维度,展现情绪之绵长;而时令词“秋”“暮春”和“黄昏”有萧瑟的特征,易引起人的愁绪。
(3)中国传统文化物件。如表4中的“笔”“墨”“亭”“锦”“烛”“丝竹”“琵琶”,以及未上表的特征词“玉”“琴”“砚”“觞”“舫”“弦”“笙”“剑”“红烛”“羽扇”“灯花”“回廊”“楼阁”“锦屏”“锦瑟”“笙歌”“檀板”等。这些物品有的涉及琴棋书画等技艺,或属古代建筑家居的组成部分,在现今不常见,属于中国传统文化物件,带有精致、古雅的特色。
例如表4中的“落”“断”,以及集合U中的动词“离”“泣”“叹”“送别”“别离”“思量”“相思”“饮恨”“无眠”“落泪”“遥想”,形容词“愁”“寒”“孤”“瘦”“怅然”“飘零”“仓皇”等。虽然哀伤的主题也常见于如今一般的流行歌曲,但它们对上述词语的运用不及“中国风”歌曲频繁。
许多“中国风”的歌词均离不开美人、婚恋话题,也借鉴了古诗词中的许多相关词汇。具体而言包括三个方面,一是关于美人及其衣饰妆容的称呼,如表4中及其他特征值较高的“眉”“裳”“伊”“妃”“佳人”“良人”“美人”“女子”“红袖”“红颜”“霓裳”;二是与女子日常起居有关的词;三是形容女子心理、仪态、动作及其与恋人互动的词。二、三类与前文所述的名词、动词、形容词存在一定交叉,但又含独具特色的部分。例如前者的“钗”“帘”“梳”“深闺”“画屏”“脂粉”等。后者的“颦”“蹙(眉)”“嫣然”“心事”“脉脉”“回眸”“携手”“多情”等。
统观“中国风”歌词与唐诗宋词共现、且区别于一般流行歌曲的词汇,“中国风”歌曲的一大倾向,是以江南闺阁为背景,以婚恋离愁为题材,意境大多温婉清雅,部分带有萧瑟清凄的色彩。它们主要继承自唐诗宋词中善于状物写情的婉约流派,而对具有宏阔、豪放风格的一类诗词承续较少。
文本分类(text clustering)是通过比较一组文本的相似性,将比较相似的文本归为同一组、差异较大的文本归为不同组的过程。已知在第二节得到了各“中国风”歌词与唐诗宋词的相似性,我们选取了与唐诗、宋词相似度之和最高的前100首歌曲,以及通过随机数抽样的100首一般流行歌曲作为分类对象。
分类的方法为K近邻(K-nearest-neighbor,KNN)算法。其基本原理是,给定一个已经具有分类标记的训练数据集并向量化,对于新的输入实例,在向量空间中计算出与该实例距离最小的K个实例。若这K个实例多数属于某类别,就应把该实例归入这个类中[15]38-40。
我们令K值为8,选取两项分类指标:一是利用上一节得到的含406个特征词的集合U,计算歌词里出现在集合U中的词数,占歌词总词数的比例;二是每个文本的助词、连词、介词、语气词等虚词的比例。为使对分类效果的评价更加准确,避免数据分布不均,进行五折交叉验证(5-fold cross validation),即将200首歌曲分类对象均分为5份,轮流将其中4份作为训练集,剩下的1份(40首)作为测试集,分别记录5次实验的精确率(precision)、召回率(recall)、F值(2)。历次实验效果及平均效果如图1所示:
根据图3,首先观察5次实验的平均性能。F平均值达到了92.49%,说明凭借虚词和集合U中的406个词(以下简称“古典词”)的出现频率2项指标,能够大体上区分“中国风”与“非中国风”类别的歌词。如前所述,“中国风”歌词与唐诗宋词的词汇同质性颇为显著。而古代文学家、评论家很早就表达了对古诗词中使用虚词(字)的审慎态度。唐代诗人卢延让在《苦吟》中说诗“不同文赋易,为著者之乎”,即作诗不像文赋那样可以相对自由地使用“者之乎”等意义较虚的字;明代谢榛也在《四溟诗话》卷一中引李西涯语:“诗用实字易,用虚字难……用之不善,则柔弱缓散,不复可振。”[16]9传统诗词受到格律体式的限制,对虚词的使用较为拘谨,“中国风”歌曲要接近传统语体风格,亦需把虚词维持在较低的比例。然而自新文化运动起,以胡适《尝试集》为代表的新诗,在突破旧有诗词体式规则的同时,也频繁让虚词入诗,极大地改变了其原有词类构成[17]。以“古典词”为代表的词汇,也是“中国风”富有古诗词韵味、在纷繁的现代华语乐坛上独树一帜的重要计量特征。
另外也需看到,个别验证的精确率、召回率不高。除了语料相对较少、数据较为稀疏的因素,更主要的原因,第一,“中国风”在追求仿古意境的同时,为避免晦涩不易为大众接受,也不排斥文白夹杂的语句。即使是前文所列的与唐诗、宋词相似度较高的《花满楼》歌词,其中也有“楼满花香君知否”与“曾经牵着我的手”这样文言白话异质语体共存的现象。
第二,诚然此类歌曲总体上多有借鉴古诗词中的典型意象和描摹情态的谓语,但具体到不同作者、不同歌词,仿古拟古的程度也有所差异。例如许嵩在词作中使用的传统意象一般就比词作者后弦的更加密集。“中国风”歌词作者的典型代表方文山认为,只要词曲具备古典背景元素的用语及其他某些特征,“不论加入元素的多寡或比重为何,均可视同为所谓的‘中国风’歌曲”[18]3-13。其论述是否完全合理固然有待商榷,但该观点也从一个侧面指出“中国风”并非千篇一律。
第三,在20世纪后半叶,乐曲层面上的“中国风”概念尚未被明确提出,但一些流行歌曲的歌词却已带有鲜明的传统诗词色彩。例如本分类实验中的歌词《梨涡浅笑》。它由香港填词家黎彼得于1976年创作,古典词占比高达24.03%,虚词占比仅为7.69%,与大部分“中国风”歌词一样具有较高古典词比例和较低虚词比例的表征,在分类测试中就被预测为“中国风”类别。相似的歌曲还包括琼瑶于1975年作词的《在水一方》、陈小奇1993年作词的《涛声依旧》等。纵然几乎没有人认为这些创作时间较早的作品亦属“中国风”范畴,但它们在歌词层面的确已具备如今“中国风”歌曲的某些突出特点。一些相关研究者曾注意到这种矛盾,提出通过添加时间、外来文化冲击的背景等限制性条件,以更新“中国风”的定义,缩小此概念的外延[18]6-7。这些限制性条件诚为一家之言,然已不再是本文的讨论范畴,还有待今后学界对其合理性、可行性的进一步探究。
本文从词汇角度,运用计量风格学的统计方法,探索了“中国风”歌曲对《唐诗三百首》《宋词三百首》的承续情况,以及它们区别于一般流行歌词的显著特征。通过余弦相似度,得到与《唐诗三百首》《宋词三百首》相近的歌词文本,得出中国风歌词更接近宋词用语的结论;并基于古今文本词汇的共现与进一步的特征选择,梳理“中国风”文本承续自古诗词的重要词类、话题,总结此类歌词的风格偏好;通过K-最近邻分类实验,发现较低的虚词比率与较高的古典词比率两项指标能,大体上使“中国风”歌曲从浩如烟海的现代华语乐曲中相对独立出来。统计方法能使原本不引人注目、捉摸不定的文本风格得以突显,在传统文本分析的基础上获得了实证数据的有力支撑,从而能更全面地反映出“中国风”歌曲词汇的面貌,讨论它们与古诗词、一般性的现代流行歌曲之间的关系,为今后相关文艺创作提供了一定的实证支持。
不过,《唐诗三百首》《宋词三百首》作为中国古典文学的精华,仍不能囊括古代文学的总体面貌。“中国风”歌曲对其他作品的承续状况尚未得呈现。另外,文本之间可能存在的少数同形异义词还有待仔细甄别。最后,“中国风”与早期(20世纪后半叶)一些具有鲜明传统诗词色彩的流行歌曲之间的异同还不及充分探索。这些问题有待在将来作更深入的研究与讨论,从而使“中国风”歌曲的面貌与定位更全面、清晰地揭示出来。
注释:
(1)ICTCLAS/NLPIR词法分析系统参见:http://ictclas.nlpir.org/。
(2)精确率、召回率、F值是用于分类效果的三个指标。在二分类问题中,常以关注的类为正类;其余的为负类。
精确率(P) = 将正类预测为正类的文档数 / 所有预测为正类的文档数。
召回率(R) = 将正类预测为正类的文档数 / 正类文档的真实总数。
F值是精确率和召回率的调和均值。有:2/F=1/P+1/R