o
    Mi                     @   sL   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d	S )
   )BaseStemmer)Amongc                   @   s  e Zd ZdZh dZh dZh dZdZ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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ddd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d$dded%dded&dded'ddgZg 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d1d2d)ed3d2d)ed4d2d)ed5d2d)ed6d2d)ed7dd)ed8d9d)ed:d9d)ed;d9d)ed<dd)ed=dd)ed>dd)ed?d@d)edAdd)edBdd-edCdDd)edEdFd)edGdFd)edHdFd)edIdDd)edJdKd)edLdKd)edMdDd)edNdOd)edPdOd)edQdDd)edRdd)edSddTedUdVd)edWdVd)edXdd)ZedYddedZdded[dded\dded]dded^dded_ddgZed`dd)edadd)edbdd)edcddTedddd-gZdeS )fSwedishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from swedish.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >	   aeiouy   ä   å   ö>   bcdfghjklmnr   prtvr
   >	   r   r   r   r   r   r   r   r	   r       c                 C   s   | j | _| j}| jd }|| j krdS || _| j| _|| _| tjs%dS |  jd7  _| tjs4dS |  jd7  _| j| _z| j| jkrIt | j| _W dS  tyY   Y dS w )N   Fr   T)	limitI_p1cursorI_xgo_out_groupingr   g_vgo_in_groupinglab0)selfv_1r    r)   S/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/swedish_stemmer.py__r_mark_regions   s.   


zSwedishStemmer.__r_mark_regionsc                 C   s   | j | j }| tjsdS | tjsdS z| j| jkr t W dS  ty+   Y nw | j | | _| j | j }z| tj	dkrDt
 W dS  t
yO   Y nw | j | | _dS )NFr   T)r   r!   out_grouping_br   r$   in_grouping_blimit_backwardr&   find_among_ba_0lab1)r'   r(   v_3r)   r)   r*   __r_et_condition.   s&   zSwedishStemmer.__r_et_conditionc                 C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkr"|| _dS | j | _|| _|dkr5|  s3dS dS |dkrz7| j	| j  }z| 
dsIt |  sPt | j | _t  ty_   Y nw | j	| | _ | tjsoW dS W n	 tyy   Y nw |  sdS dS |  sdS |  sdS dS )NFr   r      etT)r!   r    r.   ketr/   r   a_1bra	slice_delr   eq_s_br1   _SwedishStemmer__r_et_conditionr&   r-   
g_s_ending)r'   v_2	among_varr2   r)   r)   r*   __r_main_suffixC   sN   
zSwedishStemmer.__r_main_suffixc                 C   s   | j | jk rdS | j}| j| _| j| j  }| tjdkr"|| _dS | j| | _ | j | _| j | jkr7|| _dS |  j d8  _ | j | _| 	 sHdS || _dS )NFr   r   T)
r!   r    r.   r   r/   r   a_2r6   r8   r9   )r'   r=   r2   r)   r)   r*   __r_consonant_pairm   s&   z!SwedishStemmer.__r_consonant_pairc                 C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkr"|| _dS | j | _|| _|dkr5|  s3dS dS |dkrJ| 	tj
sAdS | dsHdS dS | dsQdS dS )NFr   r   r4   u   ösfullT)r!   r    r.   r6   r/   r   a_3r8   r9   r-   g_ost_ending
slice_from)r'   r=   r>   r)   r)   r*   __r_other_suffix   s0   


zSwedishStemmer.__r_other_suffixc                 C   s   | j }|   || _ | j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| _ dS )NT)r!   _SwedishStemmer__r_mark_regionsr.   r   _SwedishStemmer__r_main_suffix!_SwedishStemmer__r_consonant_pair_SwedishStemmer__r_other_suffix)r'   r(   r=   r2   v_4r)   r)   r*   _stem   s    zSwedishStemmer._stemfabr   pakrakstakkomietcitditalitilitmitnitpitritsittituitivitkvitxitr   r   arnaernaheternar4   ornaadr   ade   andearneareasteenanden   arenhetenernarerheter   orsas   arnas   ernasornasesades   andesensarens   hetensernsatr5   r   andet"   hetastddgdnndtgtktttigligelsfulltu   östN)__name__
__module____qualname____doc__r$   r<   rD   r"   r    rG   r;   rH   rI   rJ   rL   r   r0   r7   r@   rC   r)   r)   r)   r*   r      s    *





























	























 
!
"
#
$
%
&
*










r   c                   @      e Zd ZdS )r&   Nr   r   r   r)   r)   r)   r*   r&         r&   c                   @   r   )r1   Nr   r)   r)   r)   r*   r1     r   r1   N)basestemmerr   amongr   r   BaseExceptionr&   r1   r)   r)   r)   r*   <module>   s    |