o
    5t¾ip  ã                   @   sJ   d Z ddlZddlmZ ddlmZ G dd„ dejƒZG dd„ deƒZdS )	zòLibrary containing Tokenizer definitions.

The RougeScorer class can be instantiated with the tokenizers defined here. New
tokenizers can be defined by creating a subclass of the Tokenizer abstract class
and overriding the tokenize() method.
é    N)Úporter)Útokenizec                   @   s   e Zd ZdZejdd„ ƒZdS )Ú	TokenizerzhAbstract base class for a tokenizer.

  Subclasses of Tokenizer must implement the tokenize() method.
  c                 C   s   t dƒ‚)Nz)Tokenizer must override tokenize() method)ÚNotImplementedError©ÚselfÚtext© r	   úJ/home/ubuntu/.local/lib/python3.10/site-packages/rouge_score/tokenizers.pyr       s   zTokenizer.tokenizeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodr   r	   r	   r	   r
   r      s    r   c                   @   s"   e Zd ZdZddd„Zdd„ ZdS )	ÚDefaultTokenizerz0Default tokenizer which tokenizes on whitespace.Fc                 C   s   |r	t  ¡ | _dS d| _dS )z°Constructor for DefaultTokenizer.

    Args:
      use_stemmer: boolean, indicating whether Porter stemmer should be used to
      strip word suffixes to improve matching.
    N)r   ÚPorterStemmerÚ_stemmer)r   Úuse_stemmerr	   r	   r
   Ú__init__(   s   zDefaultTokenizer.__init__c                 C   s   t   || j¡S )N)r   r   r   r	   r	   r
   r   1   s   zDefaultTokenizer.tokenizeN)F)r   r   r   r   r   r   r	   r	   r	   r
   r   %   s    
	r   )	r   r   Ú	nltk.stemr   Úrouge_scorer   ÚABCr   r   r	   r	   r	   r
   Ú<module>   s   