Developer(s) | Carrot Search |
---|---|
Stable release | 3.5.3 / December 6, 2011 |
Development status | Active |
Written in | Java |
Operating system | Cross-platform |
Type | Text mining and cluster analysis |
License | BSD license |
Website | http://carrot2.org |
Carrot²[1] is an open source search results clustering engine.[2] It can automatically cluster small collections of documents, e.g. search results or document abstracts, into thematic categories. Apart from two specialized search results clustering algorithms, Carrot² offers ready-to-use components for fetching search results from various sources. Carrot² is written in Java and distributed under the BSD license.
Contents |
The initial version of Carrot² was implemented in 2001 by Dawid Weiss as part of his MSc thesis to validate the applicability of the STC clustering algorithm to clustering search results in Polish.[3] In 2003, a number of other search results clustering algorithms were added, including Lingo,[4] a novel text clustering algorithm designed specifically for clustering of search results. While the source code of Carrot² was available since 2002, it was only in 2006 when version 1.0 was officially released. In the same year, version 2.0 was released with improved user interface and extended tool set. In 2009, version 3.0 brought significant improvements in clustering quality, simplified API and new GUI application for tuning clustering based on the Eclipse Rich Client Platform.
Release | Release Date | Major changes and new features[5] |
---|---|---|
3.5.3 | December 2011 | Infrastructure updates resulting from migration to GitHub. Workbench update to SWT 3.7.1. |
3.5.2 | September 2011 | Ajax support in Document Clustering Server, Bing document source improved, Workbench improvements, bug fixes. |
3.5.1 | June 2011 | Bug fixes, visualization integration improvements, support for Yahoo BOSS API removed. |
3.5.0 | May 2011 | FoamTree visualization, bisecting k-means clustering, resource management improvements |
3.4.3 | March 2011 | Distribution to Maven central repository |
3.4.2 | October 2010 | Bug fixes |
3.4.1 | September 2010 | Solr 1.4.x compatibility package, bug fixes |
3.4.0 | August 2010 | .NET API for calling Carrot² clustering |
3.3.0 | April 2010 | Significant scalability improvements in the STC clustering algorithm |
3.2.0 | March 2010 | Experimental support for clustering Arabic and Korean content, command line application for clustering in batch mode, LGPL-licensed dependencies removed |
3.1.0 | September 2009 | Experimental support for clustering Chinese content, search results clustering plugin for Apache Solr |
3.1.0 | September 2009 | Experimental support for clustering Chinese content, search results clustering plugin for Apache Solr |
3.0.1 | March 2009 | Document Clustering Workbench available for Mac OS X |
3.0.0 | January 2009 | Document Clustering Workbench added for easy experimenting with Carrot² clustering, radically simplified Java API, search results clustering web application re-implemented, user manual[6] available |
2.1.0 | August 2007 | Document Clustering Server added for exposing clustering as a REST service |
2.0.0 | September 2006 | New user interface of the search results clustering web application |
1.0.0 | January 2006 | First official release, binaries available on SourceForge |
0.0.0 | since 2002 | Incubation releases, source code available on SourceForge |
The architecture of Carrot² is based on processing components arranged into pipelines. Two major groups or processing components in Carrot² are: document sources and clustering algorithms.
Document sources provide data for further processing. Typically, they would e.g. fetch search results from an external search engine, Lucene / Solr index or load text files from a local disk.
Currently, Carrot² has built-in support for the following document sources:
Other document sources can be integrated based on the code examples provided with Carrot² distribution.
Carrot² offers two specialized document clustering algorithms[7] that place emphasis on the quality of cluster labels:
Other algorithms can be easily added to Carrot².
Carrot² clustering can be called through a number of APIs.
Being implemented in Java, Carrot² can be integrated with Java software through its native Java API[9].
Carrot² provides a native C# API for calling clustering from C# / .NET software without installing a Java runtime. The Carrot² C# API requires .NET Framework version 3.5 or later.
Other platforms can call Carrot² clustering through the REST service exposed by the Document Clustering Server. Example integration code is provided for PHP5, C#, Ruby and CURL.
Carrot² offers a number of supporting tools that can be used to quickly set up clustering on custom data, further tuning of clustering results and exposing Carrot² clustering as a remote service:
Carrot Search[10], a commercial spin-off of the Carrot² project, works on further development of Carrot², offers a real-time text clustering algorithm[11] compliant with the Carrot² framework as well as text mining consulting services based on open source and proprietary software.
Carrot² gave rise to a number of independent open source projects released under the umbrella of Carrot Search Labs[12]. Currently, the following projects are available: