예제 #1
0
파일: Person.py 프로젝트: zlepper/sccPython
    def compare_barn_foraeldre(self, other):
        barn = ["søn", "datter", "dater", "barn", "barn.", "børn", "kinder", "sohn", "tochter", "deres søn", "deres datter", "deres døttre", "deres barn", "deres børn", "deres ægte søn", "deres ægte datter", "deres fælles søn", "deres fælles datter", "deres fælles børn", "deres fælles barn", "en søn", "en datter", "ægte søn", "ægte datter", "ihre kinder", "ihre sohn", "ihre tochter", "ihr kinder", "ihr sohn", "ihr tochter"]
        kone = ["kone", "konen", "koun", "koune", "hustru", "madmoder", "madmoeder", "huusmoder", "husmoder", "moder", "ehefrau", "frau"]

        if any(element in re.sub("[,.-]", "", self.erhverv.lower()) for element in barn) and any(element in re.sub("[,.-]", "", other.erhverv.lower()) for element in barn):
            person_home = getData.get_home(self.home_index)
            other_home = getData.get_home(other.home_index)

            for person in person_home:

                if any(element in re.sub("[,.-]", "", person.erhverv.lower()).split(" ") for element in kone):

                    if person.kon is False and person.civilstand == 2:
                        person_moder = person.navn

                        if person in person_home and person_home[person_home.index(person) - 1].kon is True and person_home[person_home.index(person) - 1].civilstand == 2 and person_home[person_home.index(person) - 1].nregteskab == person.nregteskab:
                            person_fader = person_home[person_home.index(person) - 1].navn

                            for other in other_home:

                                if any(element in re.sub("[,.-]", "", other.erhverv.lower()).split(" ") for element in kone):

                                    if other.kon is False and other.civilstand == 2:
                                        other_moder = other.navn

                                        if other in other_home and other_home[other_home.index(other) - 1].kon is True and other_home[other_home.index(other) - 1].civilstand == 2 and other_home[other_home.index(other) - 1].nregteskab == other.nregteskab:
                                            other_fader = other_home[other_home.index(other) - 1].navn

                                            if person_fader != "" and person_fader is not None and person_moder != "" and person_moder is not None and other_fader != "" and other_fader is not None and other_moder != "" and other_moder is not None:

                                                if person_fader == other_fader and person_moder == other_moder:
                                                    return 0

                                                else:
                                                    proximity = damerau_levenshtein_distance(person_fader, other_fader) + damerau_levenshtein_distance(person_moder, other_moder)

                                                    if proximity is not None:
                                                        return proximity

        return 0
