o
    Qii>                     @   sf   d dl mZmZ edZedZedZddddd	Zd
ddddZdddZ	dddZ
dddZdS )    )compose	decomposeu   ㅏㅑㅗㅛu   ㅓㅕㅜㅠu   ㅡㅣ   ㅓ   ㅕ   ㅜ   ㅠ)   ㅏ   ㅑ   ㅗ   ㅛr   r	   r
   r   )r   r   r   r   Fc                 C   s   |s| hS t | |||}t| }tt| d }| d }tt|d }|d dkrg|d dkrg| d d t|d |d |d  }	|dd  }
|	|
 }|| |d dkr^|| |  |rgtd| |S )Nr       u,   어미의 첫 글자가 자음인 경우: {})	conjugatelenlistr   r   addprintformat)stemendingenforce_moum_harmoneydebug
candidatesl_lenl_lastl_last_r_firstlrsurface r!   R/home/ubuntu/.local/lib/python3.10/site-packages/soynlp/lemmatizer/_conjugation.pyconjugate_chat   s"   $
r#   c                 C   s  |sJ t | }tt| d }| d }tt|d }|r|d dkrH|d tv rH|d dkrH|d tv rHt|d  |d< t| |dd   }|d dkrr|d tv rr|d dkrr|d tv rrt|d  |d< t| |dd   }|d tv r|d tv rt|d  |d< t| |dd   }|d dkrt|d |d dn|d }t	 }	|rt
d| t
d	| |d d
kr| | }
|	|
 |rt
d|
 |d dkr|d dkr| d d t|d |d d }|| }
|	|
 |	| |  |rt
d|
 |dkr\| dd  dkr\|dks|dkr\|dkr\t| d \}}}| d d t||d }td|d |d |dd   }|| }
|	|
 |r\t
d|
 |d dkr| d d t|d |d d }|dks}|dkr|dkr|dks|dks|dks|dkrd}n|d dkrd}n|d dkrd}n
|dkrd}nd}td||d |dd   }|| }
|	|
 |rt
d|
 n|d dkr|| }
|	|
 |rt
d|
 |d dkrV|d dks|d dks|d dks|d dks|d d krV| d d t|d |d |d  }|dd  }|| }
|	|
 |d dkrL|	| |  |rVt
d!|
 |d d"kr|d dkr| d d#krn| }n| d d t|d |d d }|| }
|	|
 |rt
d$|
 |d dkr|d dkr|d dkr|d d%kr|d&kr| d d d' }n| d d t|d d|d  }|dd  }|| }
|	|
 |rt
d(|
 |d dkr)|d dkr)|d dkr)|d d)kr)| d d t|d d|d  }|dd  }|| }
|	|
 |r)t
d*|
 |d d+kr|d dkr|d dkr|d dkrUt | dkrU| d d | }
n"|d dkru| d d t|d |d |d  |dd   }
nd }
|
d ur|	|
 |r|
d urt
d,|
 |d d d-ks|d d d.kr| d d/kr| d d }d0|dd   }nB| d d1kr| d d }d2|dd   }n,| d d3kr| }|dd  }n|d tv r| }d|dd   }n
| }d|dd   }|| }
|	|
 |rt
d4|
 |dkrL| dd  d5krL|d dkrL|d d%krLtd|d |d |dd   }| | }
|	|
 |rLt
d6|
 |d7kr|d dkr|d d)ksf|d d%krt|d d8|d |dd   }| | }|	| | d d td9d:|d  }|dd  }|| }|	| |rt
d;|| |d d9kr|d dkr|d<ks|d=kr| }n| d d t|d |d d }|}|| }
|	|
 |rt
d>|
 |d d9kr:|d<kr:|d dkr|d d)ks|d d%kr:| d d t|d |d d)krd:nd?|d  }|dd  }|| }
|	|
 |r:t
d@|
 |d d9krb|d dkrb|d dkrb| | }
|	|
 |rbt
dA|
 |dkr|d dBkr|d dkr| d d t|d d8|d  |dd   }
|	|
 | | }
|	|
 |rt
dC|
 |	s|d dkr|d dkr|d dkr|d |d kr| d d t|d |d |d  }|dd  }|| }
|	|
 n	| | }
|	|
 |rt
dD|
 |	S )ENr   r         ㅂr      ㅇr   zl_last = {}zr_first = {}u   다u    '다'로 시작하는 어미: {}   ㄷ   ㄹu   ㄷ 불규칙: {}   르u   푸르u   아u   어u   르 불규칙: {}u   답u   곱u   깝u   롭   ㅝr
      ㅘr   u   ㅂ 불규칙: {}   ㄴu   ㅁ   ㅆuD   어미의 첫 글자가 -ㄴ, -ㄹ, -ㅁ-, -ㅂ, -ㅆ 인 경우: {}   ㅅ   벗u   ㅅ 불규칙: {}r      푸   퍼u   우 불규칙: {}r   u   오 활용: {}   ㅡu   ㅡ 탈락 불규칙: {}u   어라u   아라u   오u   와u   우u   워u   가u   거라/너라 불규칙: {}u   구르u   러 불규칙: {}   하r      ㅎ   ㅐu   여 불규칙: {}, {}   좋u   놓u   ㅎ 탈락 불규칙: {}u   ㅔu   ㅎ 축약 불규칙: {}u   ㅎ + 네 불규칙: {}   ㅣu   이 + 어 -> 여 규칙: {}u   L + R 규칙 결합: {})r   r   r   positive_moumnegative_moum
neg_to_posr   
pos_to_negneuter_moumsetr   r   r   )r   r   r   r   r   r   r   r   r_first_r   r    r   c0c1c2r   surface0surface1r!   r!   r"   r   .   sr  (
 
 
 2


T$
 
8
 
8 
*2

$
 
4 

 
*2
*
&,

.$
r   c           
      C   s  t | }t| d }| d }| h}|d dkr2| d d t|d |d d }|| |r2td |dkrZ|dkrZt| d	 \}}}	| d d	 t||d }|| |rZtd
 |d dkr{| d d t|d |d d }|| |r{td |d dkr|| d d t|d |d d  || d d t|d |d d  || d d t|d |d d  || d d t|d |d d  |rtd |d dkr| d dkr|| d d t|d |d d  |rtd |d dkr7|d dkr7|dkrd}n)|| d d t|d dd  || d d t|d dd  |r7td |d dkrn|d dkrn|| d d t|d dd  || d d t|d dd  |rntd |d dkr|d dkr|| d d t|d dd  || d d t|d dd  |d dkrt | dkr|| d d  |rtd |d kr|| d d d!  || d d d"  |rtd# |d d$kr=|d%kr=|| d d t|d |d d  || d d t|d |d d  || d d t|d |d d  || d d t|d |d d  |r=td& |d d$kra|d%kra|| d d t|d d'd  |ratd( |d d)kr|d dkr|| d d t|d d*d  |rtd+ |S ),Nr   r$   r'   r   r   r(   u   ㄷ 불규칙r)   r*   u   르 불규칙r%   r   u   ㅂ 불규칙r-   r.   u9   어미의 첫 글자가 -ㄴ, -ㄹ, -ㅂ, -ㅆ 일 경우r/   r0   u   ㅅ 불규칙r   r1   r2   r+   u   우 불규칙r
   r,   u   오 + 았어 -> 왔어 규칙r3   r   r&   u   ㅡ 탈락 불규칙r4   u   해u   했u   하 -> 해, 했 활용r5   r7   u   ㅎ 탈락 불규칙r6   u   ㅎ 축약 불규칙r8   r   u   이었 -> 였 규칙)r   r   r   r   r   )
r   r   r   r   r   r   r   r@   rA   rB   r!   r!   r"   _conjugate_stem-  s    

 
&&&&&
""""""

&&&&""rE   N)FF)F)soynlp.hangler   r   r>   r9   r:   r=   r<   r;   r#   r   rE   r!   r!   r!   r"   <module>   s&   

  