Search in sources :

Example 1 with POS_ADJ

use of de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS_ADJ in project dkpro-tc by dkpro.

the class AdjectiveEndingFeatureExtractor method extract.

@Override
public Set<Feature> extract(JCas jcas, TextClassificationTarget aTarget) {
    double able = 0;
    double al = 0;
    double ful = 0;
    double ible = 0;
    double ic = 0;
    double ive = 0;
    double less = 0;
    double ous = 0;
    double ly = 0;
    int n = 0;
    for (POS_ADJ adj : JCasUtil.selectCovered(jcas, POS_ADJ.class, aTarget)) {
        n++;
        String text = adj.getCoveredText().toLowerCase();
        if (text.endsWith("able")) {
            able++;
        } else if (text.endsWith("al")) {
            al++;
        } else if (text.endsWith("ful")) {
            ful++;
        } else if (text.endsWith("ible")) {
            ible++;
        } else if (text.endsWith("ic")) {
            ic++;
        } else if (text.endsWith("ive")) {
            ive++;
        } else if (text.endsWith("less")) {
            less++;
        } else if (text.endsWith("ous")) {
            ous++;
        }
    }
    int m = 0;
    for (POS_ADV adv : JCasUtil.select(jcas, POS_ADV.class)) {
        m++;
        String text = adv.getCoveredText().toLowerCase();
        if (text.endsWith("ly")) {
            ly++;
        }
    }
    Set<Feature> featSet = new HashSet<Feature>();
    featSet.add(new Feature(ADJ_ENDING1, n > 0 ? able * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING2, n > 0 ? al * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING3, n > 0 ? ful * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING4, n > 0 ? ible * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING5, n > 0 ? less * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING6, n > 0 ? ous * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING7, n > 0 ? ive * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADJ_ENDING8, n > 0 ? ic * 100 / n : 0, n == 0, FeatureType.NUMERIC));
    featSet.add(new Feature(ADV_ENDING9, m > 0 ? ly * 100 / m : 0, n == 0, FeatureType.NUMERIC));
    return featSet;
}
Also used : POS_ADJ(de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS_ADJ) POS_ADV(de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS_ADV) Feature(org.dkpro.tc.api.features.Feature) HashSet(java.util.HashSet)

Aggregations

POS_ADJ (de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS_ADJ)1 POS_ADV (de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS_ADV)1 HashSet (java.util.HashSet)1 Feature (org.dkpro.tc.api.features.Feature)1