o
    5ti                     @   s\   d dl mZ z
d dlZd dlZW n ey   dZY nw ddlmZ dZG dd deZ	dS )    )	lru_cacheN   )BaseTokenizerz
Korean tokenization requires extra dependencies, but you do not have them installed.
Please install them like so.

    pip install sacrebleu[ko]
c                   @   s.   e Zd Zdd Zedddd Zdd Zd	S )
TokenizerKoMecabc                 C   sP   t d u rttt tjd | _| j }|jdksJ d|j	d u s&J d S )Nz	 -Owakatiic z5Please make sure to use the mecab-ko-dic for MeCab-ko)
MeCabRuntimeErrorFAIL_MESSAGETaggermecab_ko_dic
MECAB_ARGStaggerdictionary_infosizenext)selfd r   [/home/ubuntu/.local/lib/python3.10/site-packages/sacrebleu/tokenizers/tokenizer_ko_mecab.py__init__   s   
zTokenizerKoMecab.__init__i   )maxsizec                 C   s   |  }| j|  }|S )z
        Tokenizes an Korean input line using MeCab-ko morphological analyzer.

        :param line: a segment to tokenize
        :return: the tokenized line
        )stripr   parse)r   linesentencer   r   r   __call__!   s   zTokenizerKoMecab.__call__c                 C   s   | j  d }d| S )zU
        Returns the MeCab-ko parameters.

        :return: signature string
        z-KOz	ko-mecab-)r   version)r   	signaturer   r   r   r   -   s   zTokenizerKoMecab.signatureN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s
    
r   )
	functoolsr   mecab_kor   r
   ImportErrortokenizer_baser   r   r   r   r   r   r   <module>   s    