All Downloads are FREE. Search and download functionalities are using the official Maven repository.

AutoProcessor.ParseTree.Propbank.AutoArgument Maven / Gradle / Ivy

package AutoProcessor.ParseTree.Propbank;

import AnnotatedSentence.ViewLayerType;
import Dictionary.Word;
import AnnotatedTree.ParseNodeDrawable;
import AnnotatedTree.ParseTreeDrawable;
import AnnotatedTree.Processor.Condition.IsTransferable;
import AnnotatedTree.Processor.NodeDrawableCollector;
import PropBank.ArgumentType;
import PropBank.Frameset;

import java.util.ArrayList;

public abstract class AutoArgument {
    protected ViewLayerType secondLanguage;
    protected abstract boolean autoDetectArgument(ParseNodeDrawable parseNode, ArgumentType argumentType);

    protected AutoArgument(ViewLayerType secondLanguage){
        this.secondLanguage = secondLanguage;
    }

    public void autoArgument(ParseTreeDrawable parseTree, Frameset frameset){
        NodeDrawableCollector nodeDrawableCollector = new NodeDrawableCollector((ParseNodeDrawable) parseTree.getRoot(), new IsTransferable(secondLanguage));
        ArrayList leafList = nodeDrawableCollector.collect();
        for (ParseNodeDrawable parseNode : leafList){
            if (parseNode.getLayerData(ViewLayerType.PROPBANK) == null){
                for (ArgumentType argumentType : ArgumentType.values()){
                    if (frameset.containsArgument(argumentType) && autoDetectArgument(parseNode, argumentType)){
                        parseNode.getLayerInfo().setLayerData(ViewLayerType.PROPBANK, ArgumentType.getPropbankType(argumentType));
                    }
                }
                if (Word.isPunctuation(parseNode.getLayerData(secondLanguage))){
                    parseNode.getLayerInfo().setLayerData(ViewLayerType.PROPBANK, "NONE");
                }
            }
        }
        parseTree.save();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy