java古詩詞自動生成程序_第1頁
java古詩詞自動生成程序_第2頁
java古詩詞自動生成程序_第3頁
java古詩詞自動生成程序_第4頁
java古詩詞自動生成程序_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、在線演示:點擊此處前幾天在網(wǎng)上看到有強人閑來無事,把全宋詞拿出來 搗鼓”算出了其中的高頻詞匯。我也閑來無事,用這些詞匯作數(shù)據(jù)源,編寫了一個java小程序,用來隨機生成詩歌。可以輔助文科生進行詩歌創(chuàng)作。由于本人對韻律完全不通,所以只能全隨機排列進行詩句的構(gòu)成,而且只有五絕和七絕兩種形式。大家生成的詩句有意境好,讀起來順口解釋的通的, 發(fā)上來大家一起品評一下 AA我先發(fā)幾個例子也沒挑選就是隨機弄了幾篇發(fā)上來: 五言律詩:留春不住功名緣底事,芳草思往事。 春風頻回首,盈盈今夜里。回首處平生待明朝,尊前天付與。尊前浮世事,無人誰知道。七言律詩:行樂處梅花休去腸斷處,無限知否憶當年。 風流詩曰記當日,留

2、戀年年君不見??疵髂昵褰^闌干談笑里,下缺黃昏多少恨。 年年堪羨吾老矣,清絕當時二十年。好了,廢話不多說了,下面是代碼:/*詩詞類* author gujie* version1.0* since 2011 -12-07*/publicclassPoem /*題目privateStr ing/*首聯(lián)*/privateStr ing/*頷聯(lián)*/privateStr ing/*頸聯(lián)*/privateStr ing/*尾聯(lián)*/privateStr ing/*構(gòu)造詩詞類*/title ;firstSe ntencesec on dSe ntencethirdSe ntencefourthSe ntenc

