Page 43 - 《软件学报》2021年第11期
P. 43

陶传奇  等:编程现场上下文深度感知的代码行推荐                                                        3369


                 之后,和训练中使用的数据具有统一的形式.然后就可以作为已经训练好的循环神经网络编码-解码模型的输
                 入,并利用集束搜索算法,得到初次排序后的 N 个代码行推荐结果.为了使开发人员越满意的推荐项排在推荐结
                 果中更加靠前的位置,我们对集束搜索得到的 N 个推荐结果进行二次排序,使用的数据是开发现场数据采集模
                 块收集到的编程现场任务数据.利用编程现场任务数据,将推荐结果中已经在训练数据中出现过的推荐项调整
                 到推荐结果中更加靠前的位置.相似度衡量使用 LSA,相似度越高,优先级越高.我们的实例验证表明,本文的方
                 法确实是有效的,并且方法性能优于其他类似方法,比如代码搜索.
                    未来,我们会进一步完善本文的方法,并研究深度学习方法在其他编程语言的编程现场中的使用,以及从方
                 法块到 API 的不同粒度的应用问题.


                 References:
                 [1]    Kim J,  Lee S,  Hwang S,  Kim S.  Towards  an  intelligent  code search  engine. In: Proc.  of the 24th AAAI Conf. on Artificial
                     Intelligence. Palo Alto: AAAI, 2010. 1358−1363.
                 [2]    Holmes R, Murphy GC. Using structural context to recommend source code examples. In: Proc. of the 27th Int’l Conf. on Software
                     Engineering (ICSE 2005). Heidelberg: Springer-Verlag, 2005. 117−125.
                 [3]    Emmanuel H, Péchoux R. A type-based complexity analysis of object oriented programs. Information & Computation, 2018,261:
                     78−115.
                 [4]    Brandt J, Dontcheva M, Weskamp M, Klemmer SR. Example-centric programming: Integrating Web search into the development
                     environment. In: Proc. of the Sigchi Conf. on Human Factors in Computing Systems. New York: ACM, 2010. 513−522.
                 [5]    Holmes R, Cottrell R, Walker RJ, Denzinger J. The end-to-end use of source code examples: An exploratory study. In: Proc. of the
                     IEEE Int’l Conf. on Software Maintenance. New York: IEEE, 2009. 555−558.
                 [6]    Robbes R, Lanza M. Improving code completion with program history. Automated Software Engineering, 2010,17(2):181−212.
                 [7]    Gu X,  Zhang  H,  Zhang  D.  Deep  API learning.  In: Proc. of the 24th  ACM SIGSOFT Int’l Symp. on Foundations of Software
                     Engineering. New York: ACM, 2016. 631−642.
                 [8]    Lv F, Zhang H, Lou JG. CodeHow: Effective code search based on API understanding and extended Boolean model. In: Proc. of
                     the IEEE/ACM Int’l Conf. on Automated Software Engineering. New York: IEEE, 2016. 260−270.
                 [9]    Hellendoorn VJ, Premkumar T. Devanbu: Are deep neural networks the best choice for modeling source code? In: Proc. of the 2017
                     11th Joint Meeting on Foundations of Software Engineering. Paderborn: ACM, 2017. 763−773.
                [10]    Tran  VK,  Le  MN, Tojo S.  Neural-based natural language generation in  dialogue using  RNN  Encoder-Decoder with semantic
                     aggregation. In: Proc. of the 18th Annual Meeting of the Special Interest Group on Discourse and Dialogue. 2017. 231−240.
                [11]    Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate. In: Proc. of the Int’l Conf. on
                     Learning Representations. Heidelberg: Springer-Verlag, 2015.
                [12]    Cho K, Van Merrienboer B, Gulcehre C, et al. Learning phrase representations using RNN Encoder-Decoder for statistical machine
                     translation. In: Proc. of the 2014 Conf. on Empirical Methods in Natural Language Processing. ACL, 2014. 1724−1734.
                [13]    Sundermeyer M, Schlüter R, Ney H. LSTM neural networks for language modeling. In: Proc. of the Interspeech. 2012. 601−608.
                [14]    Wongsuphasawat K, Smilkov D, Wexler J. Visualizing dataflow graphs of deep learning models in TensorFlow. IEEE Trans. on
                     Visualization & Computer Graphics, 2017,24(1):1−12.
                [15]    Mikolov T, Sutskever I, Chen K, Corrado G, Dean J. Distributed representations of words and phrases and their compositionality.
                     Advances in Neural Information Processing Systems, 2013,26:3111−3119.
                [16]    Tran VK, Nguyen LM. Natural language generation for spoken dialogue system using RNN Encoder-Decoder networks. In: Proc.
                     of the 21st Conf. on Computational Natural Language Learning. Vancouver: ACL, 2017. 442−451.
                [17]    Firat O, Cho K, Bengio Y. Multi-way, multilingual neural machine translation with a shared attention mechanism. In: Proc. of the
                     2016 Conf. of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. San
                     Diego: ACL, 2016. 866−875.
                [18]    Swietojanski P,  Renals S.  Learning hidden unit  contributions for unsupervised speaker  adaptation of neural network  acoustic
                     models. In: Proc. of the Spoken Language Technology Workshop. New York: IEEE, 2015. 171−176.
   38   39   40   41   42   43   44   45   46   47   48