导航:首页 > 手机软件 > 可以让对联上下联自动组合的软件

可以让对联上下联自动组合的软件

发布时间:2022-10-01 07:21:28

❶ 有没有免费对对联的网站,就是一个上联输入会自动对出下联

有,微软亚洲电脑对联,在网络输入即可

❷ 有没有将写好的上下联横批拼成一幅像贴在门上的软件

写对联是讲究横横批和竖上边和下联和横批讲究对称

❸ 使用Encoder-Decoder模型自动生成对联的思路

在我看到第一篇Encoder-Decoder模型的论文的时候,我就觉得用这个来作对联自动生成是再合适不过的了,做诗词应该也是比较适合的,但是相对诗词,用它来做对联肯定更合适。今天的文章就讲讲这方面的内容。这篇文章主体内容是2015年底形成的,本来我的打算是收集些训练数据,让Encoder-Decoder+Attention生成些对联把这篇文章补充些例子再发出去,不过因为精力原因,迟迟没有做这个实验,短期内可能也没时间做,所以干脆就现在分享出来,哪位有精力和兴趣可以实际做一下试试,这看上去没啥实际用处,但是还是挺好玩的一件事。不过我确信用这个模型做对联生成一定可以做好。

为什么说Encoder-Decoder模型适合作对联呢?因为相对诗词等任务来说,对联要求严格的上下联对仗,老话不是说了吗,以前儿童诗词启蒙时都要学一些对仗规则,比如:天对地,雨对风,大陆对长空,王八对绿豆,八戒对悟空(后面两句是本文作者诗才大发胡诌的,请未成年儿童切勿模仿或者在有大人监督场景下模仿@^^@)。这种严格的对仗关系意味着极强的映射规律性,而这个用RNN和Encoder-Decoder来说正好是能够发挥它们长处的地方,所以说Encoder-Decoder加上RNN配置是非常适合用来做对联的。

对联的严格对仗性可以给个小故事,大家直观感受下:

相传解缙少时家贫,其家有片对着地主家的一片竹林,于是他作了副对联:“门对千杆竹,家藏万卷书”。地主心说:我幼儿园肄业文凭,你在我面前你这么装有文化好吗?于是不爽,命人把竹子砍短,解缙灵机一动把对联加了一个字,改成:“门对千杆竹短,家藏万卷书长”。地主气不打一处来,放出功夫熊猫把竹子全吃了,解缙又改对联:“门对千杆竹短无,家藏万卷书长有”。气得地主直跳脚骂娘。

从这个故事我们可以归纳出中心思想就是:从古至今,有钱就是大爷,可以随便砍伐树木破坏生态而不被法律制裁@^^@…..不对,跑偏了,中心思想应该是:肄业的同学都容易创业成功,成为新时达的地主老财,而好好上学的大都免不了家贫的结局…..也不对,你看我这三观都歪到引力波都达不到的宇宙之外了,中心思想是:对联是有极强的对仗性的。而这种对仗性代表了什么?代表了语言单元之间极强的规律性,而这是非常适合通过机器来学习并容易做好的事情,这是为何我坚信用Encoder-Decoder做对联一定能够做好的原因。

|Encoder-Decoder模型

Encoder-Decoder框架可以看作是一种文本处理领域的研究模式,应用场景异常广泛。下图是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示:
图1. 抽象的Encoder-Decoder框架

Encoder-Decoder框架可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对<X,Y>,我们的目标是给定输入句子X,期待通过Encoder-Decoder框架来生成目标句子Y。X和Y可以是同一种语言,也可以是两种不同的语言。而X和Y分别由各自的单词序列构成:

Encoder顾名思义就是对输入句子X进行编码,将输入句子通过非线性变换转化为中间语义表示C:

对于解码器Decoder来说,其任务是根据句子X的中间语义表示C和之前已经生成的历史信息y1,y2….yi-1来生成i时刻要生成的单词yi

每个yi都依次这么产生,那么看起来就是整个系统根据输入句子X生成了目标句子Y。

|Encoder-Decoder自动生成对联

机器自动生成对联这个事情,可以分成两种情况,一种情形是:假设对联的上联是已经知道的,比如人自己想的,任务是由机器来自动产生下联;第二种情况是:假设要求上下联全部都由机器自动生成。明显第一种情况要求较低,相对简单,第二种情况要求较高,相对复杂。下面我们分述两者的可能解决思路。

情形一:已知上联,机器自动生成下联

假设我们已经拿到了上联,例如:“风云三尺剑”(注:这是我比较喜欢的一副对联的上联,作者左光斗先生,如果是你的话会对什么下联?),如何让机器自动生成下联?

很明显,这个问题直接可以由Encoder-Decoder框架来进行下联自动生成。这种场景是典型的Encoder-Decoder框架应用问题。我们所需要做的就是配置好Encoder-Decoder框架的具体模型,比如Encoder和Decoder都采用RNN模型来做,图2展示了用Encoder-Decoder框架做对联下联自动生成的架构图。

图2. Encoder-Decoder生成下联

只需要找到大量的对联数据对这个模型进行训练,那么即可利用这个模型,输入上联,机器自动产生下联了。

值得提的一点是,很明显,对于做对联这个事情来说,Encoder-Decoder框架加上Attention应该会显着提升产生下联的质量,原因还是因为它是要求严格对仗的,所以在生成下联某个字的时候,找到对应上联相应字作为生成的重点参考信息无疑是非常重要的。比如看到上联的“三”字,Attention模型使得下联产生对应字“一”的时候重点参考上联的“三”这个字,应该知道对应的应该是一个数字型汉字。图3是加上Attention模型的示意图。

图3. Attention模型

这里再插上一句,作为对联下联生成任务来说,使用Encoder-Decoder来做这个事情,我相信汉字之间的对仗关系应该能够很好地被学会,但是如何保证生成下联语义能够一致其实并不一定能够很好地解决。这是什么意思呢?意思是可能机器看到上联“风云三尺剑”,极有可能对出下面的内容:“雨风万丈刀”,单看每个字对仗的都很工整,但是作为一个整体,语义看上去不那么协调。(注:其实如果真对出这个下联,想想其实还是挺豪情万丈的,是吧?这其实跟人在意识上会把连续出现的字通过想象组合出一种合理语境有关。)

当然如果训练数据够大的话,这个问题应该不会太大,因为本质上Encoder-Decoder在解码阶段是能够学会语言模型的,而很明显语言模型的引入对于生成下联的可读性和语言一致性是很有帮助的。但是如果训练数据不是那么大,我相信通过使用大量古诗来训练一个诗词语言模型,在Decoder生成阶段,每个时间节点t生成很多可能的候选汉字,然后利用这个语言模型+Beam Search应该能够使得生成的对联保证一定的语义一致性。

到此为止,作为对联生成其实还有个问题,就是上下联对应汉字的平厌问题,这个也可以类似语言模型一样作为后处理的步骤进行筛选过滤。不过我觉得Encoder-Decoder也极有可能会学会这种平厌关系,因为这个规律还是很明显的,这点不确定,得通过实验来证明这一点。

情形二:对联由机器完全自动生成

上面讲的是如果上联是人给出的,机器如何自动产生和顺的下联。那么如果问题难度增加一下,如果上联也不知道,机器能够完全自动生成完整的一幅对联吗?

很明显,情形一是情形二的子问题,假设我们分两步来完全自动地生成对联,第一步是不论用什么方法,先生成一句上联。第二步根据上联自动生成下联。第二步明显可以使用情形一训练出的模型来做。所以情形二的关键问题转换为:如何在一无所知情况下生成一句上联?

我觉得这个子问题可以通过如下方式解决:使用RNN构建一个古诗词的语言模型,然后上联通过这个RNN语言模型自动生成,这从道理上是讲得通的。也就是说,整体架构如图4所示。

图4 完全自动生成对联

此外,对于对联来说,还遗留一个小问题,就是对联的横批如何生成的问题。因为一般对联还需要配上一个横批来归纳上下联的主旨。这个其实思路也是类似的,可以把上下联看做一个整体作为Encoder的输入,Decoder用来生成横批即可,这个类似于用Encoder-Decoder+Attention做摘要的思路。关键是有没有那么多训练数据是带横批的,我觉得这个挺悬的。

好了,通过以上方式,我相信能够构建一个看上去还不错的对联自动生成系统。

❹ 有什么做对联的软件吗急!

正如你所说,机器的东西只适合玩玩的游戏;对联是一门国粹的艺术,应该因人而设、应景而生、依情所至。。。。。你可以自己学着写写看,或找人写、或在网络上问一问,很有趣的。

❺ 使用Encoder-Decoder模型自动生成对联的思路

永备敬治金聪丽明以下是对联生成器生成的下联:久无留行水宿尘远 不留行来水性澄清 不留行来玉性澄清 不有尊来玉性澄清 不留行来水媚时好 常开邀来月媚尘静 不尽邀来月媚时好 常修行同水性澄清 不有吟知雪性澄清 空有吟知雪性澄清 不尽吟知雪性时好 常留吟知雪性澄清 不尽吟知雪性疏淡 不成行来月媚时好 久无酬知雪性澄清 常开邀来月媚尘清 久无留行水宿时好 空留吟知雪性澄清 久无留行水宿澄清 常修行知雪性澄清 不留行知玉怅然清 常开迎来玉性澄清 常修行来月媚时好 不留行同水性澄清

