CN103793373B - 一种基于句法的跟踪关系恢复方法 - Google Patents

一种基于句法的跟踪关系恢复方法 Download PDF

Info

Publication number
CN103793373B
CN103793373B CN201410032139.4A CN201410032139A CN103793373B CN 103793373 B CN103793373 B CN 103793373B CN 201410032139 A CN201410032139 A CN 201410032139A CN 103793373 B CN103793373 B CN 103793373B
Authority
CN
China
Prior art keywords
product
sentence
tracking
speech
clustering
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.)
Expired - Fee Related
Application number
CN201410032139.4A
Other languages
English (en)
Other versions
CN103793373A (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.)
Fujian University of Technology
Original Assignee
Fujian University of Technology
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 Fujian University of Technology filed Critical Fujian University of Technology
Priority to CN201410032139.4A priority Critical patent/CN103793373B/zh
Publication of CN103793373A publication Critical patent/CN103793373A/zh
Application granted granted Critical
Publication of CN103793373B publication Critical patent/CN103793373B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Machine Translation (AREA)

Abstract

一种基于句法的跟踪关系恢复方法,包括如下步骤:句子切分,词性标注,块分析,降噪,聚类,聚类簇映射。本发明利用句法分析技术从制品中抽取出最可能刻画自身特征的标引词,再通过语义聚类恢复不同软件制品之间的跟踪关系,解决了传统的需求跟踪维护方法容易受制品中噪音的影响、代价高和可扩展性差等问题。

Description

