{"title":"Personalized Code Recommendation","authors":"Tam The Nguyen, P. Vu, T. Nguyen","doi":"10.1109/ICSME.2019.00047","DOIUrl":null,"url":null,"abstract":"The current state-of-the-art methods in code recommendation mostly take the crowd-based approach. The basic idea is to collect and extract code patterns from a large pool of available source code and use those code patterns for recommendations. However, different programmers have different coding styles, levels of experience, and knowledge about libraries and frameworks, all of which cause different uses of variable names, classes, and methods. When code of different programmers is combined, such differences are blurred, which could hurt the performance of the code recommendation tool for a specific programmer. In the paper, we explore a new research direction in code recommendation which focuses on personal coding patterns of programmers. As a proof of concept, we have developed a personalized code recommendation model for suggesting variable declaration and initialization code. Our techniques learn personalized code patterns for each programmer based on their coding history. The preliminary evaluation shows that our recommendation model is highly effective. For example, when evaluating on a programmer, our approach has top-1 accuracy of 62% and top-3 accuracy of 70% on recommending declaration types. Our approach has top-1 and top-3 accuracy of 67% and 76%, respectively, on recommending initialization method sequences. Furthermore, our model also outperforms the baselines significantly in these experiments.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSME.2019.00047","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
The current state-of-the-art methods in code recommendation mostly take the crowd-based approach. The basic idea is to collect and extract code patterns from a large pool of available source code and use those code patterns for recommendations. However, different programmers have different coding styles, levels of experience, and knowledge about libraries and frameworks, all of which cause different uses of variable names, classes, and methods. When code of different programmers is combined, such differences are blurred, which could hurt the performance of the code recommendation tool for a specific programmer. In the paper, we explore a new research direction in code recommendation which focuses on personal coding patterns of programmers. As a proof of concept, we have developed a personalized code recommendation model for suggesting variable declaration and initialization code. Our techniques learn personalized code patterns for each programmer based on their coding history. The preliminary evaluation shows that our recommendation model is highly effective. For example, when evaluating on a programmer, our approach has top-1 accuracy of 62% and top-3 accuracy of 70% on recommending declaration types. Our approach has top-1 and top-3 accuracy of 67% and 76%, respectively, on recommending initialization method sequences. Furthermore, our model also outperforms the baselines significantly in these experiments.