❻ 要寻求对联,应安装什么软件

对对联有哪些基本要求是“六相”,分述如下:
一是字数相等
上联字数等于下联字数。长联中上下联各分句字数分别相等。有一种特殊情况,即上下联故意字数不等,如民国时某人讽袁世凯一联: “袁世凯千古;中国人民万岁。”上联“袁世凯”三个字,下联“中国人民”四个字,意思是袁世凯对不起中国人民。
对联中允许出现叠字或重字,叠字与重字是对联中常用的修辞手法,只是在重叠时要注意上下联相一致。如明代顾宪成题无锡东林书院联:“风声、雨声、读书声,声声入耳;家事、国事、天下事,事事关心。”
但对联中应尽量避免“同位重字”和“异位重字”。所谓同位重字,就是以同一个字在上下联同一个位置相对。所谓异位重字,就是同一个字出现在上下联不同的位置。不过,有些虚词的同位重字是允许的,如杭州西湖葛岭联:“桃花流水之曲,绿荫芳草之间。”
上下联“之”字同位重复,但因为是虚字,是可以的。不过,有一种比较特殊的“异位互重”格式是允许的(称为“换位格”),如林森挽孙中山先生联:“一人千古,千古一人。”

❼ 谁有自动生成对联的软件。。

谁有自动生成对联的软件:对联生成器 v1.0 免费版、自动对对联系统软件2018最新版、春节对联一键生成器、小蚂蚁编辑器、微软对联。

1、对联生成器 v1.0 免费版

对联生成器是一款可以在电脑上使用的强大对联生成器,这款对联生成器完全免费,无需下载,平仄规范并严谨,数百万条对联,点击即可使用,是一款绿色的pc端对联生成器。对联又称楹联、对偶、门对、春贴、春联、对子、桃符等,一种对偶文学,起源于桃符。

2、自动对对联系统软件2018最新版

自动对对联系统软件是一款十分有趣的对联软件系统工具,只要你给出上联,系统会自动生成相对应的下联,十分有趣。对联相传起于五代后蜀主孟昶。对联是中国汉族传统文化瑰宝。对联又称楹联。

5、微软对联

微软对联是由微软亚洲研究院自然语言计算组研发的计算机自动对联系统。 首先用户给定上联,然后系统自动提供若干下联供用户选择, 用户可以通过交互手段优选字词来生成满意的下联;当确定一副对联后还可以生成若干四字横批供用户参考。

❽ 自动对对联系ǻ

自动生成对联的软件:对联生成器v1.0免费版、自动对对联系统软件2018最新版、春节对联一键生成器、小蚂蚁编辑器、微软对联。

1、对联生成器v1.0免费版

对联发生器是一种能在计算机上使用的强力对联发生器。这个对联发生器是完全免费的。不需要下载。对联又称春联、对联、门对、春贴、春联、对联、桃字等,是一种对立文学,起源于桃字。

2、自动对对联系统软件2018最新版

自动对联系统软件是一个非常有趣的对联软件系统工具,只要你给了上面的对联,系统就会自动生成相应的下面的对联,非常有趣。对联据说起源于五代后期蜀国的昌。春联是中国传统汉族文化的瑰宝。对联也被称为对联。

3、春节对联一键生成器

春联一键发生器是一款专业的对联生成软件,可以自己配对,也可以从电脑里面选择,操作简单,功能强大,使用方便,该软件是由微软亚洲研究院自然语言计算集团开发的计算机自动对联系统。

4、小蚂蚁编辑器

小蚂蚁编辑专业微信公众文章材料和微信的内容风格,包括微信图片风格,微信动态图片,微信的背景图片、标题符号、二维代码模板、全文模板、有趣的问题等等,还可以产生对联,例如根据代的不规则的底线。

5、微软对联

微软对联是微软亚洲研究院自然语言计算组开发的计算机自动对联系统。首先用户给出上面的链接,然后系统自动提供几个下面的链接供用户选择。用户可以通过交互的方式选择最合适的单词,生成满意的下方链接。在确定一副对联后,可以生成若干个四字块供用户参考。

❾ 求将多个词语自动生成组合的软件

