基于NLP的用例步骤推荐

背景和意义

用例是一种时间序列。
想通过相关机器学习算法帮助我们在写用例的时候推荐下一个步骤会用到的函数(每次推荐4个可能你想用的函数)
用例步骤推荐可以帮助提高写用例的速度和效率。

** 算法主要构成**

1

数据预处理

2

模型构建

3

测试模型

数据预处理

N-gram模型构建

构建词表(假设用例步骤只跟其前面两个步骤相关)

A

每个func在训练集中出现的次数

B

(func1, func2)在训练集中出现的次数

C

(func1, func2, func3)在训练集中出现的次数

平滑技术

CBOW模型构建

CBOW模型测试

循环网络模型构建

Keras搭建网络结构

1.确定网络层

2.确定损失函数—categorical_crossentropy 多分类交叉熵

常用的损失函数:

MSE—均方误差

binary_crossentropy—一般用于二分类的交叉熵

categorical_crossentropy—一般用于多分类的交叉熵

循环网络模型结构

双向RNN模型结构

深度RNN模型结构

BRNN模型训练

BRNN模型测试

双向LSTM

双向LSTM测试

深度rnn网络

深度rnn网络测试

总结

1.数据预处理:用函数的id代表一个用例步骤(相当于语言模型中的词),并不是所有的函数都出现在数据集中,需要将不连续的函数id映射成连续的值,避免词向量化的时候维度过大,训练速度会下降,可能出现内存不够用。

2.训练集标签和测试集标签进行one-hot编码的时候需要制定num_classes,这样才能保证生成的向量跟标签是一致的,否则只会根据给定标签生成one-hot编码,两者的维度不一致是错误的。

3.需要随机去选择训练集跟测试集(将原来的数据集打乱),这样实验效果会提高,否则可能出现过训练集过拟合现象。

训练集—训练数据,拟合模型。

验证集—训练集的一部分,在训练的过程中,将训练集分成两部分,一部分为验证集,用来在训练的过程中检验模型是否过拟合,调整参数,使模型达到最优

测试集—验证训练模型的精度和适用性。

交叉验证

诚聘精英

JOIN US

本文转载自 360质量效能