CN112149405B - 一种基于卷积神经网络的程序编译错误信息特征提取方法 - Google Patents

一种基于卷积神经网络的程序编译错误信息特征提取方法 Download PDF

Info

Publication number
CN112149405B
CN112149405B CN202011043236.5A CN202011043236A CN112149405B CN 112149405 B CN112149405 B CN 112149405B CN 202011043236 A CN202011043236 A CN 202011043236A CN 112149405 B CN112149405 B CN 112149405B
Authority
CN
China
Prior art keywords
word
error information
vector
neural network
convolutional neural
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011043236.5A
Other languages
English (en)
Other versions
CN112149405A (zh
Inventor
谷林
何烨辛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Polytechnic University
Original Assignee
Xian Polytechnic University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Polytechnic University filed Critical Xian Polytechnic University
Priority to CN202011043236.5A priority Critical patent/CN112149405B/zh
Publication of CN112149405A publication Critical patent/CN112149405A/zh
Application granted granted Critical
Publication of CN112149405B publication Critical patent/CN112149405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于卷积神经网络的程序编译错误信息特征提取方法,具体按照如下步骤进行;步骤1:构建Word2Vec的词向量提取模型;向输入层输入编译错误信息文本数据集,进行取词,构造编译错误信息词典并统计词频;在输出层构造树形结构,生成中间向量和词向量;训练中间向量和词向量;步骤2:构建卷积神经网络编译错误信息的表示模型;将训练后的中间向量和词向量输入到卷积神经网络输入层;进行局部的文本特征的提取;步骤3;进行进一步进行提取;在池化结束后设置全连接层,得到编译错误信息文本特征向量。本发明在编译错误信息数据中处理的数据量更大,维度更高,效果更有效。

Description

一种基于卷积神经网络的程序编译错误信息特征提取方法
技术领域
本发明属于自然语言处理技术领域,具体涉及一种基于卷积神经网络的程序编译错误信息特征提取方法。
背景技术
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究实现人与计算机之间用自然语言进行有效通信的各种理论和方法。在现今互联网海量数据中,如何高效地实现譬如信息抽取、文本挖掘、网络舆情分析、情感分析等问题,是自然语言处理方面的一个重要研究方向。而这些问题的根本就在于如何筛选出有效的信息特征。
程序编译错误信息特征可以用于错误信息的聚类、分类以及程序错误相似度等方法的研究。有效的特征选择方法可以提升特征筛选的质量,目前已有的特征提取方法包含词袋模型[1-3]、信息增益[4-5](information gain,简称IG)、词频-逆向文件频率模型[6-9](term frequency-inverse document frequency,TF-IDF)模型和基于浅层神经网络模型[10]等相关的特征提取方法。相较传统的文本特征提取方法中,神经网络用来做特征提取所能处理的数据量更大,维度更高,从语义层面更好的进行深度挖掘,效果更佳。
综上所述,目前有关统计学的特征提取方法未从句子语义层面出发,无法深度挖掘文本信息所表达的语义;以及现今数据量剧增的问题,因此,目前的有关统计学的特征提取方法有待进一步提高。
发明内容
本发明的目的是提供一种基于卷积神经网络的程序编译错误信息特征提取方法,解决了目前的有关统计学的特征提取方法有待进一步提高的问题。
本发明所采用的技术方案是,
一种基于卷积神经网络的程序编译错误信息特征提取方法,具体按照如下步骤进行;
步骤1:构建Word2Vec的词向量提取模型;
步骤1.1:向Word2Vec中的Skip-gram模型的输入层输入编译错误信息文本数据集,在投影层进行取词,构造编译错误信息词典并统计词频;
步骤1.2:在输出层构造树形结构,生成结点并初始化各非叶节点的中间向量和叶节点的词向量;
步骤1.3:训练中间向量和词向量;得到训练后的中间向量和词向量;
步骤2:构建卷积神经网络编译错误信息的表示模型;
步骤2.1:将训练后的中间向量和词向量输入到卷积神经网络输入层;在卷积层对文本矩阵进行局部的文本特征的提取;卷积核的宽度的选取与词向量的维度保持一致;得到一个输出的特征向量如下公式(6)n-h+1维的向量yi
yi=[y1,y2,y3,…,yn-h+1] (6),
其中,yi为卷积操作后的局部特征向量。
步骤2.2:在池化层对文本特征进行进一步进行提取,从卷积层输出的特征向量中提取最大值来代表出现次数最多的特征;在池化结束后设置全连接层,得到编译错误信息文本特征向量。
本发明的特点还在于,
步骤1.1中,在投影层进行取词,采用的是分词-滑动窗口的方式。
步骤1.1中,构造编译错误信息词典并统计词频具体为:
使用TF-IDF算法统计词频,构造词典,
其中TF为词频,即一个词在这篇文本中出现的频率;IDF为逆文档频率,即一个词在所有文本中出现的频率倒数;
将式(2),(3)相乘,文本特征词权重fTF-IDF=TF×IDF。
步骤1.2中,所述树形结构是基于Hierarchical Softmax模型来构造的。
步骤2.1中,所述文本矩阵如下公式(4):其维度为m×n,其中,每个词是由一个n维的词向量所进行表示;
其中,Di为编译错误信息文本矩阵。
步骤2.2中,特征向量的计算如下公式(8):
s=ReLU(wipi+bi) (8),
其中,s为特征向量,pi为款式文本特征信息在池化层的输出,wi为对应的权重,bi为对应的偏置。
本发明的有益效果是,一种基于卷积神经网络的程序编译错误信息特征提取方法,采用浅层神经网络技术Word2vec工具中的Skip-gram模型将编译错误信息数据进行词向量提起,结合卷积神经网络(CNN)进行编译错误信息表示。本发明方法在编译错误信息数据中处理的数据量更大,维度更高,效果更有效。
附图说明
图1是是本发明一种基于卷积神经网络的程序编译错误信息特征提取方法中Skip-gram模型技术原理图示意图。
图2是本发明一种基于卷积神经网络的程序编译错误信息特征提取方法中分词-滑动窗口取词的示意图;
图3是本发明一种基于卷积神经网络的程序编译错误信息特征提取方法中Huffman树结构示意图;
图4是本发明一种基于卷积神经网络的程序编译错误信息特征提取方法中卷积神经网络的结构示意图
图5是本发明一种基于卷积神经网络的程序编译错误信息特征提取方法中不同方法的结果对比示意图。
具体实施方式
下面结合附图和具体实施方式对本发明一种基于卷积神经网络的程序编译错误信息特征提取方法进行详细说明。
步骤1:Word2Vec词向量提取模型。
本发明一种基于卷积神经网络的程序编译错误信息特征提取方法采用word2vec中的Skip-gram模型进行编译错误信息文本词向量生成的相关训练。Skip-gram词向量模型可以有效的保留了文本的语义信息。本发明是利用Hierarchical Softmax构造的一颗Huffman树做为word2vec模型的输出层训练词向量。Skip-gram模型包括三层,分别为输入层、投影层和输出层。其技术原理图如图2所示。
输入层:输入当前特征词的词向量,词的词向量为:Wt∈Rm
投影层:使目标函数L值最大化,假定有一组词序列,ω1,ω2,...,ωN,则:
式中:N为词序列的长度,c表示当前特征词的上下文长度;为已知当前词出现的概率下,其上下文特征词出现的概率。通过Skip-gram模型训练得到的全部词向量,组成词向量矩阵。以表示特征词i在m维空间中的词向量;
输出层:特征词上下文窗口中词出现的概率。
word2vec词向量提取模型的具体流程如下所示:
投影层(1)取词完成。采用分词-滑动窗口的方式进行取词,如下图2所示;
投影层(2)构造编译错误信息词典并统计词频;
TF-IDF算法是一种常见的文档特征提取算法,基本原理是在一个文档库中降低泛用词的权重而提高专有词权重。使用TF-IDF算法可以有效的统计词频,构造词典。其中TF表示词频,即一个词在这篇文本中出现的频率;IDF表示逆文档频率,即一个词在所有文本中出现的频率倒数。
将式(2),(3)相乘,可得文本特征词权重fTF-IDF=TF×IDF。
输出层(3)构造树形结构。核心技术是Hierarchical Softmax构造的一颗Huffman树;生成结点并初始化各非叶节点的中间向量和叶节点的词向量。如图3所示。
(4)训练中间向量和词向量。
步骤2:卷积神经网络编译错误信息表示模型
卷积神经网络(Convolutional Neural Network,简称CNN)是一种多层神经网络。该神经网络模型包含3层结构,分别为输入层、卷积层和“池化+连接层”。如下图4所示。
(1)卷积神经网络输入层。
本文利用word2vec工具的Skip-gram模型训练编译错误信息语料库中的数据,生成对应词向量。则输入层输入的数据为编译错误信息序列中各个词汇对应的词向量,是一个表示编译错误信息句子的文本矩阵,如公式(4)所示。其维度为m×n,其中,每个词是由一个n维的词向量所进行表示。
其中,Di为编译错误信息文本矩阵。
(2)卷积层。
在卷积层中输入的是公式(4)所示的维度为m×n的矩阵,用来表示编译错误信息句子矩阵。在卷积层进行卷积操作时,卷积核的宽度的选取与词向量的维度保持一致,这样的方式可以保证卷积核在每次滑动过的位置是一个完整的词向量。
卷积计算如公式(5)所示:
yi=f(∑wi·xi:i+h-1+bi) (5),
其中,wi表示为卷积核的权重矩阵,xi:i+h-1表示为第i行到i+h-1行的词向量矩阵,bi表示偏置,函数f是激活函数,通常使用ReLU函数。
当编译错误信息经过卷积相关操作后,最终可以得到一个n-h+1维的向量y,如下公式(6)所示。
yi=[y1,y2,y3,…,yn-h+1] (6),
其中,yi为卷积操作后的局部特征向量。
(3)池化和连接层。
卷积层针对文本矩阵进行局部特征提取,在池化层对文本特征进一步进行提取。池化一般分为最大池化和平均池化,通常采用最大池化,从卷积层输出的特征向量中提取处最大值来代表最重要的特征,最大池化得到一个标量,将相同卷积核卷积池化后的标量组合得到这个窗口大小的特征向量,最后将所有窗口下的特征向量进行连接,组成一个完整的特征向量,作为编译错误信息文本的最终特征向量进行编译错误信息聚类。
本文采用最大池化操作处理卷积层计算所得到的若干特征向量,在卷积层中得到的若干特征向量如公式(6)所示,使用最大池化处理提取yi中的最大值,pi代表卷积层池化结果,表达式为:
pi=max(yi)=max{y1,y2,…yi} (7)
在池化结束后设置全连接层。假设全连接层有m个神经元,经过ReLU激活函数之后,可以得到固定大小的向量s,即编译错误信息文本特征向量。向量s的计算公式如下:
s=ReLU(wipi+bi) (8)
其中,pi表示款式文本特征信息在池化层的输出,wi表示对应的权重,bi表示对应的偏置。
下面通过实验对比对本发明一种基于卷积神经网络的程序编译错误信息特征提取方法进行进一步详细说明。
本发明一种基于卷积神经网络的程序编译错误信息特征提取方法,采用K-means对本发明方法进行实验结果验证,引入准确率和召回率的综合指标F1-Score值验证模型结果的有效性。其具体结果对比表如表1所示,对比图如图5所示。
F1-Score值,准确率和召回率的综合指标。
表1结果对比表(单位:%)
下面通过具体的实施例对本发明一种基于卷积神经网络的程序编译错误信息特征提取方法进行进一步详细说明。
实施例
选取了151名学生《面向对象程序设计课程》学习期间所提交的java编程作业,组编写Java代码的短片段所遇到的相关错误提示。将Java编译错误信息分为三类,分别为语法错误、语义错误和逻辑错误。语法错误是指程序中单词的拼写,标点和顺序等错误。语义错误是处理代码的含义,是由错误的编程语言解释方式导致的错误。这些类型的错误大多数是Java和类似语言所特有的,但是比语法错误更抽象。逻辑错误一般是指编程过程中发生导致偏离程序本身意思的错误,程序可以通过编译并成功运行,但是运行结果与期望值不符。编译错误信息语料库中有错误信息600条,其中训练集文本数480条,测试集文本数120条。
如图1和图5所示,本发明方法提出的word2vec和CNN相结合的程序编译错误信息特征提取的方法优于单一的特征提取方法。
本文提出了一种基于word2vec模型结合卷积神经网络(Convolutional NeuralNetworks,CNN)对编译错误信息进行特征提取的方法,首先利用word2vec工具中的skip-gram模型以词向量的形式表示编译错误信息,然后利用CNN神经网络完整的表征编译错误信息特征向量。有效的从可变长度的编译错误信息中学习固定长度的特征表示。最后使用K-means聚类算法进行实验结果的验证。结果表示,该特征提取方法在编译错误信息中有显著的效果。

Claims (6)

1.一种基于卷积神经网络的程序编译错误信息特征提取方法,其特征在于,具体按照如下步骤进行;
步骤1:构建Word2Vec的词向量提取模型;
步骤1.1:向Word2Vec中的Skip-gram模型的输入层输入编译错误信息文本数据集,在投影层进行取词,构造编译错误信息词典并统计词频;
步骤1.2:在输出层构造树形结构,生成结点并初始化各非叶节点的中间向量和叶节点的词向量;
步骤1.3:训练中间向量和词向量;得到训练后的中间向量和词向量;
步骤2:构建卷积神经网络编译错误信息的表示模型;
步骤2.1:将训练后的中间向量和词向量输入到卷积神经网络输入层;在卷积层对文本矩阵进行局部的文本特征的提取;卷积核的宽度的选取与词向量的维度保持一致;得到一个输出的特征向量如下公式(6)n-h+1维的向量yi
yi=[y1,y2,y3,…,yn-h+1] (6),
其中,yi为卷积操作后的局部特征向量;
步骤2.2:在池化层对文本特征进行进一步进行提取,从卷积层输出的特征向量中提取最大值来代表出现次数最多的特征;在池化结束后设置全连接层,得到编译错误信息文本特征向量。
2.根据权利要求1所述的一种基于卷积神经网络的程序编译错误信息特征提取方法,其特征在于,步骤1.1中,在投影层进行取词,采用的是分词-滑动窗口的方式。
3.根据权利要求2所述的一种基于卷积神经网络的程序编译错误信息特征提取方法,其特征在于,步骤1.1中,构造编译错误信息词典并统计词频具体为:
使用TF-IDF算法统计词频,构造词典,
其中TF为词频,即一个词在这篇文本中出现的频率;IDF为逆文档频率,即一个词在所有文本中出现的频率倒数;
将式(2),(3)相乘,文本特征词权重fTF-IDF=TF×IDF。
4.根据权利要求3所述的一种基于卷积神经网络的程序编译错误信息特征提取方法,其特征在于,步骤1.2中,所述树形结构是基于Hierarchical Softmax模型来构造的。
5.根据权利要求1所述的一种基于卷积神经网络的程序编译错误信息特征提取方法,其特征在于,步骤2.1中,所述文本矩阵如下公式(4):其维度为m×n,其中,每个词是由一个n维的词向量所进行表示;
其中,Di为编译错误信息文本矩阵。
6.根据权利要求1所述的一种基于卷积神经网络的程序编译错误信息特征提取方法,其特征在于,步骤2.2中,特征向量的计算如下公式(8):
s=ReLU(wipi+bi) (8),
其中,s为特征向量,pi为款式文本特征信息在池化层的输出,wi为对应的权重,bi为对应的偏置。
CN202011043236.5A 2020-09-28 2020-09-28 一种基于卷积神经网络的程序编译错误信息特征提取方法 Active CN112149405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011043236.5A CN112149405B (zh) 2020-09-28 2020-09-28 一种基于卷积神经网络的程序编译错误信息特征提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011043236.5A CN112149405B (zh) 2020-09-28 2020-09-28 一种基于卷积神经网络的程序编译错误信息特征提取方法

Publications (2)

Publication Number Publication Date
CN112149405A CN112149405A (zh) 2020-12-29
CN112149405B true CN112149405B (zh) 2023-10-10

Family

ID=73895035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011043236.5A Active CN112149405B (zh) 2020-09-28 2020-09-28 一种基于卷积神经网络的程序编译错误信息特征提取方法

Country Status (1)

Country Link
CN (1) CN112149405B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116975863A (zh) * 2023-07-10 2023-10-31 福州大学 基于卷积神经网络的恶意代码检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104809069A (zh) * 2015-05-11 2015-07-29 中国电力科学研究院 一种基于集成神经网络的源代码漏洞检测方法
CN108664269A (zh) * 2018-05-14 2018-10-16 北京理工大学 一种基于深度学习的特征依恋代码异味检测方法
CN109299462A (zh) * 2018-09-20 2019-02-01 武汉理工大学 基于多维卷积特征的短文本相似度计算方法
KR20200071413A (ko) * 2018-12-11 2020-06-19 한국전자통신연구원 학습용 데이터 생성 장치, 소스 코드 오류 분석 장치 및 방법
KR102131423B1 (ko) * 2019-02-14 2020-07-08 (주)메인라인 문서의 자동 컴파일 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104809069A (zh) * 2015-05-11 2015-07-29 中国电力科学研究院 一种基于集成神经网络的源代码漏洞检测方法
CN108664269A (zh) * 2018-05-14 2018-10-16 北京理工大学 一种基于深度学习的特征依恋代码异味检测方法
CN109299462A (zh) * 2018-09-20 2019-02-01 武汉理工大学 基于多维卷积特征的短文本相似度计算方法
KR20200071413A (ko) * 2018-12-11 2020-06-19 한국전자통신연구원 학습용 데이터 생성 장치, 소스 코드 오류 분석 장치 및 방법
KR102131423B1 (ko) * 2019-02-14 2020-07-08 (주)메인라인 문서의 자동 컴파일 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DeepDelta: Learning to Repair Compilation Errors;Ali Mesbah等;《proceedings of the 2019 27th ACM joint meeting on European Software Engineering Conference and Symposium on the Foundations of software engineering》;第925-936页 *

Also Published As

Publication number Publication date
CN112149405A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN109840287B (zh) 一种基于神经网络的跨模态信息检索方法和装置
CN109635124B (zh) 一种结合背景知识的远程监督关系抽取方法
CN110222163B (zh) 一种融合cnn与双向lstm的智能问答方法及***
CN107943784B (zh) 基于生成对抗网络的关系抽取方法
CN111831789B (zh) 一种基于多层语义特征提取结构的问答文本匹配方法
CN110413986A (zh) 一种改进词向量模型的文本聚类多文档自动摘要方法及***
CN109189925A (zh) 基于点互信息的词向量模型和基于cnn的文本分类方法
CN111832282B (zh) 融合外部知识的bert模型的微调方法、装置及计算机设备
CN109977220B (zh) 一种基于关键句和关键字的反向生成摘要的方法
CN111125333B (zh) 一种基于表示学习与多层覆盖机制的生成式知识问答方法
CN110222338B (zh) 一种机构名实体识别方法
CN111680488A (zh) 基于知识图谱多视角信息的跨语言实体对齐方法
CN109918507B (zh) 一种基于TextCNN改进的文本分类方法
CN109145946B (zh) 一种智能图像识别和描述方法
CN115310448A (zh) 一种基于bert和字词向量结合的中文命名实体识别方法
CN114020906A (zh) 基于孪生神经网络的中文医疗文本信息匹配方法及***
CN112818113A (zh) 一种基于异构图网络的文本自动摘要方法
CN114969304A (zh) 基于要素图注意力的案件舆情多文档生成式摘要方法
CN108846033B (zh) 特定领域词汇的发现及分类器训练方法和装置
CN111144410A (zh) 一种跨模态的图像语义提取方法、***、设备及介质
CN114896377A (zh) 一种基于知识图谱的答案获取方法
CN112541364A (zh) 融合多层次语言特征知识的汉越神经机器翻译的方法
CN113065349A (zh) 基于条件随机场的命名实体识别方法
CN112149405B (zh) 一种基于卷积神经网络的程序编译错误信息特征提取方法
CN113806543B (zh) 一种基于残差跳跃连接的门控循环单元的文本分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant