o =bw:@sddlmZddlmZGdddeZGdddeZGdddeZGd d d eZGd d d eZ Gd ddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZdS)) BaseStemmer)Amongc@s8eZdZdZedddedddeddd ed ddgZed dded dded ddedddedddeddd edddedddedddedddeddd edddeddd g Zedddeddd edddgZedddedddedddeddd ed!dd"ed#dd$ed%dd&ed'dd"ed(dd)ed*dd+ed,dd ed-d.d/ed0dd"ed1dd/ed2d)d3ed4dd3ed5dd/ed6dd+ed7dd.ed8dd$gZed9dded:dded;dd eddded?ddgZ ed@dd edAdd edBdd edCdd edDdd edEdd edFdd edGdd edHdd edIdd edJdd edKddedLdd edMdd edNdd edOdd edPdQd edRdSd edTdd gZ gdUZ gdVZ dWZ dZdZdXdYZdZd[Zd\d]Zd^d_Zd`daZdbdcZdddeZdfdgZdhdiZdjdkZdldmZdndoZdpS)q PorterStemmerz This class implements the stemming algorithm defined by a snowball script. Generated by Snowball 2.2.0 - https://snowballstem.org/ siesssesrssbbddffggblmmnnpprratttizedeedingancienciablielialli ousli entlialitibiliti iviti tionalational alismationizationizeratorivenessfulnessousnessicateativealizeicitiicalfulnessicanceenceableibleateiveizeitialismionerousantentmentementou)ArUr)rrWrXrFcCs@|tjdds dS|tjddsdS|tjddsdSdS)NYyFaT)out_grouping_brg_v_WXY in_grouping_bg_vselfrc@/usr/lib/python3/dist-packages/snowballstemmer/porter_stemmer.py __r_shortviszPorterStemmer.__r_shortvcC|j|jksdSdSNFT)I_p1cursorrarcrcrd__r_R1r zPorterStemmer.__r_R1cCrfrg)I_p2rirarcrcrd__r_R2wrkzPorterStemmer.__r_R2cCst|j|_|tj}|dkrdS|j|_|dkr!|dsdSdS|dkr.|ds,dSdS|dkr8|s8dSdS) Nr Frr r irT)riket find_among_bra_0bra slice_from slice_delrb among_varrcrcrd __r_Step_1a|s"   zPorterStemmer.__r_Step_1acCs|j|_|tj}|dkrdS|j|_|dkr'|sdS|ds%dSd S|j|j}| tj dds7dS|jd8_|j||_| sJdS|j|j}|tj }|dkr\dS|j||_|dkrw|j}| |j|jd||_d S|dkr|j|_|j|jkrdS|jd8_|j|_| sdSd S|j|jkrdS|j|j}|sdS|j||_|j}| |j|jd||_d S) Nr Freer\r[er T)rirorpra_2rr_PorterStemmer__r_R1rslimitgo_out_grouping_br`rta_1insertlimit_backwardrh_PorterStemmer__r_shortv)rbrvv_1v_2cv_3rcrcrd __r_Step_1bs^  &         zPorterStemmer.__r_Step_1bcCs|j|_z+|j|j}z |dstttyYnw|j||_|ds.WdSWn ty8Ynw|j|_|tj ddsGdS|jd8_| dsUdSdS) NyYFr\r[rrnT) riror|eq_s_blab1lab0rrr}rr`rs)rbrrcrcrd __r_Step_1cs(     zPorterStemmer.__r_Step_1ccCs~|j|_|tj}|dkrdS|j|_|sdS|dkr'|ds%dSdS|dkr4|ds2dSdS|dkrA|ds?dSdS|d krN|d sLdSdS|d kr[|d sYdSdS|d krh|dsfdSdS|dkru|dssdSdS|dkr|dsdSdS|dkr|dsdSdS|dkr|dsdSdS|dkr|dsdSdS|dkr|dsdSdS|dsdSdS)Nr Frtionr rDrrCr rEr(rQr"ryr5rIr1rGr$rKr0r@r&rOr-rHbleT)rirorpra_3rrr{rsrurcrcrd __r_Step_2st  % "             zPorterStemmer.__r_Step_2cCsx|j|_|tj}|dkrdS|j|_|sdS|dkr'|ds%dSdS|dkr4|ds2dSdS|s:dSdS)Nr FrrKr rBT) rirorpra_4rrr{rsrtrurcrcrd __r_Step_3s$   zPorterStemmer.__r_Step_3cCs|j|_|tj}|dkrdS|j|_|sdS|dkr&|s$dSdSz+|j|j}z | ds6t t t yAYnw|j||_| dsPWdSWn t yZYnw|sadSdS)Nr FrrtT) rirorpra_5rr_PorterStemmer__r_R2rtr|rrr)rbrvrrcrcrd __r_Step_4s4     zPorterStemmer.__r_Step_4cCs|j|_|ds dS|j|_zJ|j|j}z |sttty)Ynw|j||_|s7WdS|j|j}z | sEt WWdSt yQYnw|j||_Wn tybYnw| sidSdS)NryFT) rirorrrr|rrrr{rlab2rt)rbrrrcrcrd __r_Step_5a7s2    zPorterStemmer.__r_Step_5acCsH|j|_|ds dS|j|_|sdS|dsdS|s"dSdS)NlFT)rirorrrrrtrarcrcrd __r_Step_5bSs  zPorterStemmer.__r_Step_5bcCsTd|_|j}z|j|_|dst|j|_|dsWdSd|_Wn ty,Ynw||_|j}zo |j}z[zC |j}z!|tj ddsJt |j|_|dsVt |j|_||_t t yhYnw||_|j|j krut |jd7_q;t yYnw|dsWWdSd|_Wq4t yYnw||_ Wn tyYnw||_|j |_|j |_|j}zS|tj ddst|jd7_|tj ddst|jd7_|j|_|tj ddst|jd7_|tj ddst|jd7_|j|_Wn tyYnw||_|j|_|j |_|j |j}||j ||_|j |j}||j ||_|j |j}||j ||_|j |j} ||j | |_|j |j} ||j | |_|j |j} ||j | |_|j |j} ||j | |_|j |j} ||j | |_|j|_|j}zp|jst |j}zTz< |j}z|j|_|dst|j|_||_ttyYnw||_|j|j krt |jd7_qtyYnw|dsWWdSWqt yYnw||_ Wn ty$Ynw||_dS)NFrrTr\r[r)! B_Y_foundrirreq_srrors in_groupingrr`lab4lab3r|rrrhrlgo_out_groupinglab5go_in_groupingr_PorterStemmer__r_Step_1a_PorterStemmer__r_Step_1b_PorterStemmer__r_Step_1c_PorterStemmer__r_Step_2_PorterStemmer__r_Step_3_PorterStemmer__r_Step_4_PorterStemmer__r_Step_5a_PorterStemmer__r_Step_5blab6lab9lab8lab7)rbrrrv_4v_5v_6v_7v_8v_9v_10v_11v_12v_13v_14v_15v_16rcrcrd_stemas                         zPorterStemmer._stemN)__name__ __module__ __qualname____doc__rrqr~rzrrrr`r^rrlrhrr{rrrrrrrrrrrcrcrcrdrs                                                                  21 rc@ eZdZdS)rNrrrrcrcrcrdr rc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrc@r)rNrrcrcrcrdrrrN) basestemmerramongrr BaseExceptionrrrrrrrrrrrcrcrcrds  [