'Implements Step 1c from "An algorithm for suffix stripping"
From the paper:
Step 1c
(*v*) Y -> I                    happy        ->  happi
sky          ->  sky'

def _step1c(self, word):

    def nltk_condition(stem):
        u"\n                                                This    has    been    modified    from    the    original    Porter    algorithm    so\n                                                that    y->i    is    only    done    when    y    is    preceded    by    a    consonant,\n                                                but    not    if    the    stem    is    only    a    single    consonant,    i.e.\n\n                                                            (*c    and    not    c)    Y    ->    I\n\n                                                So    'happy'    ->    'happi',    but\n                                                            'enjoy'    ->    'enjoy'        etc\n\n                                                This    is    a    much    better    rule.    Formerly    'enjoy'->'enjoi'    and\n                                                'enjoyment'->'enjoy'.    Step    1c    is    perhaps    done    too    soon;    but\n                                                with    this    modification    that    no    longer    really    matters.\n\n                                                Also,    the    removal    of    the    contains_vowel(z)    condition    means\n                                                that    'spy',    'fly',    'try'    ...    stem    to    'spi',    'fli',    'tri'    and\n                                                conflate    with    'spied',    'tried',    'flies'    ...\n                                                "
        return ((len(stem) > 1) and self._is_consonant(stem, (len(stem) - 1)))
    def original_condition(stem):
        return self._contains_vowel(stem)
    return self._apply_rule_list(word, [(u'y', u'i', (nltk_condition if (self.mode == self.NLTK_EXTENSIONS) else original_condition))])
