目前我正在使用OpenNLP工具对PoS标记德语句子,其下载网站上列出了maxent模型:
de POS Tagger Maxent model trained on tiger corpus. de-pos-maxent.bin
这非常有效,我得到的结果如下:
Diese, Community, bietet, Teilnehmern, der, Veranstaltungen, die, Möglichkeit ... PDAT, FM, VVFIN, NN, ART, NN, ART, NN ...
使用标记的句子,我想进行一些进一步的处理,我必须知道单个标签的含义.不幸的是,在OpenNLP-Wiki中搜索标签集并不是很有帮助,因为它说:
TODO: Add more tag sets, also for non-english languages
有谁知道我在哪里可以找到德国maxent模型中使用的标签集?
我创建了一个包含德语标签的枚举(可以反向查找):
public enum POSGermanTag {
    ADJA("Attributives Adjektiv"),
    ADJD("Adverbiales oder prädikatives Adjektiv"),
    ADV("Adverb"),
    APPR("Präposition; Zirkumposition links"),
    APPRART("Präposition mit Artikel"),
    APPO("Postposition"),
    APZR("Zirkumposition rechts"),
    ART("Bestimmer oder unbestimmer Artikel"),
    CARD("Kardinalzahl"),
    FM("Fremdsprachichles Material"),
    ITJ("Interjektion"),
    KOUI("unterordnende Konjunktion mit zu und Infinitiv"),
    KOUS("unterordnende Konjunktion mit Satz"),
    KON("nebenordnende Konjunktion"),
    KOKOM("Vergleichskonjunktion"),
    NN("normales Nomen"),
    NE("Eigennamen"),
    PDS("substituierendes Demonstrativpronomen"),
    PDAT("attribuierendes Demonstrativpronomen"),
    PIS("substituierendes Indefinitpronomen"),
    PIAT("attribuierendes Indefinitpronomen ohne Determiner"),
    PIDAT("attribuierendes Indefinitpronomen mit Determiner"),
    PPER("irreflexives Personalpronomen"),
    PPOSS("substituierendes Possessivpronomen"),
    PPOSAT("attribuierendes Possessivpronomen"),
    PRELS("substituierendes Relativpronomen"),
    PRELAT("attribuierendes Relativpronomen"),
    PRF("reflexives Personalpronomen"),
    PWS("substituierendes Interrogativpronomen"),
    PWAT("attribuierendes Interrogativpronomen"),
    PWAV("adverbiales Interrogativ- oder Relativpronomen"),
    PAV("Pronominaladverb"),
    PTKZU("zu vor Infinitiv"),
    PTKNEG("Negationspartike"),
    PTKVZ("abgetrennter Verbzusatz"),
    PTKANT("Antwortpartikel"),
    PTKA("Partikel bei Adjektiv oder Adverb"),
    TRUNC("Kompositions-Erstglied"),
    VVFIN("finites Verb, voll"),
    VVIMP("Imperativ, voll"),
    VVINF("Infinitiv"),
    VVIZU("Infinitiv mit zu"),
    VVPP("Partizip Perfekt"),
    VAFIN("finites Verb, aux"),
    VAIMP("Imperativ, aux"),
    VAINF("Infinitiv, aux"),
    VAPP("Partizip Perfekt"),
    VMFIN("finites Verb, modal"),
    VMINF("Infinitiv, modal"),
    VMPP("Partizip Perfekt, modal"),
    XY("Nichtwort, Sonderzeichen"),
    UNDEFINED("Nicht definiert, zb. Satzzeichen");
    private final String desc;
    private static final Map<String, POSGermanTag> nameToValueMap = new HashMap<String, POSGermanTag>();
    static {
        for (POSGermanTag value : EnumSet.allOf(POSGermanTag.class)) {
            nameToValueMap.put(value.name(), value);
        }
    }
    public static POSGermanTag forName(String name) {
        return nameToValueMap.get(name);
    }
    private POSGermanTag(String desc) {
        this.desc = desc;
    }
    public String getDesc() {
        return this.desc;
    }
}