When a developer is writing code they are usually focused and in a state-of-mind which some refer to as flow. Breaking out of this flow can cause the developer to lose their train of thought and have to start their thought process from the beginning. This loss of thought can be caused by interruptions and sometimes slow IDE interactions. Predictive functionality has been harnessed in user applications to speed up load times, such as in Google Chrome's browser which has a feature called "Predicting Network Actions". This will pre-load web-pages that the user is most likely to click through. This mitigates the interruption that load times can introduce. In this paper we seek to make the first step towards predicting user commands in the IDE. Using the MSR 2018 Challenge Data of over 3000 developer session and over 10 million recorded events, we analyze and cleanse the data to be parsed into event series, which can then be used to train a variety of machine learning models, including a neural network, to predict user induced commands. Our highest performing model is able to obtain a 5 cross-fold validation prediction accuracy of 64%.
翻译:当开发者正在写入代码时, 它们通常是焦点集中的, 并且位于某个状态下, 有些被称为流动 。 打破该流量会导致开发者失去思维的轨迹, 并不得不从一开始开始思考过程。 这种思想的丧失可能由中断和有时是慢的 IDE 交互作用造成。 在用户应用程序中, 预测功能已被利用, 以加快负荷时间, 比如 Google Chrome 的浏览器中, 它有一个叫做“ 预设网络动作 ” 的特性 。 这将预加载用户最可能点击的网页 。 这样可以减少负荷时间的中断 。 在本文中, 我们寻求迈出第一步, 预测 IDE 中的用户命令 。 使用 MS 2018 挑战数据 超过 3000 个开发者会话和超过 1 000 万 个记录的事件, 我们分析并清理数据, 以便将其切换成事件序列, 这样就可以用来训练各种机器学习模型, 包括神经网络, 来预测用户引导指令 。 我们最高级的运行模型能够获得 5 交叉校准精确度 64% 。