What tag set is used in OpenNLP's german maxent model?
currently I am using the OpenNLP tools to PoS-tag german sentences, with the maxent model listed on their download-site:
de POS Tagger Maxent model trained on tiger corpus. de-pos-maxent.bin
This works very well and I got results as:
Diese, Community, bietet, Teilnehmern, der, Veranstaltungen, die, Möglichkeit ... PDAT, FM, VVFIN, NN, ART, NN, ART, NN ...
With the tagged sentences I want to do some further processing where I have to know the meaning of the single tags. Unforunately searching the OpenNLP-Wiki for the tag sets isn't very helpful as it says:
TODO: Add more tag sets, also for non-english lan开发者_StackOverflowguages
Does anyone know where can I find the tag set used in the german maxent model?
I created an enum containing the german tags (Reverse lookup is possible):
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;
}
}
It seems very likely that the STTS tag set is used. This tag set is said to be the most common tag set for the German language, e.g. in this question or in this Wikipedia entry.
It is my understanding that the OpenNLP POS tagger for German was trained on the Tiger corpus. This corpus does indeed use the STTS tag set, with minor modifications. I found the following helpful: A Brief Introduction to the Tiger Sample Corpus
精彩评论