<commit_before>
% 
%  ii.) What is feature location? Breifly, what is the feature
%  Location Current State of the Art / Practice *mainly bag of words
%  approaches
%
When starting a maintenance task, software developers commonly need to
locate the relevant features in a potentially large and unfamiliar
code base. Due to the difficulty and importance of this task,
researchers have proposed a number of approaches to improve
developers' effectiveness in locating features, largely based upon
applying natural language analysis or text retrieval techniques to source
code~\cite{dit_feature_2013}. Most of the proposed feature location
techniques have treated source code as an unordered set of natural
language terms (i.e., as a bag-of-words), even though recent fundamental
results have shown that source code contains context and flow that is
even more pronounced than natural language
text~\cite{hindle_naturalness_2012}.


%
%  What are the contributions of this paper and this line of work
%
In this paper, we explore the use of deep learning, a particular class of neural networks that has shown promising
results in modeling natural language, for feature location. In
particular, we investigate the efficacy of document
vectors~\cite{le_distributed_2014}. Document vectors capture the
influence of the surrounding context on each term, which can improve the ranking
of results retrieved for a developer query. For example, in the
statement {\sf diagram.redraw()} the word {\em diagram} is relevant to the word
{\em redraw} and this relationship is captured by document vectors. Therefore, when querying for {\em diagram}, program elements
where {\em redraw} is also present are considered more relevant and thus are boosted in the rankings.

Deep learning models such as document vectors also create a novel notion
of semantic similarity between the source code terms. Semantic
similarity is the result of mapping the corpus terms into a continuous
semantic space, where synonyms, antonyms, and other semantic relations
are encoded and easily composed together.


%
% The results
%

In our preliminary evaluation, we compare a feature location technique (FLT) based on document vectors to an FLT based on latent Dirichlet allocation (LDA) using the benchmark by Dit et al.~\cite{Dit-etal_2013}.
The benchmark comprises 633 features from six versions of four open source Java projects, and our results show that for many of the features, the document-vectors-based FLT outperforms the LDA-based FLT.
Our results also show that less time is needed for model training and inference in the document-vectors-based FLT as compared to the LDA-based FLT.
We also suggest directions for future work on the use
of document vectors (or other deep learning models) to improve developer effectiveness in feature location.



<commit_msg>replace document vectors with DV in intro<commit_after>
% 
%  ii.) What is feature location? Breifly, what is the feature
%  Location Current State of the Art / Practice *mainly bag of words
%  approaches
%
When starting a maintenance task, software developers commonly need to
locate the relevant features in a potentially large and unfamiliar
code base. Due to the difficulty and importance of this task,
researchers have proposed a number of approaches to improve
developers' effectiveness in locating features, largely based upon
applying natural language analysis or text retrieval techniques to source
code~\cite{dit_feature_2013}. Most of the proposed feature location
techniques have treated source code as an unordered set of natural
language terms (i.e., as a bag-of-words), even though recent fundamental
results have shown that source code contains context and flow that is
even more pronounced than natural language
text~\cite{hindle_naturalness_2012}.


%
%  What are the contributions of this paper and this line of work
%
In this paper, we explore the use of deep learning, a particular class of neural networks that has shown promising
results in modeling natural language, for feature location. In
particular, we investigate the efficacy of document
vectors~\cite{le_distributed_2014} (DVs). DVs capture the
influence of the surrounding context on each term, which can improve the ranking
of results retrieved for a developer query. For example, in the
statement {\sf diagram.redraw()} the word {\em diagram} is relevant to the word
{\em redraw} and this relationship is captured by DVs. Therefore, when querying for {\em diagram}, program elements
where {\em redraw} is also present are considered more relevant and thus are boosted in the rankings.

Deep learning models such as DVs also create a novel notion
of semantic similarity between the source code terms. Semantic
similarity is the result of mapping the corpus terms into a continuous
semantic space, where synonyms, antonyms, and other semantic relations
are encoded and easily composed together.


%
% The results
%

In our preliminary evaluation, we compare a feature location technique (FLT) based on DVs to an FLT based on latent Dirichlet allocation (LDA) using the benchmark by Dit et al.~\cite{Dit-etal_2013}.
The benchmark comprises 633 features from six versions of four open source Java projects, and our results show that for many of the features, the DV-based FLT outperforms the LDA-based FLT.
Our results also show that less time is needed for model training and inference in the DV-based FLT as compared to the LDA-based FLT.
We also suggest directions for future work on the use
of DVs (or other deep learning models) to improve developer effectiveness in feature location.




{'fraction_non_alphanumeric': 0.03853702051739518, 'fraction_numerical': 0.006779661016949152, 'mean_word_length': 4.870157068062827, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4591944', 'n_tokens_mistral': 1362, 'n_tokens_neox': 1267, 'n_words': 828}