// Path: src/main/java/uk/ac/shef/dcs/oak/jate/JATEException.java
// public class JATEException extends Exception {
// 	private static final long serialVersionUID = -4511571544868986419L;
// 
// 	public JATEException(String exception){
// 		super(exception);
// 	}
// 
// 	public JATEException(Exception e){
// 		super(e);
// 	}
// 
// 	public JATEException(String exception, Throwable cause){
// 		super(exception, cause);
// 	}
// }


import uk.ac.shef.dcs.oak.jate.JATEException;
import uk.ac.shef.dcs.oak.jate.model.Term;
import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;

package uk.ac.shef.dcs.oak.jate.core.algorithm;



/**
 * An implementation of the TermEx term recognition algorithm. See Sclano e. al 2007, <i>
 * TermExtractor: a Web application to learn the shared terminology of emergent web communities</i>
 * <p>
 * In the formula w(t,Di ) =a* DR + B* DC + Y* LC, default values of a, B, and Y are 0.33.
 * </p>
 *
 * This is the implementation of the scoring formula <b>only</b> and does not include the analysis of document structure
 * as discussed in the paper.
 *
 * @author <a href="mailto:z.zhang@dcs.shef.ac.uk">Ziqi Zhang</a>
 */



public class TermExAlgorithm implements Algorithm {

	private final double _alpha;
	private final double _beta;
	private final double _zeta;

	public TermExAlgorithm() {
		this(0.33,0.33,0.34);
	}

	public TermExAlgorithm(double alpha, double beta, double zeta) {
		_alpha = alpha;
		_beta = beta;
		_zeta = zeta;
	}


// Path: src/main/java/uk/ac/shef/dcs/oak/jate/JATEException.java
// public class JATEException extends Exception {
// 	private static final long serialVersionUID = -4511571544868986419L;
// 
// 	public JATEException(String exception){
// 		super(exception);
// 	}
// 
// 	public JATEException(Exception e){
// 		super(e);
// 	}
// 
// 	public JATEException(String exception, Throwable cause){
// 		super(exception, cause);
// 	}
// }


// Path: src/main/java/uk/ac/shef/dcs/oak/jate/core/algorithm/TermExAlgorithm.java
import uk.ac.shef.dcs.oak.jate.JATEException;
import uk.ac.shef.dcs.oak.jate.model.Term;
import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;

package uk.ac.shef.dcs.oak.jate.core.algorithm;



/**
 * An implementation of the TermEx term recognition algorithm. See Sclano e. al 2007, <i>
 * TermExtractor: a Web application to learn the shared terminology of emergent web communities</i>
 * <p>
 * In the formula w(t,Di ) =a* DR + B* DC + Y* LC, default values of a, B, and Y are 0.33.
 * </p>
 *
 * This is the implementation of the scoring formula <b>only</b> and does not include the analysis of document structure
 * as discussed in the paper.
 *
 * @author <a href="mailto:z.zhang@dcs.shef.ac.uk">Ziqi Zhang</a>
 */



public class TermExAlgorithm implements Algorithm {

	private final double _alpha;
	private final double _beta;
	private final double _zeta;

	public TermExAlgorithm() {
		this(0.33,0.33,0.34);
	}

	public TermExAlgorithm(double alpha, double beta, double zeta) {
		_alpha = alpha;
		_beta = beta;
		_zeta = zeta;
	}


	public Term[] execute(AbstractFeatureWrapper store) throws JATEException {
