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.