NLP+条件随机场实现解析PRD文档输出测试用例

       17年的一个质量团队的算法竞赛题目,要求每个质量团队(测试开发工程师团队)通过算法实现将 PRD文档解析成测试用例,经过大量咨询BU甚至集团的算法大神后,技术栈定格在了 NLP(自然语言处理)结合条件随机场(算法)来解析无图PRD(PRD有一定规则)通过在线算法模型输出测试用例,基本流程:

1,要求PRD编写一个功能点一句自然语言(有且只有个一个规则);设计测试用例基本结构为 :P:前置条件;A:动作;E:预期结果

2,通过条件1的规则 将一个PRD切割出多个功能点语句,放入一个LIST。

3,轮询LIST 给一个 元素(PRD每一句话)调用NLP接口,将此语句分词,去停用词,获取语义关系结构,情感词分析,返回的结果为每一句话为一个JSON结构,如:打开首页点击商品图片后页面跳转到商品详情页。经过NLP分析后 返回的分词 ,每个分词对应NLP赋予的3个属性(这些属性就是后面算法的提取的特征),将JSON结果转化为 矩阵行列数据 如:

NLP+条件随机场实现解析PRD文档输出测试用例_第1张图片

4,为上面的分词打标  label 替换为 步骤1 定义的用例每个部分映射 P,A,E (而label前面的 字段 为用的数据特征 后面算法用到)

5,使用wordtovec 将字符串矩阵 数据化 (每个特征的数量范围尽量在一个度量内,否则后面还需要做归一化)。

6,获取条件随机场算法组件,将步骤5的数据 提取80%作为 训练数据 对算法进行模型训练(其实就是求参,理论上训练数据越多,最后训练出的模型在预测结果方面越准确)。

7,调用步骤6训练完的模型,输入将剩余的20%打标数据,进行召回率测试,召回率达到一定要求后 认为此模型已达到预期要求,上线。

8,上线后,提供工程化的接口给业务方,业务方调用此接口传入 PRD信息,在线算法模型返回解析后的 测试用例。如:

NLP+条件随机场实现解析PRD文档输出测试用例_第2张图片

 

以上结果就是 算法模型预测的 测试用例,业务层拿到后 可以 组织为一个 特定结构的测试用例。

9,随着训练数据的不断积累,还应建立模型迭代训练,AB测试等流程 逐步优化算法预测能力,提高预测解析的结果的准确率

注:因公司要求不得分享过多细节,这里只记录了整个流程,至于NLP使用的哪个目前市面很多(我们用自己公司内部的),算法训练,部署 可以参考python相关的文章。

你可能感兴趣的:(大数据&数据挖掘&算法&AI)