package edu.umd.rhsmith.diads.meater.modules.common.sentiment;
import edu.umd.rhsmith.diads.meater.core.app.MEaterConfigurationException;
import edu.umd.rhsmith.diads.meater.core.config.components.ComponentConfig;
import edu.umd.rhsmith.diads.meater.core.config.props.StringProperty;
public class PySentimentToolConfig extends ComponentConfig implements
PySentimentToolInitializer {
public PySentimentToolConfig() {
super();
this.registerMediaProcessorName("", SentimentAnalyzable.class);
this.registerConfigProperty(classiferFilename);
this.registerConfigProperty(featuresFilename);
}
@Override
public PySentimentTool instantiateComponent()
throws MEaterConfigurationException {
return new PySentimentTool(this);
}
/*
* --------------------------------
* Config properties
* --------------------------------
*/
// analyzer properties
private static final String CKEY_FEATURES_FILENAME = "features";
private static final String DEFAULT_FEATURES_FILENAME = "features.pickle";
private static final String UINAME_FEATURES_FILENAME = "Feature-set filename";
private static final String UIDESC_FEATURES_FILENAME = "Filename of the serialized feature-set which the sentiment analyzer will load";
private final StringProperty featuresFilename = new StringProperty(
CKEY_FEATURES_FILENAME, DEFAULT_FEATURES_FILENAME,
UINAME_FEATURES_FILENAME, UIDESC_FEATURES_FILENAME);
private static final String CKEY_CLASSIFIER_FILENAME = "classifer";
private static final String DEFAULT_CLASSIFIER_FILENAME = "classifier.pickle";
private static final String UINAME_CLASSIFIER_FILENAME = "Classifier filename";
private static final String UIDESC_CLASSIFIER_FILENAME = "Filename of the serialized classifier which the sentiment analyzer will load";
private final StringProperty classiferFilename = new StringProperty(
CKEY_CLASSIFIER_FILENAME, DEFAULT_CLASSIFIER_FILENAME,
UINAME_CLASSIFIER_FILENAME, UIDESC_CLASSIFIER_FILENAME);
@Override
public String getClassifierFilename() {
return this.classiferFilename.getVal();
}
@Override
public String getFeaturesFilename() {
return this.featuresFilename.getVal();
}
/*
* --------------------------------
* Config operations
* --------------------------------
*/
/*
* --------------------------------
* UI
* --------------------------------
*/
@Override
public String getUiDescription() {
return TDESC;
}
/*
* --------------------------------
* Config type registration
* --------------------------------
*/
public static final String TNAME = "PySentimentTool";
public static final String TDESC = "A Python-based tool for performing sentiment analysis on media instances implementing the SentimentAnalyzable interface.\n"
+ "Allows configuration of the serialized classifer and feature sets.";
/*
* --------------------------------
* Messages
* --------------------------------
*/
}