1、收集应用程序域信息,关注功能要求–还考虑其他要求和文件。
我的工程实践为新闻标题的自动生成,功能实现要求输入一段新闻文本,自动生成其标题。关注功能的重点为标题简短,清楚,流畅。我们处于信息超载的时代,媒体工作人员为了流量常常用一些博眼球的文章标题吸引大家眼球,所以如果能有一种算法根据文章内容,生成切合文章实际内容的标题,对于帮助客户不被原标题迷惑,根据算法生成的标题,进行有效信息筛选是非常有帮助的。我们采用神经网络用于预测,需要大量新闻数据集和相应标签,模型的设置,数据预处理以及生成标题评估方法等。
2、头脑风暴,列出重要的应用程序域概念–列出它们的属性/属性–列出它们之间的关系。
对数据集的获取和处理:收集大量新闻文本信息,数据的属性包括数据的类型,长度,存储路径等等,处理有分词,过滤,转向量,需要用到过滤词典和转向量的词典,初始的想词向量维度往往很大,还需要对其进行词嵌入。
模型的构建:采用seq2seq模型,模型由两大部分组成,可抽象为编码器和解码器,编码器用于对输入向量编码,解码器对编码的信息解码,用于最后文本的生成。此外还有注意力机制用于控制输出。解码器依赖于编码器和注意力机制。
模型训练:用预处理好的数据和设置好的模型对模型进行训练,生成训练好的模型文件。
标题生成:加载训练好的模型用于新的新闻标题生成。
3、将领域概念分为:类–属性/属性值–关系,关联,继承,聚合。
类是属性和方法集合的总称,从工程实践中抽象出以下几个类
数据集:长度,类型,路径
数据预处理:文本数据,词向量词典,过滤词词典,分词,转向量
词嵌入:向量,稀疏向量转低维
模型:编码器,解码器,注意力机制
训练:模型,训练数据,标签,超参数,训练
标题生成:数据,模型加载,属性设置,预测
4、使用UML类图记录结果