>> from nltk.stem import SnowballStemmer >>> print(" ".join(SnowballStemmer.languages)) # See which languages are supported danish dutch english finnish french german hungarian italian norwegian porter portuguese romanian russian spanish swedish >>> stemmer = SnowballStemmer("german") # Choose a language >>> stemmer.stem("Autobahnen") # Stem a word 'autobahn' Invoking the stemmers that way is useful if you do not know the language to be stemmed at runtime. Alternatively, if you already know the language, then you can invoke the language specific stemmer directly: >>> from nltk.stem.snowball import GermanStemmer >>> stemmer = GermanStemmer() >>> stemmer.stem("Autobahnen") 'autobahn' :param language: The language whose subclass is instantiated. :type language: str or unicode :param ignore_stopwords: If set to True, stopwords are not stemmed and returned unchanged. Set to False by default. :type ignore_stopwords: bool :raise ValueError: If there is no stemmer for the specified language, a ValueError is raised. udanishudutchuenglishufinnishufrenchugermanu hungarianuitalianu norwegianuporteru portugueseuromanianurussianuspanishuswedishcCsj||jkr"td|nt|jd}|||_|jj|_|jj|_dS(Nu#The language '%s' is not supported.uStemmer(t languagest ValueErrortglobalst capitalizetstemmertstemR(tselftlanguagetignore_stopwordst stemmerclass((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__init__Vs (udanishudutchuenglishufinnishufrenchugermanu hungarianuitalianu norwegianuporteru portugueseuromanianurussianuspanishuswedish(t__name__t __module__t__doc__RtFalseR(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRs 1t_LanguageSpecificStemmercBs#eZdZedZdZRS(u This helper subclass offers the possibility to invoke a specific stemmer directly. This is useful if you already know the language to be stemmed at runtime. Create an instance of the Snowball stemmer. :param ignore_stopwords: If set to True, stopwords are not stemmed and returned unchanged. Set to False by default. :type ignore_stopwords: bool cCst|jj}|jdr1|d }nt|_|ry.x'tj|D]}|jj|qVWWqtk rt d|qXndS(NustemmeriuF%r has no list of stopwords. Please set 'ignore_stopwords' to 'False'.( ttypeRtlowertendswithtsetRtwordstaddtIOErrorR (RRRtword((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRos   cCsdt|jS(uO Print out the string representation of the respective class. u<%s>(RR(R((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__repr__~s(RRRRRR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR_s t PorterStemmercBseZdZedZRS(uF A word stemmer based on the original Porter stemming algorithm. Porter, M. "An algorithm for suffix stripping." Program 14.3 (1980): 130-137. A few minor modifications have been made to Porter's basic algorithm. See the source code of the module nltk.stem.porter for more information. cCs$tj||tjj|dS(N(RRRR!(RR((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRs(RRRRR(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR!s t_ScandinavianStemmercBseZdZdZRS(u This subclass encapsulates a method for defining the string region R1. It is used by the Danish, Norwegian, and Swedish stemmer. cCsd}xtdt|D]}|||kr||d|krt||d dkrt||d dkr|d}n/t||d dkr||d}n|SPqqW|S(ur Return the region R1 that is used by the Scandinavian stemmers. R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if there is no such non-vowel. But then R1 is adjusted so that the region before it contains at least three letters. :param word: The word whose region R1 is determined. :type word: str or unicode :param vowels: The vowels of the respective language that are used to determine the region R1. :type vowels: unicode :return: the region R1 for the respective word. :rtype: unicode :note: This helper method is invoked by the respective stem method of the subclasses DanishStemmer, NorwegianStemmer, and SwedishStemmer. It is not to be invoked directly! uiii(trangetlen(RRtvowelstr1ti((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt_r1_scandinavians$4 (RRRR((((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR"st_StandardStemmercBs eZdZdZdZRS(u~ This subclass encapsulates two methods for defining the standard versions of the string regions R1, R2, and RV. cCsd}d}xStdt|D]<}|||kr"||d|kr"||d}Pq"q"WxStdt|D]<}|||krx||d|krx||d}PqxqxW||fS(u Return the standard interpretations of the string regions R1 and R2. R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if there is no such non-vowel. R2 is the region after the first non-vowel following a vowel in R1, or is the null region at the end of the word if there is no such non-vowel. :param word: The word whose regions R1 and R2 are determined. :type word: str or unicode :param vowels: The vowels of the respective language that are used to determine the regions R1 and R2. :type vowels: unicode :return: (r1,r2), the regions R1 and R2 for the respective word. :rtype: tuple :note: This helper method is invoked by the respective stem method of the subclasses DutchStemmer, FinnishStemmer, FrenchStemmer, GermanStemmer, ItalianStemmer, PortugueseStemmer, RomanianStemmer, and SpanishStemmer. It is not to be invoked directly! :note: A detailed description of how to define R1 and R2 can be found at http://snowball.tartarus.org/texts/r1r2.html ui(R#R$(RRR%R&tr2R'((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt_r1r2_standards$$cCsd}t|dkr|d|krmxtdt|D](}|||kr>||d}Pq>q>Wq|d|kr|d|krxLtdt|D](}|||kr||d}PqqWq|d}n|S(u Return the standard interpretation of the string region RV. If the second letter is a consonant, RV is the region after the next following vowel. If the first two letters are vowels, RV is the region after the next following consonant. Otherwise, RV is the region after the third letter. :param word: The word whose region RV is determined. :type word: str or unicode :param vowels: The vowels of the respective language that are used to determine the region RV. :type vowels: unicode :return: the region RV for the respective word. :rtype: unicode :note: This helper method is invoked by the respective stem method of the subclasses ItalianStemmer, PortugueseStemmer, RomanianStemmer, and SpanishStemmer. It is not to be invoked directly! uiiii(R$R#(RRR%trvR'((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt _rv_standards    (RRRR+R-(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR)s ,t DanishStemmerc BsAeZdZdZdZdBZdZdCZdDZdEZ dAZ RS(Fu The Danish Snowball stemmer. :cvar __vowels: The Danish vowels. :type __vowels: unicode :cvar __consonants: The Danish consonants. :type __consonants: unicode :cvar __double_consonants: The Danish double consonants. :type __double_consonants: tuple :cvar __s_ending: Letters that may directly appear before a word final 's'. :type __s_ending: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :note: A detailed description of the Danish stemming algorithm can be found under http://snowball.tartarus.org/algorithms/danish/stemmer.html u aeiouyæåøubcdfghjklmnpqrstvwxzubbuccudduffugguhhujjukkullummunnuppuqqurrussuttuvvuwwuxxuzzuabcdfghjklmnoprtvyzåuerendesuerendeuhedensuethedueredeuhedenuhederuendesuernesuerensueretsuereduendeuerneuerenuereruhedsuenesueresueretuhedueneuereuensuersuetsuenueruesuetueusugdudtugtuktueliguløstuliguelsuigcCs|j}||jkr|S|j||j}x|jD]t}|j|r>|dkr|d|jkr|d }|d }qn"|t| }|t| }Pq>q>Wx8|jD]-}|j|r|d }|d }PqqW|jdr|d }|d }nx|j D]}|j|r!|dkrY|d }|d }nK|t| }|t| }|j|jr|d }|d }nPq!q!Wx@|j D]5}|j|rt|dkr|d }PqqW|S(u Stem a Danish word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode usiiuigstuløsti( RRR(t_DanishStemmer__vowelst_DanishStemmer__step1_suffixesRt_DanishStemmer__s_endingR$t_DanishStemmer__step2_suffixest_DanishStemmer__step3_suffixest!_DanishStemmer__double_consonants(RRR&tsuffixt double_cons((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR KsJ            ! (ubbuccudduffugguhhujjukkullummunnuppuqqurrussuttuvvuwwuxxuzz( uerendesuerendeuhedensuethedueredeuhedenuhederuendesuernesuerensueretsuereduendeuerneuerenuereruhedsuenesueresueretuhedueneuereuensuersuetsuenueruesuetueus(ugdudtugtukt(ueliguløstuliguelsuig( RRRR/t_DanishStemmer__consonantsR4R1R0R2R3R (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR.s"t DutchStemmercBs)eZdZdZdZdZd ZRS(u The Dutch Snowball stemmer. :cvar __vowels: The Dutch vowels. :type __vowels: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step3b_suffixes: Suffixes to be deleted in step 3b of the algorithm. :type __step3b_suffixes: tuple :note: A detailed description of the Dutch stemming algorithm can be found under http://snowball.tartarus.org/algorithms/dutch/stemmer.html uaeiouyèuhedenueneuenuseusubaarulijkubaruenduinguigcCs|j}||jkr|St}|jddjddjddjddjddjd djd d jd d jd djdd}|jdrdjd|df}nxktdt|D]T}||d|jkr||dkrdj|| d||df}qqWxtdt|dD]k}||d|jkrV||dkrV||d|jkrVdj|| d||df}qVqVW|j ||j\}}xtdt|D]}|||jkr||d|jkrt||d dkrgt||d dkrg|d}nt||d dkr|SPqqWx|j D]}|j |r|dkrt ||d}t ||d}|j drCt ||d}qCn@|d3kr|j d r|t| d|jkr|t| dt| !dkr|t| }|t| }|t| }|j d4rC|d }|d }|d }qCn{|d5krC|t| d|jkrC|t| dd"krC|t| }|t| }|t| }nPqqW|j dr|d#|jkrt }|d }|d }|d }|j d6r|d }|d }|d }qn|j dr|d$d%kr|d& }|d& }|d& }|j dr|d'|jkr|d$d#!dkr|d# }|d# }|d# }|j d7r|d }|d }|d }qqnx^|jD]S}|j |r|d8kr|d' }|d' }|j d*r|d'dkr|d# }q|j d9r|d }qn|d*kr=|d'dkr=|d# }n|d+kr|d& }|d& }|j dr|d#|jkr|d }|j d:r|d }qqn8|d,kr|d& }n|d-kr|r|d' }nPqqWt|d.krv|d|jkrv|ddkrv|d'd!d;krs|d&|jkrpdj|d' |d'|df}qpqsqvn|jddjdd}|S(<u Stem a Dutch word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode uäuauáuëueuéuíuiuïuöuouóuüuuuúuyuuYiuIiiuhedenuheidueneuenugemukkudduttiuseusujiiuciiuenduinguigulijkubaarubariuaaueeuoouuu(ueneuen(ukkuddutt(useus(ukkuddutt(ukkuddutt(uenduing(ukkuddutt(ukkuddutt(uaaueeuoouuu(RRRtreplacet startswithtjoinR#R$t_DutchStemmer__vowelsR+t_DutchStemmer__step1_suffixesRRtTruet_DutchStemmer__step3b_suffixes(RRt step2_successR'R&R*R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s '+ '+*4   %   "        "             "    #0(uhedenueneuenuseus(ubaarulijkubaruenduinguig(RRRR<R=R?R (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR8s tEnglishStemmercBsqeZdZdZdZd ZdZdZdZdZ dZ dZ dZ i(dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6dZd[6d\d]6d^d_6d`da6dbdc6dPdP6dddd6dede6dfdf6dgdg6dhdh6didi6djdj6djdk6dldl6dldm6dndn6dndo6dpdp6dpdq6drdr6drds6dtdt6dtdu6dtdv6dtdw6dxdx6dxdy6dxdz6dxd{6d|d|6d|d}6d|d~6d|d6Z dZRS(u The English Snowball stemmer. :cvar __vowels: The English vowels. :type __vowels: unicode :cvar __double_consonants: The English double consonants. :type __double_consonants: tuple :cvar __li_ending: Letters that may directly appear before a word final 'li'. :type __li_ending: unicode :cvar __step0_suffixes: Suffixes to be deleted in step 0 of the algorithm. :type __step0_suffixes: tuple :cvar __step1a_suffixes: Suffixes to be deleted in step 1a of the algorithm. :type __step1a_suffixes: tuple :cvar __step1b_suffixes: Suffixes to be deleted in step 1b of the algorithm. :type __step1b_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :cvar __step4_suffixes: Suffixes to be deleted in step 4 of the algorithm. :type __step4_suffixes: tuple :cvar __step5_suffixes: Suffixes to be deleted in step 5 of the algorithm. :type __step5_suffixes: tuple :cvar __special_words: A dictionary containing words which have to be stemmed specially. :type __special_words: dict :note: A detailed description of the English stemming algorithm can be found under http://snowball.tartarus.org/algorithms/english/stemmer.html uaeiouyubbudduffuggummunnuppurruttu cdeghkmnrtu's'u'su'ussesuieduiesuusussusueedlyuinglyuedlyueeduingueduizationuationalufulnessuousnessuivenessutionalubilitiulessliuentliuationualismualitiuousliuivitiufulliuenciuanciuabliuizeruatorualliubliuogiuliualizeuicateuicitiuativeuicalunessufuluementuanceuenceuableuibleumentuantuentuismuateuitiuousuiveuizeuionualueruicueuluskiuskisuskyuskiesudieudyingulieulyingutieutyinguidluidlyugentlugentlyuugliuuglyuearliuearlyuonliuonlyusinglusinglyunewsuhoweuatlasucosmosubiasuandesuinninguinningsuoutinguoutingsucanningucanningsuherringuherringsuearringuearringsuproceeduproceedsu proceededu proceedinguexceeduexceedsuexceededu exceedingusucceedusucceedsu succeededu succeedingc Cs|j}||jks-t|dkr1|S||jkrK|j|S|jddjddjdd}|jdr|d}n|jdrdjd |df}nxktdt|D]T}||d|jkr||dkrdj|| d ||df}qqWt }t }d}d}|jdNr|jdOrm|d }n |d}xwtdt|D]B}|||jkr||d|jkr||d}PqqWn|j ||j\}}xW|j D]L}|j |r|t| }|t| }|t| }PqqWx |j D]}|j |rU|dkr|d }|d }|d }n|dPkrt|t| dkr|d }|d }|d }qf|d }|d }|d }nd|dkrfx+|d D]}||jkrt}PqqW|rf|d }|d }|d }qfnPqUqUWx|jD]}|j |rx|dQkr&|j |rYt||d}t|t|krt||d}nd}t|t|krt||d}q#d}qYn3x2|t| D]}||jkr8t}Pq8q8W|rY|t| }|t| }|t| }|j dRr dj|df}dj|df}t|d kst|dkrVdj|df}qVqY|j |jr?|d }|d }|d }qY|dkrt|dkr|d|jkr|ddkr|d|jkr|d|jks|dkrYt|dkrY|d|jkrY|d|jkrYdj|df}t|dkr)dj|df}nt|dkrVdj|df}qVqYnPqxqxWt|dkr|dd kr|d|jkrdj|d d!f}t|dkrdj|d d!f}nd}t|dkrdj|d d!f}qd}nx!|jD]}|j |r$|j |r6 |d"kru|d }|d }|d }q6 |dSkrdj|d df}t|dkrdj|d df}nd}t|dkrdj|d df}q3 d}q6 |d&kr2|d }|d }|d }q6 |dTkrt||d)}t|t|kr}t||d)}nd}t|t|krt||d)}q3 d}q6 |dUkr@ t||d-}t|t|kr t||d-}nd}t|t|kr7 t||d-}q3 d}q6 |dVkr t||d1}t|t|kr t||d1}nd}t|t|kr t||d1}q3 d}q6 |d2kr |d3 }|d3 }|d3 }q6 |dWkr{ t||d6}t|t|kr? t||d6}nd}t|t|krr t||d6}q3 d}q6 |dXkr t||d9}t|t|kr t||d9}nd}t|t|kr t||d9}q3 d}q6 |dYkr t||d<}t|t|krM t||d<}nd}t|t|kr t||d<}q3 d}q6 |d=kr |d3d>kr |d }|d }|d }q6 |dZkr |d }|d }|d }q6 |dAkr6 |d|jkr6 |d }|d }|d }q6 nPq$q$Wx|jD]}|j |rH |j |rU|d"kr |d }|d }|d }qU|d*kr t||d-}t|t|kr t||d-}nd}t|t|kr t||d-}qRd}qU|dBkrM |d }|d }|d }qU|d[kr t||dF}t|t|kr t||dF}nd}t|t|kr t||dF}qRd}qU|d\kr|t| }|t| }|t| }qU|dIkrU|j |rU|dJ }|dJ }|dJ }qUnPqH qH Wx|jD]}|j |rg|j |r|dKkr|d3dLkr|d }|d }|d }qq|t| }|t| }|t| }nPqgqgW|j d>r5|dd>kr5|d }n|j drQ|d }nz|j drt|dMkr|d|jks|ddks|d|jks|d3|jkr|d }qn|jd d}|S(]u Stem an English word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode iu’u'u‘u‛iuyuuYugenerucommunuarseniiussesiuieduiesiusueedueedlyueeuatubluizueiuwxYiiuyYuiutionaluenciuanciuabliuentliuizeruizationuizeuationaluationuatoruateualismualitiualliualufulnessiuousliuousnessuousuivenessuivitiuiveubilitiubliubleuogiulufulliulessliuliualizeuicateuicitiuicaluicufulunessuativeiuionusti(ugenerucommunuarsen(ugeneruarsen(uieduies(ueedueedly(uatubluiz(uenciuanciuabli(uizeruization(uationaluationuator(ualismualitiualli(uousliuousness(uivenessuiviti(ubilitiubli(ufulliulessli(uicateuicitiuical(ufuluness(RRR$t_EnglishStemmer__special_wordsR9R:R;R#t_EnglishStemmer__vowelsRR+t_EnglishStemmer__step0_suffixesRt _EnglishStemmer__step1a_suffixesR>t _EnglishStemmer__step1b_suffixesRt"_EnglishStemmer__double_consonantst_EnglishStemmer__step2_suffixest_EnglishStemmer__li_endingt_EnglishStemmer__step3_suffixest_EnglishStemmer__step4_suffixes( RRR'tstep1a_vowel_foundtstep1b_vowel_foundR&R*R5tletter((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s !    '+  *                 $   5                                                        %( ubbudduffuggummunnuppurrutt(u's'u'su'(ussesuieduiesuusussus(ueedlyuinglyuedlyueeduingued(uizationuationalufulnessuousnessuivenessutionalubilitiulessliuentliuationualismualitiuousliuivitiufulliuenciuanciuabliuizeruatorualliubliuogiuli( uationalutionalualizeuicateuicitiuativeuicalunessuful(uementuanceuenceuableuibleumentuantuentuismuateuitiuousuiveuizeuionualueruic(ueul(RRRRCRGRIRDRERFRHRJRKt_EnglishStemmer__step5_suffixesRBR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRADsx  tFinnishStemmercBsMeZdZdZdZd]Zd Zd^Zd_Zd`Z daZ dbZ d\Z RS(cuS The Finnish Snowball stemmer. :cvar __vowels: The Finnish vowels. :type __vowels: unicode :cvar __restricted_vowels: A subset of the Finnish vowels. :type __restricted_vowels: unicode :cvar __long_vowels: The Finnish vowels in their long forms. :type __long_vowels: tuple :cvar __consonants: The Finnish consonants. :type __consonants: unicode :cvar __double_consonants: The Finnish double consonants. :type __double_consonants: tuple :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :cvar __step4_suffixes: Suffixes to be deleted in step 4 of the algorithm. :type __step4_suffixes: tuple :note: A detailed description of the Finnish stemming algorithm can be found under http://snowball.tartarus.org/algorithms/finnish/stemmer.html u aeiouyäöu aeiouäöuaaueeuiiuoouuuuääuööubcdfghjklmnpqrstvwxzubbuccudduffugguhhujjukkullummunnuppuqqurrussuttuvvuwwuxxuzzukaanukäänustiukinuhanuhänukouköupaupäunsaunsäummeunneusiuniuanuänuenusiinuttenuseenuhenuhinuhonuhönudenuttauttäussaussäustaustäullaulläultaultäulleuksiuineutautäunaunäuauäunuimpiuimpauimpäuimmiuimmauimmäumpiumpaumpäummiummaummäuejauejäcCsA |j}||jkr|St}|j||j\}}x|jD]}|j|rJ|dkr||kr|d }|d }|d }qnQ|t| ddkr|t| }|t| }|t| }nPqJqJWx |jD]}|j|r|dkrS|ddkr|d }|d }|d }qn|dkr|d }|d }|d }|jd rt |d d }n|jd rt |d d }n|jd rt |d d }qn |d krB|d d!dDks|dd!dEkr|d }|d }|d }qn|dkr|d d!dFkst|dd!dGkr|d }|d }|d }qna|dkr|dd!dHkr|d }|d }|d }qn|d }|d }|d }PqqWx*|j D]}|j|r |dIkr|dkrH|d d$ks|dkrd|d d%ks|d kr|d d&ks|d!kr|d d'ks|d"kr|d d(ks|d#kr&|d d)kr&|d }|d }|d }t }q&n(|dJkr|t| dd&kr |t| d-|j kr |t| }|t| }|t| }t }q&q n|d.kr|d/d !|j kr |d }|d }|d }t }q&q nR|dKkr0|d|jkr&|d|jkr&|d0 }|d0 }|d0 }t }q&n|dLkrv|d d%kr&|d }|d }|d }t }q&n|d3kr|d0 }|d0 }|d0 }t }|dd4ks|d|j kr&|d0 }|d0 }|d0 }q&n9|t| }|t| }|t| }t }Pq q Wx|jD]}|j|r8|dMkr|dd!d;kr|d }|d }|d }qn3|t| }|t| }|t| }Pq8q8W|r t|dkr |d0d<kr |d0 }|d0 }n| rt|d-kr|d0d=kr|d|jkr|d0 }|d0 }|d0 }|jd>r|d }|d }q|jd9r|dd!d;kr|d }|d }qn|d|j kr|d0 }|d0 }nt|d-kr<|d|jkr<|d0d?kr<|d0 }|d0 }n|jdNrb|d0 }|d0 }n|jdBr|d0 }|d0 }nxtdt|D]}|| |jkrqq|dkr|| d|jkr8 |d0 }q8 nF|| d| d!|jkr8 dCj|| || df}nPqW|S(Ou Stem a Finnish word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode ustiiiu ntaeiouyäöusiukiuniukseuksiuaniutaunaiussaustaullaultauänutäunäussäustäulläultäuenulleuineuhanuhenuhinuhonuhänuhönuaueuiuouäuöusiinudenutteniuseeniiuttauttäunuieumpiumpaumpäummiummaummäupouijutuimmauaäeiuojuujujou(utauna(ussaustaullaulta(utäunä(ussäustäulläultä(ulleuine(uhanuhenuhinuhonuhänuhön(usiinudenutten(uauä(uttauttä(umpiumpaumpäummiummaummä(uojuuj(RRRR+t_FinnishStemmer__vowelst_FinnishStemmer__step1_suffixesRR$t_FinnishStemmer__step2_suffixesRt_FinnishStemmer__step3_suffixesR>t"_FinnishStemmer__restricted_vowelst_FinnishStemmer__long_vowelst_FinnishStemmer__consonantst_FinnishStemmer__step4_suffixesR#t"_FinnishStemmer__double_consonantsR;(RRt step3_successR&R*R5R'((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR Ls@                                       &             #     (  #     "   %        &(uaaueeuiiuoouuuuääuöö(ubbuccudduffugguhhujjukkullummunnuppuqqurrussuttuvvuwwuxxuzz( ukaanukäänustiukinuhanuhänukouköupaupä( unsaunsäummeunneusiuniuanuänuen(usiinuttenuseenuhanuhenuhinuhonuhänuhönudenuttauttäussaussäustaustäullaulläultaultäulleuksiuineutautäunaunäuauäun(uimpiuimpauimpäuimmiuimmauimmäumpiumpaumpäummiummaummäuejauejä( RRRRQRURVRWRYRRRSRTRXR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRPs0t FrenchStemmerc+BseZdZdZdddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,f+Zd-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOf#ZdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtduf&Zdvdwdxdydzd{d|fZd}Zd~Z RS(u The French Snowball stemmer. :cvar __vowels: The French vowels. :type __vowels: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2a_suffixes: Suffixes to be deleted in step 2a of the algorithm. :type __step2a_suffixes: tuple :cvar __step2b_suffixes: Suffixes to be deleted in step 2b of the algorithm. :type __step2b_suffixes: tuple :cvar __step4_suffixes: Suffixes to be deleted in step 4 of the algorithm. :type __step4_suffixes: tuple :note: A detailed description of the French stemming algorithm can be found under http://snowball.tartarus.org/algorithms/french/stemmer.html uaeiouyâàëéêèïîôûùu issementsuissementuatricesuatriceuateursuationsulogiesuusionsuutionsuementsuammentuemmentuancesuiqUesuismesuablesuistesuateuruationulogieuusionuutionuencesuementueusesumentsuanceuiqUeuismeuableuisteuenceuitésuivesueauxueuseumentueuxuitéuiveuifsuauxuifuissaIentuissantesuiraIentuissanteuissantsuissionsuirionsuissaisuissaituissantuissentuissiezuissonsuiraisuiraituirentuiriezuironsuirontuissesuissezuîmesuîtesuiraiuirasuirezuisseuiesuirauîtuieuiruisuituiueraIentuassionsuerionsuassentuassiezuèrentueraisueraitueriezueronsuerontuaIentuantesuassesuionsueraiuerasuerezuâmesuâtesuanteuantsuasseuéesuerauiezuaisuaituantuéeuésueruezuâtuaiuasuéuauièreuIèreuionuieruIerueuëc Cs |j}||jkr|St}t}t}t}xhtdt|D]Q}||ddkrM||dkrMdj|| d||df}qMqMWx(tdt|dD] }||d|jkra||d|jkra||dkr'dj|| d||df}qa||dkradj|| d||df}qan||d|jks||d|jkr||dkrdj|| d ||df}qqqW|j||j\}}|j||j} x5|j D]*} |j | r| d kr;|d }t }n| dkr| |krm|t|  }t }q-| |kr-t || d}t }q-n| dkr| | kr|t|  }t }|ddkrd|kr|d }|ddkrd|kr|d }qq-|ddkrld|krA|d }qd|krdj|d df}qq-|ddkrd|ksd|kr|d }qq-|ddkr-d| ksd| krdj|d df}qq-n?| dkr3| | kr3t |dd}t | dd} t }n| dkrf| | krft |dd}t }n| dkr| | kr| j |  r| | j| d|jkr|t|  }| t|  } t }nT| d!kr| |krdj|d d"f}t }n| dkrc| |krc|t|  d|jkrc|t|  }t }n| dkr| |kr|t|  }t }n| dkr | |kr |t|  }t }|dd5kr-d5|kr|d }q dj|d df}q-n!| dkr?| |kr?t || d8}t }n| dkrr| |krrt || d}t }n| dkr| |krt || d}t }n| dkr| |kr|t|  }t }|dAdBkrdB|kr|dA }qdj|d d"f}q-|dd5kr^d5|krB|d }qdj|d df}q-|ddkr-d|kr|d }qq-n| dkr-| |kr-|t|  }t }|ddkr-d|kr-|d }|dd5kr*d5|kr |d }q'dj|d df}q*q-nPqqW| sB|r x|jD]w} |j | rL| | krt| t| kr| | j| d|jkr|t|  }t }nPqLqLW|s x|jD]} | j | r| dGkr dG|kr |dA }t }ny| dkr= |t|  }t }nS| dkr |t|  }| t|  } t }| j dlr |d }q nPqqWq n|s |s |r |d d kr dj|d df}q |d dmkr dj|d dnf}q nt|dokrJ |d dpkrJ |ddqkrJ |d }nx|jD]} |j | rT | | kr | drkr | |kr | dAdskr |d }nf| dkr t || d}nE| dlkr |d }n,| dxkr |dd !dykr |d }nPq qT qT W|j dr7 |d }nxtdt|D]n}|| |jkrt |d7}qM |dkr || dkr dj|| dl|| df}nPqM W|jddjddjd d}|S(u Stem a French word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode iuquuuuUuiuIuyuYueauxiueuseueusesueuxuementuementsiuivuatiueusuxuabluiqUuièruIèruammentuantuemmentuentumentumentsuauxuluissementu issementsuanceuiqUeuismeuableuisteuancesuiqUesuismesuablesuistesuatriceuateuruationuatricesuateursuationsuiculogieulogiesuloguusionuutionuusionsuutionsuenceuencesuitéuitésiuabiluifuiveuifsuivesuionsueraIentuerionsuèrentueraisueraitueriezueronsuerontueraiuerasuerezuéesuerauiezuéeuésueruezuéuassionsuassentuassiezuaIentuantesuassesuâmesuâtesuanteuantsuasseuaisuaituâtuaiuasuaueuçuciusuaiouèsuionustuieruièreuIeruIèreuëuguuennuonnuettuellueilluè(ueuseueuses(uementuements(uabluiqU(uièruIèr(umentuments(uissementu issements( uanceuiqUeuismeuableuisteueuxuancesuiqUesuismesuablesuistes(uatriceuateuruationuatricesuateursuations(ulogieulogies(uusionuutionuusionsuutions(uenceuences(uitéuités(uifuiveuifsuives(ueraIentuerionsuèrentueraisueraitueriezueronsuerontueraiuerasuerezuéesuerauiezuéeuésueruezué(uassionsuassentuassiezuaIentuantesuassesuâmesuâtesuanteuantsuasseuaisuaituantuâtuaiuasua(uieruièreuIeruIère(uennuonnuettuellueill(uéuè(RRRR#R$R;t_FrenchStemmer__vowelsR+t_FrenchStemmer__rv_frencht_FrenchStemmer__step1_suffixesRR>RR:trindext_FrenchStemmer__step2a_suffixest_FrenchStemmer__step2b_suffixest_FrenchStemmer__step4_suffixesR9( RRt step1_successtrv_ending_foundtstep2a_succesststep2b_successR'R&R*R,R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR Vsv $+ .'*..            "                        " $       "          )  cCsd}t|dkr|jd sG|d|krT|d|krT|d}qxBtdt|D](}|||krj||d}PqjqjWn|S( u Return the region RV that is used by the French stemmer. If the word begins with two vowels, RV is the region after the third letter. Otherwise, it is the region after the first vowel not at the beginning of the word, or the end of the word if these positions cannot be found. (Exceptionally, u'par', u'col' or u'tap' at the beginning of a word is also taken to define RV as the region to their right.) :param word: The French word whose region RV is determined. :type word: str or unicode :param vowels: The French vowels that are used to determine the region RV. :type vowels: unicode :return: the region RV for the respective French word. :rtype: unicode :note: This helper method is invoked by the stem method of the subclass FrenchStemmer. It is not to be invoked directly! uiuparucolutapiii(uparucolutap(R$R:R#(RRR%R,R'((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt __rv_frenchas   ( RRRR\R^R`RaRbR R](((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR[%s@            t GermanStemmercBs;eZdZdZdZdZdZdZdZdZ RS(uD The German Snowball stemmer. :cvar __vowels: The German vowels. :type __vowels: unicode :cvar __s_ending: Letters that may directly appear before a word final 's'. :type __s_ending: unicode :cvar __st_ending: Letter that may directly appear before a word final 'st'. :type __st_ending: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :note: A detailed description of the German stemming algorithm can be found under http://snowball.tartarus.org/algorithms/german/stemmer.html u aeiouyäöüu bdfghklmnrtu bdfghklmntuernuemueruenuesueusuestustuischulichuheitukeituenduunguiguikcCs|j}||jkr|S|jdd}xtdt|dD]}||d|jkrK||d|jkrK||dkrdj|| d||df}q||dkrdj|| d||df}qqKqKW|j||j\}}xtdt|D]}|||jkr%||d|jkr%t||d d krt||d d kr|d }nt||d d kr|SPq%q%Wx |jD]}|j |r|d$krN|t| dt| !dkrN|t| d }|t| d }|t| d }nv|dkr|d|j kr|d }|d }|d }qn3|t| }|t| }|t| }PqqWx|j D]}|j |r|dkrD|d|j krwt|d d krw|d }|d }|d }qwn3|t| }|t| }|t| }PqqWx |j D]}|j |r|d%kr$d|t| dt| !krd |t| d t| d!kr|t| d }q|t| }na|d&krid |t| dt| !kri|t| }n|d'krd|t| dt| !ksd |t| dt| !kr|t| d }q|t| }n|dkrd|t| dt| !kr4|t| d }qd|t| dt| !krq|t| d }q|t| }nPqqW|jdd jd!d"jd#djddjdd}|S((u Stem a German word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode ußussiuuuuUuyuYiiuenuesueiunissusiiustiuenduunguigiuikuischulichuheituerukeituäuauöuouü(uenuesue(uenduung(uiguikuisch(ulichuheit(RRR9R#R$t_GermanStemmer__vowelsR;R+t_GermanStemmer__step1_suffixesRt_GermanStemmer__s_endingt_GermanStemmer__step2_suffixest_GermanStemmer__st_endingt_GermanStemmer__step3_suffixes(RRR'R&R*R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s  .'.*4  %    )   %) % %% %% (uernuemueruenuesueus(uestuenuerust(uischulichuheitukeituenduunguiguik( RRRRiRkRmRjRlRnR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRhstHungarianStemmerc,BsheZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZRS(u The Hungarian Snowball stemmer. :cvar __vowels: The Hungarian vowels. :type __vowels: unicode :cvar __digraphs: The Hungarian digraphs. :type __digraphs: tuple :cvar __double_consonants: The Hungarian double consonants. :type __double_consonants: tuple :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :cvar __step4_suffixes: Suffixes to be deleted in step 4 of the algorithm. :type __step4_suffixes: tuple :cvar __step5_suffixes: Suffixes to be deleted in step 5 of the algorithm. :type __step5_suffixes: tuple :cvar __step6_suffixes: Suffixes to be deleted in step 6 of the algorithm. :type __step6_suffixes: tuple :cvar __step7_suffixes: Suffixes to be deleted in step 7 of the algorithm. :type __step7_suffixes: tuple :cvar __step8_suffixes: Suffixes to be deleted in step 8 of the algorithm. :type __step8_suffixes: tuple :cvar __step9_suffixes: Suffixes to be deleted in step 9 of the algorithm. :type __step9_suffixes: tuple :note: A detailed description of the Hungarian stemming algorithm can be found under http://snowball.tartarus.org/algorithms/hungarian/stemmer.html uaeiouöüáéíóõúûucsudzudzsugyulyunyutyuzsubbuccuccsudduffugguggyujjukkullullyummunnunnyuppurrussusszuttuttyuvvuzzuzzsualueluképpenuonkéntuenkéntuankéntuképpukéntubanubenunakunekuvaluvelutólutõlurólurõlubólubõluhozuhezuhözunálunéluértukorubaubeuraureuiguatuetuotuötuuluüluváuvéuenuonuanuönunutuánkéntuánuénuastuluestüluástuluéstülustulustüluáuéuokéuökéuakéuekéuákéuáéiuékéuééiukéuéiuééuájukuéjükuünkuunkujukujükuánkuénkunkuukuükuemuomuamuodueduaduödujaujeuámuáduémuédumuduaueuoujaitokujeitekujainkujeinkuaitokueitekuáitokuéitekujaimujeimujaidujeidueinkuainkuitekujeikujaikuáinkuéinkuaimueimuaidueidujaiujeiuinkuaikueikuáimuáiduáikuéimuéiduéikuimuiduaiueiuikuáiuiuákuékuökuokuekuakukcCsV|j}||jkr|S|j||j|j}|j|jrx|jD]}|dt|d!|krVdj |d |df}|dt|d!|krdj |d |df}nPqVqVWnx|j D]}|j|r|j|r|t| }|t| }|jdrkdj |d df}t |dd}q|jdrdj |d d f}t |dd }qnPqqWx{|j D]p}|j|r|d krt ||d }t ||d }n$t ||d}t ||d}PqqWx|j D]}|j|r;|d krt ||d}t ||d}nU|d krt ||d }t ||d }n"|t| }|t| }Pq;q;Wx|jD]}|j|rx|jD]}|dt|d!|kr dj |d |df}|dt|d!|krdj |d |df}nPq q WqqWx|jD]}|j|r|d(krt ||d}t ||d}nU|d)krt ||d }t ||d }n"|t| }|t| }PqqWx|jD]}|j|rN|j|r|d*krt ||d}t ||d}q|d+krt ||d }t ||d }q|t| }|t| }nPqNqNWx|jD]}|j|r|j|r|d,krft ||d}t ||d}q|d-krt ||d }t ||d }q|t| }|t| }nPqqWx|jD]~}|j|r|j|rJ|d&krt ||d}qJ|d'kr6t ||d }qJ|t| }nPqqW|S(.u Stem an Hungarian word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode iuiiuáiuauéueuénuástuluéstüluákéuáéiuékéuééiuééuánkuájukuámuáduénkuéjükuémuéduáimuáiduáiuáinkuáitokuáikuéimuéiduéiuéinkuéitekuéikuákuék(uákéuáéi(uékéuééiuéé(uánkuájukuámuáduá(uénkuéjükuémuédué(uáimuáiduáiuáinkuáitokuáik(uéimuéiduéiuéinkuéitekuéik(RRt_HungarianStemmer__r1_hungariant_HungarianStemmer__vowelst_HungarianStemmer__digraphsRt!_HungarianStemmer__step1_suffixest$_HungarianStemmer__double_consonantsR$R;t!_HungarianStemmer__step2_suffixesRt!_HungarianStemmer__step3_suffixest!_HungarianStemmer__step4_suffixest!_HungarianStemmer__step5_suffixest!_HungarianStemmer__step6_suffixest!_HungarianStemmer__step7_suffixest!_HungarianStemmer__step8_suffixest!_HungarianStemmer__step9_suffixes(RRR&R6R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR is               cCsd}|d|krx=|D]5}||dkr||j|dd}|SqWxtdt|D](}|||krl||d}PqlqlWnBx?tdt|D](}|||kr||d}PqqW|S(u? Return the region R1 that is used by the Hungarian stemmer. If the word begins with a vowel, R1 is defined as the region after the first consonant or digraph (= two letters stand for one phoneme) in the word. If the word begins with a consonant, it is defined as the region after the first vowel in the word. If the word does not contain both a vowel and consonant, R1 is the null region at the end of the word. :param word: The Hungarian word whose region R1 is determined. :type word: str or unicode :param vowels: The Hungarian vowels that are used to determine the region R1. :type vowels: unicode :param digraphs: The digraphs that are used to determine the region R1. :type digraphs: tuple :return: the region R1 for the respective word. :rtype: unicode :note: This helper method is invoked by the stem method of the subclass HungarianStemmer. It is not to be invoked directly! uiii(tindexR#R$(RRR%tdigraphsR&tdigraphR'((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__r1_hungarians  (ucsudzudzsugyulyunyutyuzs(ubbuccuccsudduffugguggyujjukkullullyummunnunnyuppurrussusszuttuttyuvvuzzuzzs(ualuel(,uképpenuonkéntuenkéntuankéntuképpukéntubanubenunakunekuvaluvelutólutõlurólurõlubólubõluhozuhezuhözunálunéluértukorubaubeuraureuiguatuetuotuötuuluüluváuvéuenuonuanuönunut(uánkéntuánuén(uastuluestüluástuluéstülustulustül(uáué( uokéuökéuakéuekéuákéuáéiuékéuééiukéuéiuééué(uájukuéjükuünkuunkujukujükuánkuénkunkuukuükuemuomuamuodueduaduödujaujeuámuáduémuédumuduaueuouáué(*ujaitokujeitekujainkujeinkuaitokueitekuáitokuéitekujaimujeimujaidujeidueinkuainkuitekujeikujaikuáinkuéinkuaimueimuaidueidujaiujeiuinkuaikueikuáimuáiduáikuéimuéiduéikuimuiduaiueiuikuáiuéiui(uákuékuökuokuekuakuk(RRRRqRrRtRsRuRvRwRxRyRzR{R|R Rp(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRos\! tItalianStemmercWBs/eZdZdZdZdZdZdZRS(uj The Italian Snowball stemmer. :cvar __vowels: The Italian vowels. :type __vowels: unicode :cvar __step0_suffixes: Suffixes to be deleted in step 0 of the algorithm. :type __step0_suffixes: tuple :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :note: A detailed description of the Italian stemming algorithm can be found under http://snowball.tartarus.org/algorithms/italian/stemmer.html uaeiouàèìòùuglielauglieleuglieliuglielouglieneuseneumelaumeleumeliumeloumeneutelauteleuteliutelouteneucelauceleuceliucelouceneuvelauveleuveliuvelouveneugliuciulauleuliuloumiuneusiutiuviuatriceuatriciuazioneuazioniuuzioneuuzioniuusioneuusioniuamentouamentiuimentouimentiuamenteuabileuabiliuibileuibiliumenteuatoreuatoriulogiaulogieuanzauanzeuicheuichiuismouismiuistauisteuistiuistàuistèuistìuanteuantiuenzauenzeuicouiciuicauiceuosouosiuosauoseuitàuivouiviuivauiveuerebberouirebberouasserouassimouerannouerebbeueremmoueresteuerestiuesserouirannouirebbeuiremmouiresteuirestiuiscanouisconouisserouaronouavamouavanouavateueremouereteueronouevamouevanouevateuiremouireteuironouivamouivanouivateuammouandouasseuassiuemmouendauendeuendiuendoueraiuereiuYamouiamouimmouiraiuireiuiscauisceuisciuiscouanouareuatauateuatiuatouavauaviuavoueràuereueròueteuevaueviuevouiràuireuiròuitauiteuitiuitouonouutauuteuutiuutouaruirc Cs|j}||jkr|St}|jddjddjddjddjd d }xhtd t|D]Q}||d d kr}||d kr}dj|| d||d f}q}q}Wxtd t|d D]}||d |jkr||d |jkr||d krWdj|| d||d f}q||dkrdj|| d||d f}qqqW|j||j\}}|j ||j}x|j D]}|j |r|t| dt| !d@krP|t| }|t| }|t| }|t| }np|t| dt| !dAkrt ||d}t ||d}t ||d}t ||d}nPqqWxW|j D]L}|j |r|dkr|j |rt}|d }|d }|d }|j dr||d }|d }|d }|j dr|d }|d }qq|j dBr|d }|d }q|j d!r|d" }|d" }qnO|dCkr|j |rt}|d }|d }n|j |rt}|dDkr|t| }|t| }|t| }|j d r|d }|d }qq|dEkr|d }|d }q|dFkr|d1 }|d1 }q|dGkrt ||d4}t ||d4}q|d5krr|d6 }|d6 }|d6 }|j dHrI|d }|d }q|j d!r|d" }|d" }qq|dIkr|d6 }|d6 }|d6 }|j dr|d }|d }|d }|j d r|d }|d }qqq|t| }|t| }nPqqW|stxI|jD];}|j |r2|t| }|t| }Pq2q2Wn|j dJr|d= }|d= }|j dr|d= }|d= }qn|j dKr|d= }n|jddjdd }|S(Lu Stem an Italian word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode uáuàuéuèuíuìuóuòuúuùiuquuuuUuiuIiuandouendoiuarueruirueuamenteiuiviuatuosuicuabiliuamentouamentiuimentouimentiuazioneuazioniuatoreuatoriulogiaulogieuuzioneuuzioniuusioneuusioniiuenzauenzeuteuitàiuivouiviuivauiveuauoiuchugh(uandouendo(uarueruir(uosuic(uamentouamentiuimentouimenti(uazioneuazioniuatoreuatori(ulogiaulogie(uuzioneuuzioniuusioneuusioni(uenzauenze(uicuiv(uivouiviuivauive(uaueuiuouàuèuìuò(uchugh(RRRR9R#R$R;t_ItalianStemmer__vowelsR+R-t_ItalianStemmer__step0_suffixesRRt_ItalianStemmer__step1_suffixesR>t_ItalianStemmer__step2_suffixes(RRRcR'R&R*R,R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR es     $+ .'.%                                            (%uglielauglieleuglieliuglielouglieneuseneumelaumeleumeliumeloumeneutelauteleuteliutelouteneucelauceleuceliucelouceneuvelauveleuveliuvelouveneugliuciulauleuliuloumiuneusiutiuvi(3uatriceuatriciuazioneuazioniuuzioneuuzioniuusioneuusioniuamentouamentiuimentouimentiuamenteuabileuabiliuibileuibiliumenteuatoreuatoriulogiaulogieuanzauanzeuicheuichiuismouismiuistauisteuistiuistàuistèuistìuanteuantiuenzauenzeuicouiciuicauiceuosouosiuosauoseuitàuivouiviuivauive(WuerebberouirebberouasserouassimouerannouerebbeueremmoueresteuerestiuesserouirannouirebbeuiremmouiresteuirestiuiscanouisconouisserouaronouavamouavanouavateueremouereteueronouevamouevanouevateuiremouireteuironouivamouivanouivateuammouandouasseuassiuemmouendauendeuendiuendoueraiuereiuYamouiamouimmouiraiuireiuiscauisceuisciuiscouanouareuatauateuatiuatouavauaviuavoueràuereueròueteuevaueviuevouiràuireuiròuitauiteuitiuitouivauiviuivouonouutauuteuutiuutouaruir(RRRRRRRR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR,sNtNorwegianStemmercBs5eZdZdZdZd.Zd/Zd0Zd-ZRS(1u The Norwegian Snowball stemmer. :cvar __vowels: The Norwegian vowels. :type __vowels: unicode :cvar __s_ending: Letters that may directly appear before a word final 's'. :type __s_ending: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :note: A detailed description of the Norwegian stemming algorithm can be found under http://snowball.tartarus.org/algorithms/norwegian/stemmer.html u aeiouyæåøubcdfghjlmnoprtvyzuhetenesuheteneuhetensuheteruhetenuendesuandeuendeuedesuenesuerteuedeuaneueneuensuersuetsuhetuastuertuenuarueruasuesuetuaueusudtuvtuhetslovuelegueliguelovuslovulegueiguliguelsulovuigcCs|j}||jkr|S|j||j}x|jD]}|j|r>|d krt||d}t||d}n~|dkr|d|jks|ddkr|d|jkr|d }|d }qn"|t| }|t| }Pq>q>Wx8|j D]-}|j|r|d }|d }PqqWx5|j D]*}|j|rQ|t| }PqQqQW|S( u Stem a Norwegian word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode uerteuertuerusiukii(uerteuert( RRR(t_NorwegianStemmer__vowelst!_NorwegianStemmer__step1_suffixesRRt_NorwegianStemmer__s_endingR$t!_NorwegianStemmer__step2_suffixest!_NorwegianStemmer__step3_suffixes(RRR&R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR 8 s6   #   (uhetenesuheteneuhetensuheteruhetenuendesuandeuendeuedesuenesuerteuedeuaneueneuensuersuetsuhetuastuertuenuarueruasuesuetuaueus(udtuvt( uhetslovuelegueliguelovuslovulegueiguliguelsulovuig( RRRRRRRRR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR stPortugueseStemmercxBs/eZdZdZdZdZdZdZRS(uv The Portuguese Snowball stemmer. :cvar __vowels: The Portuguese vowels. :type __vowels: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step4_suffixes: Suffixes to be deleted in step 4 of the algorithm. :type __step4_suffixes: tuple :note: A detailed description of the Portuguese stemming algorithm can be found under http://snowball.tartarus.org/algorithms/portuguese/stemmer.html uaeiouáéíóúâêôuamentosuimentosuuço~esuamentouimentouadorasuadoresuaço~esulogiasuênciasuamenteuidadesuançasuismosuistasuadorauaça~ouantesuânciaulogiauuça~ouênciaumenteuidadeuançauezasuicosuicasuismouáveluíveluistauososuosasuadoruanteuivasuivosuirasuezauicouicauosouosauivauivouirauaríamosueríamosuiríamosuássemosuêssemosuíssemosuaríeisueríeisuiríeisuásseisuésseisuísseisuáramosuéramosuíramosuávamosuaremosueremosuiremosuariamueriamuiriamuassemuessemuissemuara~ouera~ouira~ouariasueriasuiriasuardesuerdesuirdesuassesuessesuissesuastesuestesuistesuáreisuareisuéreisuereisuíreisuireisuáveisuíamosuarmosuermosuirmosuariaueriauiriauasseuesseuisseuasteuesteuisteuareiuereiuireiuaramueramuiramuavamuaremueremuiremuandouendouindouadasuidasuarásuarasuerásuerasuirásuavasuaresueresuiresuíeisuadosuidosuámosuamosuemosuimosuadauidauaráuaraueráuerauiráuavauiamuadouidouiasuaisueisuiaueiuamuemuarueruiruasuesuisueuuiuuouuosuauiuouáuíuócCs|j}||jkr|St}t}|jddjddjddjdd}|j||j\}}|j||j}xk|jD]`}|j|r|d krn|j|rnt }|d }|d }|d }|jd rE|d }|d }|d }|jd rk|d }|d }qkq|jd3r|d }|d }qn|d4kr|j|r|t | dt | !dkrt }t ||d}t ||d}n|j|rt }|d5kr#t ||d}t ||d}q|d6krVt ||d}t ||d}q|d7krt ||d}t ||d}q|dkr|d }|d }|d }|jd8r|d$ }|d$ }qq|d9krj|t | }|t | }|t | }|jd:rA|d }|d }q|jd'r|d$ }|d$ }qq|d;kr|t | }|t | }|t | }|jd r|d }|d }qq|t | }|t | }nPqqW|sWxO|j D]A}|j|rt }|t | }|t | }PqqWn|sc|r|jd,r|d d-kr|d. }|d. }qn| r| rxI|j D];}|j|r|t | }|t | }PqqWn|jd<re|d. }|d. }|jdr7|jdsU|jd1r|jd,r|d. }qn$|jd2rt |d2d-}n|jddjdd}|S(=u Stem a Portuguese word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode uãua~uõuo~uqüuquugüuguuamenteiuiviuatuosuicuaduirauirasiueuirulogiaulogiasuloguuça~ouuço~esuuuênciauênciasuenteumenteiuanteuaveluiveliuidadeuidadesuabiluivauivouivasuivosuiuciuéuêuciuç(uosuicuad(uirauiras(ulogiaulogias(uuça~ouuço~es(uênciauências(uanteuaveluivel(uidadeuidades(uicuiv(uivauivouivasuivos(ueuéuê(RRRR9R+t_PortugueseStemmer__vowelsR-t"_PortugueseStemmer__step1_suffixesRR>R$Rt"_PortugueseStemmer__step2_suffixest"_PortugueseStemmer__step4_suffixes(RRRcR@R&R*R,R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s            %                    (/uamentosuimentosuuço~esuamentouimentouadorasuadoresuaço~esulogiasuênciasuamenteuidadesuançasuismosuistasuadorauaça~ouantesuânciaulogiauuça~ouênciaumenteuidadeuançauezasuicosuicasuismouáveluíveluistauososuosasuadoruanteuivasuivosuirasuezauicouicauosouosauivauivouira(xuaríamosueríamosuiríamosuássemosuêssemosuíssemosuaríeisueríeisuiríeisuásseisuésseisuísseisuáramosuéramosuíramosuávamosuaremosueremosuiremosuariamueriamuiriamuassemuessemuissemuara~ouera~ouira~ouariasueriasuiriasuardesuerdesuirdesuassesuessesuissesuastesuestesuistesuáreisuareisuéreisuereisuíreisuireisuáveisuíamosuarmosuermosuirmosuariaueriauiriauasseuesseuisseuasteuesteuisteuareiuereiuireiuaramueramuiramuavamuaremueremuiremuandouendouindouadasuidasuarásuarasuerásuerasuirásuavasuaresueresuiresuíeisuadosuidosuámosuamosuemosuimosuirasuadauidauaráuaraueráuerauiráuavauiamuadouidouiasuaisueisuirauiaueiuamuemuarueruiruasuesuisueuuiuuou(uosuauiuouáuíuó(RRRRRRRR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyRl sVtRomanianStemmerc^Bs5eZdZdZdZdZdZdZdZRS(u The Romanian Snowball stemmer. :cvar __vowels: The Romanian vowels. :type __vowels: unicode :cvar __step0_suffixes: Suffixes to be deleted in step 0 of the algorithm. :type __step0_suffixes: tuple :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :note: A detailed description of the Romanian stemming algorithm can be found under http://snowball.tartarus.org/algorithms/romanian/stemmer.html u aeiouăâîuiiloruuluiueloruiileuiloruateiuaţieuaţiauauaueleuiuauieiuileuulueauiiu abilitateu abilitatiu abilităţiu ibilitateu abilităiuivitateuivitatiu ivităţiuicitateuicitatiu icităţiuicatoriuivităiuicităiuicatoruaţiuneuatoareuătoareuiţiuneuitoareuicivauiciveuiciviuicivăuicalauicaleuicaliuicalăuativauativeuativiuativăuatoriuătoriuitivauitiveuitiviuitivăuitoriuicivuicaluativuatoruătoruitivuitoruabilauabileuabiliuabilăuibilauibileuibiliuibilăuitateuitatiuităţiuabiluibiluoasauoasăuoaseuantauanteuantiuantăuităiuiuneuiuniuismeuistauisteuistiuistăuiştiuatauatăuatiuateuutauutăuutiuuteuitauităuitiuiteuicauiceuiciuicăuosiuoşiuantuivauiveuiviuivăuismuistuatuutuituicuosuivu seserăţiu aserăţiu iserăţiu âserăţiu userăţiuseserămuaserămuiserămuâserămuuserămuserăţiuseseşiuseserăueascăuarăţiuurăţiuirăţiuârăţiuaseşiuaserăuiseşiuiserăuâseşiuâserăuuseşiuuserăuserămusesemuinduuânduueazăueştiueşteuăştiuăşteueaţiuiaţiuarămuurămuirămuârămuasemuisemuâsemuusemuseşiuserăuseseuareuereuireuâreuinduânduezeueziuescuăscueamueaiueauuiamuiaiuiauuaşiuarăuuşiuurăuişiuirăuâşiuârăuaseuiseuâseuuseuaţiueţiuiţiuâţiuseiuezuamuaiuauuiauuiuâiuămuemuimuâmusec Cs|j}||jkr|St}t}xtdt|dD]}||d|jkrE||d|jkrE||dkrdj|| d||df}q||dkrdj|| d||df}qqEqEW|j||j\}}|j||j}xf|j D][}|j |r(||kr|dtkr|t| }||kr|t| }q|d}q|d ks|d ks|d kr|d d !dkr|d }q|dukrt ||d}||krt ||d}q|d}q|dvkrct ||d}||krZt ||d}q|d}q|dwkr|d }qnPq(q(Wxbt rt} xE|j D]:}|j |r||krt }t } |dxkrt ||d!}q|d"kr|d }q|dykr(t ||d'}q|dzkrIt ||d8}q|d{krt ||dE}||krt ||dE}qq|d|krt ||dO}||krt ||dO}qqnt}PqqW| sPqqWx|jD]}|j |r||krt }|d}krX|d dRkrdj|d dSf}qq|d~kryt ||dV}q|t| }nPqqW| rN| rNx|jD]}|j |r||krG|dkr|t| }|t| }nA|j| r@||j|ddpkr@|t| }nPqGqqWnxAdD]9}|j |rU||kr|t| }nPqUqUW|jddjdd}|S(u Stem a Romanian word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode iuuuuUuiuIuuluuluiuauauateiuileiiuabiueaueleuelorueuiiuiuauieiuiileuiiloruiloruaţieuaţiaiu abilitateu abilitatiu abilităiu abilităţiuabilu ibilitateuivitateuivitatiuivităiu ivităţiuivuicitateuicitatiuicităiu icităţiuicatoruicatoriuicivuicivauiciveuiciviuicivăuicaluicalauicaleuicaliuicalăuicuativuativauativeuativiuativăuaţiuneuatoareuatoruatoriuătoareuătoruătoriuatuitivuitivauitiveuitiviuitivăuiţiuneuitoareuitoruitoriuituiuneuiuniuţutuismuismeuistuistauisteuistiuistăuiştiu seserăţiuseserămuserăţiuseseşiuseserăuserămusesemuseşiuserăuseseuaţiueţiuiţiuâţiuseiuămuemuimuâmuseu aeioăâîuieuauă(uuluului(ueaueleuelor(uiiuiuauieiuiileuiiloruilor(uaţieuaţia(u abilitateu abilitatiu abilităiu abilităţi(uivitateuivitatiuivităiu ivităţi(uicitateuicitatiuicităiu icităţiuicatoruicatoriuicivuicivauiciveuiciviuicivăuicaluicalauicaleuicaliuicală( uativuativauativeuativiuativăuaţiuneuatoareuatoruatoriuătoareuătoruători( uitivuitivauitiveuitiviuitivăuiţiuneuitoareuitoruitori(uiuneuiuni(uismuismeuistuistauisteuistiuistăuişti(u seserăţiuseserămuserăţiuseseşiuseserăuserămusesemuseşiuserăuseseuaţiueţiuiţiuâţiuseiuămuemuimuâmuse(uieuaueuiuă(RRRR#R$t_RomanianStemmer__vowelsR;R+R-t _RomanianStemmer__step0_suffixesRRR>t _RomanianStemmer__step1_suffixest _RomanianStemmer__step2_suffixest _RomanianStemmer__step3_suffixesR:R}R9( RRRcR@R'R&R*R,R5treplacement_done((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s  .'.                               (uiiloruuluiueloruiileuiloruateiuaţieuaţiauauaueleuiuauieiuileuulueauii(.u abilitateu abilitatiu abilităţiu ibilitateu abilităiuivitateuivitatiu ivităţiuicitateuicitatiu icităţiuicatoriuivităiuicităiuicatoruaţiuneuatoareuătoareuiţiuneuitoareuicivauiciveuiciviuicivăuicalauicaleuicaliuicalăuativauativeuativiuativăuatoriuătoriuitivauitiveuitiviuitivăuitoriuicivuicaluativuatoruătoruitivuitor(>uabilauabileuabiliuabilăuibilauibileuibiliuibilăuatoriuitateuitatiuităţiuabiluibiluoasauoasăuoaseuantauanteuantiuantăuatoruităiuiuneuiuniuismeuistauisteuistiuistăuiştiuatauatăuatiuateuutauutăuutiuuteuitauităuitiuiteuicauiceuiciuicăuosiuoşiuantuivauiveuiviuivăuismuistuatuutuituicuosuiv(^u seserăţiu aserăţiu iserăţiu âserăţiu userăţiuseserămuaserămuiserămuâserămuuserămuserăţiuseseşiuseserăueascăuarăţiuurăţiuirăţiuârăţiuaseşiuaserăuiseşiuiserăuâseşiuâserăuuseşiuuserăuserămusesemuinduuânduueazăueştiueşteuăştiuăşteueaţiuiaţiuarămuurămuirămuârămuasemuisemuâsemuusemuseşiuserăuseseuareuereuireuâreuinduânduezeueziuescuăscueamueaiueauuiamuiaiuiauuaşiuarăuuşiuurăuişiuirăuâşiuârăuaseuiseuâseuuseuaţiueţiuiţiuâţiuseiuezuamuaiuauueauiauuiuâiuămuemuimuâmuse( RRRRRRRRR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR> sztRussianStemmercBs\eZdZdCZdDZdEZdFZdGZdHZdIZ d?Z d@Z dAZ dBZ RS(Jum The Russian Snowball stemmer. :cvar __perfective_gerund_suffixes: Suffixes to be deleted. :type __perfective_gerund_suffixes: tuple :cvar __adjectival_suffixes: Suffixes to be deleted. :type __adjectival_suffixes: tuple :cvar __reflexive_suffixes: Suffixes to be deleted. :type __reflexive_suffixes: tuple :cvar __verb_suffixes: Suffixes to be deleted. :type __verb_suffixes: tuple :cvar __noun_suffixes: Suffixes to be deleted. :type __noun_suffixes: tuple :cvar __superlative_suffixes: Suffixes to be deleted. :type __superlative_suffixes: tuple :cvar __derivational_suffixes: Suffixes to be deleted. :type __derivational_suffixes: tuple :note: A detailed description of the Russian stemming algorithm can be found under http://snowball.tartarus.org/algorithms/russian/stemmer.html uivshis'uyvshis'uvshis'uivshiuyvshiuvshiuivuyvuvuui^ushchi^ui^uuui^ushchi^ai^au ui^ushchimiu ui^ushchymiu ui^ushchegou ui^ushchogou ui^ushchemuu ui^ushchomuu ui^ushchikhu ui^ushchykhu ui^ushchui^uu ui^ushchaiau ui^ushchoi^uu ui^ushchei^uu i^ushchi^ui^uu i^ushchi^ai^au ui^ushcheeu ui^ushchieu ui^ushchyeu ui^ushchoeu ui^ushchei`u ui^ushchii`u ui^ushchyi`u ui^ushchoi`u ui^ushchemu ui^ushchimu ui^ushchymu ui^ushchomu i^ushchimiu i^ushchymiu i^ushchegou i^ushchogou i^ushchemuu i^ushchomuu i^ushchikhu i^ushchykhu i^ushchui^uu i^ushchai^au i^ushchoi^uu i^ushchei^uu i^ushcheeu i^ushchieu i^ushchyeu i^ushchoeu i^ushchei`u i^ushchii`u i^ushchyi`u i^ushchoi`u i^ushchemu i^ushchimu i^ushchymu i^ushchomu shchi^ui^uu shchi^ai^au ivshi^ui^uu ivshi^ai^au yvshi^ui^uu yvshi^ai^aushchimiushchymiushchegoushchogoushchemuushchomuushchikhushchykhushchui^uushchai^aushchoi^uushchei^uuivshimiuivshymiuivshegouivshogouivshemuuivshomuuivshikhuivshykhuivshui^uuivshai^auivshoi^uuivshei^uuyvshimiuyvshymiuyvshegouyvshogouyvshemuuyvshomuuyvshikhuyvshykhuyvshui^uuyvshai^auyvshoi^uuyvshei^uu vshi^ui^uu vshi^ai^aushcheeushchieushchyeushchoeushchei`ushchii`ushchyi`ushchoi`ushchemushchimushchymushchomuivsheeuivshieuivshyeuivshoeuivshei`uivshii`uivshyi`uivshoi`uivshemuivshimuivshymuivshomuyvsheeuyvshieuyvshyeuyvshoeuyvshei`uyvshii`uyvshyi`uyvshoi`uyvshemuyvshimuyvshymuyvshomuvshimiuvshymiuvshegouvshogouvshemuuvshomuuvshikhuvshykhuvshui^uuvshai^auvshoi^uuvshei^uuemi^ui^uuemi^ai^aunni^ui^uunni^ai^auvsheeuvshieuvshyeuvshoeuvshei`uvshii`uvshyi`uvshoi`uvshemuvshimuvshymuvshomuemimiuemymiuemegouemogouememuuemomuuemikhuemykhuemui^uuemai^auemoi^uuemei^uunnimiunnymiunnegounnogounnemuunnomuunnikhunnykhunnui^uunnai^aunnoi^uunnei^uuemeeuemieuemyeuemoeuemei`uemii`uemyi`uemoi`uememuemimuemymuemomunneeunnieunnyeunnoeunnei`unnii`unnyi`unnoi`unnemunnimunnymunnomui^ui^uui^ai^auimiuymiuegouogouemuuomuuikhuykhuui^uuai^auoi^uuei^uueeuieuyeuoeuei`uii`uyi`uoi`uemuimuymuomusi^aus'uesh'uei`teuui`teuui^utuish'ueteui`teui^utunnouilauylauenauiteuiliuyliuilouylouenoui^atuuetuenyuit'uyt'ulaunauliulounouetunyut'uui`uiluyluenuituytui^uui`ulunuii^amiuii^akhui^amiuii^amui^akhuamiuiei`ui^amuiemuakhuii^uu'i^uuii^au'i^auevuovu'eueiuiiuamui^auaueuiuouuuyu'uei`sheuei`shuost'uostc Cs||jkr|St}x:tt|D]&}t||dkr,t}Pq,q,W|rn|j|}nt}t}t}t}t}|j|\} } x|jD]} | j | r| dkrV| t|  dt|  !dks| t|  dt|  !dkr|t|  }| t|  } | t|  } t}Pqq|t|  }| t|  } | t|  } t}PqqW|sZxW|j D]L} | j | r|t|  }| t|  } | t|  } PqqWx|j D]} | j | r| dkr| t|  dt|  !dksl| t|  dt|  !dkr|t|  }| t|  } | t|  } t}Pqq|t|  }| t|  } | t|  } t}PqqW|sx|j D]} | j | r| dkr| t|  dt|  !dksh| t|  dt|  !dkr|t|  }| t|  } | t|  } t}Pqq|t|  }| t|  } | t|  } t}PqqWn| rZ| rZxZ|j D]L} | j | r|t|  }| t|  } | t|  } PqqWqZn| j dr|d }| d } nx5|jD]*} | j | r|t|  }PqqW|j dr|d }t}n|s=x;|jD]0} |j | r|t|  }t}PqqW|j dr=|d }q=n| rj| rj|j drj|d }qjn|r|j|}n|S(u Stem a Russian word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode iuvuvshiuvshis'iui^aiuau i^ushchi^ui^uu i^ushchi^ai^au i^ushchui^uu i^ushchai^au i^ushchoi^uu i^ushchei^uu i^ushchimiu i^ushchymiu i^ushchegou i^ushchogou i^ushchemuu i^ushchomuu i^ushchikhu i^ushchykhu shchi^ui^uu shchi^ai^au i^ushcheeu i^ushchieu i^ushchyeu i^ushchoeu i^ushchei`u i^ushchii`u i^ushchyi`u i^ushchoi`u i^ushchemu i^ushchimu i^ushchymu i^ushchomu vshi^ui^uu vshi^ai^aushchui^uushchai^aushchoi^uushchei^uuemi^ui^uuemi^ai^aunni^ui^uunni^ai^aushchimiushchymiushchegoushchogoushchemuushchomuushchikhushchykhuvshui^uuvshai^auvshoi^uuvshei^uushcheeushchieushchyeushchoeushchei`ushchii`ushchyi`ushchoi`ushchemushchimushchymushchomuvshimiuvshymiuvshegouvshogouvshemuuvshomuuvshikhuvshykhuemui^uuemai^auemoi^uuemei^uunnui^uunnai^aunnoi^uunnei^uuvsheeuvshieuvshyeuvshoeuvshei`uvshii`uvshyi`uvshoi`uvshemuvshimuvshymuvshomuemimiuemymiuemegouemogouememuuemomuuemikhuemykhunnimiunnymiunnegounnogounnemuunnomuunnikhunnykhuemeeuemieuemyeuemoeuemei`uemii`uemyi`uemoi`uememuemimuemymuemomunneeunnieunnyeunnoeunnei`unnii`unnyi`unnoi`unnemunnimunnymunnomulaunaueteui`teuliui`uluemunulounouetui^utunyut'uesh'unnouiiunnu'(uvuvshiuvshis'(u i^ushchi^ui^uu i^ushchi^ai^au i^ushchui^uu i^ushchai^au i^ushchoi^uu i^ushchei^uu i^ushchimiu i^ushchymiu i^ushchegou i^ushchogou i^ushchemuu i^ushchomuu i^ushchikhu i^ushchykhu shchi^ui^uu shchi^ai^au i^ushcheeu i^ushchieu i^ushchyeu i^ushchoeu i^ushchei`u i^ushchii`u i^ushchyi`u i^ushchoi`u i^ushchemu i^ushchimu i^ushchymu i^ushchomu vshi^ui^uu vshi^ai^aushchui^uushchai^aushchoi^uushchei^uuemi^ui^uuemi^ai^aunni^ui^uunni^ai^aushchimiushchymiushchegoushchogoushchemuushchomuushchikhushchykhuvshui^uuvshai^auvshoi^uuvshei^uushcheeushchieushchyeushchoeushchei`ushchii`ushchyi`ushchoi`ushchemushchimushchymushchomuvshimiuvshymiuvshegouvshogouvshemuuvshomuuvshikhuvshykhuemui^uuemai^auemoi^uuemei^uunnui^uunnai^aunnoi^uunnei^uuvsheeuvshieuvshyeuvshoeuvshei`uvshii`uvshyi`uvshoi`uvshemuvshimuvshymuvshomuemimiuemymiuemegouemogouememuuemomuuemikhuemykhunnimiunnymiunnegounnogounnemuunnomuunnikhunnykhuemeeuemieuemyeuemoeuemei`uemii`uemyi`uemoi`uememuemimuemymuemomunneeunnieunnyeunnoeunnei`unnii`unnyi`unnoi`unnemunnimunnymunnom(ulaunaueteui`teuliui`uluemunulounouetui^utunyut'uesh'unno(RRR#R$tordR>t"_RussianStemmer__cyrillic_to_romant _RussianStemmer__regions_russiant+_RussianStemmer__perfective_gerund_suffixesRt#_RussianStemmer__reflexive_suffixest$_RussianStemmer__adjectival_suffixest_RussianStemmer__verb_suffixest_RussianStemmer__noun_suffixest&_RussianStemmer__derivational_suffixest%_RussianStemmer__superlative_suffixest"_RussianStemmer__roman_to_cyrillic( RRt chr_exceededR'Rctadjectival_removedt verb_removedtundouble_successtsuperlative_removedR,R*R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s  %% %% %%     c Csd}d}d}d}|jd djd djd d}xStdt|D]<}|||krX||d|krX||d}PqXqXWxStdt|D]<}|||kr||d|kr||d}PqqWx<tt|D](}|||kr||d}PqqW|jdd jdd jdd }|jdd jdd jdd }||fS(u= Return the regions RV and R2 which are used by the Russian stemmer. In any word, RV is the region after the first vowel, or the end of the word if it contains no vowel. R2 is the region after the first non-vowel following a vowel in R1, or the end of the word if there is no such non-vowel. R1 is the region after the first non-vowel following a vowel, or the end of the word if there is no such non-vowel. :param word: The Russian word whose regions RV and R2 are determined. :type word: str or unicode :return: the regions RV and R2 for the respective Russian word. :rtype: tuple :note: This helper method is invoked by the stem method of the subclass RussianStemmer. It is not to be invoked directly! uuAuUuEuaueuiuouuuyui^aui^uue`i( uAuUuEuaueuiuouuuy(R9R#R$(RRR&R*R,R%R'((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__regions_russian` s4  $$    cCs"|jddjddjddjddjddjd djd d jd d jd djddjddjddjddjddjddjddjddjddjddjddjddjd djd!d"jd#d"jd$d%jd&d%jd'd(jd)d(jd*d+jd,d+jd-d.jd/d.jd0d1jd2d1jd3d4jd5d4jd6d7jd8d7jd9d:jd;d:jd<d=jd>d=jd?d@jdAd@jdBdCjdDdCjdEdFjdGdFjdHdIjdJdIjdKdLjdMdLjdNdOjdPdOjdQdRjdSdRjdTdUjdVdUjdWdXjdYdXjdZd[jd\d[jd]d^jd_d^jd`dajdbda}|S(cu# Transliterate a Russian word into the Roman alphabet. A Russian word whose letters consist of the Cyrillic alphabet are transliterated into the Roman alphabet in order to ease the forthcoming stemming process. :param word: The word that is transliterated. :type word: unicode :return: the transliterated word. :rtype: unicode :note: This helper method is invoked by the stem method of the subclass RussianStemmer. It is not to be invoked directly! uАuauаuБubuбuВuvuвuГuguгuДuduдuЕueuеuЁuёuЖuzhuжuЗuzuзuИuiuиuЙui`uйuКukuкuЛuluлuМumuмuНunuнuОuouоuПupuпuРuruрuСusuсuТutuтuУuuuуuФufuфuХukhuхuЦut^suцuЧuchuчuШushuшuЩushchuщuЪu''uъuЫuyuыuЬu'uьuЭue`uэuЮui^uuюuЯui^auя(R9(RR((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__cyrillic_to_roman sDcCs|jddjddjddjddjd d jd d jd djddjddjddjddjddjddjddjddjdd jd!d"jddjd#d$jd%d&jd'd(jd)d*jd+d,jd-d.jd/d0jd1d2jd3d4jd5d6jd7d8jd9d:jd;d<jd=d>jd?d@}|S(AuH Transliterate a Russian word back into the Cyrillic alphabet. A Russian word formerly transliterated into the Roman alphabet in order to ease the stemming process, is transliterated back into the Cyrillic alphabet, its original form. :param word: The word that is transliterated. :type word: str or unicode :return: word, the transliterated word. :rtype: unicode :note: This helper method is invoked by the stem method of the subclass RussianStemmer. It is not to be invoked directly! ui^uuюui^auяushchuщukhuхut^suцuchuчue`uэui`uйushuшukuкueuеuzhuжuauаubuбuvuвuguгuduдuzuзuiuиuluлumuмunuнuouоupuпuruрusuсutuтuuuуufuфu''uъuyuыu'uь(R9(RR((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__roman_to_cyrillic s$ ( uivshis'uyvshis'uvshis'uivshiuyvshiuvshiuivuyvuv(uui^ushchi^ui^uuui^ushchi^ai^au ui^ushchimiu ui^ushchymiu ui^ushchegou ui^ushchogou ui^ushchemuu ui^ushchomuu ui^ushchikhu ui^ushchykhu ui^ushchui^uu ui^ushchaiau ui^ushchoi^uu ui^ushchei^uu i^ushchi^ui^uu i^ushchi^ai^au ui^ushcheeu ui^ushchieu ui^ushchyeu ui^ushchoeu ui^ushchei`u ui^ushchii`u ui^ushchyi`u ui^ushchoi`u ui^ushchemu ui^ushchimu ui^ushchymu ui^ushchomu i^ushchimiu i^ushchymiu i^ushchegou i^ushchogou i^ushchemuu i^ushchomuu i^ushchikhu i^ushchykhu i^ushchui^uu i^ushchai^au i^ushchoi^uu i^ushchei^uu i^ushcheeu i^ushchieu i^ushchyeu i^ushchoeu i^ushchei`u i^ushchii`u i^ushchyi`u i^ushchoi`u i^ushchemu i^ushchimu i^ushchymu i^ushchomu shchi^ui^uu shchi^ai^au ivshi^ui^uu ivshi^ai^au yvshi^ui^uu yvshi^ai^aushchimiushchymiushchegoushchogoushchemuushchomuushchikhushchykhushchui^uushchai^aushchoi^uushchei^uuivshimiuivshymiuivshegouivshogouivshemuuivshomuuivshikhuivshykhuivshui^uuivshai^auivshoi^uuivshei^uuyvshimiuyvshymiuyvshegouyvshogouyvshemuuyvshomuuyvshikhuyvshykhuyvshui^uuyvshai^auyvshoi^uuyvshei^uu vshi^ui^uu vshi^ai^aushcheeushchieushchyeushchoeushchei`ushchii`ushchyi`ushchoi`ushchemushchimushchymushchomuivsheeuivshieuivshyeuivshoeuivshei`uivshii`uivshyi`uivshoi`uivshemuivshimuivshymuivshomuyvsheeuyvshieuyvshyeuyvshoeuyvshei`uyvshii`uyvshyi`uyvshoi`uyvshemuyvshimuyvshymuyvshomuvshimiuvshymiuvshegouvshogouvshemuuvshomuuvshikhuvshykhuvshui^uuvshai^auvshoi^uuvshei^uuemi^ui^uuemi^ai^aunni^ui^uunni^ai^auvsheeuvshieuvshyeuvshoeuvshei`uvshii`uvshyi`uvshoi`uvshemuvshimuvshymuvshomuemimiuemymiuemegouemogouememuuemomuuemikhuemykhuemui^uuemai^auemoi^uuemei^uunnimiunnymiunnegounnogounnemuunnomuunnikhunnykhunnui^uunnai^aunnoi^uunnei^uuemeeuemieuemyeuemoeuemei`uemii`uemyi`uemoi`uememuemimuemymuemomunneeunnieunnyeunnoeunnei`unnii`unnyi`unnoi`unnemunnimunnymunnomui^ui^uui^ai^auimiuymiuegouogouemuuomuuikhuykhuui^uuai^auoi^uuei^uueeuieuyeuoeuei`uii`uyi`uoi`uemuimuymuom(usi^aus'(.uesh'uei`teuui`teuui^utuish'ueteui`teui^utunnouilauylauenauiteuiliuyliuilouylouenoui^atuuetuenyuit'uyt'uui^uulaunauliuemulounouetunyut'uei`uui`uiluyluimuymuenuituytui^uui`ulun($uii^amiuii^akhui^amiuii^amui^akhuamiuiei`ui^amuiemuakhuii^uu'i^uuii^au'i^auevuovuieu'eueiuiiuei`uoi`uii`uemuamuomui^uui^auaueuiui`uouuuyu'(uei`sheuei`sh(uost'uost(RRRRRRRRRRR RRR(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR> s 9 7tSpanishStemmerc`BsDeZdZdZdZdZdZdZdZdZ dZ RS(uR The Spanish Snowball stemmer. :cvar __vowels: The Spanish vowels. :type __vowels: unicode :cvar __step0_suffixes: Suffixes to be deleted in step 0 of the algorithm. :type __step0_suffixes: tuple :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2a_suffixes: Suffixes to be deleted in step 2a of the algorithm. :type __step2a_suffixes: tuple :cvar __step2b_suffixes: Suffixes to be deleted in step 2b of the algorithm. :type __step2b_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :note: A detailed description of the Spanish stemming algorithm can be found under http://snowball.tartarus.org/algorithms/spanish/stemmer.html uaeiouáéíóúüuselasuselosuselauseloulasulesulosunosumeuseulauleulouamientosuimientosuamientouimientouacionesuucionesuadorasuadoresuanciasulogíasuenciasuamenteuidadesuanzasuismosuablesuiblesuistasuadorauaciónuantesuanciaulogíauuciónuenciaumenteuanzauicosuicasuismouableuibleuistauososuosasuadoruanteuidaduivasuivosuicouicauosouosauivauivouyeronuyendouyamosuyaisuyanuyenuyasuyesuyauyeuyouyóuaríamosueríamosuiríamosuiéramosuiésemosuaríaisuaremosueríaisueremosuiríaisuiremosuieraisuieseisuasteisuisteisuábamosuáramosuásemosuaríanuaríasuaréisueríanueríasueréisuiríanuiríasuiréisuieranuiesenuieronuiendouierasuiesesuabaisuaraisuaseisuéamosuaránuarásuaríaueránuerásueríauiránuirásuiríauierauieseuasteuisteuabanuaranuasenuaronuandouabasuadasuidasuarasuasesuíaisuadosuidosuamosuimosuemosuaráuaréueráueréuiráuiréuabauadauidauarauaseuíanuadouidouíasuáisuéisuíauadueduiduanuióuarueruiruasuísuenuesuosuaueuouáuéuíuóc Cs_|j}||jkr|St}|j||j\}}|j||j}x|jD]}|j|o|j|sq_n|t| jd<s|t| jd rB|t| jd rB|j |t| }|j |t| }|j |t| }|j |t| }nPq_Wxw|j D]l}|j|slqQn|d kr*|j|r*t }|d }|d }|d }|jdr|d }|d }|d }|jdr'|d }|d }q'q|jd=r|d }|d }qn|j|rt }|d>kr|t| }|t| }|t| }|jdr|d }|d }qq|d?krt ||d!}t ||d!}q|d@kr t ||d$}t ||d$}q|dAkr@t ||d'}t ||d'}q|d(kr|t| }|t| }|t| }|jdBr|d+ }|d+ }qq|dCkr/|t| }|t| }|t| }xdDD]:}|j|r|t| }|t| }qqWq|dEkr|t| }|t| }|t| }|jdr|d }|d }qq|t| }|t| }nPqQW|sxk|j D]`}|j|r|t| d3t| !d$kr|t| }|t| }PqqWx|jD]}|j|r?|t| }|t| }|dFkr|jd8r|d9 }n|jd8r|d9 }qnPq?q?Wnx|jD]v}|j|r|t| }|dGkrD|t| }|dd8krD|jd$rD|d9 }qDnPqqW|j |}|S(Hu Stem a Spanish word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode uandouándouaruárueruéruiendouiéndouiruíruyendouuyendouamenteiuiviuatuosuicuaduadorauadoruaciónuadorasuadoresuacionesuanteuantesuanciauanciasulogíaulogíasuloguuciónuucionesuuuenciauenciasuenteumenteuableuibleiuidaduidadesuabiluivouivauivosuivasiuenuesuéisuemosuguiueué( uandouándouaruárueruéruiendouiéndouiruír(uosuicuad( uadorauadoruaciónuadorasuadoresuacionesuanteuantesuanciauancias(ulogíaulogías(uuciónuuciones(uenciauencias(uanteuableuible(uidaduidades(uabiluicuiv(uivouivauivosuivas(uenuesuéisuemos(ueué(RRRR+t_SpanishStemmer__vowelsR-t_SpanishStemmer__step0_suffixesRR$t!_SpanishStemmer__replace_accentedt_SpanishStemmer__step1_suffixesR>Rt _SpanishStemmer__step2a_suffixest _SpanishStemmer__step2b_suffixest_SpanishStemmer__step3_suffixes(RRRcR&R*R,R5tpre_suff((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR ; s                     %    cCs@|jddjddjddjddjd d S( u} Replaces all accented letters on a word with their non-accented counterparts. :param word: A spanish word, with or without accents :type word: str or unicode :return: a word with the accented letters (á, é, í, ó, ú) replaced with their non-accented counterparts (a, e, i, o, u) :rtype: str or unicode uáuauéueuíuiuóuouúuu(R9(RR((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyt__replace_accented s    ( uselasuselosuselauseloulasulesulosunosumeuseulauleulo(.uamientosuimientosuamientouimientouacionesuucionesuadorasuadoresuanciasulogíasuenciasuamenteuidadesuanzasuismosuablesuiblesuistasuadorauaciónuantesuanciaulogíauuciónuenciaumenteuanzauicosuicasuismouableuibleuistauososuosasuadoruanteuidaduivasuivosuicouicauosouosauivauivo( uyeronuyendouyamosuyaisuyanuyenuyasuyesuyauyeuyouyó(`uaríamosueríamosuiríamosuiéramosuiésemosuaríaisuaremosueríaisueremosuiríaisuiremosuieraisuieseisuasteisuisteisuábamosuáramosuásemosuaríanuaríasuaréisueríanueríasueréisuiríanuiríasuiréisuieranuiesenuieronuiendouierasuiesesuabaisuaraisuaseisuéamosuaránuarásuaríaueránuerásueríauiránuirásuiríauierauieseuasteuisteuabanuaranuasenuaronuandouabasuadasuidasuarasuasesuíaisuadosuidosuamosuimosuemosuaráuaréueráueréuiráuiréuabauadauidauarauaseuíanuadouidouíasuáisuéisuíauadueduiduanuióuarueruiruasuísuenues(uosuaueuouáuéuíuó( RRRRRRRRRR R(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s` tSwedishStemmerc%Bs5eZdZdZdZd5Zd6Zd7Zd4ZRS(8u The Swedish Snowball stemmer. :cvar __vowels: The Swedish vowels. :type __vowels: unicode :cvar __s_ending: Letters that may directly appear before a word final 's'. :type __s_ending: unicode :cvar __step1_suffixes: Suffixes to be deleted in step 1 of the algorithm. :type __step1_suffixes: tuple :cvar __step2_suffixes: Suffixes to be deleted in step 2 of the algorithm. :type __step2_suffixes: tuple :cvar __step3_suffixes: Suffixes to be deleted in step 3 of the algorithm. :type __step3_suffixes: tuple :note: A detailed description of the Swedish stemming algorithm can be found under http://snowball.tartarus.org/algorithms/swedish/stemmer.html u aeiouyäåöubcdfghjklmnoprtvyuheternauhetensuheteruhetenuandenuarnasuernasuornasuandesuandetuarensuarnauernauornauandeuarneuasteuarenuadesuernsuadeuareuernuensuhetuastuaduenuarueruoruasuesuatuaueusuddugdunnudtugtuktuttufulltulöstuelsuliguigcCsU|j}||jkr|S|j||j}x|jD]t}|j|r>|dkr|d|jkr|d }|d }qn"|t| }|t| }Pq>q>Wx8|jD]-}|j|r|d }|d }PqqWx]|j D]R}|j|r|d kr0|t| }n|d krI|d }nPqqW|S( u Stem a Swedish word and return the stemmed form. :param word: The word that is stemmed. :type word: str or unicode :return: The stemmed form. :rtype: unicode usiiuelsuliguigufulltulöst(uelsuliguig(ufulltulöst( RRR(t_SwedishStemmer__vowelst_SwedishStemmer__step1_suffixesRt_SwedishStemmer__s_endingR$t_SwedishStemmer__step2_suffixest_SwedishStemmer__step3_suffixes(RRR&R5((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR s4        (%uheternauhetensuheteruhetenuandenuarnasuernasuornasuandesuandetuarensuarnauernauornauandeuarneuasteuarenuadesuernsuadeuareuernuensuhetuastuaduenuarueruoruasuesuatuaueus(uddugdunnudtugtuktutt(ufulltulöstuelsuliguig( RRRRRRRRR (((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pyR scs%ddl}ddlm}idd6dd6dd 6d d 6d d 6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6}td!td"td#td"xktr tjd$d%d&jtj d!d'}|d(krPn|tj krtd)d*qnt||j ||d+ }d,jfd-|D}|j d.d/|d,j }d,j|}|j d.d/|d,j }td!td0d1td2j d1t|td3td4j d1t|td0d1td!qWdS(5u< This function provides a demonstration of the Snowball stemmers. After invoking this function and specifying a language, it stems an excerpt of the Universal Declaration of Human Rights (which is a part of the NLTK corpus collection) and then prints out the original and the stemmed text. iN(tudhruDanish_Dansk-Latin1udanishuDutch_Nederlands-Latin1udutchuEnglish-Latin1uenglishuFinnish_Suomi-Latin1ufinnishuFrench_Francais-Latin1ufrenchuGerman_Deutsch-Latin1ugermanuHungarian_Magyar-UTF8u hungarianuItalian_Italiano-Latin1uitalianuNorwegian-Latin1u norwegianuporteruPortuguese_Portugues-Latin1u portugueseuRomanian_Romana-Latin2uromanianu Russian-UTF8urussianuSpanish-Latin1uspanishuSwedish_Svenska-Latin1uswedishu u******************************uDemo for the Snowball stemmersu&Please enter the name of the language uto be demonstrated u/u"(enter 'exit' in order to leave): uexitu. Oops, there is no stemmer for this language. uPlease try again. i,u c3s|]}j|VqdS(N(R (t.0R(R (sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pys qsu (.{,70})\su\1\nu-iFuORIGINALu uSTEMMED RESULTS(tret nltk.corpusRtprintR>Rt raw_inputR;RRRtsubtrstriptcenter(RRt udhr_corpusRtexcerpttstemmed((R sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pytdemo:s\               N(#Rt __future__RRtnltkRRRt nltk.stemRtnltk.stem.utilRt nltk.stem.apiRRtpython_2_unicode_compatibleRR!R"R)R.R8RARPR[RhRoRRRRRRRR(((sd/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/stem/snowball.pytsB@ &+\u bVQ