Code Duplication    Length = 36-37 lines in 2 locations

abydos/stemmer/_SnowballSwedish.py 1 location

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

abydos/stemmer/_SnowballDanish.py 1 location

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