Code Duplication    Length = 36-37 lines in 2 locations

abydos/stemmer/_snowball_swedish.py 1 location

@@ 95-131 (lines=37) @@
92
93
        # Step 1
94
        _r1 = word[r1_start:]
95
        if _r1[-7:] == 'heterna':
96
            word = word[:-7]
97
        elif _r1[-6:] == 'hetens':
98
            word = word[:-6]
99
        elif _r1[-5:] in {
100
            'anden',
101
            'heten',
102
            'heter',
103
            'arnas',
104
            'ernas',
105
            'ornas',
106
            'andes',
107
            'arens',
108
            'andet',
109
        }:
110
            word = word[:-5]
111
        elif _r1[-4:] in {
112
            'arna',
113
            'erna',
114
            'orna',
115
            'ande',
116
            'arne',
117
            'aste',
118
            'aren',
119
            'ades',
120
            'erns',
121
        }:
122
            word = word[:-4]
123
        elif _r1[-3:] in {'ade', 'are', 'ern', 'ens', 'het', 'ast'}:
124
            word = word[:-3]
125
        elif _r1[-2:] in {'ad', 'en', 'ar', 'er', 'or', 'as', 'es', 'at'}:
126
            word = word[:-2]
127
        elif _r1[-1:] in {'a', 'e'}:
128
            word = word[:-1]
129
        elif _r1[-1:] == 's':
130
            if len(word) > 1 and word[-2] in self._s_endings:
131
                word = word[:-1]
132
133
        # Step 2
134
        if word[r1_start:][-2:] in {'dd', 'gd', 'nn', 'dt', 'gt', 'kt', 'tt'}:

abydos/stemmer/_snowball_danish.py 1 location

@@ 98-133 (lines=36) @@
95
96
        # Step 1
97
        _r1 = word[r1_start:]
98
        if _r1[-7:] == 'erendes':
99
            word = word[:-7]
100
        elif _r1[-6:] in {'erende', 'hedens'}:
101
            word = word[:-6]
102
        elif _r1[-5:] in {
103
            'ethed',
104
            'erede',
105
            'heden',
106
            'heder',
107
            'endes',
108
            'ernes',
109
            'erens',
110
            'erets',
111
        }:
112
            word = word[:-5]
113
        elif _r1[-4:] in {
114
            'ered',
115
            'ende',
116
            'erne',
117
            'eren',
118
            'erer',
119
            'heds',
120
            'enes',
121
            'eres',
122
            'eret',
123
        }:
124
            word = word[:-4]
125
        elif _r1[-3:] in {'hed', 'ene', 'ere', 'ens', 'ers', 'ets'}:
126
            word = word[:-3]
127
        elif _r1[-2:] in {'en', 'er', 'es', 'et'}:
128
            word = word[:-2]
129
        elif _r1[-1:] == 'e':
130
            word = word[:-1]
131
        elif _r1[-1:] == 's':
132
            if len(word) > 1 and word[-2] in self._s_endings:
133
                word = word[:-1]
134
135
        # Step 2
136
        if word[r1_start:][-2:] in {'gd', 'dt', 'gt', 'kt'}: