# C2B: A Semantic Source Code Retrieval Model Using CodeT5 and Bi-LSTM
## 5 Experimental Results
### CodeSearchNet Dataset  
The CodeSearchNet dataset is a comprehensive and large-scale dataset specifically created to support research and development in the field of source code retrieval. It addresses the challenge of matching natural language queries with relevant code snippets, enabling  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Layer** & **Input Shape** & **Output Shape** & **\# Parameters** \\ \hline CodeT5 & [1, 768] & [1, 768] & - \\ Bi-LSTM & [1, 768] & [1, 768] & - \\ Feature concatenation & [1, 1536] & [1, 1536] & - \\ Linear-1 & [1, 1536] & [1, 768] & 1,180,416 \\ Tanh & [1, 768] & [1, 768] & - \\ Linear-2 & [1, 768] & [1, 1] & 1538 \\ Sigmoid & [1, 1] & [1, 1] & - \\ Softmax pooling & [1, 1] & [1, 1] & - \\ \hline \hline \end{tabular}
\end{table}
Table 1: C2B hybrid model classifier architecture.  
Figure 6: C2B hybrid model network architecture.  
advancements in natural language understanding applied to code search. The dataset is designed to facilitate training and evaluation of models that can effectively bridge the gap between textual queries and code solutions. With over 17 million natural language queries and their corresponding code snippets, CodeSearchNet provides a diverse and extensive collection of data. The dataset covers a wide range of programming languages, including popular ones like Python, Java, C, C++, and JavaScript, allowing researchers to explore code search tasks across multiple programming paradigms. This diversity in languages and query types makes the dataset highly versatile and suitable for various research scenarios.  
The data for CodeSearchNet are sourced from a variety of platforms and repositories, including open-source code repositories, Q&A websites, and code-related StackExchange posts. By aggregating data from these sources, the dataset captures real-world programming scenarios and reflects the challenges faced by developers in finding code solutions for their tasks. This ensures the relevance and authenticity of the queries and code snippets present in the dataset.  
To ensure the quality and consistency of the data, the CodeSearchNet dataset undergoes preprocessing. This includes tokenization of the queries and code snippets, removing irrelevant or noisy data and anonymizing certain sensitive information, such as usernames or project-specific details. The preprocessing steps aim to provide a clean and standardized dataset for researchers and practitioners to work with. The dataset split of CodeSearchNet, a comprehensive dataset designed for source code retrieval, consists of training, validation, and test sets. These splits facilitate the training, evaluation, and benchmarking of models in the field of natural language understanding applied to code search. The dataset provides a diverse collection of natural language queries paired with code snippets in various programming languages. Table 2 showcases the approximate dataset split for CodeSearchNet, including the number of instances in each split. In addition to code retrieval, the CodeSearchNet dataset also supports other related tasks, including code summarization and code documentation generation. This flexibility encourages researchers to explore various aspects of natural language understanding and code search, fostering innovation and advancements in the field. Overall, the CodeSearchNet dataset has become an invaluable resource for researchers and practitioners working on code search and related natural language understanding tasks. Its extensive size, diversity, and real-world relevance make it a key asset for developing and evaluating models that can bridge the gap between textual queries and code snippets, improving the efficiency and effectiveness of code search systems.