Skip to content

German Analyzer

Bases: BaseAnalyzer

An Analyzer specific to the German language, containing a BarrierAnalyzer as well as a ComplexityAnalyzer implementation specific to German.

Source code in src/limes/analyzers/de/__init__.py
class GermanAnalyzer(BaseAnalyzer):
    """
    An `Analyzer` specific to the German language, containing a
    `BarrierAnalyzer` as well as a `ComplexityAnalyzer` implementation specific
    to German.
    """

    def __init__(self, simplify_explanations: bool = False):
        self.barrier_analyzer = GermanBarrierAnalyzer(
            lexicon=GermanLexicon(),
            simplify_explanations=simplify_explanations,
        )
        self.complexity_analyzer = GermanComplexityAnalyzer()

    @property
    def supported_barriers(self) -> list[Barrier]:
        """
        A list of all types of barriers that this analyzer can detect.
        """
        return self.barrier_analyzer.supported_barriers

    def get_pos_lookup_fallbacks(
        self,
        pos: PartOfSpeechTag,
    ) -> tuple[PartOfSpeechTag, ...]:
        """
        POS tags that are commonly confused in German parsing and can be used
        as fallback during lookup.
        """
        if pos == "NOUN":
            return ("PROPN",)
        if pos == "PROPN":
            return ("NOUN",)
        if pos == "ADJ":
            return ("ADV",)
        if pos == "ADV":
            return ("ADJ",)
        return ()

supported_barriers property

A list of all types of barriers that this analyzer can detect.

get_pos_lookup_fallbacks(pos)

POS tags that are commonly confused in German parsing and can be used as fallback during lookup.

Source code in src/limes/analyzers/de/__init__.py
def get_pos_lookup_fallbacks(
    self,
    pos: PartOfSpeechTag,
) -> tuple[PartOfSpeechTag, ...]:
    """
    POS tags that are commonly confused in German parsing and can be used
    as fallback during lookup.
    """
    if pos == "NOUN":
        return ("PROPN",)
    if pos == "PROPN":
        return ("NOUN",)
    if pos == "ADJ":
        return ("ADV",)
    if pos == "ADV":
        return ("ADJ",)
    return ()