r语言-关联规则-文本分析-三国人物分析
r语言关联规则包已经非常好了,还带有可视化图形等等,但是唯一不好的是数据格式问题,第一个输入的数据格式需要转换,第二输出的数据格式也很嘈杂,不能直接导出到本地。出于以上原因,本人决定自己用r语言写一个关联规则算法,一则熟悉算法流程,加深以后的运用,二则实现格式的转变。我的输入格式是列表,一列为一个购物篮,输出为数据框格式。下面以三国为例进行分析!!!
关联规则挖掘(三国人物关系)
第一步:下载《三国》电子书,以及搜狗词库(历史人名):如下图
第二步 : 数据处理
凡是在一段中共现的人名,我们就把这些家伙装进一个购物篮。
例如:
第500段正文如下
[1] "于是二人领本部兵马,往曹操寨中投降。夏侯惇曰:“张、高二人来降,未知虚实。”操曰:“吾以恩遇之,虽有异心,亦可变矣。”遂开营门命二人入。二人倒戈卸甲,拜伏于地。操曰:“若使袁绍肯从二将军之言,不至有败。今二将军肯来相投,如微子去殷,韩信归汉也。”遂封张邰为偏将军、都亭侯,高览为偏将军、东莱侯。二人大喜。"
则:第500个购物篮如下:
[1] "曹操" "夏侯惇" "袁绍" "韩信"
第三步: 频繁集发现
设置,支持度为0.01,出现下列频繁集:
一项频繁集
一项频繁集也就是出现频数最高的人物了,排名前五的都是一方霸主。
频繁项支持度关系数
曹操0.2532471
刘备0.0897281
孙权0.0867771
司马懿0.0649351
袁绍0.0608031
二项频繁集
人生最重要的伙伴是你的敌人,曹操最大的敌人是刘备,然后是孙权,袁绍次之。袁术只能是曹操的一个小敌人而已,从三国里面袁术称帝,孟德却大笑骂他为莽夫。次重要的当然是自己的亲朋好友了,夏侯惇,于禁,夏侯渊可以说是曹操的三元猛将啊。
频繁项支持度关系数
曹操<-->刘备0.0519482
曹操<-->孙权0.0407322
曹操<-->袁绍0.03662
曹操<-->夏侯惇0.0283352
刘备<-->孙权0.0265642
曹操<-->夏侯渊0.0224322
曹操<-->于禁0.0159392
曹操<-->袁术0.0147582
三项频繁集
两个铁三角;其实就是三国里面的两场决定历史的大战。第一场大战时官渡之战,确定了曹操雄踞北方的地位,这场战争纠结在曹操<-->刘备<-->袁绍他们之间,然后就是赤壁之战了,确定了三国鼎立的局面,这个铁三角就是曹操<-->刘备<-->孙权
频繁项支持度关系数
曹操<-->刘备<-->孙权0.0171193
曹操<-->刘备<-->袁绍0.0100353
第四步: 规则发现,设置置信度为0.4
二项规则挖掘
规则解释:于禁-->>>曹操 这条规则的置信度为0.771429,意义是出现于禁的地方有77%的时候是和曹操一起出现的。他在三国里面就是为存托曹操的。这里我不想多说,什么了,只能说曹操的光环太厉害了。(在购物篮里面,如果你买了于禁,再给你推荐曹操,你有77%的概率也会买曹操的。)
我比较感兴趣的规则:
王平-->>>魏延 :王平与魏延分别代表中规中矩与特立独行,“以德治国”的诸葛亮,对二人的使用态度大相径庭。刘备死后,诸葛亮碍于青黄不接的人才形势,不得不用魏延,但时常把魏延纳入“普通战将”一员,甚至与陈式之流的三流牙将并列,对其始终不放手使用,而对于战绩平平的王平,则宠爱有加,助长其爬到魏延头上。
袁术-->>>袁绍 出现袁术的地方也会出现袁绍的,从一开始的联盟灭董卓,袁绍为盟主,袁术没副盟主。到后来袁兄弟为玉玺反目等等。
guizeconfsuplength
于禁-->>>曹操0.0159390.7714292
夏侯惇-->>>曹操0.0283350.752
夏侯渊-->>>曹操0.0224320.7450982
乐进-->>>曹操0.0106260.6923082
袁绍-->>>曹操0.03660.6019422
刘备-->>>曹操0.0519480.5789472
袁术-->>>曹操0.0147580.5555562
孙权-->>>曹操0.0407320.4693882
王平-->>>魏延0.0112160.4042552
袁术-->>>袁绍0.0106260.42
三项规则
guizeconfsuplength
刘备<-->袁绍-->>>曹操0.0100350.8095243
刘备<-->孙权-->>>曹操0.0171190.6444443
曹操<-->孙权-->>>刘备0.0171190.420293