3、eSystem. out .println(System. out .println(System. out .println(t+ti tle);firstSentence+ , +secondSentencethirdSentence+ , +fourthSentence+?!?;+。“);publicPoem(Str ing type,Stri ng poemData)title =poemUtils.getPoemTitle(poemData);firstSe ntence=poemUtils.getPoemSe ntence(poemData, type);sec on dSe nt

4、ence=poemUtils.getPoemSe ntence(poemData, type);thirdSe ntence=poemUtils.getPoemSe ntence(poemData, type);/*fourthSe ntence=poemUtils.getPoemSe ntence(poemData, type);*/格式化打印詩詞publicvoidprin tPoetry() /*詩詞工具類* author gujie* version1.0* since 2011 -12-07public class poemUtils /*獲得詩詞題目*/public static

5、Stri ng getPoemTitle(Str ing poemData) Stri ng words; words=(poemData).split(,);Ran dom ran dom =new Ran dom();int ran domNum=ra ndom. nextl nt(words.Str ing titile=wordsra ndomNum;return titile;/*獲得詩句*/len gth );public static Str ing getPoemSe nten ce(Str ingListvStri ng twoWordList=ListvStri ng th

6、reeWordList=ListvStri ng fourWordList=ListvString fiveWordList=List sixWordList=Map In teger, StringwordMap= Stri ng words;words=(poemData).split( for (int i = 0; i words.poemData,Str ingnew ArrayList();new ArrayList();new ArrayList();new ArrayList();new ArrayList();new HashMapv In teger, Stri ng();

7、,);len gth ; i+) type) wordMap.put(i,wordsi);switch(wordMap.get(i) .len gth() case 2:twoWordList.add(wordMap.get(i); break ;case 3: threeWordList.add(wordMap.get(i); break ;case 4: fourWordList.add(wordMap.get(i); break ;case 5:fiveWordList.add(wordMap.get(i); break ;case 6:sixWordList.add(wordMap.g

8、et(i); break ;String poemSentence= null ; if ( 5 .equals(type) poemSentence= fiveWords (twoWordList, threeWordList); else poemSentence= sevenWords (twoWordList, threeWordList);return poemSentence;五言詩*/public static String fiveWords(List list1,List list2)Random random = new Random();int randomNum1=ra

9、ndom.nextInt(list1.size();int randomNum2=random.nextInt(list2.size();String randomWord=list1.get(randomNum1)+list2.get(randomNum2); return randomWord;/* 七言詩*/public static String sevenWords(List list1,List list2)Random random = new Random();int randomNum1=random.nextInt(list1.size();int randomNum2=r

10、andom.nextInt(list2.size();String randomWord=list1.get(randomNum1)+list2.get(randomNum2); list1.remove(randomNum1);int randomNum=random.nextInt(list1.size(); return list1.get(randomNum)+randomWord;強人統(tǒng)計的數(shù)據(jù)源的方法:這才是精髓!Ps:強人 yixuan 還有一位重新整理數(shù)據(jù)的牛人 不知道 ID 在人人上看到的。數(shù)據(jù):全宋詞文本代碼: l=scan(Ci.txt,character,sep=n);

11、l.len=nchar(l);# 某些行是作者和標題,所以選取長度大于 10 的行;# 另外這個文本文件不太規(guī)整,有些網(wǎng)址什么的,# 所以也要排除那些長度太長的。ci=l;# 句子用標點符號分割。sentences=strsplit(ci,,| 。| !| ?| 、 );sentences=unlist(sentences);sentences=sentencessentences!=;s.len=nchar(sentences);# 單句太長了說明有可能是錯誤的字符,去除掉。 sentences=sentencess.len=10;s.len=nchar(sentences);# 暴力挨個拆

12、分,比如“猶解嫁東風”的所有二字組合為# “猶解”“解嫁”“嫁東”“東風”,# 無意義的詞其頻數(shù)自然就落在后面了。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=name

13、s(words.freq1:100),Freq=eger(words.freq1 :100);我整理了一下格式在我的小程序里面 new 詩詞對象的時候需要傳這個數(shù)據(jù)源作為參數(shù):String poemData= 到如今 , 君知否 , 誰知道 , 功名事 , 須信道 , 最好是 , 人間世 , 從今去 , 凝佇 , 歸去,不如歸去 ,知否,誰信道,倚闌干,到而今,又還是,歸去來兮 ,人不見,當此際,記當年,東 風里 , 怎奈向 , 春去也 , 須知道 , 爭知道 , + 更那堪 , 留不住 , 謾贏得 , 那堪更 , 一觴一詠 , 休休 , 君不見 , 家山好 , 歸來也 , 思往事

14、 , 悠悠 , 無緒 , 還知否 , 追往事 , 人間天上 , 最苦是 , 疏影橫斜 , 空悵望 , 空惆悵 , 記年時 , 人間事 , 又只恐 , 回首處 , 夜沈沈 , 斷人腸 , 早歸來 , 有多少 , + 空凝佇 , 向尊前 , 微雨過 , 情脈脈 , 斜陽外 , 無語 , 月明中 , 朱顏綠鬢 , 綠鬢朱顏 , 誰念我 , 還知么 , 問何如 , 不堪回首 , 東風惡 , 人何處 , 人正在 , 今老矣 , 從別后 , 倚東風 , 又何須 , 多少事 , 天長地久 , 安陽好 , 對東風 , 對西風 , 廣寒宮殿 , + 歸去也 , 歸來晚 , 愿年年 , 江南岸 , 空回首 , 終

15、不似 , 腸斷 , 腸斷處 , 落花飛絮 , 西源好 , 闌干外 , 風 流,颼颼,與誰同,五云深處 ,人間何處難忘酒 ,人靜,從此去,倚西風,分明是 ,功名富貴 ,南徐好, 歲歲年年 , 思晴好 , 想當年 , 無限事 , 朝朝暮暮 , + 歌窈窕 , 獨自個 , 竹籬茅舍 , 綸巾羽扇 , 良辰美景 , 記當時 , 詩曰 , 醉歸來 , 七十古來稀 , 人如玉 , 人盡道,何處,凝望處,千古恨,千秋歲,去年今日 ,向此際,坐中客,天賦與,好天良夜 ,年年今日 , 待歸來,愁絕,故人何處 ,明月清風 ,暗香浮動 , + 曲水流觴 , 渾不似 , 清絕 , 盈盈 , 空腸斷 , 空贏得 , 算

16、人間 , 算只有 , 緣底事 , 記當日 , 還又是 , 道骨 仙風,都付與,都休問,酒醒時,問人間,問何時,風不定,一聲聲,二十年,人散后,人易老 ,從今 后 , 休去 , 休辭醉 , 依然是 , 幾時休 , 憑闌久 , + 去天尺五 , 又誰知 , 君且住 , 吾老矣 , 堪羨 , 多少恨 , 夜來風雨 , 天下事 , 天如水 , 如何得 , 嫣然一 笑,寂寞,山居好,歸去來,心下事,怎知道,思悠悠,恁時節(jié),悄無人,愿歲歲,文章太守 ,無個事, 最關(guān)情 , 最好處 , 有誰知 , 浮世事 , 滿城風雨 , + 玉骨冰肌 , 畫堂深 , 登臨處 , 看不足 , 真?zhèn)€是 , 知何處 , 知音少

17、 , 稱壽處 , 空相憶 , 笑人間 , 紗窗外 , 落花流水 , 長安道 , 問當年 , 雨初晴 , 頻回首 , 風又雨 , 風流云散 , 一杯酒 , 一蓑煙雨 , 三千歲 , 東風 外, 人去后 , 人未老 , 人道是 , 今夜里 , 但悵望 , 佳人何處 , + 再相逢 , 冰肌玉骨 , 凈幾明窗 , 凌波微步 , 凝望久 , 千山萬水 , 卷珠簾 , 又何妨 , 又過了 , 嘆人生 , 君看取 , 吳頭楚尾 , 地久天長 , 堪恨處 , 堪愛處 , 多應是 , 夜將闌 , 天付與 , 天寒日暮 , 如今憔悴 , 山 無數(shù) , 簾櫳靜 , 廣寒宮里 , 待明朝 , 憶當年 , 急管繁弦

18、, + 恨悠悠 , 憔悴 , 攜手處 , 無一事 , 暗香疏影 , 最難忘 , 月明風細 , 有個人人 , 水悠悠 , 江南春早 , 深 院宇,深院靜,清風明月 ,畫圖中,留戀,留春不住 ,相逢處,看明年,算惟有,經(jīng)行處,綺羅叢里 , 緩帶輕裘 , 腸欲斷 , 自別后 , 莫匆匆 , 行樂處 , 許多愁 , + 試與問 , 試屈指 , 談笑里 , 謾回首 , 還知道 , 送君南浦 , 都不管 , 都莫問 , 酒巡未止 , 采菱拾翠 , 長 亭路, 問誰是 , 難忘處 , 非煙非霧 , 風前月下 , 黯銷魂 , 一葉扁舟 , 一年一度 , 一杯相屬 , 一枝枝, 一 輪明月,下缺,不知今夕何夕 ,東風起,舉杯相屬 ,之句, 人似玉, + 人別后 , 人生行樂 , 人都道 , 今夕何夕 , 仙風道骨 , 似當年 , 但回首 , 但贏得 , 佳麗地 , 依前是 ,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論