o
    Mix                     @   s   d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZdS )   )BaseStemmer)Amongc                   @   s  e Zd ZdZdZdZdd Zdd Zdd Zd	d
 Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zed!d"d#ed$d"d%ed&d"d'ed(d"d)gZed*d"d"ed+d"d"ed,d"d"ed-d"d"ed.d"d"ed/d"d"ed0d"d"ed1d"d"ed2d"d"ed3d"d"g
Zed4d"d"ed5d"d"ed6d"d"gZed7d"d"ed4d"d"ed5d"d"ed8d"d"ed9d"d"ed:d"d"ed;d"d"ed6d"d"gZed<d"d'ed6d=d)ed>d=d)gZed?d"d)ed2d"d)ed3d"d)ed@d"dAedBd"dCedDd"dCedEd"d#edFd"d%edGd"dHedId"dJedKd"dLedMd"d)edNd"d)edOd"d#edPd"d'edQd"d%edRd"d)gZed*d"d"ed,d"d"edSd"d"ed.d"d"ed0d"d"edTd"d"gZed*d"d"ed,d"d"edSd"d"ed.d"d"ed0d"d"edTd"d"gZed-d"d"edUd"d"ed/d"d"edVd"d"ed1d"d"ed2d"d"edWd"d"edXd"d"edYd"d"edZd"d"ed3d"d"gZed7d"d"ed4d"d"ed5d"d"ed8d"d"ed9d"d"ed:d"d"ed;d"d"ed6d"d"ed>d"d"g	Zed[d"d"ed\d"d"ed]d"d"gZ ed*d"d"ed+d"d"ed,d"d"ed-d"d"ed.d"d"ed/d"d"ed0d"d"ed1d"d"ed2d"d"ed3d"d"g
Z!ed*d"d"ed,d"d"edSd"d"ed.d"d"ed0d"d"edTd"d"gZ"ed^d"d%ed_d=d)ed`d=d#edad=d'gZ#ed7d"d"ed;d"d"edbd"d"gZ$edcd"d"eddd"d"gZ%ed7d"d"ed4d"d"ed5d"d"ed8d"d"ed9d"d"ed:d"d"ed;d"d"ed6d"d"gZ&eded"d#edfd"d#edgd"d#edhd'd#edid"d)edjd"d)edkd"d#edld"d)edmd"d'ednd"d)edod"d)edpd"d#edqd"d)edrd"d#edsd"d#edtd"d#edud"d#edvd"d#edwd"d#edxd"d)edyd"d)edzd"d)ed{d"d)ed|d"d)ed}d"d#ed~d"d)gZ'ed7d"d"ed4d"d"ed5d"d"ed8d"d"ed9d"d"ed:d"d"ed;d"d"ed6d"d"gZ(ed7d"d"ed4d"d"ed5d"d"ed8d"d"ed9d"d"ed:d"d"ed;d"d"ed6d"d"gZ)edd"d'ed5d"dCedd"d'edd"d'edd"dLedd%d'edd"d'edyd"d'edd"d)edd"d)edd"d#edd"d)ed|d"d%edd"d'edd"d)edd"dJeddd'eddd'eddd'eddd)edd"d'edd"d)gZ*ed*d"d"ed,d"d"edSd"d"ed.d"d"ed0d"d"edTd"d"gZ+ed*d"d"ed,d"d"edSd"d"ed.d"d"ed0d"d"edTd"d"gZ,ed[d"d"edd"d"ed\d"d"edd"d"ed]d"d"edd"d"edd"d"edd"d"edd"d"edd"d"edd"d"edd"d"gZ-ed7d"d"ed4d"d"ed5d"d"ed8d"d"ed9d"d"ed:d"d"ed;d"d"ed6d"d"gZ.g ed*d"d)ed.d"d)edVd"d)ed0d"d)ed2d"d)ed7d"dJedd"dLedsd"d)edd"d#edd"d)edd"d)edd"d)edd"d)edd"d)edd"d'edd"d%eddd)edd"d)edd"d)edd"dJedd"d)edd"d)edd"dJedd"d)edd"dJedd"d)edd"d)edd"dJedd"dJedd"dJedd"dJedd"d)edd"d)edd"dJedd"d)edd"dJeddd)eddd)edd"d)edd"dJedd"dJedd"d)edd"d)edd"d)edd"dJeddd)Z/edd"d"edd"d"edd"d"edd"d"edd"d"edd"d"gZ0dS )TamilStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from tamil.sbl by Snowball 3.0.1 - https://snowballstem.org/
    Fc                 C   s   t | jdkS )N   )lencurrentself r
   Q/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/tamil_stemmer.py__r_has_min_length   s   zTamilStemmer.__r_has_min_lengthc                 C   s   | j | _| tj}|dkrdS | j | _|dkr!| dsdS d
S |dkr.| ds,dS d
S |dkr;| ds9dS d
S | d	sBdS d
S )N    Fr      ஓ      ஒ      உ   ஊT)cursorbra
find_amongr   a_0ket
slice_from)r	   	among_varr
   r
   r   __r_fix_va_start   s(   




zTamilStemmer.__r_fix_va_startc                 C   s^   | j }z	 | j }z	|  st W q ty   Y nw || _ 	 W n	 ty)   Y nw || _ dS NT)r   _TamilStemmer__r_fix_endinglab1lab0)r	   v_1v_2r
   r
   r   __r_fix_endings(   s   zTamilStemmer.__r_fix_endingsc                 C   sd   | j | _| dsdS | tjdkrdS | dsdS | j | _|  s&dS | j }|   || _ dS )N   எFr      ்T)	r   r   eq_sr   r   a_1r   	slice_del_TamilStemmer__r_fix_va_startr	   r    r
   r
   r   __r_remove_question_prefixes8   s   

z)TamilStemmer.__r_remove_question_prefixesc           	      C   sl  t | jdkr	dS | j| _| j| _z| j| j }z| j| _| tj}|dkr,t	 | j| _
|dkr?|  s<W W dS t |dkre| j| j }| tjdkrTt	 | j| | _|  sbW W dS t |dkru| dsrW W dS t |dkr| dsW W dS t |d	kr| d
sW W dS t |dkr| jst	 | j| j }z| dst t	  ty   Y nw | j| | _| dsW W dS t |dkr| dsW W dS t |dkr| j| j }z| tjdkrt t	  ty   Y nw | j| | _|  sW W dS t | tj}|dkr(|  s%W W dS t | ds2W W dS t  t	y>   Y nw | j| | _| j| _| dsRW dS z| j| j }zQ| tjdkrft | j| j }z#| ds|| j| | _t | tjdkr| j| | _t W n
 ty   Y nw | j| _
|  sW W W dS t  ty   Y nw | j| | _z&| tjdkrt | j| _
| dst |  sW W W dS t  ty   Y nw | j| | _| j| j }| tjdkrW W dS | j| | _| j| _
|  sW W dS W n
 ty#   Y nw W n
 ty/   Y nw | j| _dS )Nr   Fr   r   r      ள்r      ல்   u   டு      ைu   ம்   r$      T)r   r   r   limit_backwardlimitr   find_among_br   a_5r   r   r'   a_2r   B_found_vetrumai_urupueq_s_blab2a_3lab3a_4r   a_6lab5lab6a_7lab4a_8lab7a_9)	r	   r    r   r!   v_3v_4v_5v_6v_7r
   r
   r   __r_fix_endingI   s   6.
*
'
$











zTamilStemmer.__r_fix_endingc                 C   sj   | j | _| tjdkrdS | tjdkrdS | dsdS | j | _|  s)dS | j }| 	  || _ dS )Nr   Fr$   T)
r   r   r   r   a_10a_11r%   r   r'   r(   r)   r
   r
   r   __r_remove_pronoun_prefixes   s   
z(TamilStemmer.__r_remove_pronoun_prefixesc                 C   s
  | j | _| j| _ | j | _| tj}|dkrdS | j | _|dkraz7| j| j  }z| tjdkr3t	 | 
ds<W W dS t  t	yG   Y nw | j| | _ | 
dsVW dS W n' ty`   Y nw |dkrm| 
dsldS n|dkry| 
d	sxdS n|  sdS | j| _ d
S )Nr   Fr   u	   ுங்r$   r   r,   r   r+   T)r   r2   r3   r   r4   r   a_13r   a_12r   r   r   r'   r	   r   r    r
   r
   r   __r_remove_plural_suffix   sD   



