def _lemmatise(self, form, pos=False, get_lemma_object=False):
        """ Lemmatise un mot f

        :param f: Mot à lemmatiser
        :param pos: Récupère la POS
        :param get_lemma_object: Retrieve Lemma object instead of string representation of lemma
        :param check_assims: Vérifie les assimilations.
        """
        result = []
        if not form:
            return result

        # formes irrégulières
        for irr in self._irregs[form]:
            for m in irr.morphos():
                yield Lemmatiseur.format_result(
                    form=form, lemma=irr, morphos=self.morpho(m), with_pos=pos,
                    raw_obj=get_lemma_object
                )

        # radical + désinence
        for i in range(len(form)+1):
            if i == 0:
                radical = ""
                desinence = form
            else:
                radical = form[:i]
                desinence = form[i:]
            ldes = self._desinences.get(desinence, None)  # List of desinences
            if ldes is None:
                continue
            # Je regarde d'abord si d est une désinence possible,
            # car il y a moins de désinences que de radicaux.
            # Je fais la recherche sur les radicaux seulement si la désinence existe.
            lrad = [] + self._radicaux.get(radical, [])

            # ii noté ī
            # 1. Patauium, gén. Pataui : Patau.i . Patau+i.i
            # 2. conubium, conubis : conubi.s . conubi.i+s
            if desinence.startswith('i') and not desinence.startswith("ii") and not radical.endswith('i'):
                lrad += self._radicaux.get(radical + "i", [])

            if len(lrad) == 0:  # Il n'y a rien à faire si le radical n'existe pas.
                continue

            for rad in lrad:
                lemme = rad.lemme()
                for des in ldes:
                    if des.modele() == lemme.modele()\
                            and des.numRad() == rad.numRad()\
                            and not lemme.estIrregExcl(des.morphoNum()):
                        # Commented this part because we are not using quantity right now.
                        yield Lemmatiseur.format_result(
                                form, lemme, morphos=self.morpho(des.morphoNum()), with_pos=pos,
                                raw_obj=get_lemma_object, radical=rad, desinence=des
                            )

        return result
Lemmatise un mot f

        :param f: Mot à lemmatiser
        :param pos: Récupère la POS
        :param get_lemma_object: Retrieve Lemma object instead of string representation of lemma
        :param check_assims: Vérifie les assimilations.