由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
History版 - 计算模拟历史
相关主题
资治通鉴写得也太简略了ZZ虞云国评袁腾飞《历史是个什么玩意儿》节选
从史记和资治通鉴两本书看的出语言的变迁吗南宋如果建都南京,能不能在蒙元攻击下生存下来
《南山集》 yunmz的 东汉开国概述 之 群雄逐鹿晚唐五代历史中似乎没有文人在里面起作用
统计一下中国古代的乱世一个政权要垮台的特征
关于16至18世纪之“中学西渐”的反思(三)武则天为啥最后选择和李治葬在一起?
【历史战争游戏(5)】~Aug03~唐诗都是怎么发表的?
徐悲鸿也挺无赖的老毛也就一朱温吧
农民起义的问题三国时的三个头子就是。。
相关话题的讨论汇总
话题: 历史话题: 麻秋话题: 计算话题: 资治通鉴话题: 概率
进入History版参与讨论
1 (共1页)
k***g
发帖数: 7244
1
以前闲着无聊的时候曾经做过一个《资治通鉴》的字频统计,单以频率计,中国历史不
过是“王”与“人”,“义”与“忠”,“将军”与“刺史”,“长安”与“洛阳”。
既然有了频率,自然也就有了概率和条件概率。根据条件概率,当给出一个序列的字词
后,预测下一个字词是什么,就变成了一个简单的最大似然估计问题。如果觉得这个序
列太长,计算起来太麻烦,可以假设简化的马尔科夫结构,譬如假设下一个词的概率取
决与之前的n个词而不是整个序列,这基本上就是计算语言学里的 n-gram 算法了。
所以我们可以用《资治通鉴》作为语料得出经验条件概率,然后来随机模拟出历史文本
,产生原汁原味(至少是统计意义上的)史书 (技术细节见附录)。 虽然这只是文字
游戏,但是仍然能从概率上看出《资治通鉴》记述的历史中,最容易重现怎样的事件。
譬如下面这则 (random seed = 2000):
撰 刘 崇 俊 以 惟 岳 又 从 入 关 , 宣 等 从 太 子 也 , 惧 履 危 亡 之 事
, 发 步 骑 二 十 骑 自 北 至 北 寺 狱 , 竟 不 使 宗 庙 社 稷 。 宗 元 为
柳 州 司 马 。 坚 大 怒 , 士 气 彫 沮 , 无 事 , 更 为 后 拒 , 倍 急 于
亡 命 聚 众 二 万 会 麻 秋 、 姚 、 宋 赤 眉 将 逢 安 为 新 都 , 剽 掠 。
我们可以这样翻译:
刘崇俊因为惟岳(人名,可能是李惟岳。刘崇俊是五代人,李惟岳是晚唐人,相差不算
太远)一起入关(姑且认为是潼关,但是李惟岳在和河北,真实历史是不会入关的),
而宣(人名)等人却追随太子而去,害怕这是危亡社稷的事情,于是发步骑二十骑(区
区二十骑!估计是武林高手),从北面到北寺狱(这是东汉时候黄门署属下的监狱,鞫
禁将相大臣的,好吧,晚唐也有宦官之祸,这里东汉的宦官乱入了,不过二十骑到北寺
狱,难道是要劫狱?),最终也没有拜谒宗庙(不把皇帝放在眼中啊)。
柳宗元被任命为柳州司马(二王八司马嘛,承接上文,还是和阉祸有关)。
(某)坚大怒(不知道是孙坚?苻坚?杨坚?),士气不振,好在也没有什么大事,继
续抗拒(王师?)。 因急于亡命,聚众两万人与麻秋汇合(麻秋登场,那么坚应该是
苻坚了,但是麻秋很早就被苻坚的伯伯苻健杀死了)。
(与此同时)姚、宋(姚崇,宋璟?)率领赤眉军把逢安(这个地名是自动产生的,历
史上似乎没有,权且当作是四川 蓬安 吧)作为新的都城,四处剽掠。
我们来梳理一下这段模拟历史的脉络:
这大概是一个王朝末年的乱象。 地方农民起义(赤眉),建立政权(所以有新都),
负责讨伐的将领反而形成军阀割据,一些军阀随权臣(刘崇俊)入京,干预朝政(惟岳
),一些军阀在地方反叛(坚),勾结外敌(麻秋是羯族人)。这一切的原因可能是因
为朝廷宦官弄权已久(北寺狱),忠良被贬(柳宗元)。 军阀入京大概是打着清除宦
官的名义(所以要发兵北寺狱),但是同时他们也不把社稷放在眼里。 京城在军阀到
来前似乎已经被反贼攻克,所以皇帝和太子分道逃亡。如今皇帝似乎已经回到京城,而
太子却还在外面招兵买马(宣等人追随),似乎有不臣之心。
简而言之: 中央朝政腐败,宦官专政,两宫不和。地方盗贼风起,军阀割据,外患不
断。
难道这就是随机生成的中国历史最典型的场景? :-)
附录
文中使用的通鉴文本是从维普网上下载的,做了一些简单的清理,上传到了百度云(链
接)。 为了避免古文分词的麻烦,在作 n-gram 的时候以字为单位,所以用 gsub 在每
个字的后面加入空格。 n-gram 选择 n=2.
library(ngram)
file<-"C:/Users/Zeng/Downloads/zztj.txt"
str=scan(file,"character",encoding="GB2312")
s = concat(str)
s = gsub("(.)", "\1 ", s)
ng = ngram(s, 2)
o = babble(ng, 100,seed=2000)
Encoding(o)<-"UTF-8"
o
r**********g
发帖数: 22734
2
用ngram过时了,搞个lstm

【在 k***g 的大作中提到】
: 以前闲着无聊的时候曾经做过一个《资治通鉴》的字频统计,单以频率计,中国历史不
: 过是“王”与“人”,“义”与“忠”,“将军”与“刺史”,“长安”与“洛阳”。
: 既然有了频率,自然也就有了概率和条件概率。根据条件概率,当给出一个序列的字词
: 后,预测下一个字词是什么,就变成了一个简单的最大似然估计问题。如果觉得这个序
: 列太长,计算起来太麻烦,可以假设简化的马尔科夫结构,譬如假设下一个词的概率取
: 决与之前的n个词而不是整个序列,这基本上就是计算语言学里的 n-gram 算法了。
: 所以我们可以用《资治通鉴》作为语料得出经验条件概率,然后来随机模拟出历史文本
: ,产生原汁原味(至少是统计意义上的)史书 (技术细节见附录)。 虽然这只是文字
: 游戏,但是仍然能从概率上看出《资治通鉴》记述的历史中,最容易重现怎样的事件。
: 譬如下面这则 (random seed = 2000):

x*********3
发帖数: 1438
3
呼唤智商啊。
首先,任何地方都差不多是战乱比和平时代长吧,比如欧洲也有千年的黑暗时代。
其次,写历史总得写个事,和平时代恰恰没啥好写的。比如,某一年花了一个月局部剿
了个匪。史书上可能就只写了这个剿匪,其他十一个月没啥好说的,然后一两句话就带
过了。你这一统计就是这一年都在剿匪了。
一句话,任何历史书,都是以战争为主;其他为辅。
b*******8
发帖数: 37364
4
资治通鉴再分析,能模拟出鸦片战争不?
d****z
发帖数: 9503
5
历史模拟居然完全没有时间的概念?
v*****s
发帖数: 20290
6
这个挺有趣的,可以把圣经啊啥的都拿出来做做看。

【在 x*********3 的大作中提到】
: 呼唤智商啊。
: 首先,任何地方都差不多是战乱比和平时代长吧,比如欧洲也有千年的黑暗时代。
: 其次,写历史总得写个事,和平时代恰恰没啥好写的。比如,某一年花了一个月局部剿
: 了个匪。史书上可能就只写了这个剿匪,其他十一个月没啥好说的,然后一两句话就带
: 过了。你这一统计就是这一年都在剿匪了。
: 一句话,任何历史书,都是以战争为主;其他为辅。

T*******x
发帖数: 8565
7
以前看过一个分析宋词词频的,然后电脑自动生成宋词。挺好玩。

【在 k***g 的大作中提到】
: 以前闲着无聊的时候曾经做过一个《资治通鉴》的字频统计,单以频率计,中国历史不
: 过是“王”与“人”,“义”与“忠”,“将军”与“刺史”,“长安”与“洛阳”。
: 既然有了频率,自然也就有了概率和条件概率。根据条件概率,当给出一个序列的字词
: 后,预测下一个字词是什么,就变成了一个简单的最大似然估计问题。如果觉得这个序
: 列太长,计算起来太麻烦,可以假设简化的马尔科夫结构,譬如假设下一个词的概率取
: 决与之前的n个词而不是整个序列,这基本上就是计算语言学里的 n-gram 算法了。
: 所以我们可以用《资治通鉴》作为语料得出经验条件概率,然后来随机模拟出历史文本
: ,产生原汁原味(至少是统计意义上的)史书 (技术细节见附录)。 虽然这只是文字
: 游戏,但是仍然能从概率上看出《资治通鉴》记述的历史中,最容易重现怎样的事件。
: 譬如下面这则 (random seed = 2000):

c***r
发帖数: 4631
8
不错。

【在 v*****s 的大作中提到】
: 这个挺有趣的,可以把圣经啊啥的都拿出来做做看。
d****z
发帖数: 9503
9
kzeng的模型就是太简化了。这里新人不识kzeng呀。

【在 x*********3 的大作中提到】
: 呼唤智商啊。
: 首先,任何地方都差不多是战乱比和平时代长吧,比如欧洲也有千年的黑暗时代。
: 其次,写历史总得写个事,和平时代恰恰没啥好写的。比如,某一年花了一个月局部剿
: 了个匪。史书上可能就只写了这个剿匪,其他十一个月没啥好说的,然后一两句话就带
: 过了。你这一统计就是这一年都在剿匪了。
: 一句话,任何历史书,都是以战争为主;其他为辅。

m***n
发帖数: 12188
10
不是战乱比和平时间长,而是“狗咬人不是新闻,人咬狗才是。”
历史也一样,和平,没啥好写的,战乱,故事多。

【在 x*********3 的大作中提到】
: 呼唤智商啊。
: 首先,任何地方都差不多是战乱比和平时代长吧,比如欧洲也有千年的黑暗时代。
: 其次,写历史总得写个事,和平时代恰恰没啥好写的。比如,某一年花了一个月局部剿
: 了个匪。史书上可能就只写了这个剿匪,其他十一个月没啥好说的,然后一两句话就带
: 过了。你这一统计就是这一年都在剿匪了。
: 一句话,任何历史书,都是以战争为主;其他为辅。

相关主题
【历史战争游戏(5)】~Aug03~ZZ虞云国评袁腾飞《历史是个什么玩意儿》节选
徐悲鸿也挺无赖的南宋如果建都南京,能不能在蒙元攻击下生存下来
农民起义的问题晚唐五代历史中似乎没有文人在里面起作用
进入History版参与讨论
c***3
发帖数: 280
11
用R模拟历史,这个好玩。
l*****f
发帖数: 13466
12
以战争为主的是军事史
二十四史基本格式纪表志传
通鉴编年
哪里战争为主? 人物,社会,经济,礼乐,天文地理, 八卦.....

【在 x*********3 的大作中提到】
: 呼唤智商啊。
: 首先,任何地方都差不多是战乱比和平时代长吧,比如欧洲也有千年的黑暗时代。
: 其次,写历史总得写个事,和平时代恰恰没啥好写的。比如,某一年花了一个月局部剿
: 了个匪。史书上可能就只写了这个剿匪,其他十一个月没啥好说的,然后一两句话就带
: 过了。你这一统计就是这一年都在剿匪了。
: 一句话,任何历史书,都是以战争为主;其他为辅。

l*****f
发帖数: 13466
13
是啊。。。。。

【在 d****z 的大作中提到】
: kzeng的模型就是太简化了。这里新人不识kzeng呀。
b****e
发帖数: 119
14
a***e
发帖数: 27968
15
通鉴本来就是狠狠撸过的
估计赶上孔子削春秋了,用这个做样本作统计会大偏

【在 l*****f 的大作中提到】
: 以战争为主的是军事史
: 二十四史基本格式纪表志传
: 通鉴编年
: 哪里战争为主? 人物,社会,经济,礼乐,天文地理, 八卦.....

a***e
发帖数: 27968
16
本来就是,统计的看互联网
丫就是个Porn的工具,其他都是副作用

【在 m***n 的大作中提到】
: 不是战乱比和平时间长,而是“狗咬人不是新闻,人咬狗才是。”
: 历史也一样,和平,没啥好写的,战乱,故事多。

m***n
发帖数: 12188
17
严格说来,这不是计算历史。类比计算分子动力学之类,计算历史应该是给出初始条件
(比如当前状况)和边界条件(比如外部干涉,自然地理变化),然后计算其发展。
计算历史目前看基本是不太可能的。除非演算一个非常小,非常狭窄的问题。
楼主的这个,是计算语言学,计算文本分析这一块的。
比如说,对红楼梦,圣经的类似分析十几年前就很多了。得出许多有趣结论。
首先,不同作家有自己的文字规律,比如某历史学家大量使用patently 这个词,别人
几乎一次不用。
其次,任何作品,都有许多pattern, form之类。比如圣经里面,上帝用泥土造人,这
就是一个form, 这个form 在许多原始民族的神话里面都有,比如女娲。但是另外还有
一个上帝,用word来创造,是非常形而上的,在原始社会里面找不到的,一股柏拉图的
味道扑面而来。电脑能把这些form找出来,可以大致确定不同章节最初形成的原文年代。
资治通鉴是一个非常有意思的东西,其历史叙述的pattern非常强硬,可以和圣经旧约
的历史类比。
旧约的历史有个模式,以色列拜偶像,远离耶和华,不尊敬祭司,肯定灾难到来;远离
偶像,亲近祭司,必然盛世幸福。
在资治通鉴里面则是:太监必定是邪恶的,武将必定是跋扈的,文官必定是正义的,扩
张必然是不好的,少民必然是贪财的,一旦君主亲近太监,必然坏事,一旦武将得以自
由行事,必然割据,或者乱杀人,文官即使坏事,也是好心办坏事,或者能力不足。君
主有德就昌盛,社会幸福,连自然灾害都没了;失德就完蛋,连自然灾害都多了起来,
什么地震,洪水,天雨血,旱灾。
什么叫有德?读儒家的书,亲近儒生,远离小人(太监,武将,文盲,非儒家,比如法
家,阴阳家,道家,佛家,之类),那就是有德。
司马光的历史叙述基本是这个模式。
而二十四史,所谓的官史,则是以帝王家谱为核心,所谓的“二十四姓之家谱也”(梁
启超语)。
另外,historicity和historical narrative是两码事。比如,以色列的古代史是不是
真的不好好祭祀就失败,祭祀好了就昌盛,那是另外一回事了。这很可能是用神学框架
来叙述的历史。
资治通鉴也一样,其目的性和儒家神学性是极为强烈的。

【在 a***e 的大作中提到】
: 本来就是,统计的看互联网
: 丫就是个Porn的工具,其他都是副作用

m***n
发帖数: 12188
18
文革时期的小说模式:
“队长犯错误,书记来教育,忆苦又思甜,揪出个老地主。”
人民群众总结的。
s******g
发帖数: 466
19
楼主很有创意,赞一个。原贴中没有看见文本的百度云连接,请问能否提供?
R***a
发帖数: 41892
20
这个是计算历史
https://en.wikipedia.org/wiki/Psychohistory_%28fictional%29

【在 m***n 的大作中提到】
: 严格说来,这不是计算历史。类比计算分子动力学之类,计算历史应该是给出初始条件
: (比如当前状况)和边界条件(比如外部干涉,自然地理变化),然后计算其发展。
: 计算历史目前看基本是不太可能的。除非演算一个非常小,非常狭窄的问题。
: 楼主的这个,是计算语言学,计算文本分析这一块的。
: 比如说,对红楼梦,圣经的类似分析十几年前就很多了。得出许多有趣结论。
: 首先,不同作家有自己的文字规律,比如某历史学家大量使用patently 这个词,别人
: 几乎一次不用。
: 其次,任何作品,都有许多pattern, form之类。比如圣经里面,上帝用泥土造人,这
: 就是一个form, 这个form 在许多原始民族的神话里面都有,比如女娲。但是另外还有
: 一个上帝,用word来创造,是非常形而上的,在原始社会里面找不到的,一股柏拉图的

