Naturalize

Naturalize suggests natural names for source code.

naturalize is released under a BSD license.

The project depends on three internal (maven) modules:

a) codemining-sequencelm b) codemining-utils c) codemining-core d) commitmining-tools

the rest of the dependencies are declared in the maven dependencies.

Basic Usage

final AbstractIdentifierRenamings renamer = new BaseIdentifierRenamings(
                new JavaTokenizer());
renamer.buildRenamingModel(trainingFiles);

final SortedSet<AbstractIdentifierRenamings.Renaming> renamings = renamer
                        .getRenamings(new Scope(snippet,
                                Scope.ScopeType.SCOPE_LOCAL, null, -1, -1),
                                nameOfIdentifier);

If you need a method for directly specifying variable bindings consider using AbstractIdentifierRenamings.getRenamings(TokenNameBinding binding) that avoids retokenizing the snippet and performing a textual match on the tokens.