IAC 2024 - IA Fast Track to Search Focused AI Solutions
A Lightweight Approach to Uncover Technical Information in Unstructured Data
1. A Lightweight Approach
to Uncover Technical
Information in
Unstructured Data
Nicolas Bettenburg, Bram Adams, Ahmed E. Hassan
Queen’s University, Kingston, ON
Michel Smidt
University of Bremen, Germany
1
3. The code after "if callback.isAcceleratorInUse
(SWT.ALT | character ) )" inside Eclipse's
MenuManager.java removes the mnemonic, but it seems
like Eclipse should be checking isAcceleratorInUse.
2
12. Past Solutions
Miler
Bacchelli et al. - ICSE’10,
ICPC’10
• Based on heuristics
• Classifies lines as source code
• Classifies documents as containing code
• Finds class names
7
13. Past Solutions
infoZilla Miler
Bettenburg et al. - MSR’08 Bacchelli et al. - ICPC’10
• only specific kinds of technical information!
• new heuristics to extend (complex, error prone)
• for some kind of technical information, infeasible
8
14. More information:
The code after "if (callback.isAcceleratorInUse(SWT.ALT | character))" inside
Eclipse's MenuManager.java removes the mnemonic, but it seems like Eclipse
should be checking "isAcceleratorInUse" only for top level menumanagers like
File,Edit,...,Help, etc. :
/* (non-Javadoc)
* @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
*/
public void update(String property) {
IContributionItem items[] = getItems();
for (int i = 0; i < items.length; i++) {
items[i].update(property);
}
[...]
}
Any status on this bug?
I'd consider any contributions for M6 (API) or M7 (non-API) [...]
A 3.5 fix would be to make that behaviour optional in MenuManager with API and
off by default early in 3.5, and to have the WorkbenchActionBuilder contributed
MenuManagers and actionSets/editorActions contributed MenuManagers turn it on
(if I can find MenuManagers in the correct place).
9
15. More information:
The code after "if (callback.isAcceleratorInUse(SWT.ALT | character))" inside
Eclipse's MenuManager.java removes the mnemonic, but it seems like Eclipse
should be checking "isAcceleratorInUse" only for top level menumanagers like
File,Edit,...,Help, etc. :
/* (non-Javadoc)
* @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
*/
public void update(String property) {
IContributionItem items[] = getItems();
for (int i = 0; i < items.length; i++) {
items[i].update(property);
}
[...]
}
Any status on this bug?
I'd consider any contributions for M6 (API) or M7 (non-API) [...]
A 3.5 fix would be to make that behaviour optional in MenuManager with API and
off by default early in 3.5, and to have the WorkbenchActionBuilder contributed
MenuManagers and actionSets/editorActions contributed MenuManagers turn it on
(if I can find MenuManagers in the correct place).
9
16. More information:
The code after "if (callback.isAcceleratorInUse(SWT.ALT | character))" inside
Eclipse's MenuManager.java removes the mnemonic, but it seems like Eclipse
should be checking "isAcceleratorInUse" only for top level menumanagers like
File,Edit,...,Help, etc. :
/* (non-Javadoc)
* @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
*/
public void update(String property) {
Challenge!
IContributionItem items[] = getItems();
for (int i = 0; i < items.length; i++) {
items[i].update(property);
}
[...]
}
Any status on this bug?
I'd consider any contributions for M6 (API) or M7 (non-API) [...]
A 3.5 fix would be to make that behaviour optional in MenuManager with API and
off by default early in 3.5, and to have the WorkbenchActionBuilder contributed
MenuManagers and actionSets/editorActions contributed MenuManagers turn it on
(if I can find MenuManagers in the correct place).
9
17. Spelling and
Grammar Checkers
... are really good at finding “what’s not right“ in
natural language text!
10
18. A 3.5 fix would be to make taht behaviour optional in
MenuManager with API and off by default early in 3.5,
and to have the WorkbenchActionBuilder contributed
MenuManagers and actionSets/editorActions
contributed MenuManagers turn it on (if I can find
MenuManagers in the corect place).
11
19. A 3.5 fix would be to make taht behaviour optional in
MenuManager with API and off by default early in 3.5,
and to have the WorkbenchActionBuilder contributed
MenuManagers and actionSets/editorActions
contributed MenuManagers turn it on (if I can find
MenuManagers in the corect place).
12
20. A 3.5 fix would be to make taht behaviour optional in
MenuManager with API and off by default early in 3.5,
and to have the WorkbenchActionBuilder contributed
MenuManagers and actionSets/editorActions
contributed MenuManagers turn it on (if I can find
MenuManagers in the corect place).
Actual Spelling Mistakes!
13
27. Precision / Recall
T PS i
Precision(Si ) = T PSi +F PSi
T PS i
Recall(Si ) = T PSi +F NSi
TP = We annotated and tool annotated
FP = Tool annotated, we did not
FN = We annotated, tool did not
17
30. Results
Spellchecker Precision Recall
JOrtho 88.01% 64.31%
Jazzy 84.16% 68.30%
Hunspell 86.40% 68.34%
Hunspell used by OpenOffice and
Mozilla Suite
18
31. Comparison
Line-wise classification of source code
1 Launch the plugin as part of Eclipse IDE 3. Press Alt+H to
2 bring down the Help menu (to go along with our example in #1)
3
4 BUG: Notice "Software Updates" is missing its mnemonic.
5
6 public void update(String property) {
7 IContributionItem items[] = getItems();
8 for (int i = 0; i < items.length; i++) {
9 items[i].update(property);
10 }
11 }
12
13 Any status on this bug?
19
32. Comparison
Line-wise classification of source code
1 Launch the plugin as part of Eclipse IDE 3. Press Alt+H to
2 bring down the Help menu (to go along with our example in #1)
3
4 BUG: Notice "Software Updates" is missing its mnemonic.
5
6 public void update(String property) {
7 IContributionItem items[] = getItems();
8 for (int i = 0; i < items.length; i++) {
9 items[i].update(property);
10 }
11 }
12
13 Any status on this bug?
20