
    g                     Z    d dl  d dl d dlmZ d dl  G d de      Z G d de      Zy)    )*)DependencyGraphc                   ^    e Zd Zd e        edd      efdZddZddZdd	Z	dd
Z
ddZy)DependencyCorpusReaderutf8
T)gapsc                 4    t         j                  | |||       y N)SyntaxCorpusReader__init__)selfrootfileidsencodingword_tokenizersent_tokenizerpara_block_readers          R/var/www/openai/venv/lib/python3.12/site-packages/nltk/corpus/reader/dependency.pyr   zDependencyCorpusReader.__init__   s     	##D$B    Nc                     t        | j                  |d      D cg c]  \  }}t        |ddd|       c}}      S c c}}w NT)include_encodingFr   concatabspathsDependencyCorpusViewr   r   fileidencs       r   wordszDependencyCorpusReader.words   sO     $(==4=#P#PKFC %VUE53O#P
 	
   >
c                     t        | j                  |d      D cg c]  \  }}t        |ddd|       c}}      S c c}}w r   r   r   s       r   tagged_wordsz#DependencyCorpusReader.tagged_words&   sO     $(==4=#P#PKFC %VT5%#N#P
 	
r#   c                     t        | j                  |d      D cg c]  \  }}t        |ddd|       c}}      S c c}}w r   r   r   s       r   sentszDependencyCorpusReader.sents.   sO     $(==4=#P#PKFC %VUD%#N#P
 	
r#   c                     t        | j                  |d      D cg c]  \  }}t        |ddd|       c}}      S c c}}w r   r   r   s       r   tagged_sentsz#DependencyCorpusReader.tagged_sents6   sO     $(==4=#P#PKFC %VT4M#P
 	
r#   c                     t        | j                  |d      D cg c]  \  }}t        |ddd|       c}}      }|D cg c]  }t        |       c}S c c}}w c c}w r   )r   r   r   r   )r   r   r    r!   r'   sents         r   parsed_sentsz#DependencyCorpusReader.parsed_sents>   sm     $(==4=#P#PKFC %VUD$M#P
 388%$%%88
 9s   A
Ar   )__name__
__module____qualname__TabTokenizerRegexpTokenizerread_blankline_blockr   r"   r%   r'   r)   r,    r   r   r   r      s8    
 #~&t$7.	C



9r   r   c                   "    e Zd ZdZ	 	 ddZd Zy)r   z-DOCSTART- -DOCSTART- O
Nc                 l    || _         || _        || _        || _        t        j                  | ||       y )Nr   )_tagged_dependencies_group_by_sent_chunk_typesStreamBackedCorpusViewr   )r   corpus_filetaggedgroup_by_sentdependencieschunk_typesr   s          r   r   zDependencyCorpusView.__init__K   s8     )+'''kH'Mr   c                    t        |      d   j                         }|j                  | j                        r&|t	        | j                        d  j                         }| j                  s|j                  d      D cg c]  }|j                  d       }}t	        |d         dk(  st	        |d         dk(  r|D cg c]  }|d   |d   f }}n4t	        |d         dk(  r|D cg c]  }|d   |d   f }}nt        d      | j                  s|D cg c]  \  }}|	 }}}| j                  r|gS t        |      S c c}w c c}w c c}w c c}}w )	Nr   r   	         
   z3Unexpected number of fields in dependency tree file)r2   strip
startswith	_DOCSTARTlenlstripr7   split
ValueErrorr6   r8   list)r   streamr+   linelineswordtags          r   
read_blockzDependencyCorpusView.read_blockZ   sG   #F+A.446??4>>*DNN+-.557D !!26**T2BC2B$TZZ%2BEC58}!Sq]a%77<=uta$q'*u=U1X"$7<=uta$q'*u= !VWW <<045$5 6M:! D== 6s   =D?=E&E	E)Nr   )r-   r.   r/   rH   r   rS   r3   r   r   r   r   H   s    +I Nr   r   N)	nltk.corpus.reader.apinltk.corpus.reader.util
nltk.parser   nltk.tokenizer   r   r:   r   r3   r   r   <module>rX      s.    % % & 59/ 59p+1 +r   