\(\bullet \)  Keyword Extraction and Comment Computed Scores: refers to the block represented by the set of components (labels [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 4.0;, [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 4.1; and [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 4.2;, Figure REF ). Initially, we perform the task of keyword extraction [1]}, [2]}. Keyword extraction selects the keywords that best describe a comment. In our approach, `Comments with Initial Keyword Scores' (label [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 4.0;, Figure REF ) is the component where we extract keywords and compute initial keyword weights for each comment and a user query using the TF\(\times \) IDF schema [3]}. In our approach, TF\(\times \) IDF keywords are words in comments, documents are comments in the bug reports, and the set of documents is the set of all comments in all bug reports. Then we apply the VSM (see Section REF , Eq.1) to compute the similarity score between each comment and a user query (label [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 3.1;, Figure REF ). Next, we construct the keyword dictionary for Sentiment Analysis Dictionaries component (label [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 4.1;, Figure REF ). We incorporate the sentiment analysis (SA) process to keyword extraction as described in Section REF . The process to construct the SA dictionary was based in three steps: i) filter comments across all bugs that are in: RESOLVED, VERIFIED, for CLOSED status, and ii) calculate a `polarity score' for each keyword in each comment, then iii) classify the keywords into two groups: `bonus` and `penalty`. A polarity score is set in the range \([-1.0, +1.0]\)  [4]} from which the keyword was extracted \(1.0\)  for positive, and \(-1.0\)  for negative. We extract keywords with polarity scores attached to them. Note, we compute the `polarity score' because our goal is to detect positive language in comments. Positive comments are more likely to include clues about the bug than negative ones. For demonstration purposes we compute these comments as follows: POS_COMMENT: `This bug is fixed' will receive a score of (0+0.05+0+0.8)=0.85, NEG_COMMENT: `This bug is unresolved' will receive a score of (0+0.05+0-0.8)=-0.75. Next, we construct the keyword dictionary for TR Dictionaries component (label [baseline=(char.base)]
shape=circle,draw,text=black, scale=0.65, fill=none,fill opacity=2, inner sep=0.3pt] (char) 4.2;, Figure REF ) based on co-occurrence links between keywords (see Section REF , Eq.2). The process to construct the TextRank dictionary is in four steps: i) filter comments across all bugs that are in: RESOLVED, VERIFIED, or CLOSED status. ii) represent each comment as a graph in which each word is a vertex and each edge is the strength between a pair of vertices. When one vertex links to another, it casts a vote for that vertex. The higher the number of votes that are cast to a vertex, the higher the importance of that vertex, iii) iterate through graph until it convergences using (Eq.2), and iv) finally, sort the vertices based on their final scores and use the values attached to each vertex for ranking.
