Code Duplication    Length = 36-37 lines in 2 locations

abydos/stemmer/_snowball.py 2 locations

@@ 1182-1218 (lines=37) @@
1179
1180
    # Step 1
1181
    _r1 = word[r1_start:]
1182
    if _r1[-7:] == 'heterna':
1183
        word = word[:-7]
1184
    elif _r1[-6:] == 'hetens':
1185
        word = word[:-6]
1186
    elif _r1[-5:] in {
1187
        'anden',
1188
        'heten',
1189
        'heter',
1190
        'arnas',
1191
        'ernas',
1192
        'ornas',
1193
        'andes',
1194
        'arens',
1195
        'andet',
1196
    }:
1197
        word = word[:-5]
1198
    elif _r1[-4:] in {
1199
        'arna',
1200
        'erna',
1201
        'orna',
1202
        'ande',
1203
        'arne',
1204
        'aste',
1205
        'aren',
1206
        'ades',
1207
        'erns',
1208
    }:
1209
        word = word[:-4]
1210
    elif _r1[-3:] in {'ade', 'are', 'ern', 'ens', 'het', 'ast'}:
1211
        word = word[:-3]
1212
    elif _r1[-2:] in {'ad', 'en', 'ar', 'er', 'or', 'as', 'es', 'at'}:
1213
        word = word[:-2]
1214
    elif _r1[-1:] in {'a', 'e'}:
1215
        word = word[:-1]
1216
    elif _r1[-1:] == 's':
1217
        if len(word) > 1 and word[-2] in _s_endings:
1218
            word = word[:-1]
1219
1220
    # Step 2
1221
    if word[r1_start:][-2:] in {'dd', 'gd', 'nn', 'dt', 'gt', 'kt', 'tt'}:
@@ 1286-1321 (lines=36) @@
1283
1284
    # Step 1
1285
    _r1 = word[r1_start:]
1286
    if _r1[-7:] == 'erendes':
1287
        word = word[:-7]
1288
    elif _r1[-6:] in {'erende', 'hedens'}:
1289
        word = word[:-6]
1290
    elif _r1[-5:] in {
1291
        'ethed',
1292
        'erede',
1293
        'heden',
1294
        'heder',
1295
        'endes',
1296
        'ernes',
1297
        'erens',
1298
        'erets',
1299
    }:
1300
        word = word[:-5]
1301
    elif _r1[-4:] in {
1302
        'ered',
1303
        'ende',
1304
        'erne',
1305
        'eren',
1306
        'erer',
1307
        'heds',
1308
        'enes',
1309
        'eres',
1310
        'eret',
1311
    }:
1312
        word = word[:-4]
1313
    elif _r1[-3:] in {'hed', 'ene', 'ere', 'ens', 'ers', 'ets'}:
1314
        word = word[:-3]
1315
    elif _r1[-2:] in {'en', 'er', 'es', 'et'}:
1316
        word = word[:-2]
1317
    elif _r1[-1:] == 'e':
1318
        word = word[:-1]
1319
    elif _r1[-1:] == 's':
1320
        if len(word) > 1 and word[-2] in _s_endings:
1321
            word = word[:-1]
1322
1323
    # Step 2
1324
    if word[r1_start:][-2:] in {'gd', 'dt', 'gt', 'kt'}: