由于古诗,词牌,对联的格律规则不一样,需要分开写:
古诗规则:
古诗里面尽量不出现重复的字,如果出现重复的字,在候选集里面惩罚,但是允许律诗的颔联和颈联出现连续两个字的叠词,如无边落木萧萧下,不仅长江滚滚来;绝句的第二句和第四句最后一个字押韵,律诗每一联的最后一个字押韵。在古诗规则中,一般押韵的字无论采用平水韵还是中华新韵,都是平声,所以第一个位置押韵的字,只要是韵表里的字都奖励,后面押韵的字只对和第一个押韵字同韵的字才奖励;由于生成的古诗第一个字和输入题目第一个字有很大概率会重复,这里引入了惩罚,但是不包括藏头诗
下面还是基于苏老师老版本的beamsearch代码修改的,供参考