政斗吧 关注:20,171贴子:322,588

【周边】肢解美人——用程序自动生成伪文言

只看楼主收藏回复

“智慧生命的精华和本质,真的是技术所无法触及的吗?”—— 《诗云》 刘慈欣

之前我做了一个有趣的小实验来验证我的程序结果,大概还是不出乎意料的(原帖地址:
http://tieba.baidu.com/p/3088446267【【求评】这是什么类型的文言?请各位指教】
)。由于希望保证实验的效用性,所以和吧内同学开了个无伤大雅的小玩笑,希望诸位不要介意。因此在正文开始之前,先向所有同学致意,多谢!
@菩提燃灯 @柳氏怡然 @先谢校长 @BIG_D7 @真心不会取名哼 @少年云白 @Paris零
@顾佐___ @七夜倾辰 还有两位赞的同学不知姓名,如果愿意的话,我可以楼中楼再行圈出。


IP属地:陕西1楼2014-06-09 22:58回复
    附录:
    部分程序,其他函数的大同小异。可以实现嵌套,随机,自动生成。
    st1<- function(sp=1,att=1){
    pla<- sample(1:length(place),1,replace=F)
    peocount<- sample(1:length(people),1,replace=F)
    if(sp==1){
    spnumc<- sample(1:length(schnun),2,replace=F)
    spvebc<- sample(1:length(schveb),2,replace=F)
    spstate<- NULL
    for(i in 1:2){
    spstate<- paste(spstate,spnum[spnumc[i]],spveb[spvebc[i]],",")
    }
    }else{
    spnumc<- sample(1:length(solnun),2,replace=F)
    spvebc<- sample(1:length(solveb),2,replace=F)
    for(i in 1:2){
    spstate<- paste(spstate,spnum[spnumc[i]],spveb[spvebc[i]],",")
    }
    }
    if(att==1){
    attsic<- sample(1:10,2,replace=F)
    atti<-sisch
    modadjc<- sample(1:length(hapadj),2,replace=F)
    modthoc<- sample(1:length(haptho),2,replace=F)
    mood<-c(paste(hapadj[modadjc[1]],hapadj[modthoc[1]]),paste(hapadj[modadjc[2]],hapadj[modthoc[2]]))
    }
    res<- paste(place[pla[1]],loc[looc[1]],prep[pre[1]],people[peocount[1]],
    ",",prep[pre[2]],wea[time[1]],spstate,paste(atti[attsic[1]],",",
    atti[attsic[1]+10]),"之时",",",
    mood[1],loc[looc[2]],paste(atti[attsic[2]],",",atti[attsic[2]+10]),"之",mood[2])
    return(res)
    }
    形容词:
    "墋""翦" "峻""惠" "螎""夳" "衮""灼" "羁""巉" "岧""昭" "蒙""察"
    "杳""寂" "朦""脉" "戚""偬" "殊"
    时间:
    "金乌""阏逢" "柔兆""强圉" "单阏""箸雍" "执徐""屠维" "上章""敦戕"
    "重光""协洽" "阏逢""阉茂" "旃蒙""侵早" "霜曙""翌桑" "未央""夤漏"
    "沉璧"
    环境
    "烝縢""温凊" "太簇""雩风" "中吕""郁蒸" "鸣蜩""蕤宾" "杪商""无射"
    "应钟" "龙潜" "嘉平" "大吕" "罡风" "泠泠" "燠炽" "穷阴" "玄序" "集萤"
    "玄英" "砭骨" "苍冥" "六合"
    人物:
    "有司""当世" "鼎辅""荩臣" "胥吏""皂隶" "嬖弄""公卿" "贰孽""臣僚"
    "邑尊""令尹" "臬司""宗伯" "冢宰""司徒" "司马""司寇" "司空""方伯"
    "黄堂" "五马"


    IP属地:陕西3楼2014-06-09 23:00
    回复
      0.0


      来自Android客户端4楼2014-06-09 23:21
      回复
        暖~~~


        来自Android客户端5楼2014-06-09 23:21
        收起回复
          高端......


          来自手机贴吧6楼2014-06-09 23:32
          收起回复
            座师大神再一次欺骗了政吧人民的感情...


            IP属地:上海来自Android客户端7楼2014-06-09 23:50
            收起回复
              (/ω\)


              IP属地:湖北来自Android客户端9楼2014-06-10 00:50
              回复
                话嗦楼主这程序真的是你设计的么(/ω\)实在点赞,已经感觉很像了


                IP属地:湖北来自Android客户端10楼2014-06-10 00:51
                收起回复
                  @遇冷欢情薄 你把洗车叫来看看程序


                  IP属地:湖北来自Android客户端11楼2014-06-10 01:06
                  回复
                    @顾郁冷 你叫洗车!


                    IP属地:云南来自Android客户端12楼2014-06-10 01:12
                    收起回复
                      怒赞!


                      来自iPhone客户端13楼2014-06-10 01:13
                      回复
                        st1 <- function(sp=1,att=1){ /*sp是文戏/武戏参数,这里默认为1就是文戏;att是喜/哀情绪参数,这里默认为喜;两个参数都可以改*/
                        pla <- sample(1:length(place),1,replace=F) /*生成1个用于抽取地名的随机数*/
                        looc <- sample(1:length(loc),2,replace=F) /*生成2个用于抽取地点的随机数*/
                        pre <- sample(1:length(prep),3,replace=F) /*生成3个用于抽取虚词的随机数*/
                        time <- sample(1:length(wea),1,replace=F) /*生成1个用于抽取时间的随机数*/
                        peocount <- sample(1:length(people),1,replace=F) /*生成1个用于抽取官职的随机数*/
                        if(sp==1){ /*条件判断,如果是文戏的情况下*/
                        spnumc <- sample(1:length(schnun),2,replace=F) /*生成2个用于抽取文戏环境的随机数*/
                        spvebc <- sample(1:length(schveb),2,replace=F) /*生成2个用于抽取文戏动作的随机数*/
                        spnum <- schnun /*为环境赋值文戏环境*/
                        spveb <- schveb /*为环境赋值文戏动作*/
                        spstate <- NULL
                        for (i in 1:2){
                        spstate <- paste(spstate,spnum[spnumc[i]],spveb[spvebc[i]],",")
                        } /*for 循环实现两个文戏四字短语的粘贴*/
                        }
                        else { /*条件判断,如果是武戏的情况下,就不多写了*/
                        spnumc <- sample(1:length(solnun),2,replace=F)
                        spvebc <- sample(1:length(solveb),2,replace=F)
                        spnum <- solnun
                        spveb <- solveb
                        spstate <- NULL
                        for (i in 1:2){
                        spstate <- paste(spstate,spnum[spnumc[i]],spveb[spvebc[i]],",")
                        }
                        }
                        if(att==1){ /*条件判断,如果情绪是“喜”的情况下,就不多写了*/
                        attsic <- sample(1:10,2,replace=F)
                        atti <-sisch
                        modadjc <- sample(1:length(hapadj),2,replace=F)
                        modthoc <- sample(1:length(haptho),2,replace=F)
                        mood <- c(paste(hapadj[modadjc[1]],hapadj[modthoc[1]]),paste(hapadj[modadjc[2]],hapadj[modthoc[2]]))
                        }else { /*条件判断,如果情绪是“哀”的情况下,就不多写了*/
                        attsic <- sample(1:10,2,replace=F)
                        atti <-sisol
                        modadjc <- sample(1:length(sadadj),2,replace=F)
                        modthoc <- sample(1:length(sadtho),2,replace=F)
                        mood <- c(paste(sadadj[modadjc[1]],sadadj[modthoc[1]]),paste(sadadj[modadjc[2]],sadadj[modthoc[2]]))
                        }
                        /*实现文本输出*/
                        res <- paste(place[pla[1]]/*环境1*/,loc[looc[1]]/*地点1*/,prep[pre[1]]/*虚词1*/,
                        people[peocount[1]]/*人物1*/,",",prep[pre[2]]/*虚词2*/,wea[time[1]]/*天气1*/,spstate/*两个四字短语*/,paste(atti[attsic[1]]",",atti[attsic[1]+10])/*文戏二十四诗品*/,,"֮之时",",",
                        mood[1]/*情绪词1*/,loc[looc[2]]/*地点2*/,paste(atti[attsic[2]],",",atti[attsic[2]+10])/*文戏二十四诗品*/,, "֮之",mood[2])/*情绪词2*/
                        return(res) /*返回函数值*/
                        }
                        @Paris零
                        生成结果就是这样:
                        东京酒家之胥吏 , 而华霜卷帘, 深庭初开 , 萧萧落叶 , 漏雨苍苔之时 , 空持之匪强 , 来之无穷之悲戚。
                        可以多跑上十几次,然后选择你最喜欢的词句进行组合。比较程序是死的,人文是活的。
                        最后高考已经完了,欢迎广大学子报考计量与应用信息专业。


                        IP属地:陕西14楼2014-06-10 01:16
                        回复
                          都看不懂程序虽然我造它很牛逼


                          来自iPhone客户端15楼2014-06-10 01:25
                          收起回复


                            IP属地:上海来自iPhone客户端16楼2014-06-10 06:06
                            回复