/* * The MIT License (MIT) * ------------------ * * Copyright (c) 2012-2014 Philipp Nolte * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /* * This software was taken from https://github.com/ptnplanet/Java-Naive-Bayes-Classifier * and inserted into the loklak class hierarchy to be enhanced and extended * by @0rb1t3r. After optimization in loklak it was inserted into the net.yacy.cora.bayes * package. It shall be used to create custom search navigation filters. * The original copyright notice was copied from the README.mnd * from https://github.com/ptnplanet/Java-Naive-Bayes-Classifier/blob/master/README.md * The original package domain was de.daslaboratorium.machinelearning.classifier */ package net.yacy.cora.bayes; import java.util.Collection; /** * A basic wrapper reflecting a classification. It will store both featureset * and resulting classification. * * @author Philipp Nolte * * @param <T> The feature class. * @param <K> The category class. */ public class Classification<T, K> { /** * The classified featureset. */ private Collection<T> featureset; /** * The category as which the featureset was classified. */ private K category; /** * The probability that the featureset belongs to the given category. */ private float probability; /** * Constructs a new Classification with the parameters given and a default * probability of 1. * * @param featureset The featureset. * @param category The category. */ public Classification(Collection<T> featureset, K category) { this(featureset, category, 1.0f); } /** * Constructs a new Classification with the parameters given. * * @param featureset The featureset. * @param category The category. * @param probability The probability. */ public Classification(Collection<T> featureset, K category, float probability) { this.featureset = featureset; this.category = category; this.probability = probability; } /** * Retrieves the featureset classified. * * @return The featureset. */ public Collection<T> getFeatureset() { return featureset; } /** * Retrieves the classification's probability. * @return */ public float getProbability() { return this.probability; } /** * Retrieves the category the featureset was classified as. * * @return The category. */ public K getCategory() { return category; } /** * {@inheritDoc} */ @Override public String toString() { return "Classification [category=" + this.category + ", probability=" + this.probability + ", featureset=" + this.featureset + "]"; } }