欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2021115438292
申请人: 杭州电子科技大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种结合LDA主题模型和GloVe词向量技术的API推荐方法,其特征在于包括如下步骤:步骤(1)从开源软件仓库中筛选出其中的Java文件,这些文件都以“.java”结尾;

步骤(2)从Java文件中抽取出所有的方法和对应的方法注释,并将每一个方法和对应的方法注释组成一个配对pair=,其中method表示方法,comment表示对应的方法注释;所有的配对组成集合P=(pair1,pair2,…pairn);

步骤(3)使用JDT工具将每一个配对pairi(i=1,2,…,n)中的方法method转化为AST,然后遍历AST得到其中method类型为实例创建和方法调用的API组成的API调用序列APISequence;

步骤(4)对每一个配对pairi中的方法注释comment进行预处理:步骤(5)对于每一个配对pairi,将其中所包含的词项随机打乱,生成s个新的副本,随机

1 2 s 1

打乱后生成的所有副本表示为集合RSpairi=(pairi ,pairi ,…,pairi),其中pairi ,

2 s

pairi ,…,pairi均作为一个独立样本且互相为不重复的全排列;

步骤(6)将所有集合RSpariri合并组成一个语料库Q=(RSpair1,RSpair2,…,RSpairn),集合RSpairi中的所有副本均作为语料库中的文档,其数量为n*s;

步骤(7)训练LDA模型,将LDA的主题数设置为K;

步骤(8)计算任意两个词项tx和ty之间的主题相似度simtopic:步骤(9)使用GloVe词嵌入技术对语料库Q中的所有的词项进行训练,得到每个词项tj的词向量步骤(10)计算任意两个词项tx和ty之间的词向量相似度simvector:根据GloVe模型,得到词项tx和ty对应的词向量 和 计算 和 之间的余弦相似度得到词向量相似度simvector:步骤(11)计算任意两个词项tx和ty之间的最终相似度simfinal:将主题相似度simtopic和词向量相似度simvector相乘得到最终相似度simfinal;

步骤(12)输入一个查询词,计算查询词和语料库中的每一个词项tj的最终相似度simfinal,并将所有词项按simfinal从大到小进行排序,最后将其中的单词去除,仅保留API作为最终的API推荐列表。

2.根据权利要求1所述的一种结合LDA主题模型和GloVe词向量技术的API推荐方法,其特征在于步骤(4)对每一个配对pairi中的方法注释comment进行预处理,具体实现如下:

4‑1.删除方法注释中包含的历史版本记录,该历史版本记录通常表示为“xx‑xx‑xx:text”,其中“xx‑xx‑xx”表示日期,“text”表示历史记录;

4‑2.删除方法注释中包含的数字、标点、URL、源代码噪音信息,并把所有单词转换为小写字母形式;

4‑3.根据通用停用词表删除方法注释中含有的停用词;

4‑4.将屈折词和派生词还原到基本形式。

3.根据权利要求2所述的一种结合LDA主题模型和GloVe词向量技术的API推荐方法,其特征在于步骤(4)将经过预处理后的comment表示为precomment;经过对method和comment的处理后,每一个配对表示为pairi=,其中APISequence中所有的API和precomment中所有的单词统称为词项;集合P中所有配对包含的全部词项的集合表示为T=(t1,t2,…,tl),其中l表示全部词项的数量。

4.根据权利要求2所述的一种结合LDA主题模型和GloVe词向量技术的API推荐方法,其特征在于步骤(7)训练LDA模型,将LDA的主题数K设置为300,具体训练步骤如下:

7‑1.为每个词项tj随机赋予一个主题编号topick,将语料库Q作为LDA模型的输入;j=

1,2,…,l;k=1,2,…,K;

7‑2.重新扫描语料库Q;对每个词项tj和每篇文档mμ,μ=1,2,…,n*s;使用Gibbs Sampling对 和θ(mμ,topick)采样预估,计算tj属于topick的概率以及topick属于mμ的概率,并在语料库中更新:其中 表示主题topick包含词项tj的概率,θ(mμ,topick)表示文档mμ包含主题topick的概率, 表示topick主题中出现词项tj的次数, 是词项tj的Dirichlet先验, 表示文档mμ中出现主题topicy的次数, 是主题topick的Dirichlet先验;

7‑3.重复步骤7‑2,直到 和θ(mμ,topick)收敛;

通过训练LDA模型,最终得到主题‑单词的概率矩阵,每一个词项tj对应的主题概率分布表示为 p()表示条件概率。

5.根据权利要求4所述的一种结合LDA主题模型和GloVe词向量技术的API推荐方法,其特征在于步骤(8)计算任意两个词项tx和ty之间的主题相似度simtopic,具体实现如下:

8‑1.从LDA模型获取词项tx和ty主题概率分布 和

8‑2.计算概率分布 和 之间的距离度量指标Jensen‑Shannon散度

8‑3.将Jensen‑Shannon散度转化为相似度度量指标得到词项tx和ty之间的主题相似度simtopic:

6.根据权利要求5所述的一种结合LDA主题模型和GloVe词向量技术的API推荐方法,其特征在于步骤(11)计算任意两个词项tx和ty之间的最终相似度simfinal:将主题相似度simtopic和词向量相似度simvector相乘得到最终相似度simfinal:simfinal=simtopic*simvector(7)。