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
Japanese tokenization requires extra dependencies, but you do not have them installed.
Please install them like so.

    pip install sacrebleu[ja]
c                   @   s.   e Zd Zdd Zedddd Zdd Zd	S )
TokenizerJaMecabc                 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 z4Please make sure to use the IPA dictionary for MeCab)
MeCabRuntimeErrorFAIL_MESSAGETaggeripadic
MECAB_ARGStaggerdictionary_infosizenext)selfd r   [/home/ubuntu/.local/lib/python3.10/site-packages/sacrebleu/tokenizers/tokenizer_ja_mecab.py__init__   s   
zTokenizerJaMecab.__init__i   )maxsizec                 C   s   |  }| j|  }|S )z
        Tokenizes an Japanese input line using MeCab morphological analyzer.

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

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