package semanticMarkup.ling.learn.knowledge;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import semanticMarkup.ling.learn.dataholder.DataHolder;
import semanticMarkup.ling.learn.dataholder.SentenceStructure;
/**
* Annotate sentences based on ignore patterns
* @author Dongye
*
*/
public class IgnorePatternAnnotator implements IModule {
public IgnorePatternAnnotator() {
// TODO Auto-generated constructor stub
}
@Override
public void run(DataHolder dataholderHandler) {
this.markupIgnore(dataholderHandler);
}
public void markupIgnore(DataHolder dataholderHandler) {
PropertyConfigurator.configure("conf/log4j.properties");
Logger myLogger = Logger.getLogger("learn.markupIgnore");
myLogger.trace("Enter markupIgnore");
for (int i = 0; i < dataholderHandler.getSentenceHolder().size(); i++) {
boolean flag = markupIgnoreHelper(dataholderHandler
.getSentenceHolder().get(i));
if (flag) {
myLogger.debug("Updated Sentence #" + i);
}
}
myLogger.trace("Quite markupIgnore");
}
public boolean markupIgnoreHelper(SentenceStructure sentence) {
PropertyConfigurator.configure("conf/log4j.properties");
Logger myLogger = Logger.getLogger("markupIgnore");
String thisOriginalSentence = sentence.getOriginalSentence();
String pattern = "(^|^ )" + Constant.IGNORE_PATTERN + ".*$";
if (thisOriginalSentence.matches(pattern)) {
sentence.setTag("ignore");
sentence.setModifier("");
myLogger.trace("Set Tag to \"ignore\", Modifier to \"\"");
return true;
}
return false;
}
}