Learning Based Java

Learning Based Java (LBJ) is a special-purpose programming language based on Java and it is geared toward machine learning and natural language processing (NLP).[1] It was developed at the Cognitive Computation Group of the University of Illinois at Urbana Champaign. Its implementation is distribution under the terms of a modified BSD license.

LBJ is implemented as a compiler that translates LBJ programs to Java source code, which is then compiled to Java bytecode. It additionally trains any machine learning components of the program (based on a training set specified in the program). The resulting bytecode can be called as a library from any Java VM program.

Learning components included in the LBJ libraries include AdaBoost, naïve Bayesian classifiers, perceptrons and sparse networks of winnows. Via interfaces to external libraries, support vector machines and the learners in the Weka toolkit are supported.

LBJ further includes the ability to add constraint inference to the output of machine learners, following the Constrained Conditional Models paradigm. These constraints are expressed in a first-order logic language and can be used to, e.g., rule out certain results known to be impossible when using combinations of classifiers. Classification results and constraints are translated to linear/mixed integer programming problems, which are then solved using the GLPK or Xpress MP toolkits.[2]

External links

References

  1. ^ Rizzolo, Nick; Roth, Dan (2010). "Learning Based Java for rapid development of NLP systems". Proc. International Conference on Language Resources and Evaluation (LREC). http://l2r.cs.uiuc.edu/~danr/Papers/RizzoloRo10.pdf. 
  2. ^ Rizzolo, Nick; Roth, Dan (2007). "Modeling discriminative global inference". Proc. First International Conference on Semantic Computing (ICSC). http://l2r.cs.uiuc.edu/~danr/Papers/RizzoloRo07.pdf.