z%TamilStemmer.__r_remove_plural_suffixc                 C   s   |   sdS | j| _| j| _| j| j }z| j| _| tjdkr$t | j| _	| 
ds0W dS W n	 ty:   Y nw | j| | _| j| _|   dS )NFr   r$   T)_TamilStemmer__r_has_min_lengthr   r2   r3   r   r4   r   a_14r   r   r   _TamilStemmer__r_fix_endingsr)   r
   r
   r   __r_remove_question_suffixes   s$   
z)TamilStemmer.__r_remove_question_suffixesc                 C   sX   |   sdS | j| _| j| _| j| _| tjdkrdS | j| _| 	 s&dS | j| _dS )NFr   T)
rR   r   r2   r3   r   r4   r   a_15r   r'   r   r
   r
   r   __r_remove_command_suffixes	  s   z(TamilStemmer.__r_remove_command_suffixesc                 C   sh   |   sdS | j| _| j| _| j| _| dsdS | j| _| ds$dS | j| _| j}|   || _dS )NFu	   ும்r$   T)	rR   r   r2   r3   r   r8   r   r   r   r)   r
   r
   r   __r_remove_um  s   

zTamilStemmer.__r_remove_umc                 C   s   |   sdS | j| _| j| _| j| _| tj}|dkrdS | j| _|dkr.| 	ds-dS n6|dkr^| j| j }z| tj
dkrDt W dS  tyO   Y nw | j| | _| 	ds]dS n|  sddS | j| _|   dS )NFr   r   r$   r   T)rR   r   r2   r3   r   r4   r   a_17r   r   a_16r   r'   rT   rP   r
   r
   r   __r_remove_common_word_endings)  s:   

z+TamilStemmer.__r_remove_common_word_endingsc                 C   s  d| _ |  s	dS | j| _| j| _z| j| j }z| j| j }| j| _| tj}|dkr1t	 | j| _
|dkrB|  sAW W dS n|dkrP| dsOW W dS n|dkr| j| j }z| dsct t	  tyn   Y nw | j| | _| ds~W W dS n|dkrt| jd	k rt	 | dsW W dS nm|d
kr| j| j }z| tjdkrt t	  ty   Y nw | j| | _| dsW W dS n;|dkr| j| j }z| tjdkrt t	  ty   Y nw | j| | _|  sW W dS n
| dsW W dS | j| | _t  t	y   Y nw | j| | _| j| j }| j| _| ds0W dS ze| j| j }z)| j| j }	z| tjdkrKt t  tyW   Y nw | j|	 | _t  tyj   Y nw | j| | _| j| j }
| tjdkrW W dS | dsW W dS | j|
 | _W n
 ty   Y nw | j| _
| dsW dS | j| | _W n
 ty   Y nw d| _ | j| j }z| j| _| dst | j| _
| dsW dS W n
 ty   Y nw | j| | _| j| _|   dS )NFr   r   r   r$   r      மr   r0   r-   r.      ிr/   T	   ின்)r7   rR   r   r2   r3   r   r4   r   a_20r   r   r'   r   r8   r9   r   r   a_18r;   a_19rA   r   a_21rC   r?   r>   a_22lab8rT   )r	   r    r!   r   rE   rF   rG   rH   rI   v_8v_9v_10r
   r
   r   __r_remove_vetrumai_urupukalH  s   




z)TamilStemmer.__r_remove_vetrumai_urupukalc                 C   s:   	 | j }z	|  st W q  ty   Y nw || _ 	 dS r   )r   $_TamilStemmer__r_remove_tense_suffixr   r)   r
   r
   r   __r_remove_tense_suffixes  s   z&TamilStemmer.__r_remove_tense_suffixesc           	      C   s  d| _ |  s	dS | j| _| j| _| j| j }z| j| j }| j| _| tj}|dkr/t	 | j| _
|dkr?|  s>W dS n|dkro| j| j }z| tjdkrUt t	  ty`   Y nw | j| | _|  snW dS n|dkr| j| j }z| tjdkrt t	  ty   Y nw | j| | _|  sW dS nV|dkr| j| j }z| dst t	  ty   Y nw | j| | _| dsW dS n(|d	kr| dsW dS n| j| j }| dst	 | j| | _|  sW dS d
| _ | j| | _W n
 t	y	   Y nw | j| | _| j| j }z!| j| _| tjdkr't | j| _
|  s3W dS d
| _ W n
 tyA   Y nw | j| | _| j| _|   | j sVdS d
S )NFr   r   r   r   r      சr$   r-   T)B_found_a_matchrR   r   r2   r3   r   r4   r   a_25r   r   r'   a_23r   a_24r9   r8   r;   r   a_26rA   rT   )	r	   r    r!   r   rE   rF   rG   rH   rI   r
   r
   r   __r_remove_tense_suffix  s   





z$TamilStemmer.__r_remove_tense_suffixc                 C   s   d| _ | j}|   || _|  sdS | j}|   || _| j}|   || _| j}|   || _| j}|   || _| j}|   || _| j}| 	  || _| j}| 
  || _| j}	|   |	| _| j}
|   |
| _dS )NFT)r7   r   r   rR   )_TamilStemmer__r_remove_question_prefixes(_TamilStemmer__r_remove_pronoun_prefixes)_TamilStemmer__r_remove_question_suffixes_TamilStemmer__r_remove_um+_TamilStemmer__r_remove_common_word_endings)_TamilStemmer__r_remove_vetrumai_urupukal%_TamilStemmer__r_remove_plural_suffix(_TamilStemmer__r_remove_command_suffixes&_TamilStemmer__r_remove_tense_suffixes)r	   r    r!   rE   rF   rG   rH   rI   re   rf   rg   r
   r
   r   _stem  sD   zTamilStemmer._stemu   வுr   u   வூr   u   வொr   u   வோr   u   கu   ஙrk   u   ஞu   தu   நu   பr\   u   யu   வr]   u   ீr/   u   ாu   ுu   ூu   ெu   ே r   r$   u	   ந்தu   னுr1   u	   ுக்r0   u   ுக்க்u   ட்க்u   ற்க்u   ங்	   u   ட்ட்r-   u   த்த்r.   u   ந்த்u   ந்u   ட்ப்u   ய்u   ன்ற்u   வ்u   டu   றu   ணu   னu   ரu   லu   ளu   ழu   அu   இr   u	   கள்u   ுங்கள்u   ட்கள்u   ற்கள்u   ோu   பிu   விu   பட்டu   பட்டணu	   தானu   படிதானu   ெனu   ாகியu   குரியu   ுடையu	   ல்லu   ுள்ளu	   ாகிu	   படிu   ின்றிu   பற்றிu	   படுu   விடுu   பட்டுu   விட்டுu   பட்டதுu   ென்றுu	   ுடைu   ில்லைu   ுடன்u   ிடம்u   ெல்லாம்u   ெனும்u	   விடu	   ொடுu	   ோடுu   துu   ிருந்துu   ின்றுu   னைu	   கண்r^   u   முன்u	   ிற்u   மேற்r,   u   ாமல்   u	   ால்u	   ில்u   மேல்u	   ுள்u   கீழ்u   ஆu   ஈr   r#   u   ஏu   ஐr   r   u   ஔu   குu   ிற்றுu   வைu	   னன்u	   பன்u	   வன்u	   ான்u   னான்u   மின்u   னென்u	   ேன்u	   னம்u	   பம்u	   ாம்u   கும்u   டும்u   தும்u   றும்u	   ெம்u	   ேம்u	   ோம்u	   ாய்u	   னர்u	   பர்u   ீயர்u	   வர்u	   ார்u   னார்#   u   மார்u   கொண்டிர்u   னிர்u	   ீர்u	   னள்u	   பள்u	   வள்u	   ாள்u   னாள்,   u	   கிறu   கின்றu   ாநின்றu   கிற்u   கின்ற்u   ாநின்ற்N)1__name__
__module____qualname____doc__r7   rl   rR   r(   rT   rr   r   rs   rx   rt   ry   ru   rv   rw   rz   ri   r{   r   r   r&   r6   r:   r<   r5   r=   r@   rB   rD   rK   rL   rO   rN   rS   rV   rZ   rY   r`   ra   r_   rb   rc   rn   ro   rm   rp   r
   r
   r
   r   r      s   y#mS
%





























































































































































































































	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
2




r   c                   @      e Zd ZdS )r   Nr   r   r   r
   r
   r
   r   r         r   c                   @   r   )r   Nr   r
   r
   r
   r   r     r   r   c                   @   r   )r9   Nr   r
   r
   r
   r   r9     r   r9   c                   @   r   )r;   Nr   r
   r
   r
   r   r;     r   r;   c                   @   r   )rA   Nr   r
   r
   r
   r   rA     r   rA   c                   @   r   )r>   Nr   r
   r
   r
   r   r>     r   r>   c                   @   r   )r?   Nr   r
   r
   r
   r   r?     r   r?   c                   @   r   )rC   Nr   r
   r
   r
   r   rC     r   rC   c                   @   r   )rd   Nr   r
   r
   r
   r   rd     r   rd   N)basestemmerr   amongr   r   BaseExceptionr   r   r9   r;   rA   r>   r?   rC   rd   r
   r
   r
   r   <module>   s&          