# phpman > perldoc > Lingua::Stem::EnBroken

## NAME
    [Lingua::Stem::EnBroken](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem%3A%3AEnBroken/markdown) - Porter's stemming algorithm for 'generic' English

## SYNOPSIS
        use [Lingua::Stem::EnBroken](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem%3A%3AEnBroken/markdown);
        my $stems   = [Lingua::Stem::EnBroken::stem](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem%3A%3AEnBroken%3A%3Astem/markdown)({ -words => $word_list_reference,
                                            -locale => 'en',
                                        -exceptions => $exceptions_hash,
                                         });

## DESCRIPTION
    This routine MIS-applies the Porter Stemming Algorithm to its parameters, returning the stemmed
    words. It is an intentionally broken version of [Lingua::Stem::En](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem%3A%3AEn/markdown) for people needing backwards
    compatibility with [Lingua::Stem](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem/markdown) 0.30 and [Lingua::Stem](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem/markdown) 0.40. Do not use it if you aren't one of
    those people.

    It is derived from the C program "stemmer.c" as found in freewais and elsewhere, which contains
    these notes:

       Purpose:    Implementation of the Porter stemming algorithm documented
                   in: Porter, M.F., "An Algorithm For Suffix Stripping,"
                   Program 14 (3), July 1980, pp. 130-137.
       Provenance: Written by B. Frakes and C. Cox, 1986.

    I have re-interpreted areas that use Frakes and Cox's "WordSize" function. My version may
    misbehave on short words starting with "y", but I can't think of any examples.

    The step numbers correspond to Frakes and Cox, and are probably in Porter's article (which I've
    not seen). Porter's algorithm still has rough spots (e.g current/currency, -ings words), which
    I've not attempted to cure, although I have added support for the British -ise suffix.

## CHANGES
     2003.09.28 -  Documentation fix

     2000.09.14 -  Forked from the [Lingua::Stem::En](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem%3A%3AEn/markdown).pm module to provide
                   a backward compatibly broken version for people needing
                   consistent behavior with 0.30 and 0.40 more than accurate
                   stemming.

## METHODS
### stem
        Stems a list of passed words using the rules of US English. Returns an anonymous array
        reference to the stemmed words.

        Example:

          my $stemmed_words = [Lingua::Stem::EnBroken::stem](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem%3A%3AEnBroken%3A%3Astem/markdown)({ -words => \@words,
                                                      -locale => 'en',
                                                  -exceptions => \%exceptions,
                                  });

### stem_caching
        Sets the level of stem caching.

        '0' means 'no caching'. This is the default level.

        '1' means 'cache per run'. This caches stemming results during a single call to 'stem'.

        '2' means 'cache indefinitely'. This caches stemming results until either the process exits
        or the 'clear_stem_cache' method is called.

    clear_stem_cache;
        Clears the cache of stemmed words

## NOTES
    This code is almost entirely derived from the Porter 2.1 module written by Jim Richardson.

## SEE ALSO
     [Lingua::Stem](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem/markdown)

## AUTHOR
      Jim Richardson, University of Sydney
      <jimr@maths.usyd.edu.au> or <http://www.maths.usyd.edu.au:8000/jimr.html>

      Integration in [Lingua::Stem](https://www.chedong.com/phpMan.php/perldoc/Lingua%3A%3AStem/markdown) by
      Jerilyn Franz, FreeRun Technologies,
      <<cpan@jerilyn.info>>

## COPYRIGHT
    Jim Richardson, University of Sydney Jerilyn Franz, FreeRun Technologies

    This code is freely available under the same terms as Perl.

## BUGS
## TODO
