o
    i                     @   sH   d dl T d dlT d dlmZ d dlT G dd deZG dd deZdS )    )*DependencyGraphc                   @   sZ   e Zd Zde edddefddZddd	Zdd
dZdddZ	dddZ
dddZdS )DependencyCorpusReaderutf8
T)gapsc                 C   s   t | ||| d S N)SyntaxCorpusReader__init__)selfrootfileidsencodingword_tokenizersent_tokenizerpara_block_reader r   X/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nltk/corpus/reader/dependency.pyr      s   	zDependencyCorpusReader.__init__Nc                 C      t dd | j|ddD S )Nc              	   S   s"   g | ]\}}t |d d d |dqS )Fr   DependencyCorpusView.0fileidencr   r   r   
<listcomp>        z0DependencyCorpusReader.words.<locals>.<listcomp>Tinclude_encodingconcatabspathsr   r   r   r   r   words   
   zDependencyCorpusReader.wordsc                 C   r   )Nc              	   S   "   g | ]\}}t |d dd|dqS TFr   r   r   r   r   r   r   (   r   z7DependencyCorpusReader.tagged_words.<locals>.<listcomp>Tr   r!   r$   r   r   r   tagged_words&   r&   z#DependencyCorpusReader.tagged_wordsc                 C   r   )Nc              	   S   s"   g | ]\}}t |d dd |dqS FTr   r   r   r   r   r   r   0   r   z0DependencyCorpusReader.sents.<locals>.<listcomp>Tr   r!   r$   r   r   r   sents.   r&   zDependencyCorpusReader.sentsc                 C   r   )Nc              	   S   s"   g | ]\}}t |d d d|dqS r(   r   r   r   r   r   r   8   r   z7DependencyCorpusReader.tagged_sents.<locals>.<listcomp>Tr   r!   r$   r   r   r   tagged_sents6   r&   z#DependencyCorpusReader.tagged_sentsc                 C   s*   t dd | j|ddD }dd |D S )Nc              	   S   r'   r*   r   r   r   r   r   r   @   r   z7DependencyCorpusReader.parsed_sents.<locals>.<listcomp>Tr   c                 S   s   g | ]}t |qS r   r   )r   sentr   r   r   r   E       r!   )r   r   r+   r   r   r   parsed_sents>   s   z#DependencyCorpusReader.parsed_sentsr	   )__name__
__module____qualname__TabTokenizerRegexpTokenizerread_blankline_blockr   r%   r)   r+   r,   r/   r   r   r   r   r      s    





r   c                   @   s&   e Zd ZdZ		dddZdd ZdS )	r   z-DOCSTART- -DOCSTART- O
Nr   c                 C   s,   || _ || _|| _|| _tj| ||d d S )Nr   )_tagged_dependencies_group_by_sent_chunk_typesStreamBackedCorpusViewr   )r   corpus_filetaggedgroup_by_sentdependencieschunk_typesr   r   r   r   r   K   s
   	zDependencyCorpusView.__init__c                 C   s   t |d  }|| jr|t| jd   }| js\dd |dD }t|d dks6t|d dkr>dd |D }nt|d dkrNd	d |D }ntd
| j	s\dd |D }| j
rb|gS t|S )Nr   c                 S   s   g | ]}| d qS )	)splitr   liner   r   r   r   c   s    z3DependencyCorpusView.read_block.<locals>.<listcomp>r         c                 S      g | ]
}|d  |d fqS )r      r   rB   r   r   r   r   e       
   c                 S   rF   )rG   rE   r   rB   r   r   r   r   g   rH   z3Unexpected number of fields in dependency tree filec                 S   s   g | ]\}}|qS r   r   )r   wordtagr   r   r   r   m   r.   )r5   strip
startswith	_DOCSTARTlenlstripr7   rA   
ValueErrorr6   r8   list)r   streamr-   linesr   r   r   
read_blockZ   s    zDependencyCorpusView.read_block)Nr   )r0   r1   r2   rN   r   rU   r   r   r   r   r   H   s    
r   N)	nltk.corpus.reader.apinltk.corpus.reader.util
nltk.parser   nltk.tokenizer
   r   r:   r   r   r   r   r   <module>   s   	8