一种基于句法的跟踪关系恢复方法
【技术领域】
本发明属于计算机软件领域,具体是指一种基于句法的跟踪关系恢复方法。
【背景技术】
软件需求跟踪是“一种描述和跟踪整个需求生命周期(包括前向和后向)的能力”。软件需求跟踪可以帮助人们在高层的特征或功能和低层的软件制品之间建立映射关系,这将大大地提高开发人员在维护代码时的效率。一旦高层的需求发生变化,开发人员便可以通过这种映射关系快速地找到与之相对的一系列软件制品,从而保证了高层需求与不同软件制品之间的一致性。
软件需求跟踪辅助软件开发生命周期中很多活动的执行,它不仅可以作为确认和验证系统功能的活动的一种方式,挖掘代码变更背后蕴含的设计决策,帮助开发人员对系统组件进行复用,最后它还可以作为变更管理的重要依据。Aybüke Aurum等学者提出“若在软件开发生命周期中忽略了需求跟踪,或使用了不完整、不一致的需求跟踪关系,将导致系统质量的下降和反复修改,从而提高了系统开发的时间和成本”。对于类如太空软件、核电站管理系统、道路调度系统等安全关键系统而言,项目团队必须通过危险与可操作分析、失效模型效果分析或故障树分析等分析方法识别潜在的不安全因素及其对系统可能造成的不良影响。风险分析的结果将会产生一组系统级需求规约文档,只有当需求规约文档需要与项目开发过程中产生的各种制品建立跟踪关系,才能真正消除或减少故障发生的概率。
尽管软件需求跟踪的重要性已被广泛认识,但是恢复和维护需求跟踪关系需要花费大量的精力和时间,这使得软件机构很难下定决心在内部管理中建立并维护软件需求追踪。为了判断不同制品之间是否存在跟踪关系,软件工程师需要阅读并理解制品的内容。由于需要建立跟踪关系的制品很可能处于不同的抽象层次,它们的格式和内容通常会存在巨大的差异。因此,传统的以数据为中心的匹配方式并不能很好地发挥作用。同时,随着软件系统的演化,软件制品会不断地发生变更,从而制品间的需求跟踪关系也需要进行更新。
考虑到需求跟踪的重要性以及复杂性,众多研究机构和软件组织将其整合入各种标准和指导原则并从不同方面进行研究。由美国美国国家航空航天局出资,多位来自美国和欧洲学术界、工业界和政府的著名学者和研究人员组建了卓越软件跟踪中心(Center ofExcellence for Software Traceability,CoEST),旨在解决实施软件需求跟踪时所面临的挑战。美国国家科学基金会特别资助一个研论会来讨论需求跟踪所遇到的一系列重大挑战(Grand Challenges of Traceability,GCT)。除此之外,美国国家科学基金会还提供了300万美元用于帮助需求跟踪研究社区将所研究出的技术或方法服务于软件行业协会和政府团队。美国食品和药物管理局声明,软件机构在开发过程中必须使用需求跟踪分析来验证软件的所有需求都得到实现,而且确定所实现的各个方面都可以追溯到软件需求。美国联邦航空局的DO-178C标准规范要求,在开发的每个阶段“软件开发人员都必须证明设计与需求之间的可跟踪性”。道路车辆-功能安全标准ISO26262:2011用一个章节描述了需求管理和状态,例如它要求,“不同层次的安全性需求之间必须可以相互追溯”。医学设备软件验证标准ANSI/AAMI/IEC62304:2006也注明,在医学设备软件开发生命周期内,“系统需求、软件需求、软件系统测试以及在软件中实现的风险控制措施之间都可以相互跟踪”。此外,越来越多标准化组织也将其视为需求工程中一个指导性的标准过程,它不仅是CMM/CMMI2级里面的一个核心活动,也是软件开发和维护标准ISO9001中条款4.8的一个必要活动。
需求跟踪领域中最常见的信息检索模型分别是向量空间模型(Vector SpaceModel,VSM)、潜在语义索引(Latent Semantic Indexing,LSI)模型和概率模型(Probabilistic Model)。
在向量空间模型中,文档中所包含的每个标引词被视为一个向量坐标值,代表空间中的一个维度,这些标引词集合就构成了一个向量空间V。任何一个文档都可以表示为V中的一个向量,称为文档向量(Document Vector)。例如,第j个文档可以表示为Dj=(d1,j,dz,j,dm,j)T。其中,di,j表示标引词wi在文档Di中的权重,m表示向量空间的维度,即不同标引词的个数。之后,使用如下式所示的余弦公式即可以得到两个文档之间的相似度:
Similarity ( D i , D j ) = Σ k = 1 m d k , i × d k , j Σ k = 1 m d k , i 2 × Σ k = 1 m d k , j 2
虽然向量空间模型会带来存储空间的浪费,并影响运算的效率,但向量空间模型已是一种通用的文档信息表示方法,任何一种检索模型都可以利用它的概念来表示文档与标引词的关系。
潜在语义索引模型是对向量空间模型的扩展,主要用于解决向量空间模型中出现的同义词和多义词的问题。潜在语义索引模型运用统计运算的方法来发现标引词的潜用语义结构,获得文档潜在的语义概念空间结构,从而利用概念索引取代标引词索引。它通过对原文档库中的标引词-文档向量矩阵进行奇异值分解(Singular Value Decomposition,SVD),取前k个最大的奇异值及对应的奇异矢量构成一个新的矩阵来近似地表示原来文档库中的词-文档矩阵。由于新矩阵消减了词和文档之间语义关系的模糊度,降低了词语用法(同义词和多义词)所造成的影响,因而更有利于提高信息检索的精确度。
概率模型尝试使用多个随机变量之间的相互非确定性概率关系来解释信息检索的问题。它以标引词为载体,用文档与查询同时存在的概率来计算它们之间的相似度:当存在查询时,存在文档i(i=1,2,…,n,n为文档数),其相似度计算公式如下:
Similarity ( q , D i ) = Pr ( D i | q ) = Pr ( q | D i ) Pr ( D i ) Pr ( q )
其中,Di表示文档i,q表示查询。可看出文档Di与查询q的相似度等于查询q与文档Di同时出现的概率。
通过概率模型,可计算得到每个代码制品与需求文档相似度从高到低的列表。根据事先定义好的相似度阈值对该列表进行过滤之后,便可以得到需求与制品的关联矩阵。
Cleland-Huang等学者研究了层次凝聚聚类(Hierarchical AgglomerativeCluster,HAC)、K均值(K-means)和二分分裂聚类(Bisecting Divisive Cluster)在需求跟踪领域中的应用。他们发现在同一数据集上,通过不同通聚类算法所得出的跟踪关系并没有明显的区别。这一研究结果说明了在需求跟踪领域中,很可能并不存在一个具有明确优势的聚类算法,因此分析人员可以也应当根据具体上下文挑选适当的聚类算法。
Nan Niu等学者认为通过聚类可以将正确的跟踪关系聚集到高质量的聚类簇,并将错误的跟踪关系聚集到低质量的聚类簇。在排除低质量的聚类簇之后,便可提高基于信息检索的需求跟踪方法的正确性。
Anas Mahmoud等人针对现有需求跟踪方法对前端展示不够重视的情况,提出了一个通过对跟踪关系进行聚类而提高分析人员浏览效率的工具TraCter。TraCter在每次聚类迭代中都会产生7±2个聚类簇,并通过层次树的方式为分析人员提供聚类簇中的制品内容。
在之前的研究发现,通过聚类可以将软件制品划分到若干个共享相同或相似主题的分类,综合不同刻面的信息可以帮助开发人员更全面且快速地理解制品之间的关系。实验结果也表明开发人员在聚类的辅助下能够更准确地建立代码与需求之间的跟踪关系。
Xiaofan Chen等学者将聚类、正则表达式和关键词组(Key Phrases,KP)作为辅助技术应用于基于VSM的动态需求跟踪方法,通过这种组合弥补VSM自身的缺陷,进而提高了需求跟踪结果的查全率和查准率。
虽然聚类在需求跟踪领域的应用越来越广泛,但现有的大部份基于聚类的动态需求跟踪方法都着重于聚类过程和聚类结果展现,很少关注于对软件制品内基础数据(如标引词)的处理。
句法分析是自然语言处理研究中的重点和难点。为了降低分析难度,许多学者将句法分析问题分解为若干个易于处理的子问题。这其中有两个很成功的案例分别是将词性标注(Part-Of-Speech Tagging,POS Tagging)和块分析(Chunk Parsing)从句法分析中分离出来。目前词性标注和块分析对复杂文本的解析正确性都达到90%以上,为在此基础上进行进一步的句法分析打下很好的基础。
对于绝大数的语言,动词和名词都是句子中最重要的组成部份。其中,动词往往起着连接句子中其它组成部份的作用,并表达了句子的行为特征,而名词则很好地体现句子的词义信息。一般而言,句子的基本结构和意义会随着动词和名词一起得到确定。
David Shepherd等学者发现充分地利用软件制品中的自然语言信息可以显著地提高众多的软件维护工作的效率。进一步地,他们提出了一系列从代码中自动抽取“动词-直接宾语对”(Verb-Direct Object Pairs,V-DO pairs)的启发式规则。“动词-直接宾语对”之所以如此重要是基于以下假设,在命名良好的代码中,方法名必然由动词与动词短语构成,并且方法名可以很好地表达自身的特性,因此获取“动词-直接宾语对”便可以了解方法所承载的信息。
但对于非源程序形式的软件制品,这一假设并不一定成立。首先,非源程序形式的软件制品中的句子往往较长,其中通常会包含多个动词和名词,因此难于从中挖掘出最具能体现自身特性的“动词-直接宾语对”。再者,“动词-直接宾语对”通常会丢弃作为句子核心的主语,从而遗失重要的信息。因此,“动词-直接宾语对”在非源代码形式的软件制品中有效与否还是一个开放的问题。
考虑到动态需求跟踪往往涉及多种类型的软件制品之间的跟踪关系,因此有必要对“动词-直接宾语”进行扩展,使得抽取的标引词都能够较好地刻画各类软件制品的自身特征,从而提高需求跟踪方法的准确性。本发明通过句法分析从制品中抽取出最有可能刻画自身特征的名词和动词,并通过抽取出的名词和动词改进需求跟踪恢复实践。
现有的技术存在以下几点不足:
1、软件生命周期内出现的大部份软件制品都包含着大量格式化与非格式化的文本信息,因此主流的需求跟踪方法大多将软件制品视为待检索的文档,并计算不同软件制品之间的相似度。对于相似度高于一定阈值的软件制品,则认为它们之间存在跟踪关系。它的缺点在于分析过程中往往需要通过软件制品内的标引词(term)来计算相似度。如果标引词无法匹配,那么即使两个标引词描述的意义相同或者相近,最终计算得出的相似度也会很低,从而无法建立跟踪关系。
2、出于可读性的考虑,软件制品内不可避免地包含大量与自身特征无关,仅为帮助开发人员理解制品的单词或句子。当对制品内的文本进行聚类时,这些单词或句子便可能成为噪音并影响聚类结果的质量。而现有技术往往会受到此类噪音的严重影响,进而降低了需求跟踪方法的准确性。
3、现有技术往往需要分析人员输入用于匹配不同制品的关键词,但是,不同使用同一单词来描述相同概念的概率只有10%至15%。并且,一词多意和同义词的存在也影响了现有技术的有效性。
意大利莫利塞大学的Giovanni Capobianco等学者提出的基于名词的需求跟踪方法。首先,他们通过词性标注从制品中标注所有的名词,之后利用信息检索技术在名词集合中进行查找和匹配,最后再根据匹配的情况建立制品间的跟踪关系。该方法存在以下两个不足之处:动词能够有效地表达句子的行为特征。丢失行为特征可能导致句子语义信息的损失;当缺乏块分析的支持时,词性标注识别名词的正确性会受到较大的影响。
有鉴于此,本发明人针对现有技术的缺陷深入研究,遂有本案产生。
【发明内容】
本发明所要解决的技术问题在于提供一种基于句法分析的跟踪关系恢复方法,该方法利用句法分析技术从制品中抽取出最可能刻画自身特征的标引词,再通过语义聚类恢复不同软件制品之间的跟踪关系,解决了传统的需求跟踪维护方法容易受制品中噪音的影响、代价高和可扩展性差等问题。
本发明是这样实现的:
一种基于句法的跟踪关系恢复方法,包括如下步骤:
第一步骤:句子切分:
首先将制品中所有的文本切分为句子块,根据跟踪关系的粒度对源代码进行文档化的预处理,将其分割为基本的文档单位后再与其他文档进行后续的分析操作;若关注的是制品与方法的跟踪关系,则将源代码分割为方法的组合,再将方法所拥有的注释作为独立句子附加到各个方法的结尾,并丢弃成员变量以及所有不属于任何方法的注释;若关注的是制品与类的跟踪关系,则将源代码分割为类的组合,并将类所拥有的注释附加到各个类的结尾;
第二步骤:词性标注:
得到切分后句子之后,通过词性标注来识别出句子中各个标引词的词性,在词性标注过程中,只为句子中的每个标引词附加上词性信息,而不会对句子本身作任何的修改;
第三步骤:块分析:
对句子进行块分析,利用句子的上下文来修正词性标注过程中可能引入的错误;通过块分析,将句子分割为互不交叉的若干个词组;对标引词自身的词性与其所属词组块的词性进行交集运算,仅保留两种词性都为动词或名词的标引词作为之后运算的输入;
第四步骤:降噪:
首先从标引词中去除常见的停用词,对于来自源代码的标引词,还会去除源代码所用编程语言的保留字,再对余下的标引词进行切词和词干化;
第五步骤:聚类
得到制品中的标引词集合之后,通过对标引词进行语义聚类,并根据聚类结果将制品进行分组,与某个制品存在跟踪关系的其它制品数量一般都在100以下;采用Carrot2,一个开源的查询结果聚类引擎,所提供的Lingo算法来执行语义聚类;
第六步骤:聚类簇映射
当参与分析的制品类型只有两种时,通过聚类结果便可为那些在同一聚类簇且属于不同类型的制品建立跟踪关系;当参与分析的制品类型多于两种时,通过映射算法为在同一聚类簇且属于不同类型的制品建立跟踪关系。
进一步地,所述步骤六中的映射算法:先从所有制品A中随机选出一种类型作为基准类型,将属于该类型的所有制品视为基准制品Astd,其他制品归为待分析制品Aung,对于Aung中的每个制品,算法通过语义聚类找出所有与它处于同一聚类簇的基准制品,并建立它与聚类簇中的基准制品的跟踪关系。在此之后,可根据待分析制品与基准制品之间跟踪关系的存在与否,建立不同待分析制品之间的跟踪关系。
本发明的优点在于:1、获取的信息更加全面和完整。除了制品中的名词外,还保留了表达制品行为特征的动词。2、使用的分析技术更加系统。除了使用词性标注识别出句子中各个标引词的词性,还加入了块分析技术来弥补词性标注的不足,从而提高了方法的有效性。3、结合词性标注和块分析技术从软件制品中识别出最有可能刻画制品特征的部份动词与名词,有效地减少噪音的影响,从而提高需求跟踪方法的有效性。4、提出的映射算法能够利用语义关系,自动建立处于同一聚类簇的制品之间的跟踪关系。
【附图说明】
下面参照附图结合实施例对本发明作进一步的描述。
图1是本发明的流程图。
【具体实施方式】
如图1所示,一种基于句法的跟踪关系恢复方法,包括如下步骤:
第一步骤:句子切分:
首先将制品中所有的文本切分为句子块。需要说明的是,源程序中的文本与其它软件制品中的文本存在较大的差异。除了注释,源程序通常并不存在完整的句子。因此,根据跟踪关系的粒度对源代码进行文档化的预处理,将其分割为基本的文档单位(以方法或类为单位)后再与其他文档进行后续的分析操作。若开发人员关注的是制品与方法的跟踪关系,则将源代码分割为方法的组合,再将方法所拥有的注释作为独立句子附加到各个方法的结尾,并丢弃成员变量以及所有不属于任何方法的注释(例如类和成员变量的注释)。若开发人员关注的是制品与类的跟踪关系,则将源代码分割为类的组合,并将类所拥有的注释附加到各个类的结尾。
第二步骤:词性标注:
得到切分后句子之后,需要通过词性标注来识别出句子中各个标引词的词性(如动词、形容词等)。因为同一标引词可能同时对应多个词性,因此仅根据标引词自身的信息,可能会产生错误的标注结果。另外,考虑到任何对标引词的预处理(如原型化或词干化)都可能改变它们原本应具有的词性,因此在词性标注过程中,只为句子中的每个标引词附加上词性信息,而不会对句子本身作任何的修改。
以句子“Inserting a node into a specified position of a linked list”为例,经过词性标注之后,它会被标注为“Inserting<vbg>a<dt>node<nn>into<in>a<dt>specified<vbn>position<nn>of<in>a<dt>linked<vbn>list<nn>”。显然,由于遗漏了标引词之间的关系,“specified”和“linked”被错误地标识为动词过去式。
第三步骤:块分析:
为了弥补词性标注的不足,对句子进行块分析,从而利用句子的上下文来修正词性标注过程中可能引入的错误。同时,上一阶段得到的词性标注结果也有助于减少块分析在处理存在句法歧义的句子时可能引入的错误。
通过块分析,将句子分割为互不交叉的若干个词组。以句子“Inserting a nodeinto a specified position of a linked list”为例,它将会被切分为“Inserting<vp>[a node]<np>into<pp>[a specified position]<np>of<pp>[a linked list]<np>”。其中,词组的左边界标识为‘[’,词组的右边界标识为‘]’。可以看出,“specified”与“aposition”被识别为同一个名词块。根据词性变化规则,“specified”便可自动正确地被识别为形容词。
考虑到软件制品中的句子往往会混杂着大量专有名词或术语,从而可能影响块分析的正确性。更为严重的是,制品中的句子结构很可能不符合语法规则。因此,如果严格地套用词性变化规可能会引入大量的标识错误。例如在ETour项目中id号为“45”的制品中所包含的文本内容:“Use case name VISUALIZZASTATISTICHEPERSONALI Viewingstatistics for Point Of Restaurants Partecipating Actor initializationOperator Point Of Restaurants…”。对文本进行分析可发现,很难通过词性变化规则标注出该句中各个标引词的词性。
对标引词自身的词性与其所属词组块的词性进行交集运算,仅保留两种词性都为动词或名词的标引词作为之后运算的输入。例如对于句子“Inserting a node into aspecified position of a linked list”而言,“Inserting”在词性标注和块分析时都会被识别为动词,“node”、“position”和“list”则在词性标注和块分析时都会被识别为名词,而其它标引词则无法满足同时被识别为动词或名词的这一条件而被过滤。所以“Insertinga node into a specified position of a linked list”在进行词性标注和块分析之后,仅会保留下单词集合“Inserting node position list”。对句子进行分析后可以看出,经过这两阶段的处理可以大量地去除句子中存在的噪声,并保留下关键单词。例如“Inserting”表明其动作行为,“node”表明动作的对象,而“position”和“list”在一定程度上地体现了节点操作的特殊约束。
第四步骤:降噪:
经过词性标注和块分析之后,便获取到一系列可能表达制品特征的标引词。为了进一步减少标引词中存在的噪声,需要对标引词进行降噪处理。在这一阶段,首先从标引词中去除常见的停用词。对于来自源代码的标引词,我们还会去除源代码所用编程语言的保留字。在此之后,再对余下的标引词进行切词和词干化。
需要说明的是,降噪必须在句法分析之后进行。这是因为降噪处理可能会破坏句子原有的结构,进而影响句法分析的效果。例如,若将降噪操作放在句法分析之前进行,句子“Inserting a node into a specified position of a linked list”中的“specified”和“linked”将被还原为“specify”和“link”。在后续的句法分析中,这两个标引词将会分别被识别为动词和名词并得以保留,进而可能影响方法的有效性。
第五步骤:聚类:
得到制品中的标引词集合之后,便可以通过对标引词进行语义聚类,并根据聚类结果将制品进行分组。考虑到需求跟踪方法往往需要恢复大量制品间的跟踪关系,与此同时,与某个制品存在跟踪关系的其它制品数量一般都在100以下。因此,我们采用Carrot2(一个开源的查询结果聚类引擎)所提供的Lingo算法来执行语义聚类。Lingo算法是基于奇异值分解的索引结果聚类算法。相对其他聚类算法,Lingo算法有以下两个优点:首先,它生成的聚类簇尺寸较小。再者,它的运算速度更快,适合需要进行大量聚类运算的场景。
第六步骤:聚类簇映射
当参与分析的制品类型只有两种时,通过聚类结果便可为那些在同一聚类簇且属于不同类型的制品建立跟踪关系。但当参与分析的制品类型多于两种时,我们需要通过映射算法为他们建立跟踪关系。
映射算法先从所有制品(A)中随机选出一种类型作为基准类型,将属于该类型的所有制品视为基准制品(Astd),其他制品归为待分析制品(Aung)(第2-3行)。对于Aung中的每个制品,算法通过语义聚类找出所有与它处于同一聚类簇的基准制品,并建立它与聚类簇中的基准制品的跟踪关系(第4-9行)。得到所有待分析制品与基准制品的跟踪关系之后,便可以为那些与同一基准制品存在跟踪关系的制品建立跟踪关系(第10-17行)。
1:function MappingArtificates(A)
2:Aung=[],Astd=[]
3:Astd=randClassify(A),Aung=A-Astd
4:for(i=0;i<Aung.size;i++)do
5:clusters=clustering(Aung[i],Astd)
6:for(j=0;j<clusters.size;j++)do
7:build traceability T(Aung[i],clusters[j])
8:end for
9:end for
10:for(i=0;i<Astd.size;i++)do
11:for(j=0;j<Aung.size;j++)do
12:if(existTraceability(Astd[i],Aung[j])then
13:group(Astd[i],Aung[j])
14:end if
15:end for
16:end for
17:end function
本发明的有益效果在于:1、获取的信息更加全面和完整。除了制品中的名词外,还保留了表达制品行为特征的动词。2、使用的分析技术更加系统。除了使用词性标注识别出句子中各个标引词的词性,还加入了块分析技术来弥补词性标注的不足,从而提高了方法的有效性。3、结合词性标注和块分析技术从软件制品中识别出最有可能刻画制品特征的部份动词与名词,有效地减少噪音的影响,从而提高需求跟踪方法的有效性。4、提出的映射算法能够利用语义关系,自动建立处于同一聚类簇的制品之间的跟踪关系。
以上所述仅为本发明的较佳实施用例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于句法的跟踪关系恢复方法,其特征在于:包括如下步骤:
第一步骤:句子切分:
首先将制品中所有的文本切分为句子块,根据跟踪关系的粒度对源代码进行文档化的预处理,将其分割为基本的文档单位后再与其他文档进行后续的分析操作;若关注的是制品与方法的跟踪关系,则将源代码分割为方法的组合,再将方法所拥有的注释作为独立句子附加到各个方法的结尾,并丢弃成员变量以及所有不属于任何方法的注释;若关注的是制品与类的跟踪关系,则将源代码分割为类的组合,并将类所拥有的注释附加到各个类的结尾;
第二步骤:词性标注:
得到切分后句子之后,通过词性标注来识别出句子中各个标引词的词性,在词性标注过程中,只为句子中的每个标引词附加上词性信息,而不会对句子本身作任何的修改;
第三步骤:块分析:
对句子进行块分析,利用句子的上下文来修正词性标注过程中引入的错误;通过块分析,将句子分割为互不交叉的多个词组;对标引词自身的词性与其所属词组块的词性进行交集运算,仅保留两种词性都为动词或名词的标引词作为之后运算的输入;
第四步骤:降噪:
首先从标引词中去除常见的停用词,对于来自源代码的标引词,还会去除源代码所用编程语言的保留字,再对余下的标引词进行切词和词干化;
第五步骤:聚类
得到制品中的标引词集合之后,通过对标引词进行语义聚类,并根据聚类结果将制品进行分组,与某个制品存在跟踪关系的其它制品数量在100以下;采用Carrot2,一个开源的查询结果聚类引擎,所提供的Lingo算法来执行语义聚类;
第六步骤:聚类簇映射
当参与分析的制品类型只有两种时,通过聚类结果便可为那些在同一聚类簇且属于不同类型的制品建立跟踪关系;当参与分析的制品类型多于两种时,通过映射算法为在同一聚类簇且属于不同类型的制品建立跟踪关系。
2.如权利要求1所述的一种基于句法的跟踪关系恢复方法,其特征在于:所述步骤六中的映射算法:先从所有制品A中随机选出一种类型作为基准类型,将属于该类型的所有制品视为基准制品Astd,其他制品归为待分析制品Aung,对于Aung中的每个制品,算法通过语义聚类找出所有与它处于同一聚类簇的基准制品,并建立它与聚类簇中的基准制品之间的跟踪关系;在此之后,可根据待分析制品与基准制品之间跟踪关系的存在与否,建立不同待分析制品之间的跟踪关系。
CN201410032139.4A 2014-01-23 2014-01-23 一种基于句法的跟踪关系恢复方法 Expired - Fee Related CN103793373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410032139.4A CN103793373B (zh) 2014-01-23 2014-01-23 一种基于句法的跟踪关系恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410032139.4A CN103793373B (zh) 2014-01-23 2014-01-23 一种基于句法的跟踪关系恢复方法

Publications (2)

Publication Number Publication Date
CN103793373A CN103793373A (zh) 2014-05-14
CN103793373B true CN103793373B (zh) 2017-02-01

Family

ID=50669058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410032139.4A Expired - Fee Related CN103793373B (zh) 2014-01-23 2014-01-23 一种基于句法的跟踪关系恢复方法

Country Status (1)

Country Link
CN (1) CN103793373B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592541B2 (en) * 2015-05-29 2020-03-17 Intel Corporation Technologies for dynamic automated content discovery
CN106708800A (zh) * 2016-11-22 2017-05-24 彭炜明 一种基于句本位语法构建汉语树库的形式化方案
CN108108345B (zh) * 2016-11-25 2021-08-10 南京尚网网络科技有限公司 用于确定新闻主题的方法与设备
CN110222654A (zh) * 2019-06-10 2019-09-10 北京百度网讯科技有限公司 文本分割方法、装置、设备及存储介质
CN116501295A (zh) * 2023-06-27 2023-07-28 成都九洲电子信息系统股份有限公司 一种软件研发阶段矢量化需求分析系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847097A (zh) * 2010-03-30 2010-09-29 中国科学院软件研究所 一种需求项与工作产品间跟踪关系维护方法
JP2013008237A (ja) * 2011-06-24 2013-01-10 Fujitsu Ltd 関連情報抽出プログラム、関連情報抽出方法及び関連情報抽出装置
CN103136612A (zh) * 2011-11-29 2013-06-05 神州数码信息系统有限公司 一种零编码构件化流程业务的开发方法
CN103235729A (zh) * 2013-04-18 2013-08-07 南京大学 一种基于代码变更的软件模型同步方法
CN103246948A (zh) * 2012-02-14 2013-08-14 华为技术有限公司 需求管理的方法及装置
CN103279347A (zh) * 2013-05-28 2013-09-04 复旦大学 一种通用的软件产品线领域模型与应用模型的同步方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847097A (zh) * 2010-03-30 2010-09-29 中国科学院软件研究所 一种需求项与工作产品间跟踪关系维护方法
JP2013008237A (ja) * 2011-06-24 2013-01-10 Fujitsu Ltd 関連情報抽出プログラム、関連情報抽出方法及び関連情報抽出装置
CN103136612A (zh) * 2011-11-29 2013-06-05 神州数码信息系统有限公司 一种零编码构件化流程业务的开发方法
CN103246948A (zh) * 2012-02-14 2013-08-14 华为技术有限公司 需求管理的方法及装置
CN103235729A (zh) * 2013-04-18 2013-08-07 南京大学 一种基于代码变更的软件模型同步方法
CN103279347A (zh) * 2013-05-28 2013-09-04 复旦大学 一种通用的软件产品线领域模型与应用模型的同步方法

Also Published As

Publication number Publication date
CN103793373A (zh) 2014-05-14

Similar Documents

Publication Publication Date Title
Barros et al. NATSUM: Narrative abstractive summarization through cross-document timeline generation
CN101908042B (zh) 一种双语联合语义角色的标注方法
CN103793373B (zh) 一种基于句法的跟踪关系恢复方法
Xu et al. Extracting domain knowledge elements of construction safety management: Rule-based approach using Chinese natural language processing
Schmitt et al. An unsupervised joint system for text generation from knowledge graphs and semantic parsing
CN106066866A (zh) 一种英文文献关键短语自动抽取方法与系统
CN103761264B (zh) 基于商品评论文档集的概念层次创建方法
CN108665141B (zh) 一种从突发事件预案中自动抽取应急响应流程模型的方法
JP5907393B2 (ja) 複雑述語テンプレート収集装置、及びそのためのコンピュータプログラム
Chen Extraction and visualization of traceability relationships between documents and source code
KR102634624B1 (ko) 플랜트 절차서의 프로세스 모델 생성방법 및 그의 시스템
CN102779119B (zh) 一种抽取关键词的方法及装置
CN104537280A (zh) 基于文本关系相似性的蛋白质交互关系识别方法
Peters et al. Automatic generation of glossaries for process modelling support
Geiß Latent semantic sentence clustering for multi-document summarization
Yanti et al. Application of named entity recognition via Twitter on SpaCy in Indonesian (case study: Power failure in the Special Region of Yogyakarta)
CN104156351A (zh) 一种基于纳税人年报的纳税人税务交易行为识别方法
Alhindawi et al. A Topic Modeling Based Solution for Confirming Software Documentation Quality
Hlad et al. Leveraging relational concept analysis for automated feature location in software product lines
CN101246473B (zh) 一种分词系统的评测方法和一种分词评测系统
Shilliday et al. Data for a worldwide ICEWS and ongoing research
Shao et al. An improved approach to the recovery of traceability links between requirement documents and source codes based on latent semantic indexing
Sathapornrungkij et al. Construction of Thai WordNet lexical database from machine readable dictionaries
Christopher et al. SCHEMADB: Structures in relational datasets
CN105389377A (zh) 基于主题挖掘的事件团获取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170201

Termination date: 20190123