java古诗词自动生成程序_第1页
java古诗词自动生成程序_第2页
java古诗词自动生成程序_第3页
java古诗词自动生成程序_第4页
java古诗词自动生成程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在线演示:点击此处头几日在网上看到有强者闲来无事,把《全宋词》取出来“捣鼓”,算出了此中的高频词汇。我也闲来无事,用这些词汇作数据源,编写了一个java小程序,用来随机生成诗歌。能够协助文科生进行诗歌创作。因为自己对韵律完整不通,因此只好全随机摆列进行诗句的组成,并且只有五绝和七绝两种形式。大家生成的诗句存心境好,读起来顺口解说的通的,发上来大家一同点评一下^^我先发几个例子也没精选就是随机弄了几篇发上来:五言律诗:留春不住功名缘底事,芳草思旧事。春风频回顾,盈盈今晚里。回顾处一生待明朝,尊前天付与。尊前浮世事,无人谁知道。七言律诗:行乐处梅花休去肠断处,无穷知否忆当年。风流诗曰记当天,迷恋年年君不见。看明年清绝阑干说笑里,下缺傍晚多少恨。年年堪羡吾老矣,清绝当时二十年。好了,空话不多说了,下边是代码:/**诗词类*@authorgujie*@version1.0@since2011-12-07*/publicclassPoem{/**题目*/privateStringtitle;/**首联*/privateStringfirstSentence;/**颔联*/privateStringsecondSentence;/**颈联*/privateStringthirdSentence;/**尾联*/privateStringfourthSentence;/**结构诗词类*/publicPoem(Stringtype,StringpoemData){title=poemUtils.getPoemTitle(poemData);firstSentence=poemUtils.getPoemSentencesecondSentence=poemUtils.getPoemSentencethirdSentence=poemUtils.getPoemSentencefourthSentence=poemUtils.getPoemSentence

(poemData,type);(poemData,type);(poemData,type);(poemData,type);}/**格式化打印诗词*/publicvoidSystem.System.System.

printPoetry( ){out.println(out.println(out.println(

"\t"+titlefirstSentencethirdSentence

);

+"+"

,"+secondSentence,"+fourthSentence

+"。");+"。");}}/**诗词工具类*@authorgujie*@version1.0@since2011-12-07*/publicclasspoemUtils{/**获取诗词题目*/publicstaticStringgetPoemTitle(StringpoemData){String[]words;words=(poemData).split(",");Randomrandom=newRandom( );intrandomNum=random.nextInt(words.length

);Stringtitile=words[randomNum];returntitile;}/**获取诗句*/publicstaticStringgetPoemSentence(StringpoemData,StringList<String>twoWordList=newArrayList<String>( );List<String>threeWordList=newArrayList<String>( );List<String>fourWordList=newArrayList<String>( );List<String>fiveWordList=newArrayList<String>( );List<String>sixWordList=newArrayList<String>( );Map<Integer,String>wordMap=newHashMap<Integer,String>( );String[]words;words=(poemData).split(",");for(inti=0;i<words.length;i++){wordMap.put(i,words[i]);switch(wordMap.get(i).length( )){case2:twoWordList.add(wordMap.get(i));break;case3:threeWordList.add(wordMap.get(i));break;case4:fourWordList.add(wordMap.get(i));break;case5:fiveWordList.add(wordMap.get(i));break;case6:sixWordList.add(wordMap.get(i));break;

type)

{}}StringpoemSentence=null;if("5".equals(type)){poemSentence=fiveWords(twoWordList,threeWordList);}else{poemSentence=sevenWords(twoWordList,threeWordList);}returnpoemSentence;}/**五言诗*/publicstaticStringfiveWords(List<String>list1,List<String>list2){Randomrandom=newRandom( );intrandomNum1=random.nextInt(list1.size( ));intrandomNum2=random.nextInt(list2.size( ));StringrandomWord=list1.get(randomNum1)+list2.get(randomNum2);returnrandomWord;}/**七言诗*/publicstaticStringsevenWords(List<String>list1,List<String>list2){Randomrandom=newRandom( );intrandomNum1=random.nextInt(list1.size( ));intrandomNum2=random.nextInt(list2.size( ));StringrandomWord=list1.get(randomNum1)+list2.get(randomNum2);list1.remove(randomNum1);intrandomNum=random.nextInt(list1.size( ));returnlist1.get(randomNum)+randomWord;}}强者统计的数据源的方法:这才是精华!Ps:强者yixuan还有一位从头整理数据的牛人不知道ID在人人上看到的。数据:《全宋词》文本代码: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<=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=eger(words.freq[1:100]));我整理了一下格式在我的小程序里面new诗词对象的时候需要传这个数据源作为参数:StringpoemData="到现在,君知否,谁知道,功名事,须信道,最好是,人间世,从今去,凝伫,回去,不如回去,知否,谁信道,倚阑干,到现在,又仍是,回去来兮,人不见,当此际,记当年,东风里,怎奈向,春去也,须知道,争知道,"+更那堪,留不住,谩博得,那堪更,一觞一咏,休休,君不见,家山好,回来也,思旧事,悠悠,无绪,还知否,追旧事,人间天上,最苦是,疏影横斜,空怅望,空难过,记年时,人间事,又只恐,回顾处,夜沈沈,断人肠,早回来,有多少,"+空凝伫,向尊前,微雨过,情脉脉,夕阳外,无语,月明中,朱颜绿鬓,绿鬓朱颜,谁念我,还知么,问何如,不堪回顾,东风恶,人哪处,人正在,今老矣,从别后,倚东风,又何必,多少事,海枯石烂,安阳好,对东风,对西风,广寒宫殿,"+回去也,回来晚,愿年年,江南岸,空回顾,终不似,肠断,肠断处,落花飞絮,西源好,阑干外,风流,飕飕,与谁同,五云深处,人间哪处难忘酒,人静,此后去,倚西风,分明是,功名荣华,南徐好,岁岁年年,思晴好,想当年,无穷事,朝朝暮暮,"+歌窈窕,单独个,篱笆草屋,纶巾羽扇,吉日良辰,记当时,诗曰,醉回来,七十古来稀,人如玉,人尽道,哪处,凝视处,千古恨,千秋岁,昨年今天,向此际,坐中客,天分与,晴天良宵,年年今天,待回来,愁绝,故人哪处,明月清风,幽香浮动,"+曲水流觞,浑不似,清绝,盈盈,空肠断,空博得,算人间,算只有,缘底事,记当天,还又是,道骨仙风,都付与,都休问,酒醒时,问人间,问何时,风不定,一声声,二十年,人散后,人易老,此后后,休去,休辞醉,依旧是,几时休,凭阑久,"+去天尺五,又谁知,君且住,吾老矣,堪羡,多少恨,夜来风雨,天下事,天如水,怎样得,嫣然一笑,孤独,山居好,回去来,心下事,安知道,思悠悠,恁节气,悄无人,愿岁岁,文章太守,无个事,最关情,最利处,有谁知,浮世事,满城风雨,"+玉骨冰肌,画堂深,登临处,看不足,真个是,知哪处,知己少,称寿处,空相忆,笑人间,纱窗外,溃不成军,长安道,问当年,雨初晴,频回顾,风又雨,风流云散,一杯酒,一蓑烟雨,三千岁,东风外,人去后,人未老,人道是,今晚里,但怅望,佳人哪处,"+再相遇,冰肌玉骨,净几明窗,凌波微步,凝视久,千山万水,卷珠帘,又何妨,又过了,叹人生,君看取,吴头楚尾,地久天长,堪恨处,堪爱处,多应是,夜将阑,天付与,天寒日暮,现在憔倅,山无数,帘栊静,广寒宫里,待明朝,忆当年,急管繁弦,"+恨悠悠,憔倅,联手处,无一事,幽香疏影,最难忘,月明风细,有个人人,水悠悠,江南春早,深院宇,深院静,月白风清,绘图中,迷恋,留春不住,相遇处,看明年,算唯有,经行处,绮罗丛里,缓带轻裘,肠欲断,自别后,莫急忙,行乐处,很多愁,"+试与问,试屈指,说笑里,谩回顾,还知道,送君南浦,都不论,都莫问,酒巡未止,采菱拾翠,长亭路,问谁是,难忘处,非烟非雾,风前月下,黯销魂,一叶扁舟,一年一度,一杯相属,一枝枝,一轮明月,下缺,不知今夕何夕,东风起,举

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论