简化宋词就是“东风何处在人间”
署名为“yixuan”的网友在个人博客里写道:“突然想看看宋词里面什么样的意象是最常见的,比如可以做个频率分析什么的。当然文本挖掘需要分词,我没法在其中花太多时间,于是想出了一个土办法。宋词的句子都很短,如果穷举可能的字的组合的话并不是太多,况且最常见的词语一般是两三个字,这样可能的组合就更少了。”比如“犹解嫁东风”这句话,可能的二字组合是“犹解”“解嫁”“嫁东”“东风”,三字组合是“犹解嫁”“解嫁东”“嫁东风”,词的字数越多,可能的组合就越少。如果把每句话可能的字的组合都列举出来,就可以整体统计频率了。”大家一致分析这位网友一定是个理科生。
随后, “yixuan”贴出了他算出来的高频词,排在前面的分别是:
1、1485
2、东风(1382)
3、何处(1230)
4、人间(1202)
5、风流(857)
6、归去(812)
7、春风(802)
8、西风(779)
9、归来(771)
10、江南(765)
……
至于为什么第一名是数字,他解释:“排在第一的是无效字符,这跟数据源有关。”
这个结果一出来,一位网友就一语道破了“玄机”,“原来,最流行的宋词就是‘东风何处在人间’啊!”
生日、手机号 随意组合都很美
还有更绝的呢!署名为“达芬奇的鸡蛋”的果壳网友不知怎么地,就想到了拿大家都会背一点的圆周率进行创作,两个数字一断,对照高频词表,一首“华丽丽”的词就出来了!还附上了说明,特别像模像样。
达芬奇的鸡蛋 @ 果壳
清平乐·圆周率
回首明月(一看就是抒情诗)
14 15
悠悠心事空(果然,貌似失恋了)
92 65
西湖何事寂寞中(触景生情)
35 89 79
风吹斜阳匆匆(回忆那天下午的艳遇)
32 38 46
芳草平生斜阳(平生见过最美的太阳和芳草,都是因为那里有你的身影)
26 43 38
风吹寂寞今日(到现在就剩我自己)
32 79 50
一枝富贵年年(好花美丽年年开,好景宜人不常在)
28 84 19
断肠长安不知(我的思念远方的你可知道?)
71 69 39
如梦令·根号二
深处时节千里(过了许多年,男猪脚来到了很遥远的地方)
41 42 13
消息当年鸳鸯(这。。找老相好去了?)
56 23 73
归来今日(妹子,我胡汉三回来啦)
09 50
一点无情多少(你还知道来看我啊!)
48 80 16
今夜,今夜(要出问题了。。。)
88 88
而今时节归来(仿佛重回当年,男猪脚依然那么坚挺)
72 42 09
看完这首诗,网友们一边膜拜,一边自己的创作灵感也被打开了。
“丘寒”留言道:“试着用某个号码创作了一首:天上相思,芳草年年,昨夜江南,回首一笑多情。”
“零Ronnie”很有创作激情:“我的生日:年年江上,江南春风;我的手机号:明月芳草去年,江南阑干归去……还真挺上口的!我也能做诗人了哈哈!”
理科生欢呼:消灭文科生的日子来了
可是这么一来,文科生又不淡定了,一群文科生跳起来反击。
“雯名霞迩”大叫:“统统拖出去,斩了!这让学中文的人情何以堪啊!”
“Rockfish”代表理科生还击:“理科宅男们消灭文科生的日子到来了!拿起你的计算器,消灭文艺青年吧!”
“可可”童鞋呼唤:“就让科技小清新来得更猛烈些吧!”
还有一群网友七嘴八舌讨论着。
“沌世界”淡定地说:“不知宋词的粉丝看了是不是有一种偶像破灭的感觉。”
“家杰仕”童鞋也总结道:“文艺男女已经阻止不了技术宅作诗了!”
网友“Rakin”点评:“理科生文艺得真凶猛!”
“焰心Spring”呼吁:“想文艺一回的同学请转!”
“ChanIm”表示:“当时学写诗的时候超鄙视这些,现在淡定了,因为没那么多愁善感了。”
“思念的秋天”感慨:“穿越必备!”
“NetCharm”说:“背熟了,随便组合一下,写出来的也不会太烂。”
“huahualipo”童鞋还提出了意见:“高人,能不能把平仄也加上……如果平仄太困难,至少考虑一下词尾押韵如何?韵脚也就十来个,每个都分配一个数值,然后每隔一行,末尾的词就只从一个值下选。这样会大大增加仿真度啊!”
再次神经短路,突然想看看宋词里面什么样的意象是最常见的,比如可以做个频率分析什么的。当然文本挖掘需要分词,我没法在其中花太多时间,于是想出了一个土办法。宋词的句子都很短,如果穷举可能的字的组合的话并不是太多,况且最常见的词语一般是两三个字,这样可能的组合就更少了。比如“犹解嫁东风”这句话,可能的二字组合是“犹解”“解嫁”“嫁东”“东风”,三字组合是“犹解嫁”“解嫁东”“嫁东风”,词的字数越多,可能的组合就越少。如果把每句话可能的字的组合都列举出来,就可以整体统计频率了。
当然里面会有很多无意义的字的组合,不过这类“词语”本身的出现就是一个偶然,所以可以预期的是它们整体的频数会很低,是入不了“大雅之堂”的。话不多说,直接上代码和结果。
数据:《全宋词》文本
代码:
l=scan("Ci.txt","character",sep="n");
l.len=nchar(l);
# 某些行是作者和标题,所以选取长度大于10的行;
# 另外这个文本文件不太规整,有些网址什么的,
# 所以也要排除那些长度太长的。
ci=l;
# 句子用标点符号分割。
sentences=strsplit(ci,",|。|!|?|、");
sentences=unlist(sentences);
sentences=sentences[sentences!=""];
s.len=nchar(sentences);
# 单句太长了说明有可能是错误的字符,去除掉。
sentences=sentences[s.len
s.len=nchar(sentences);
# 暴力挨个拆分,比如“犹解嫁东风”的所有二字组合为
# “犹解”“解嫁”“嫁东”“东风”,
# 无意义的词其频数自然就落在后面了。
splitwords=function(x,x.len) substring(x,1:(x.len-1),2:x.len);
words=mapply(splitwords,sentences,s.len,SIMPLIFY=TRUE,USE.NAMES=FALSE);
words=unlist(words);
words.freq=table(words);
words.freq=sort(words.freq,decreasing=TRUE);
data.frame(Word=names(words.freq[1:100]),Freq=as.integer(words.freq[1:100]));
结果(排在第一的是无效字符,这跟数据源有关):
Word Freq
1 1485 2 东风 1382 3 何处 1230 4 人间 1202
5 风流 857 6 归去 812 7 春风 802 8 西风 779
9 归来 771 10 江南 765 11 相思 753 12 梅花 732
13 千里 676 14 回首 656 15 明月 651 16 多少 648
17 如今 642 18 阑干 630 19 年年 613 20 万里 590
21 一笑 582 22 黄昏 550 23 当年 542 24 天涯 537
25 相逢 528 26 芳草 527 27 尊前 516 28 一枝 512
29 风雨 505 30 流水 472 31 依旧 472 32 风吹 471
33 风月 461 34 多情 457 35 故人 451 36 当时 450
37 无人 445 38 斜阳 438 39 不知 430 40 不见 429
41 深处 422 42 时节 403 43 平生 398 44 凄凉 398
45 春色 394 46 匆匆 383 47 功名 383 48 一点 378
49 无限 377 50 今日 369 51 天上 368 52 杨柳 362
53 西湖 356 54 桃花 354 55 扁舟 353 56 消息 351
57 憔悴 344 58 何事 339 59 芙蓉 338 60 神仙 334
61 一片 334 62 桃李 333 63 人生 332 64 十分 331
65 心事 329 66 黄花 328 67 一声 325 68 佳人 324
69 长安 321 70 东君 319 71 断肠 316 72 而今 315
73 鸳鸯 314 74 为谁 313 75 十年 310 76 去年 309
77 少年 308 78 海棠 307 79 寂寞 306 80 无情 306
81 不是 305 82 时候 304 83 肠断 303 84 富贵 303
85 蓬莱 303 86 昨夜 303 87 行人 302 88 今夜 301
89 谁知 300 90 不似 299 91 江上 298 92 悠悠 296
93 几度 295 94 青山 295 95 何时 294 96 天气 293
97 惟有 293 98 一曲 291 99 月明 291 100 往事 290
不知各位看官看到上面这些既熟悉又悠远的话语又将作何感想?或许,她们就是我们千百年来的精神寄托吧。
试了下在R下面执行此代码, 不过在我机子上好像有问题. 于是按照这个思路用KNIME做了个简单统计流程. (数据源相同)
因为多处理了一点异常, 双字词频顺序基本一样, 数量稍有区别, 不重复贴了. 不过可以贴出短句句频:D
"到如今",50 "君知否",46 "谁知道",30 "功名事",28
"须信道",28 "最好是",27 "人间世",26 "从今去",26
"凝伫",25 "归去",24 "不如归去",23 "知否",23
"谁信道",23 "倚阑干",21 "到而今",21 "又还是",21
"归去来兮",21 "人不见",20 "当此际",20 "记当年",19
"东风里",18 "怎奈向",18 "春去也",18 "须知道",18
"争知道",17 "更那堪",17 "留不住",17 "谩赢得",17
"那堪更",17 "一觞一咏",16 "休休",16 "君不见",16
"家山好",16 "归来也",16 "思往事",16 "悠悠",16
"无绪",16 "还知否",16 "追往事",16 "人间天上",15
"最苦是",14 "疏影横斜",14 "空怅望",14 "空惆怅",14
"记年时",14 "人间事",13 "又只恐",13 "回首处",13
"夜沈沈",13 "断人肠",13 "早归来",13 "有多少",13
"空凝伫",13 "向尊前",12 "微雨过",12 "情脉脉",12
"斜阳外",12 "无语",12 "月明中",12 "朱颜绿鬓",12
"绿鬓朱颜",12 "谁念我",12 "还知么",12 "问何如",12
"不堪回首",11 "东风恶",11 "人何处",11 "人正在",11
"今老矣",11 "从别后",11 "倚东风",11 "又何须",11
"多少事",11 "天长地久",11 "安阳好",11 "对东风",11
"对西风",11 "广寒宫殿",11 "归去也",11 "归来晚",11
"愿年年",11 "江南岸",11 "空回首",11 "终不似",11
"肠断",11 "肠断处",11 "落花飞絮",11 "西源好",11
"阑干外",11 "风流",11 "飕飕",11 "与谁同",10
"五云深处",10 "人间何处难忘酒",10 "人静",10 "从此去",10
"倚西风",10 "分明是",10 "功名富贵",10 "南徐好",10
"岁岁年年",10 "思晴好",10 "想当年",10 "无限事",10
"朝朝暮暮",10 "歌窈窕",10 "独自个",10 "竹篱茅舍",10
"纶巾羽扇",10 "良辰美景",10 "记当时",10 "诗曰",10
"醉归来",10 "七十古来稀",9 "人如玉",9 "人尽道",9
"何处",9 "凝望处",9 "千古恨",9 "千秋岁",9
"去年今日",9 "向此际",9 "坐中客",9 "天赋与",9
"好天良夜",9 "年年今日",9 "待归来",9 "愁绝",9
"故人何处",9 "明月清风",9 "暗香浮动",9 "曲水流觞",9
"浑不似",9 "清绝",9 "盈盈",9 "空肠断",9
"空赢得",9 "算人间",9 "算只有",9 "缘底事",9
"记当日",9 "还又是",9 "道骨仙风",9 "都付与",9
"都休问",9 "酒醒时",9 "问人间",9 "问何时",9
"风不定",9 "一声声",8 "不见",8 "二十年",8
"人散后",8 "人易老",8 "从今后",8 "休去",8
"休辞醉",8 "依然是",8 "几时休",8 "凭阑久",8
"去天尺五",8 "又谁知",8 "君且住",8 "吾老矣",8
"回首",8 "堪羡",8 "多少恨",8 "夜来风雨",8
"天下事",8 "天如水",8 "如何得",8 "嫣然一笑",8
"寂寞",8 "山居好",8 "归去来",8 "心下事",8
"怎知道",8 "思悠悠",8 "恁时节",8 "悄无人",8
"愿岁岁",8 "文章太守",8 "无个事",8 "最关情",8
"最好处",8 "有谁知",8 "浮世事",8 "满城风雨",8
"玉骨冰肌",8 "画堂深",8 "登临处",8 "看不足",8
"真个是",8 "知何处",8 "知音少",8 "称寿处",8
"空相忆",8 "笑人间",8 "纱窗外",8 "落花流水",8
"长安道",8 "问当年",8 "雨初晴",8 "频回首",8
"风又雨",8 "风流云散",8 "一杯酒",7 "一蓑烟雨",7
"三千岁",7 "东风外",7 "人去后",7 "人未老",7
"人道是",7 "今夜里",7 "但怅望",7 "佳人何处",7
"再相逢",7 "冰肌玉骨",7 "净几明窗",7 "凄凉",7
"凌波微步",7 "凝望久",7 "千山万水",7 "卷珠帘",7
"又何妨",7 "又过了",7 "叹人生",7 "君看取",7
"吴头楚尾",7 "地久天长",7 "堪恨处",7 "堪爱处",7
"多应是",7 "夜将阑",7 "天付与",7 "天寒日暮",7
"如今憔悴",7 "山无数",7 "帘栊静",7 "广寒宫里",7
"待明朝",7 "忆当年",7 "急管繁弦",7 "恨悠悠",7
"憔悴",7 "携手处",7 "无一事",7 "暗香疏影",7
"最难忘",7 "月明风细",7 "有个人人",7 "水悠悠",7
"江南春早",7 "深院宇",7 "深院静",7 "清风明月",7
"画图中",7 "留恋",7 "留春不住",7 "相逢",7
"相逢处",7 "看明年",7 "算惟有",7 "经行处",7
"绮罗丛里",7 "缓带轻裘",7 "肠欲断",7 "自别后",7
"莫匆匆",7 "行乐处",7 "许多愁",7 "试与问",7
"试屈指",7 "谈笑里",7 "谩回首",7 "还知道",7
"送君南浦",7 "都不管",7 "都莫问",7 "酒巡未止",7
"采菱拾翠",7 "长亭路",7 "问谁是",7 "难忘处",7
"非烟非雾",7 "风前月下",7 "黯销魂",7 "一叶扁舟",6
"一年一度",6 "一杯相属",6 "一枝枝",6 "一轮明月",6
"下缺",6 "不知今夕何夕",6 "东风起",6 "举杯相属",6
"之句",6 "人似玉",6 "人别后",6 "人生行乐",6
"人都道",6 "人间",6 "今夕何夕",6 "仙风道骨",6
"似当年",6 "但回首",6 "但赢得",6 "佳丽地",6
"依前是",6 "依然",6 "便从今",6 "便直饶",6
"凝眸",6 "几番风雨",6 "凭谁说",6 "凭阑处",6
"凭阑干",6 "分付与",6 "分携处",6 "别离情绪",6/>
/>/>/>
/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>