예제 #2
0
    def compare_barn_foraeldre(self, other):
        barn = [
            "søn", "datter", "dater", "barn", "barn.", "børn", "kinder",
            "sohn", "tochter", "deres søn", "deres datter", "deres døttre",
            "deres barn", "deres børn", "deres ægte søn", "deres ægte datter",
            "deres fælles søn", "deres fælles datter", "deres fælles børn",
            "deres fælles barn", "en søn", "en datter", "ægte søn",
            "ægte datter", "ihre kinder", "ihre sohn", "ihre tochter",
            "ihr kinder", "ihr sohn", "ihr tochter"
        ]
        kone = [
            "kone", "konen", "koun", "koune", "hustru", "madmoder",
            "madmoeder", "huusmoder", "husmoder", "moder", "ehefrau", "frau"
        ]

        if any(element in re.sub("[,.-]", "", self.erhverv.lower())
               for element in barn) and any(
                   element in re.sub("[,.-]", "", other.erhverv.lower())
                   for element in barn):
            person_home = getData.get_home(self.home_index)
            other_home = getData.get_home(other.home_index)

            for person in person_home:

                if any(element in re.sub("[,.-]", "",
                                         person.erhverv.lower()).split(" ")
                       for element in kone):

                    if person.kon is False and person.civilstand == 2:
                        person_moder = person.navn

                        if person in person_home and person_home[
                                person_home.index(person) -
                                1].kon is True and person_home[
                                    person_home.index(person) -
                                    1].civilstand == 2 and person_home[
                                        person_home.index(person) -
                                        1].nregteskab == person.nregteskab:
                            person_fader = person_home[
                                person_home.index(person) - 1].navn

                            for other in other_home:

                                if any(element in re.sub(
                                        "[,.-]", "",
                                        other.erhverv.lower()).split(" ")
                                       for element in kone):

                                    if other.kon is False and other.civilstand == 2:
                                        other_moder = other.navn

                                        if other in other_home and other_home[
                                                other_home.index(other) -
                                                1].kon is True and other_home[
                                                    other_home.index(other) -
                                                    1].civilstand == 2 and other_home[
                                                        other_home.index(other)
                                                        -
                                                        1].nregteskab == other.nregteskab:
                                            other_fader = other_home[
                                                other_home.index(other) -
                                                1].navn

                                            if person_fader != "" and person_fader is not None and person_moder != "" and person_moder is not None and other_fader != "" and other_fader is not None and other_moder != "" and other_moder is not None:

                                                if person_fader == other_fader and person_moder == other_moder:
                                                    return 0

                                                else:
                                                    proximity = damerau_levenshtein_distance(
                                                        person_fader,
                                                        other_fader
                                                    ) + damerau_levenshtein_distance(
                                                        person_moder,
                                                        other_moder)

                                                    if proximity is not None:
                                                        return proximity

        return 0
예제 #3
0
파일: Person.py 프로젝트: zlepper/sccPython
    def compare_aegteskab(self, other):

        # Ret fejl ved indtastning - hvis de er gift, så må deres nr. ægteskab mindst være 1
        if self.civilstand == 2 and self.nregteskab == 0 or self.nregteskab == "":
            self.nregteskab = 1

        if other.civilstand == 2 and other.nregteskab == 0 or other.nregteskab == "":
            other.nregteskab = 1

        # Sammenlign personerne efter deres mand eller kones navn - Forudsætter, at personernes navne er ens
        if self.civilstand == 2 and other.civilstand == 2 and self.nregteskab == other.nregteskab:

            person_home = getData.get_home(self.home_index)
            other_home = getData.get_home(other.home_index)

            kone = ["kone", "konen", "koun", "koune", "hustru", "madmoder", "madmoeder", "huusmoder", "husmoder", "moder", "ehefrau", "frau"]
            if person_home is not [] and other_home is not []:
                if self.kon is True and other.kon is True:

                        for person in person_home:

                            if any(element in re.sub("[,.-]", "", person.erhverv.lower()).split(" ") for element in kone):
                                if person.civilstand == self.civilstand and person.nregteskab == self.nregteskab:
                                    person_aegtefaelle = person.navn

                                    if person_aegtefaelle is not None:

                                        for andenperson in other_home:

                                            if any(element in re.sub("[,.-]", "", andenperson.erhverv.lower()).split(" ") for element in kone):

                                                if andenperson.civilstand == other.civilstand and andenperson.nregteskab == other.nregteskab:
                                                    other_aegtefaelle = andenperson.navn

                                                    if other_aegtefaelle is not None:

                                                        proximity = damerau_levenshtein_distance(person_aegtefaelle, other_aegtefaelle)

                                                        if proximity is not None:
                                                            return proximity

                if self.kon is False and other.kon is False:

                    if any(element in re.sub("[,.-]", "", self.erhverv.lower()).split(" ") for element in kone):

                            if self in person_home and person_home[person_home.index(self) - 1].kon is True and person_home[person_home.index(self) - 1].civilstand == self.civilstand and person_home[person_home.index(self) - 1].nregteskab == self.nregteskab:
                                person_aegtefaelle = person_home[person_home.index(self) - 1].navn

                                if person_aegtefaelle is not None:

                                    if any(element in re.sub("[,.-]", "", other.erhverv.lower()).split(" ") for element in kone):

                                        if other in other_home and other_home[other_home.index(other) - 1].kon is True and other_home[other_home.index(other) - 1].civilstand == other.civilstand and other_home[other_home.index(other) - 1].nregteskab == other.nregteskab:
                                            other_aegtefaelle = other_home[other_home.index(other) - 1].navn

                                            if other_aegtefaelle is not None:
                                                proximity = damerau_levenshtein_distance(person_aegtefaelle, other_aegtefaelle)

                                                if proximity is not None:
                                                    return proximity
        return 0
