Code search is an important and frequent activity for developers using computational notebooks (e.g., Jupyter). The flexibility of notebooks brings challenges for effective code search, where classic search interfaces for traditional software code may be limited. In this paper, we propose, NBSearch, a novel system that supports semantic code search in notebook collections and interactive visual exploration of search results. NBSearch leverages advanced machine learning models to enable natural language search queries and intuitive visualizations to present complicated intra- and inter-notebook relationships in the returned results. We developed NBSearch through an iterative participatory design process with two experts from a large software company. We evaluated the models with a series of experiments and the whole system with a controlled user study. The results indicate the feasibility of our analytical pipeline and the effectiveness of NBSearch to support code search in large notebook collections.
翻译:对于使用计算笔记本的开发者来说,代码搜索是一项重要和频繁的活动(例如,Jupyter)。笔记本的灵活性对有效的代码搜索提出了挑战,因为传统的传统软件代码搜索界面可能受到限制。在本文中,我们提议,NBSearch是一个支持笔记本收藏的语义代码搜索和对搜索结果进行交互式视觉探索的新系统。NBSearch利用先进的机器学习模型,在返回的结果中,能够提出自然语言搜索查询和直观直观的直观视觉,以显示复杂的内部和笔记间关系。我们通过一个大型软件公司两名专家的迭代参与性参与设计过程开发了NBSearch。我们用一系列实验和整个系统来评估模型,并用一个受控的用户研究。结果表明我们的分析管道的可行性以及NBSearch支持大型笔记本收藏的代码搜索的有效性。