之前一直在看前几天找到的seq2seq写对联的源码,发现它的源码好多都不是那么普遍通用的,学习他的或许不如自己写一个,所以模仿他的思路,我打算用古诗词的数据集,做一个可以自己创作古诗的模型。
数据搜集
使用了这个数据集。
预处理
由于在之前的论文中提到将长度大致一致的放在一起训练可以提高训练的效率,因此希望通过预处理将这些诗词按字数排序,每一行分为上下句。为了完成这个,结合之前一直在看mapreduce,索性就用mapreduce完成这个任务。
代码
mapper使用诗的长度作为key,两句诗连接作为value
package gushi;
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class gushimapper extends Mapper<LongWritable, Text, LongWritable, Text>{
Text val = new Text();
LongWritable k = new LongWritable();