{"id":455,"date":"2017-02-17T10:30:31","date_gmt":"2017-02-17T10:30:31","guid":{"rendered":"http:\/\/sag.art.uniroma2.it\/kelp_wordpress\/?page_id=455"},"modified":"2017-03-01T08:40:28","modified_gmt":"2017-03-01T08:40:28","slug":"overview","status":"publish","type":"page","link":"http:\/\/www.kelp-ml.org\/?page_id=455","title":{"rendered":"What is KeLP?"},"content":{"rendered":"<p>KeLP is a Java Kernel-based Learning Platform providing\u00a0the implementation of Kernel-based learning algorithms, as well as kernel functions over generic data representations, e.g.,\u00a0vectorial data or discrete structures, such as graphs, trees, and sequences.<br \/>\nThe framework has been designed to decouple data structures, kernel functions and learning algorithms in order to maximize the re-use of existing functionalities: as an example, a new kernel can be included in any\u00a0existing algorithms, and vice versa.<\/p>\n<p>KeLP\u00a0can effectively tackle a wide variety of learning problems, including (multi-class, multi-label) classification, regression and clustering. KeLP\u00a0supports XML and JSON serialization of kernel functions and algorithms, enabling the agile definition of kernel-based learning systems without writing additional lines of code.<\/p>\n<p>KeLP\u00a0is completely written in Java. Java has been selected as it is the main language in the enterprise development. \u00a0Moreover, in NLP\/IR many tools are based on the Java language, such as <a href=\"http:\/\/stanfordnlp.github.io\/CoreNLP\/\">Stanford CoreNLP<\/a>, <a href=\"https:\/\/opennlp.apache.org\/\">OpenNLP<\/a> or <a href=\"http:\/\/lucene.apache.org\/\">Lucene<\/a>. Thus, KeLP can be easily integrated in Java-based projects.<\/p>\n<h3>Why Kernel-based Learning?<\/h3>\n<p>In Machine Learning (ML) instances are often represented as vectors in specific feature spaces, that have been defined beforehand: most of the existing ML platforms (e.g., <a href=\"http:\/\/www.cs.waikato.ac.nz\/ml\/weka\/\">Weka<\/a>, <a href=\"https:\/\/www.csie.ntu.edu.tw\/~cjlin\/libsvm\/\">LibSVM<\/a>, <a href=\"http:\/\/scikit-learn.org\/\">scikit-learn<\/a>) have been developed assuming instances have been already transformed in vectors.\u00a0The definition of a feature space often requires a complex feature engineering phase. For example, in Natural Language Processing, syntactic information is crucial in many tasks, e.g.,\u00a0<em>Semantic Role Labeling<\/em>\u00a0(Carreras and Marquez, 2005). Understanding which syntactic patterns should be captured is non-trivial and usually the resulting feature vector model is a poor approximation.<br \/>\nInstead, a more natural approach is operating directly on\u00a0parse tree of sentences. <strong>Kernel<\/strong> methods provide an efficient and effective solution, <strong>allowing to represent data at a more abstract level<\/strong>, while their computation still looks at the informative properties of them. For instance, Tree Kernels take in input two syntactic parse trees, and compute a similarity measure by looking at the shared sub-structures.<\/p>\n<hr \/>\n<h3>References<\/h3>\n<p>Xavier Carreras and Llu\u0131s Marquez.\u00a0<em>Introduction to the CoNLL-2005 Shared Task: Semantic Role Labeling<\/em>.\u00a0Proceedings of the Ninth Conference on Computational Natural Language Learning 2005.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>KeLP is a Java Kernel-based Learning Platform providing\u00a0the implementation of Kernel-based learning algorithms, as well as kernel functions over generic data representations, e.g.,\u00a0vectorial data or discrete structures, such as graphs, trees, and sequences. The framework has been designed to decouple data structures, kernel functions and learning algorithms in order to maximize the re-use of existing <a href=\"http:\/\/www.kelp-ml.org\/?page_id=455\" rel=\"nofollow\"><span class=\"sr-only\">Read more about What is KeLP?<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/455"}],"collection":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=455"}],"version-history":[{"count":10,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/455\/revisions"}],"predecessor-version":[{"id":589,"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=\/wp\/v2\/pages\/455\/revisions\/589"}],"wp:attachment":[{"href":"http:\/\/www.kelp-ml.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}