相关主题
一个政权要垮台的特征老毛也就一朱温吧
武则天为啥最后选择和李治葬在一起?三国时的三个头子就是。。
唐诗都是怎么发表的?去图书馆借了 张居正讲评紫治通鉴
进入History版参与讨论
s******8
发帖数: 7105
21
计算模拟历史根本就没意思,得出结果也不可信。例如李自成那天害病死了或者残废
了,历史就全变了。
m******r
发帖数: 4351
22
拜。
当年baojie在本版叱咤风云的时候,我老还在长期潜水中。十几年了啊。
当年还有mesh的参合陂。后来某一年mesh上来说自己在家里如何驯鹦鹉,没人理他。

【在 b****e 的大作中提到】
: 拜
K****n
发帖数: 5970
23
#doit

【在 r**********g 的大作中提到】
: 用ngram过时了,搞个lstm
v*****s
发帖数: 20290
24
只能说明我们都老了,可以去53俱乐部混了。

【在 m******r 的大作中提到】
: 拜。
: 当年baojie在本版叱咤风云的时候,我老还在长期潜水中。十几年了啊。
: 当年还有mesh的参合陂。后来某一年mesh上来说自己在家里如何驯鹦鹉,没人理他。

l*****f
发帖数: 13466
25
别的不论"武将必定是跋扈的,文官必定是正义的"这个哪里有?通鉴写作还是严谨的
,名将如云,大臣也绝没有这么忠奸分明,这种是演义手法,而且是明清演义。况且汉
唐间文武之途未分,出将入相的很多。著名的,"左相宣威疆场,右相驰誉丹青"
梁启超本来就是故做过分语。他列的国学之最低限度必读书目,通鉴就在其中

【在 m***n 的大作中提到】
: 严格说来,这不是计算历史。类比计算分子动力学之类,计算历史应该是给出初始条件
: (比如当前状况)和边界条件(比如外部干涉,自然地理变化),然后计算其发展。
: 计算历史目前看基本是不太可能的。除非演算一个非常小,非常狭窄的问题。
: 楼主的这个,是计算语言学,计算文本分析这一块的。
: 比如说,对红楼梦,圣经的类似分析十几年前就很多了。得出许多有趣结论。
: 首先,不同作家有自己的文字规律,比如某历史学家大量使用patently 这个词,别人
: 几乎一次不用。
: 其次,任何作品,都有许多pattern, form之类。比如圣经里面,上帝用泥土造人,这
: 就是一个form, 这个form 在许多原始民族的神话里面都有,比如女娲。但是另外还有
: 一个上帝,用word来创造,是非常形而上的,在原始社会里面找不到的,一股柏拉图的

m******r
发帖数: 4351
26
不至于吧,你们小小年纪就这么老气横秋的。我老年纪比较大,离53还得十来年呢。
门前流水尚能西,休将白发唱黄鸡。

【在 v*****s 的大作中提到】
: 只能说明我们都老了,可以去53俱乐部混了。
1 (共1页)
进入History版参与讨论
相关主题
三国时的三个头子就是。。关于16至18世纪之“中学西渐”的反思(三)
去图书馆借了 张居正讲评紫治通鉴【历史战争游戏(5)】~Aug03~
[合集] 【历史战争游戏(5)】~Aug03~徐悲鸿也挺无赖的
谁20岁前读过通鉴农民起义的问题
资治通鉴写得也太简略了ZZ虞云国评袁腾飞《历史是个什么玩意儿》节选
从史记和资治通鉴两本书看的出语言的变迁吗南宋如果建都南京,能不能在蒙元攻击下生存下来
《南山集》 yunmz的 东汉开国概述 之 群雄逐鹿晚唐五代历史中似乎没有文人在里面起作用
统计一下中国古代的乱世一个政权要垮台的特征
相关话题的讨论汇总
话题: 历史话题: 麻秋话题: 计算话题: 资治通鉴话题: 概率