예제 #4
0
    def compare_aegteskab(self, other):

        # Ret fejl ved indtastning - hvis de er gift, så må deres nr. ægteskab mindst være 1
        if self.civilstand == 2 and self.nregteskab == 0 or self.nregteskab == "":
            self.nregteskab = 1

        if other.civilstand == 2 and other.nregteskab == 0 or other.nregteskab == "":
            other.nregteskab = 1

        # Sammenlign personerne efter deres mand eller kones navn - Forudsætter, at personernes navne er ens
        if self.civilstand == 2 and other.civilstand == 2 and self.nregteskab == other.nregteskab:

            person_home = getData.get_home(self.home_index)
            other_home = getData.get_home(other.home_index)

            kone = [
                "kone", "konen", "koun", "koune", "hustru", "madmoder",
                "madmoeder", "huusmoder", "husmoder", "moder", "ehefrau",
                "frau"
            ]
            if person_home is not [] and other_home is not []:
                if self.kon is True and other.kon is True:

                    for person in person_home:

                        if any(element in re.sub(
                                "[,.-]", "", person.erhverv.lower()).split(" ")
                               for element in kone):
                            if person.civilstand == self.civilstand and person.nregteskab == self.nregteskab:
                                person_aegtefaelle = person.navn

                                if person_aegtefaelle is not None:

                                    for andenperson in other_home:

                                        if any(element in re.sub(
                                                "[,.-]", "",
                                                andenperson.erhverv.lower()).
                                               split(" ") for element in kone):

                                            if andenperson.civilstand == other.civilstand and andenperson.nregteskab == other.nregteskab:
                                                other_aegtefaelle = andenperson.navn

                                                if other_aegtefaelle is not None:

                                                    proximity = damerau_levenshtein_distance(
                                                        person_aegtefaelle,
                                                        other_aegtefaelle)

                                                    if proximity is not None:
                                                        return proximity

                if self.kon is False and other.kon is False:

                    if any(element in re.sub("[,.-]", "",
                                             self.erhverv.lower()).split(" ")
                           for element in kone):

                        if self in person_home and person_home[person_home.index(
                                self
                        ) - 1].kon is True and person_home[person_home.index(
                                self
                        ) - 1].civilstand == self.civilstand and person_home[
                                person_home.index(self) -
                                1].nregteskab == self.nregteskab:
                            person_aegtefaelle = person_home[
                                person_home.index(self) - 1].navn

                            if person_aegtefaelle is not None:

                                if any(element in re.sub(
                                        "[,.-]", "",
                                        other.erhverv.lower()).split(" ")
                                       for element in kone):

                                    if other in other_home and other_home[
                                            other_home.index(other) -
                                            1].kon is True and other_home[
                                                other_home.index(other) -
                                                1].civilstand == other.civilstand and other_home[
                                                    other_home.index(other) -
                                                    1].nregteskab == other.nregteskab:
                                        other_aegtefaelle = other_home[
                                            other_home.index(other) - 1].navn

                                        if other_aegtefaelle is not None:
                                            proximity = damerau_levenshtein_distance(
                                                person_aegtefaelle,
                                                other_aegtefaelle)

                                            if proximity is not None:
                                                return proximity
        return 0