python统计:《三国演义》里有多少种兵器和拿兵器的姿势

周末看了会python,真是一门适合数据分析的语言,刚学不久,先拿《三国演义》练练手。统计结果在文章后面,对技术不感兴趣的可以跳过前面的部分。

统计方法

中文的语义分析是一件非常困难的事情,更别说《三国演义》这种半文言半白话的小说了。我的方法是,用python找到可能是兵器或者姿势的一句话,然后再肉眼识别。因为兵器名和姿势名称只要出现一次就会记录下来,下次会被过滤掉,所以工作量其实并不大,一会儿就弄完了。

举例说明一下,比如我们可以通过武器方天画戟搜索到这句话:威风凛凛,手执方天画戟,怒目而视,其中的手执就是拿兵器的姿势。然后查找所有手执的语句:
['手执藜杖', '手执方天画戟', '手执白刃', '手执长竿', '手执宝剑扶车而行', '手执长枪', '手执定旗杆', '手执大斧', '手执铜刀', '手执青龙刀', '手执长枪', '手执旗幡围绕', '手执长竿', '手执长竿', '手执羽扇', '手执长枪', '手执谏章', '手执长戈', '手执长矛', '手执铁棒击吾右臂', '手执铁链', '手执大红罗销金伞盖', '手执茅草一把', '手执其手', '手执钢刀', '手执羽扇', '手执刀', '手执蒂钟', '手执麈尾', '手执黄旗招飐', '手执七星皂旙', '手执七星皂幡', '手执皂幡', '手执绣旗', '手执旗剑']
哇哦~ 一下子就找到了好多武器的名称,当然像 手执茅草一把 这种肉眼过滤掉就好了。

所以逻辑是这样的:通过一种兵器的名称=》找到拿兵器的姿势=》根据姿势找到更多的兵器=》根据兵器找到更多的姿势=》......

技术点
  • 通过武器查找姿势

取出武器名称前面的6个字,一般拿武器的姿势就包括在里面了。
例如:挥关公使的青龙刀

reg = re.compile(r'(.{6}%s)' %weapon)
  • 通过姿势查找武器

取出拿武器的姿势到到下一个逗号或句号,武器名称一般就包括在内了。
例如:掣了太史慈背上的短戟,

reg = re.compile('%s(.*?)[,,。]' % pos)
  • 翻转数组
arr = arr[::-1]
  • 根据数组中的对象值排序
arr = [{'name':方天画戟,'num':2},{'name':青釭剑,'num’:4}]
arr = sorted(arr, key=lambda x: x['num'])

项目代码地址

统计结果

书中出现的兵器一共有63种:

青龙偃月刀,丈八点钢矛,蛇矛丈八枪,三尖两刃刀,丈八蛇矛,方天画戟,七星皂旙,青釭宝剑,四楞铁简,倚天剑,双股剑,大砍刀,青龙刀,青釭剑,蘸金斧,七宝刀,宝雕弓,铁脊矛,丈八矛,铁链,宝刀,短戟,宝剑,大斧,铁棒,大刀,利刃,钢刀,钢斧,铁锤,铁枪,长枪,长竿,白刃,藜杖,铜刀,羽扇,蒂钟,长戈,长矛,腰刀,铜锤,双刀,钢鞭,大戟,双戟,硬弩,戒刀,蒺藜,飞锤,短刀,弩,箭,戟,钺,槊,鞭,矛,叉,弓,刀,枪,剑

按照出现的次数排序:
刀:480;箭:350;剑:327;枪:299;弓:177;戟:115;鞭:84;弩:80;矛:53;钺:29;宝剑:22;羽扇:19;宝刀:17;青龙刀:15;大刀:14;大斧:14;叉:12;长枪:11;槊:10;利刃:8;短刀:7;硬弩:6;钢刀:5;双刀:4;长竿:4;铁锤:4;宝雕弓:4;青釭剑:4;双股剑:4;丈八蛇矛:4;丈八点钢矛:4;蒺藜:3;双戟:3;大戟:3;蒂钟:3;铁枪:3;大砍刀:3;青龙偃月刀:3;飞锤:2;钢鞭:2;铜锤:2;腰刀:2;长戈:2;藜杖:2;铁棒:2;短戟:2;丈八矛:2;方天画戟:2;戒刀:1;长矛:1;铜刀:1;白刃:1;钢斧:1;铁链:1;铁脊矛:1;七宝刀:1;蘸金斧:1;倚天剑:1;四楞铁简:1;青釭宝剑:1;七星皂旙:1;三尖两刃刀:1;蛇矛丈八枪:1;

从出现次数可以看出刀,弓、箭,剑,枪,戟是当时战争的主力兵器。
铁质兵器是从汉朝开始普及的,小说中也能反映出这一点,铁质兵器的数量要远高于铜质兵器,当然《三国演义》是明朝的书,分析《三国志》会更准确

另外有意思的是,我们耳熟能详的兵器出现次数其实并不多。比如关羽用的青龙偃月刀只出现了3次,张飞的丈八蛇矛也只出现了4次。不过要是算上它们别称的则会增加不少。比如青龙偃月刀+青龙刀一共出现18次,丈八蛇矛+蛇矛丈八枪+丈八点钢矛+丈八矛 一共出现11次。关老爷的戏份还是比张飞多呀。

此外,在我的印象里,赵云的兵器是有名字的,叫亮银枪。但实际书中并没有这个兵器,所有提到赵云的地方,都是一个字。我们可能被游戏或者评书洗脑了......

再说下拿兵器的姿势,一共32种:
手提,倒提,按定,手执,拔出,手捧,舞动,腰悬,手摇,手使,赍,射,佩,轮,仗,跨,悬,使,挥,掣,持,藏,挽,捻,用,提,挺,携,举,舞,取,拔
大部分都是常用词汇,只有赍jī现在不用了,我也是搜索了才知道怎么念,它是携带;持的意思:遂命使者赍宝剑先往冀州狱中杀田丰

今天就先写这么多,回头有时间再分析点别的东西。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容