FBinJapan

 找回密码
 注册
搜索
查看: 1030|回复: 1

东风何处是人间 ZT

[复制链接]
发表于 2012-12-4 11:55:17 | 显示全部楼层 |阅读模式
再次神经短路,突然想看看宋词里面什么样的意象是最常见的,比如可以做个频率分析什么的。当然文本挖掘需要分词,我没法在其中花太多时间,于是想出了一个土办法。宋词的句子都很短,如果穷举可能的字的组合的话并不是太多,况且最常见的词语一般是两三个字,这样可能的组合就更少了。比如“犹解嫁东风”这句话,可能的二字组合是“犹解”“解嫁”“嫁东”“东风”,三字组合是“犹解嫁”“解嫁东”“嫁东风”,词的字数越多,可能的组合就越少。如果把每句话可能的字的组合都列举出来,就可以整体统计频率了。

当然里面会有很多无意义的字的组合,不过这类“词语”本身的出现就是一个偶然,所以可以预期的是它们整体的频数会很低,是入不了“大雅之堂”的。话不多说,直接上代码和结果。

数据:《全宋词》文本

代码:

l = scan("Ci.txt", "character", sep = "\n");
l.len = nchar(l);

# 某些行是作者和标题,所以选取长度大于10的行;
# 另外这个文本文件不太规整,有些网址什么的,
# 所以也要排除那些长度太长的。
ci = l[l.len > 10 & l.len < 500];

# 句子用标点符号分割。
sentences = strsplit(ci, ",|。|!|?|、");
sentences = unlist(sentences);
sentences = sentences[sentences != ""];
s.len = nchar(sentences);

# 单句太长了说明有可能是错误的字符,去除掉。
sentences = sentences[s.len <= 10];
s.len = nchar(sentences);

# 暴力挨个拆分,比如“犹解嫁东风”的所有二字组合为
# “犹解”“解嫁”“嫁东”“东风”,
# 无意义的词其频数自然就落在后面了。
splitwords = function(x, x.len) substring(x, 1x.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           Word Freq
1       1485        51  天上  368
2   东风 1382        52  杨柳  362
3   何处 1230        53  西湖  356
4   人间 1202        54  桃花  354
5   风流  857        55  扁舟  353
6   归去  812        56  消息  351
7   春风  802        57  憔悴  344
8   西风  779        58  何事  339
9   归来  771        59  芙蓉  338
10  江南  765        60  神仙  334
11  相思  753        61  一片  334
12  梅花  732        62  桃李  333
13  千里  676        63  人生  332
14  回首  656        64  十分  331
15  明月  651        65  心事  329
16  多少  648        66  黄花  328
17  如今  642        67  一声  325
18  阑干  630        68  佳人  324
19  年年  613        69  长安  321
20  万里  590        70  东君  319
21  一笑  582        71  断肠  316
22  黄昏  550        72  而今  315
23  当年  542        73  鸳鸯  314
24  天涯  537        74  为谁  313
25  相逢  528        75  十年  310
26  芳草  527        76  去年  309
27  尊前  516        77  少年  308
28  一枝  512        78  海棠  307
29  风雨  505        79  寂寞  306
30  流水  472        80  无情  306
31  依旧  472        81  不是  305
32  风吹  471        82  时候  304
33  风月  461        83  肠断  303
34  多情  457        84  富贵  303
35  故人  451        85  蓬莱  303
36  当时  450        86  昨夜  303
37  无人  445        87  行人  302
38  斜阳  438        88  今夜  301
39  不知  430        89  谁知  300
40  不见  429        90  不似  299
41  深处  422        91  江上  298
42  时节  403        92  悠悠  296
43  平生  398        93  几度  295
44  凄凉  398        94  青山  295
45  春色  394        95  何时  294
46  匆匆  383        96  天气  293
47  功名  383        97  惟有  293
48  一点  378        98  一曲  291
49  无限  377        99  月明  291
50  今日  369        100 往事  290
不知各位看官看到上面这些既熟悉又悠远的话语又将作何感想?或许,她们就是我们千百年来的精神寄托吧。

http://yixuan.cos.name/cn/2011/03/text-mining-of-song-poems/
 楼主| 发表于 2012-12-6 13:02:29 | 显示全部楼层
除了暴力解析单词之外,有人还做了短句分析,列表如下:

"到如今",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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|www.fbinjapan.net

GMT+9, 2024-11-23 16:56 , Processed in 0.027030 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表