Code Duplication    Length = 36-37 lines in 2 locations

abydos/stemmer/_snowball.py 2 locations

@@ 1319-1355 (lines=37) @@
1316
1317
        # Step 1
1318
        _r1 = word[r1_start:]
1319
        if _r1[-7:] == 'heterna':
1320
            word = word[:-7]
1321
        elif _r1[-6:] == 'hetens':
1322
            word = word[:-6]
1323
        elif _r1[-5:] in {
1324
            'anden',
1325
            'heten',
1326
            'heter',
1327
            'arnas',
1328
            'ernas',
1329
            'ornas',
1330
            'andes',
1331
            'arens',
1332
            'andet',
1333
        }:
1334
            word = word[:-5]
1335
        elif _r1[-4:] in {
1336
            'arna',
1337
            'erna',
1338
            'orna',
1339
            'ande',
1340
            'arne',
1341
            'aste',
1342
            'aren',
1343
            'ades',
1344
            'erns',
1345
        }:
1346
            word = word[:-4]
1347
        elif _r1[-3:] in {'ade', 'are', 'ern', 'ens', 'het', 'ast'}:
1348
            word = word[:-3]
1349
        elif _r1[-2:] in {'ad', 'en', 'ar', 'er', 'or', 'as', 'es', 'at'}:
1350
            word = word[:-2]
1351
        elif _r1[-1:] in {'a', 'e'}:
1352
            word = word[:-1]
1353
        elif _r1[-1:] == 's':
1354
            if len(word) > 1 and word[-2] in self._s_endings:
1355
                word = word[:-1]
1356
1357
        # Step 2
1358
        if word[r1_start:][-2:] in {'dd', 'gd', 'nn', 'dt', 'gt', 'kt', 'tt'}:
@@ 1447-1482 (lines=36) @@
1444
1445
        # Step 1
1446
        _r1 = word[r1_start:]
1447
        if _r1[-7:] == 'erendes':
1448
            word = word[:-7]
1449
        elif _r1[-6:] in {'erende', 'hedens'}:
1450
            word = word[:-6]
1451
        elif _r1[-5:] in {
1452
            'ethed',
1453
            'erede',
1454
            'heden',
1455
            'heder',
1456
            'endes',
1457
            'ernes',
1458
            'erens',
1459
            'erets',
1460
        }:
1461
            word = word[:-5]
1462
        elif _r1[-4:] in {
1463
            'ered',
1464
            'ende',
1465
            'erne',
1466
            'eren',
1467
            'erer',
1468
            'heds',
1469
            'enes',
1470
            'eres',
1471
            'eret',
1472
        }:
1473
            word = word[:-4]
1474
        elif _r1[-3:] in {'hed', 'ene', 'ere', 'ens', 'ers', 'ets'}:
1475
            word = word[:-3]
1476
        elif _r1[-2:] in {'en', 'er', 'es', 'et'}:
1477
            word = word[:-2]
1478
        elif _r1[-1:] == 'e':
1479
            word = word[:-1]
1480
        elif _r1[-1:] == 's':
1481
            if len(word) > 1 and word[-2] in self._s_endings:
1482
                word = word[:-1]
1483
1484
        # Step 2
1485
        if word[r1_start:][-2:] in {'gd', 'dt', 'gt', 'kt'}: