原文地址
本文授权转移自lofter:某玛莉
这篇写写王绾和李斯,他们都是秦始皇的大臣,最后当到丞相。秦始皇是一位很有存在感的君主,他的大臣也都不是省油的灯。我关注王绾比较晚,是最近写关于唐太宗李世民的文,讨论分封和郡县的时候才注意到王绾的想法。读关于李斯的传记则早很多,源于高中时喜欢的张良。历史上张良家祖上多位先人相韩,所以在韩国亡国之后他决定要反秦,而最早向秦始皇进言要先灭韩国的就是他未来的丞相李斯。这位李丞相,在司马迁的《太史公自序》里得到的是“秦始皇的第一谋士”的定位:
能明其画,因时推秦,遂得意於海内,斯为谋首。作李斯列传第二十七。
司马迁写这句话主要是解释为什么需要给李斯写传记,但在我当年看来就等于是说,后来修炼成千古谋圣的张良,之所以早早被打成塔下发育模式,追溯起来是因为秦始皇也有个特别厉害的谋士,这么个意思。
此外,汉初还有一回,刘邦抱怨萧何,说出这么一句话来:“吾闻李斯相秦皇帝,有善归主,有恶自与”。刘邦有萧何这么好的相国,还要挑理,又拿李斯说事,可见作为丞相,李斯也很有存在感。
然而当我读李斯的传记的时候,不免感到违和。传记本身很有趣,司马迁的笔力还是一如既往地强,记录了秦始皇的第一谋士的风采,可是槽点也很明显:李斯给秦始皇当了差不多三十年大臣,这篇传记却把大半篇幅拿来写最后秦二世那三年的故事。像我小时候跟人聊古生物,就曾经吐槽一些小伙伴:恐龙演化了一亿六千万年,霸屏中生代,你就只记得一个灭绝,中间有那么多好玩的东西呢,错过了多可惜。
不过槽点归槽点,我一直没有跟谁讨论过这些,最近才发现自己对《史记》里的李斯的理解和主流不太一样。《李斯列传》的内容,主流意见似乎是认为基本真实并且描述了一个只关注自身利益的人,也有人认为其记载的真实性存疑。但基于目前的材料,我还是认为《史记》的记载基本属实,只不过它记录的不是一个只关心自己的利益的人,而是一个更关心秦帝国的人。司马迁确实对李斯的很多做法不认可,但那不表示他会在史书里编排不存在的事情。把重点放在史书记录的事实上,就可以探索真实的李斯的形象。同时,尽管史书对王绾的记载很少,我认为他的想法还是很有必要一并拿出来讨论,这样的对比有助于理解那个时代。
因为要写的内容太多了,所以我分3个部分写:《史记》的形象塑造、《谏逐客书》的时空背景、《行督责书》的有效边界。(但是不一定三个部分发完,要看LOF脸色。)
1、《史记》的形象塑造
当初发觉《史记》对历史人物有形象“塑造”的情况,单纯是自己读书的时候产生的一点初步的想法,后来偶然听武汉大学陈文新教授的四大名著课程也听到了这个观点(此课程可以在B站搜索到),所以决定还是拿出来讨论。
解释清楚《史记》的人物形象塑造问题是有助于解释各种质疑的,比如有人认为司马迁倾向儒家所以对其他的历史人物写得失真。对这些质疑,我大概的结论是:司马迁并没有刻意写虚假的内容,也没有因为自己的理念或立场无端指责历史人物,只是他对历史人物的解读是可以商榷的。
简单来说,真实的人应该是“立体变化”的。即一个普通人也都会有多面复杂的性格,并且会随时间变化而变化。但在司马迁笔下,绝大多数历史人物是立体的,却没有什么变化。他们仿佛一出场就是完全体,此生不忘初心,一辈子做的事都来自最初的目标。这部分地可以解释为很多历史人物在登上历史舞台的时候都不是孩子了,所以看来没变化,但如果在明显需要写一个人的变化过程的时候,司马迁写了一个不科学的玄幻故事,那恐怕就意味着他对人的认知是真的没有“变化”的概念。
比如刘邦和项羽,《史记》记载,他们都曾看到秦始皇出巡的队伍,然后就有了各自的想法。刘邦觉得“大丈夫应如是”,项羽说“彼可取而代之”。这两句话一出,刘邦对秦始皇的羡慕、项羽的目标和他对秦始皇的不服就都写出来了。在两人的传记里,后文的刘邦一直是这样一个大方直率(也有很多人认为是小人得志的流氓)的形象,而项羽也一直是坚定反秦、不认可秦朝的一切的形象。
但如果我们试着回想当时的场景就会发现,秦始皇的车驾队伍,天子威仪,同一时间看到的人很多,像刘邦一样羡慕的平民和小官吏、如项羽一样不服的六国旧贵胄肯定都不在少数。他们说类似的话都是完全有可能的,这其实不表示他们未来都能像刘邦一样当汉朝皇帝或跟项羽一样反对秦帝国的全部。也就是说,故事可能是真的,但如果我们作为读者,就这么跟着作者走,从这里就开始给历史人物一个固定形象,并且把他以后所有的行为的理由都往这个最初的故事上找,可能就是有问题的。
当然,在刘邦和项羽身上,这种“开篇一个故事给人物定基调”的做法的问题还不太明显,毕竟刘邦和项羽后来做的事,这么去理解也偏差不大。如陈教授所说,其实司马迁在其他的历史人物身上都没有碰到明显的矛盾,但是,在写到张良的时候他显然发现了问题——张良早年和后期的行事思路差异太大。
早年的张良曾经在博浪沙朝秦始皇扔大铁椎,跟刘邦项羽见了秦始皇的车队都是发感慨截然不同,张良早就计划好了要做件惊天地泣鬼神的大事。然而实话实说,虽然他顺利逃跑,能看出他显然非常聪明、善于谋划,但这种行为本质上和荆轲高渐离的做法没有区别,就反秦的目标而言是治标不治本。这个形象的张良,跟后来那个诈开武关、鸿门救主、下邑画策的顶级谋略家完全不在一个量级。
这种变化,我们按照现在对人的认知其实是很好解读的。显然,在博浪刺秦失败后,被通缉的张良在隐忍多年的同时变得冷静而镇定,他开始从根本上观察社会、感悟人心、学习兵法战略,这让他理解了策谋的本质。但是司马迁没有这么写,他写了一个圯上纳履的故事,还说故事中教导张良的黄石公表示自己将来会变成黄石等待他;最后张良真的见到了一块黄石,就把它拿来祭祀。《留侯世家》结尾,司马迁还表示,大家都说没有什么鬼神之事,但是说有精怪,留侯跟黄石公的故事也很神奇了;后来他又总能帮到高祖,是天意吧。
学者多言无鬼神,然言有物。至如留侯所见老父予书,亦可怪矣。高祖离困者数矣,而留侯常有功力焉,岂可谓非天乎?
其实,张良得到某位老人家的指导,开始学兵法,这完全可能是真的,但是说黄石就是老人,多半只是他后来想以修仙为名撤出朝堂而编出来的故事,这故事就不科学。说刘邦总被困而张良总有办法是天意的安排,显然也不科学。所以要想理解张良这个人物,我们不能把“太史公曰”里的话当结论,还是应该详细梳理传记本身的真实事件。司马迁虽然基本不写变化,但他很有专业水准,记录的事实没有大问题,《史记》的史料价值还是很高。
对涉及秦末的历史人物也是一样,比如秦始皇的大臣,吕不韦、李斯、蒙恬、王翦有传记,其中前三位是单独有一篇传记,王翦和白起合在一篇中。这四位大臣,只有吕不韦在朝时嬴政基本还没亲政,其余三位都曾是嬴政自己主政时期的重臣,那么现在我把“太史公曰”对这三位大臣的评价摘出来。
王翦为秦将,夷六国,当是时,翦为宿将,始皇师之,然不能辅秦建德,固其根本,偷合取容,以至龙身。及孙王离为项羽所虏,不亦宜乎!彼各有所短也。
以上是对王翦的评价,话说得很不客气,不仅说王翦为了取悦秦始皇而不讲道德,还说他孙子王离被项羽抓住就是王翦当年的选择的报应。
太史公曰:吾适北边,自直道归,行观蒙恬所为秦筑长城亭障,堑山堙谷,通直道,固轻百姓力矣。夫秦之初灭诸侯,天下之心未定,痍伤者未瘳,而恬为名将,不以此时强谏,振百姓之急,养老存孤,务修觽庶之和,而阿意兴功,此其兄弟遇诛,不亦宜乎!何乃罪地脉哉?
这是对蒙恬的评价,话说得更不客气:蒙恬做秦始皇的名将,不劝谏秦始皇体恤百姓,被诛杀不是也很正常吗,怎么能赖地脉呢?——基本等于说蒙恬不讲道理,怨天尤人。
太史公曰:李斯以闾阎历诸侯,入事秦,因以瑕衅,以辅始皇,卒成帝业,斯为三公,可谓尊用矣。斯知六蓺之归,不务明政以补主上之缺,持爵禄之重,阿顺苟合,严威酷刑,听高邪说,废适立庶。诸侯已畔,斯乃欲谏争,不亦末乎!人皆以斯极忠而被五刑死,察其本,乃与俗议之异。不然,斯之功且与周、召列矣。
这是对李斯的评价,已经是公开表示跟当时绝大部分人的观点都不一样了。司马迁认为李斯明明懂得六经的要旨,却不匡正君主的错误,拿着很高的俸禄却不做该做的事,等到天下乱套再想劝谏秦二世已经来不及了。不过这段话里的“不务明政以补主上之缺、阿顺苟合严威酷刑”都是在“废嫡立庶”之前,就是说司马迁想说的李斯曲意逢迎的对象主要还是秦始皇。
于是我们看到,在《史记》里,秦始皇的三位重臣王翦、蒙恬、李斯,得到的评价分别是偷合取容、阿意兴功、阿顺苟合。
鉴于此,我认为司马迁其实不针对李斯一个人,他对秦始皇的重臣可能就没啥好印象,不是不给写全名字就是说人家刻意讨好君主。比如在王翦的传记里,别的事都记得很简单,唯独打楚国的时候要钱要地的事写得特别详细;在蒙恬的传记里,赵高依然有着巨大的存在感。
然而,王翦、蒙恬、李斯,一生为秦始皇做了这么多工作,他们未必都是为功利而对秦始皇阿谀奉承、让自己活在扭曲中的人。司马迁将这些人物的传记的重点放在了解释最终的结局上,并且认为他们的结局都是源于最初的人品问题。他这样写书的结果是,读者想还原真实的历史人物非常困难。比如这篇文讨论的王绾和李斯,王绾是完全没传记,甚至没全名;李斯有传记,但传记的重点完全跑偏。这种跑偏,单凭感觉讲篇幅长短显然不有说服力,所以我决定计算一下,看量化的结果更直观。
我自己的研究方向的一些方法能用计算机处理文字、文本。计算机其实是不认识文字的,必须能将文字转化为数字,才能用来搞研究。对中文处理来说,分词是经常需要的操作,因为中文的句子里的词都是连着的,不像英文那样自带空格,所以需要先识别哪些词是词。(当然现在也有很好的模型不用分词也能得到不错的效果,但这篇文里我考虑到需求和目标,还是决定先分词。)
假设我们有例句:王绾和李斯是秦始皇的丞相。
分词之后的例句:王绾 和 李斯 是 秦始皇 的 丞相 。
而如果要算《史记》的话,因为原文全部是文言文,分词更困难,这里我没有用现成的分词工具,而是决定用原文文本做训练语料,让算法自己寻找原文中的词。我用了《用Python分析红楼梦-你好啊世界》中的代码(这个工作是想算出《红楼梦》的前八十回和后四十回用词是否接近)来做分词。如果有对分词算法的原理感兴趣的小伙伴可以查看原作者大神的博文。我得到的分词结果大概是这样的:
吕不韦 为相 封十万户 号曰 文信侯 招致 宾客 游士 欲以 并 天下 李斯 为 舍人 蒙骜 王齮 麃 公 等为 将军 王年少 初即位 委国 事 大臣 晋阳 反 元年 将军 蒙骜 击定 之
不是完全正确,但我已经很满意了。当然,从原文这样学习肯定也有很多词识别不到,但这么做不掺杂别的信息,结果还是可参考的。
词分出来就可以转成数字表示了。单个的数做不了很多事,现在学术界和工业界的主流都是选择把词转化为向量,最简单的one-hot方法是单纯用0和1为输入的文本做编码。比如上文的例句,暂时排除标点符号,一共有7个词(单字也算词),对每个词,都将词在句子中的位置记为1,其它位置记为0,则有词向量表示:
“王绾”(1,0,0,0,0,0,0);
“李斯”(0,0,1,0,0,0,0);
“秦始皇”(0,0,0,0,1,0,0);
“丞相”(0,0,0,0,0,0,1)。
这样我们就为每个词赋予了一个向量表示。但这种方法太粗糙了,一组来自7个词的句子的单词,每个词的向量都有7维。那要是整个文本有个十万八万词,岂不是每个向量都要十万八万维,而且这些向量都完全正交,也看不出有什么关系。
那么假设是这样:“王绾”(0.2,0.7,2.3);“李斯”(0.1,0.9,-1.2),这维数就少多了,也可以算下词义。Word2Vec就致力于用计算机给单词训练出固定维度的合适的向量表示。Word2Vec的字面意思是word to vecter,即将词转换为向量。这个模型是2013年由谷歌的Mikolov等人推出,随即成为热门工具。它希望能让计算机知道king-man+woman=queen这样的事情。模型的核心策略比较单纯。
这个图出自论文:Efficient Estimation of Word Representations in Vector Space. 看不懂也没关系,总之,它的意思是说,Word2Vec提供的两个策略模型Skip和CBOW的想法都是关注核心词和它周围一定范围内的词。Skip是根据核心词预测周围的词,CBOW正好相反,就像完形填空那样是根据上下文推测核心词。这模拟了人类理解词义的过程。如果模型预测正确,则说明我们的模型训练得到的词向量能够比较好地表达词义。那么,选一个模型来训练一组《史记》的词向量,再计算一下词的相关度,我们就可以观察书中哪些词比较接近,从而看到哪些人和事比较有关联。比如输入“始皇”,让Word2Vec算一下余弦相似度(这是工具的附带功能),给出最相关的部分词,我得到了这样的结果:
“始皇”相关词
解释一下“余弦相似度”。在高中的数学课上,余弦是三角函数的概念,我们在二维平面上使用它。其实余弦值可以视为两个向量的距离,如果两个向量的夹角余弦值为1,则意味着它们重合,即相同;如果值为0,则意味着它们正交,即完全不相关。在多维向量上也可以使用它,扩展一下就行了。
公式图
(打不了公式,直接问度娘百科截一个图。)我这里用的是200维的向量,选了Skip模型,参数基本是Word2Vec默认常用的。因为《史记》本身作为语料库还是比较小,所以算出来的更多是跟目标词相关的内容,如果是在一个比较大规模的语料库上算的话,得到的更多就是相似词。当计算“始皇”的时候,“赵高”的余弦相似度最大,然后这个“斯为”被算法认为是词,我查了一下是因为原文经常出现“李斯为舍人”“秦王乃拜斯为长史”这样的句子,导致分词算法把它找了出来。至于“巡”“东游”“下其议”就都好理解了。总之,这个结果就是说跟《史记》中的秦始皇最相关的事情有如下这几样:
赵高传递消息;
李斯升官办事;
一路向东巡游;
大臣议论政策。
……真实倒真实,但槽点也多,不知道的还以为秦始皇是个喜欢东游西逛的昏君。那么再来看看“李斯”的相关词计算结果。
李斯相关词
……赵高的存在感还是高居榜首,胡亥就紧随其后。可见《史记》里关于李斯的内容写得是有多失衡。有的小伙伴可能会质疑模型不认识某些文言文的表达,比如在《史记》里常常用单个字的人名表示人物,绾=王绾,斯=李斯,但模型不了解这一点;再比如,秦始皇没有当上皇帝之前,史书里写到他就一直写的是“秦王”,这个称号可以指很多代的秦王,Word2Vec不知道其中哪一个是秦始皇。这些问题当然是存在的,所以我这个计算结果也仅供参考。不过,即使是单个字,模型也可以算到,“始皇”在文本上离秦王时代的嬴政也还是比较近的,所以我觉得这个结果还是可以在相当程度上反映《史记》的写作重心。作为对比,我们还可以试试如果不单纯用《史记》而是用一个更大的数据集来训练,会得到什么样的结果。这里我决定借助一下度娘的资源。话说,百度开发了PaddlePaddle深度学习框架,其中的PaddleNLP2.0提供多个开源的预训练词嵌入模型,参考《如何使用预训练词向量与词嵌入(PaddleNLP2.0)-陆平》,w2v.baidu_encyclopedia.target.word-ngram.1-2.dim300这个词向量用整个百度百科做训练语料,训练模型还是Word2Vec的Skip,正好适合做比较。原文用“房屋”和“建筑物”之类的词测试模型,我们可以试试计算秦始皇和他的大臣的相关度。让程序计算余弦相似度,token_embedding自带的函数计算的结果大概是这样的:
token_embedding.cosine_sim("秦始皇","李斯")=0.6100393
token_embedding.cosine_sim("秦始皇","赵高")=0.5652044
token_embedding.cosine_sim("李斯","赵高")=0.6808377
这结果看起来算是正常一些了,虽然度娘百科提到秦始皇的地方肯定不单纯是历史,还会有小说影视动画游戏什么的,但整体就是大百科全书一起拿来训练,秦始皇和李斯的相关度有0.61(约等于“房屋”和“建筑物”的相关度),高于秦始皇和赵高的相关度。不过李斯和赵高的相关度就更高,可见史书的影响还是非常大。我顺手还算了一下关于王绾的结果。
token_embedding.cosine_sim("秦始皇","王绾")=0.03037
token_embedding.cosine_sim("王绾","李斯")=0.03871
这俩数就太忧伤了,比“房屋”和“米饭”的相关度还要小很多。不过,能够有王绾的名字已经是很好的了,用《史记》做语料库都找不到“王绾”这个词。实在是司马迁能把指鹿为马的故事不厌其烦写两遍,也不愿意写全王绾丞相的名字。为此我又忍不住去搞词频统计,就是简单地数一数每个词出现的次数,看看《史记》经常提到什么,结果还真发现了更多好玩的东西。词频较高的一些词和频数是这样的:
以这个结果来看,很多人说我国的史书经常是很宏大的叙事,关注国家天下,记录的人物也经常是帝王将相,这个指摘还是有道理的。作为西汉的开国君主,刘邦理所当然地在《史记》里是最多次被提到的人物,“汉王”“沛公”“高祖”都是指他。当然,这只是个粗略的观察,并不是说别人被提到的次数一定就少,比如秦始皇在他自己的传记里被提到的时候,经常都只有一个“王”字,或者是“秦王”,和其他多位秦王重复,这样就不太容易统计到。不过“始皇”被提到114次,也不算少了。
值得注意的是,孔子也被提到了很多次,不少文史研究者已经指出,司马迁服膺儒家,不管相关不相关,他总在各种地方提孔子。在《太史公自序》里,司马迁也写到了很多关于孔子的内容。其实他批评李斯、王翦和蒙恬,原因也与此有关。他说李斯明明知道《六经》的道理却不肯劝谏皇帝;王翦是不能辅秦建德;蒙恬则是“不以此时强谏,振百姓之急,养老存孤,务修觽庶之和”——全部都是不按孔夫子说的做事。
我个人认为,这意味着我们在读《史记》的时候有必要更关注事实,而不是司马迁的立场。倒不是说孔子有什么不好,而是他的主张毕竟不是世界的唯一真理,人是很复杂的,我们完全可以尝试重新解读,构建不同于太史公所理解的历史人物形象。
那么,同样是人物传记开篇提到的故事,比如李斯的传记里一开始写他观察老鼠,固然司马迁可能是想写一个只顾投机趋利的人,但我们还是应该认真读文本,看看李斯自己说的到底是不是这么个意思。李斯说住在厕所的老鼠吃不好睡不好,每天都在受到各种惊吓,而住在粮仓中的老鼠吃得饱睡得香,什么也不用担心。所以老鼠都没什么差别,但是生活的地点不同,就很不一样了。似乎很多人也认为李斯讲这个观察是因为他把自己当老鼠,我个人倒是认为不能这么看,他这番话的重点显然是环境而不是动物本身。
原文写得很清楚,李斯认为人是否贤能的关键“在所自处耳”,就是说他这番对老鼠生活的感悟的重点是环境对人的影响。而且,其实整篇传记里的李斯几次提到动物,重点要说的都是环境,不是动物。比如最后他说的“牵黄犬俱出上蔡东门逐狡兔”,他真正怀念的显然不是单纯的放狗追兔子这个活动本身,而是怀念家乡的那种淳朴的生活。再比如他在牢里时说“吾必见寇至咸阳,麋鹿游于朝也”,为什么要说是麋鹿游于朝,而不是鳄鱼游于朝或者银环蛇游于朝?
麋鹿特产于我国,人称四不像,性情温和,大多栖息于湿地生态系统。在上古时期,由于气候温暖湿润,中原有很多麋鹿,战国末期虽然已经少了很多,但人类的活动的破坏力还没有那么大,麋鹿在荆楚一带的云梦泽还有一些,到了汉末就濒危了。麋鹿游走意味着美好的原生态,没有什么人类文明。李斯描述的这种景象呢,自然主义者们会很喜欢,但是以当时的李斯的心情来说,肯定是很不希望看到咸阳变成这样的。也就是说,李斯这番话并不是对麋鹿有什么不满,而只是叹惜即将崩毁的秦王朝。麋鹿还是一种淳朴可爱的动物。他要是真说毒蛇游于朝那就真是对咸阳和“贼寇”好大仇怨了,可是他没有。史书记载李斯最后曾上书秦二世,希望减轻劳役,认为群盗这么多是因为朝廷劳役过重,可见他能够理解平民的心情,并没有因为民众造反就对他们产生恶意。
与此同理,尽管《李斯列传》写得篇幅失衡,但仍然交代了李斯在给秦始皇当大臣时最主要的贡献。通过这类内容,联系时空背景,我们还是有可能挖掘到真实的历史人物的形象的,就连只有很少的记载的王绾都是如此。下面两个部分我就来试着用史书原文搞一些分析。