楼主你好,很高兴能回答这个具有挑战性的问题。开始以为很简单,我暗自庆幸这个高的分,这么久了居然还没人给答案。
可是当做动手做的时候才发现它的难度就想组合本身一样:随着组合数的增多——难度疯狂的增长!
应该说最后是用了递归原理才有了思路的,废话不说了,且看代码:

import java.util.*;
public class zuheTest{
public static void main(String[] args){
System.out.println("Java实现词语自动组合例子");
System.out.println("请输入词组,每个词组之间以空格分开,空格+Enter确认");
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
System.out.println("输入的信息是:"+str);
Vector<String> vec=new Vector<String>();
String str2="";
for(int i=0;i<str.length();i++){
char ch=str.charAt(i);
if(ch!=' '){//空格不会添加上去的
str2+=ch;
}else{
if(str2.length()>0)//说明有内容
vec.add(str2);
str2="";
}
}
int len=vec.size();
System.out.println("获得词的个数是:"+len);
if(len<1){
System.out.println("你没有输入任何词语!\n程序结束");
}else{
System.out.println("正在组合……");
String[] ary=new String[len];//要初始化
vec.toArray(ary);
Vector<Integer> font=new Vector<Integer>();
Vector<Integer> lim=new Vector<Integer>();
for(int i=0;i<ary.length;i++){
System.out.println("组合词数:"+(i+1));
new hello(ary,font,lim,-1,(i+1));//开始一点也没有限制所以取-1
System.out.println("\n* * * * * * * * * * * * * * * ***");
}
System.out.println("程序完毕!");
}
}
}

class hello{
private int maxl;//表示组合的词数
private Vector<Integer> font;
private String[] ary;//mubiao 目标数组
private Vector<Integer> inde;//不能取的下表
private int limt=-1;//最大不能取的下标
private int reNum;//要其余个数的结果数,即有多少个符合条件
public hello(){}
public hello(String[] ar,Vector<Integer> fon,Vector<Integer> ind,int malit,int max){
this.ary=ar;
this.font=fon;
this.inde=ind;
this.limt=malit;//限制最大坐标,前面的都不能取值
this.maxl=max;
reNum=ary.length-(limt+1);//总共书减去不能去的数,就是可以取的结果数
int[] kequ=new int[reNum];
int kqid=0;
for(int w=limt+1;w<ary.length;w++){
kequ[kqid]=w;
kqid++;
}

if(font.size()<maxl){
if(font.size()==maxl-1){//说明只要加上本次的结果就可以了
for(int k=0;k<reNum;k++){
showLine(kequ[k]);
}
}else if(font.size()<maxl-1){//说明在子现在font 的长度至少差2,的分两步或多步实现
for(int k=0;k<reNum;k++){
font.add(kequ[k]);
inde.add(kequ[k]);
new hello(ary,font,inde,kequ[k],maxl);
inde.remove(inde.size()-1);
font.remove(font.size()-1);
}
}
}

}
public void showLine(int last){
for(int u=0;u<font.size();u++){
if(u==0){
System.out.print("'"+ary[font.get(u)]+" ");
}else{
System.out.print(ary[font.get(u)]+" ");
}
}//前面有词的时候
if(font.size()==0){//说明前面每词
System.out.print("'"+ary[last]+"', ");
}else
if(last<ary.length)
System.out.print(ary[last]+"',");
else
System.out.print("'");
}
public boolean canSelect(int inde){
boolean result=true;
for(int t=0;t<font.size();t++){
if(font.get(t)==inde){
result=false;
break;
}
}
return result;
}
}

呵呵,国庆快乐!!!

阅读全文

与可以让对联上下联自动组合的软件相关的资料

热点内容
电脑上怎么下载班智达的软件 浏览:1152
无痕迹消除图片软件 浏览:715
免费小票软件 浏览:949
华为在哪里设置软件停止运行 浏览:956
用电脑键盘调节声音大小 浏览:1255
自动刷软件赚钱 浏览:1257
古装连续剧免费版 浏览:1410
工免费漫画 浏览:1141
手机软件专门储存文件 浏览:1504
uos如何用命令安装软件 浏览:1312
有线耳机插电脑麦克风 浏览:642
侏罗纪世界3在线观看完整免费 浏览:991
单个软件怎么设置名称 浏览:716
凤凰网电脑版下载视频怎么下载视频怎么下载 浏览:1380
明白之后如何免费获得无人机 浏览:827
如何解禁软件菜单 浏览:847
副路由器连接电脑视频 浏览:1347
内置wifi电视如何装软件 浏览:1099
手机换零免费雪碧 浏览:1584
国行苹果如何下载美版软件 浏览:1204