以文字嵌入到文档相似性对软件中的信息检索的改进.docxVIP

以文字嵌入到文档相似性对软件中的信息检索的改进.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程中从单词嵌入到文档相似度来优化信息检索 摘要 软件工程中,信息检索技术的应用正在因为词汇空缺变得困难,查询的问题,通常用自然语言(例如英语)来表达;检索到的文档,通常用代码(例如编程语言)来表达。往往是这些情况:bug 和功能定位,公共问答系统,或者专业的软件项目技术人员和非技术的股东之间的交流。在本文中,我们提出通过将自然语言的语句和代码片断构建成在一个共享的表示空间内有意义的向量来弥合词汇空缺。在提出的架构中,单词嵌入首先面向API文档,教程和参考文档,然后汇总来评估文档之间的语义相似性。实证评价表明学习了向量空间嵌入有助于改进先前探讨的bug定位工作和新定义的将API文件和计算机编程问题关联在一起的工作。 CCS概念 信息系统-多语言和跨语言检索-相似度检测;排序学习; 软件及工程-软件测试和调试; 计算方法- 词汇语义学; 关键词 单词嵌入, 跳过-gram模型, 本地化错误, 错误报告, API 文檔 1.简介和动机 最近,文本检索方法已被应用到支持超过20软件工程(SE)的任务[11,24]。在这些方法中,用户的问题和代码之间的词汇空缺[27]通常被视为严重的障碍。 在特征定位和错误定位中[25],举例来说,信息可能需要被表述成一个用自然语言的写成的问题报告,而要检索的功能(functions 函数?)和文件大都包含代码。在自动代码搜索[27]中,有用户问题的高层意图和底层实现细节之间的不匹配。在社区问答系统(CQA),问题和答案可以用自然语言,代码或两者的组合表达[6,34,40]。因此,标准的基于向量空间模型(VSM)的信息检索(IR)的方法被用户问题中使用的自然语言与在编程语言之间中使用的源代码 之间的词法间隙所困扰[32]。 甚至当问题和源档案使用自然语言和编程语言( 问题表述中有代码 和 代码片段中有自然语言的注释)混合的表述,IR系统由于显著的语言不匹配发挥不出性能。图1和图2描述了在bug定位工作中语言失配的例子。 图1显示在Eclipse项目中的一个bug 报告,作者报告了一个当视图最小化时图标异常行为。相应地,错误报告中包含相关的关键字,如view, icon,以及minimize。该bug稍后通过更改源文件PartServiceImpl.java[2] 被排除,这个原文件中包含管理视图的行为定的代码。但是,代码不包含任何的bug报告中发现的关键字。相反,代码中包含关键字,如stack(堆栈)和placeholder(占位符)。总体而言,因为代码和错误报告没有任何共同的单词,他们在信息检索中使用的标准tf.idf 向量空间模型中的余弦相似度将会是0 。然而,这两组关键字通过使用分布式说可以被自动地确定在语义上是相关的 [12]。根据该语言假说,即出现在同一语境的单词倾向于具有相似的语义含义。图3,图4和图5显示3种在同一语境中关键字同时出现在bug报告和源代码的文件。图3显示了Eclipse用户向导中介绍最小化视图的片段。在该片段中,两种类型的关键字一起出现在同一句子。这在图4中进一步说明,图4展示了一段插件开发指南的片段,在图5中,包含API文档的片段。事实上,在整个用户指南,开发人员指南和API文档中,view和placeholder频频同样的语境中出现。 分布式假说已为一些使用单词共现来构建单词的向量表示形式(即单词嵌入)的方法提供了基础,使得具有类似含义的单词具有类似向量。 受在自然语言处理中单词表示为的无监督学习的成功的启发,我们提出一个通用的方法,在这个方法中自然语言的语句和代码片段被构建成在低维共享表示空间中有意义的向量。 当应用在如图3至5所示的语义,该方法有望自动确定关键字view和 placeholder 在语义上是相关的,因此相应的错误报告和源代码应该有一个非零的语义相似性。 虽然单词嵌入已被证明能够帮助各种自然语言处理任务[3,8],就我们所知,他们没有被用来支持在软件工程中的文本检索。最近的一些方法探讨了挖掘语义相关的软件术语。 Tian等人。[41,42] 介绍SEWordSim,对堆栈的溢出问题和解答特定的软件单词相似度数据库。 Howard等人[13]。 和Yang等人。 [45] 推断代码中语义相关的词。Wang等人。从FreeCode标签中挖掘单词相似点 [44]。然而,这些先前提出的单词相似度的建议,并没有把它们扩展到计算文档之间的相似性。在本文中,我们把单词嵌入合并到由Mihalcea等人提出的文本到文本的文本相似性的修改版本。 [28],使得单词嵌入可用于计算SE查询及其侯选答案之间的语义相似性。 本文的主要贡献包括: 改编skip-gram模型[30]在低维共享向量空间学习文本和代码的单词嵌入; 利用单词嵌入估算查询和文档之间的语义相似度的方法

文档评论(0)

汪汪队 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档