// 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/util/control/IStopList.java
// public interface IStopList {
//     /**
//      * @return true if the word is a stop word, false if otherwise
//      */
//     boolean isStopWord( String word );
// }


import uk.ac.shef.dcs.oak.jate.JATEException;
import uk.ac.shef.dcs.oak.jate.model.Corpus;
import uk.ac.shef.dcs.oak.jate.util.control.IStopList;
import uk.ac.shef.dcs.oak.jate.util.control.Normalizer;
import uk.ac.shef.dcs.oak.jate.model.Document;
import java.util.Map;
import java.util.Set;

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



/**
 * Extract lexical units from texts.  Also defines a number of utility methods for normalizing extracted candidate terms.
 * A candidate lexical unit will be stored in its canonical form in lowercase, depending on the Normalizer provided. Each
 * canonical form maps to several variants found in the document/corpus. When the frequency of terms is counted, each variant
 * will be searched in the document/corpus and the frequency adds up to the total frequency for the canonical term form.
 *
 * @author <a href="mailto:z.zhang@dcs.shef.ac.uk">Ziqi Zhang</a>
 */


public abstract class CandidateTermExtractor {
	protected IStopList _stoplist;
	protected Normalizer _normaliser;

	/**
	 * @param c corpus
	 * @return a map containing mappings from term canonical form to its variants found in the corpus
	 * @throws uk.ac.shef.dcs.oak.jate.JATEException
	 */

// 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/util/control/IStopList.java
// public interface IStopList {
//     /**
//      * @return true if the word is a stop word, false if otherwise
//      */
//     boolean isStopWord( String word );
// }


// Path: src/main/java/uk/ac/shef/dcs/oak/jate/core/npextractor/CandidateTermExtractor.java
import uk.ac.shef.dcs.oak.jate.JATEException;
import uk.ac.shef.dcs.oak.jate.model.Corpus;
import uk.ac.shef.dcs.oak.jate.util.control.IStopList;
import uk.ac.shef.dcs.oak.jate.util.control.Normalizer;
import uk.ac.shef.dcs.oak.jate.model.Document;
import java.util.Map;
import java.util.Set;

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



/**
 * Extract lexical units from texts.  Also defines a number of utility methods for normalizing extracted candidate terms.
 * A candidate lexical unit will be stored in its canonical form in lowercase, depending on the Normalizer provided. Each
 * canonical form maps to several variants found in the document/corpus. When the frequency of terms is counted, each variant
 * will be searched in the document/corpus and the frequency adds up to the total frequency for the canonical term form.
 *
 * @author <a href="mailto:z.zhang@dcs.shef.ac.uk">Ziqi Zhang</a>
 */


public abstract class CandidateTermExtractor {
	protected IStopList _stoplist;
	protected Normalizer _normaliser;

	/**
	 * @param c corpus
	 * @return a map containing mappings from term canonical form to its variants found in the corpus
	 * @throws uk.ac.shef.dcs.oak.jate.JATEException
	 */

	public abstract Map<String, Set<String>> extract(Corpus c) throws JATEException;
