8

目前我正在使用 OpenNLP 工具对德语句子进行 PoS 标记,他们的下载站点上列出了 maxent 模型:

在老虎语料库上训练的 de POS Tagger Maxent 模型。de-pos-maxent.bin

这很好用,我得到的结果是:

Diese, 社区, bietet, Teilnehmern, der, Veranstaltungen, die, Möglichkeit ...
PDAT、FM、VVFIN、NN、ART、NN、ART、NN ...

对于标记的句子,我想做一些进一步的处理,我必须知道单个标记的含义。不幸的是,在OpenNLP-Wiki中搜索标签集并不是很有帮助,因为它说:

TODO:添加更多标签集,也适用于非英语语言

有谁知道我在哪里可以找到德国 maxent 模型中使用的标签集?

4

3 回答 3

8

我创建了一个包含德语标签的枚举(可以进行反向查找):

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;
    }
}
于 2012-08-03T11:36:04.153 回答
6

似乎很可能使用了STTS 标记集。这个标签集据说是德语最常见的标签集,例如在这个问题或这个维基百科条目中

于 2010-12-31T16:18:49.257 回答
3

据我了解,德语的 OpenNLP POS 标注器是在 Tiger 语料库上训练的。这个语料库确实使用了 STTS 标记集,只是稍作修改。我发现以下内容很有帮助:Tiger 样本语料库简介

于 2012-01-20T11:14:46.333 回答