烟台无人机航拍:宋词中的中国意象

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 22:10:43

东风何处是人间


再次神经短路,突然想看看宋词里面什么样的意象是最常见的,比如可以做个频率分析什么的。当然文本挖掘需要分词,我没法在其中花太多时间,于是想出了一个土办法。宋词的句子都很短,如果穷举可能的字的组合的话并不是太多,况且最常见的词语一般是两三个字,这样可能的组合就更少了。比如“犹解嫁东风”这句话,可能的二字组合是“犹解”“解嫁”“嫁东”“东风”,三字组合是“犹解嫁”“解嫁东”“嫁东风”,词的字数越多,可能的组合就越少。如果把每句话可能的字的组合都列举出来,就可以整体统计频率了。

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

数据:《全宋词》文本

代码:

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,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           Word Freq1       1485        51  天上  3682   东风 1382        52  杨柳  3623   何处 1230        53  西湖  3564   人间 1202        54  桃花  3545   风流  857        55  扁舟  3536   归去  812        56  消息  3517   春风  802        57  憔悴  3448   西风  779        58  何事  3399   归来  771        59  芙蓉  33810  江南  765        60  神仙  33411  相思  753        61  一片  33412  梅花  732        62  桃李  33313  千里  676        63  人生  33214  回首  656        64  十分  33115  明月  651        65  心事  32916  多少  648        66  黄花  32817  如今  642        67  一声  32518  阑干  630        68  佳人  32419  年年  613        69  长安  32120  万里  590        70  东君  31921  一笑  582        71  断肠  31622  黄昏  550        72  而今  31523  当年  542        73  鸳鸯  31424  天涯  537        74  为谁  31325  相逢  528        75  十年  31026  芳草  527        76  去年  30927  尊前  516        77  少年  30828  一枝  512        78  海棠  30729  风雨  505        79  寂寞  30630  流水  472        80  无情  30631  依旧  472        81  不是  30532  风吹  471        82  时候  30433  风月  461        83  肠断  30334  多情  457        84  富贵  30335  故人  451        85  蓬莱  30336  当时  450        86  昨夜  30337  无人  445        87  行人  30238  斜阳  438        88  今夜  30139  不知  430        89  谁知  30040  不见  429        90  不似  29941  深处  422        91  江上  29842  时节  403        92  悠悠  29643  平生  398        93  几度  29544  凄凉  398        94  青山  29545  春色  394        95  何时  29446  匆匆  383        96  天气  29347  功名  383        97  惟有  29348  一点  378        98  一曲  29149  无限  377        99  月明  29150  今日  369        100 往事  290

不知各位看官看到上面这些既熟悉又悠远的话语又将作何感想?或许,她们就是我们千百年来的精神寄托吧。