摘要 | 第5-6页 |
abstract | 第6页 |
第一章 绪论 | 第10-18页 |
1.1 研究工作的背景与意义 | 第10-12页 |
1.2 研究现状 | 第12-16页 |
1.2.1 国外研究现状 | 第12-14页 |
1.2.2 国内研究现状 | 第14-16页 |
1.3 主要研究内容 | 第16页 |
1.4 论文的结构安排 | 第16-18页 |
第二章 深度学习与神经网络语言模型 | 第18-30页 |
2.1 深度学习 | 第18-20页 |
2.2 神经网络语言模型 | 第20-25页 |
2.2.1 连续词袋模型 | 第22-24页 |
2.2.2 Skip Gram模型 | 第24-25页 |
2.3 自然语言与编程语言 | 第25-28页 |
2.4 深度学习解决代码分析问题的难点 | 第28-29页 |
2.5 本章小结 | 第29-30页 |
第三章 AST_Node2Vec语言模型 | 第30-40页 |
3.1 编程语言的分布式表示的粒度 | 第30-32页 |
3.1.1 字符级 | 第30页 |
3.1.2 token级 | 第30-31页 |
3.1.3 AST树中的结点 | 第31-32页 |
3.1.4 声明级、函数级或更高 | 第32页 |
3.2 基于AST树的编程语言的语言模型 | 第32-38页 |
3.2.1 负采样算法 | 第35-38页 |
3.2.2 模型的训练算法 | 第38页 |
3.3 本章小结 | 第38-40页 |
第四章 Graph2Vec语言模型 | 第40-52页 |
4.1 图核函数 | 第41-43页 |
4.1.1 图核函数存在的缺陷 | 第42-43页 |
4.2 深度图核函数 | 第43-44页 |
4.2.1 深度图核函数存在的缺陷 | 第43-44页 |
4.3 基于CFG图的编程语言的语言模型 | 第44-51页 |
4.3.1 抽取根子图 | 第47-48页 |
4.3.2 改进的Skip Gram模型 | 第48-50页 |
4.3.3 模型的训练算法 | 第50-51页 |
4.4 本章小结 | 第51-52页 |
第五章 AST_Node2Vec语言模型在代码分类中的应用 | 第52-63页 |
5.1 AST树结点向量表示的效果 | 第52-53页 |
5.2 基于树的卷积神经网络 | 第53-58页 |
5.2.1 编码层 | 第54页 |
5.2.2 基于树的卷积层 | 第54-56页 |
5.2.3 动态池化层 | 第56页 |
5.2.4 输出层 | 第56-58页 |
5.3 AST_Node2Vec模型在代码分类问题中的应用 | 第58-62页 |
5.3.1 实验数据集 | 第58-59页 |
5.3.2 实验结果 | 第59-62页 |
5.4 本章小结 | 第62-63页 |
第六章 Graph2Vec语言模型在重复代码检测中的应用 | 第63-72页 |
6.1 Graph2Vec模型在图分类中的应用 | 第63-66页 |
6.1.1 实验数据集 | 第63-64页 |
6.1.2 实验结果 | 第64-66页 |
6.2 关联数据聚类算法 | 第66-68页 |
6.3 Graph2Vec模型在重复代码检测中的应用 | 第68-71页 |
6.3.1 实验数据集 | 第69-70页 |
6.3.2 实验结果 | 第70-71页 |
6.4 本章小结 | 第71-72页 |
第七章 全文总结与展望 | 第72-74页 |
7.1 全文总结 | 第72页 |
7.2 后续工作展望 | 第72-74页 |
致谢 | 第74-75页 |
参考文献 | 第75-80页 |