Ë
    `›¾jÇ  ã                   ób  — d dl Z d dlZd dlmZmZ d dlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ  ej                   d	g d
¢d¬«      dedefd„«       Z ej                   dg d¢d¬«      defd„«       Z ej                   ddgd¬«      ddededefd„«       Z G d„ d«      Z G d„ d«      Zd„ Zy)é    N)ÚAnyÚDicté   )Úutil)ÚWarnings)ÚLanguage)ÚMatcher)ÚDocÚmerge_noun_chunks)ú	token.depz	token.tagz	token.posT)ÚrequiresÚretokenizesÚdocÚreturnc                 ó  — | j                  d«      s| S | j                  «       5 }| j                  D ]B  }|j                  j                  |j                  j
                  dœ}|j                  ||¬«       ŒD 	 ddd«       | S # 1 sw Y   | S xY w)zËMerge noun chunks into a single token.

    doc (Doc): The Doc object.
    RETURNS (Doc): The Doc object with merged noun chunks.

    DOCS: https://spacy.io/api/pipeline-functions#merge_noun_chunks
    ÚDEP)ÚtagÚdep©ÚattrsN)Úhas_annotationÚ
retokenizeÚnoun_chunksÚrootr   r   Úmerge)r   ÚretokenizerÚnpr   s       úb/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/spacy/pipeline/functions.pyr   r      s�   € ð ×Ñ˜eÔ$Øˆ
Ø	�‰Ó	ð /˜[Ø—/‘/ò 	/ˆBØŸG™GŸK™K°·±·±Ñ<ˆEØ×Ñ˜b¨ÐÕ.ñ	/÷/ð €J÷	/ð €Jús   ¤ABÂBÚmerge_entities)zdoc.entsztoken.ent_iobztoken.ent_typec                 ó  — | j                  «       5 }| j                  D ]M  }|j                  j                  |j                  j                  |j
                  dœ}|j                  ||¬«       ŒO 	 ddd«       | S # 1 sw Y   | S xY w)zÂMerge entities into a single token.

    doc (Doc): The Doc object.
    RETURNS (Doc): The Doc object with merged entities.

    DOCS: https://spacy.io/api/pipeline-functions#merge_entities
    )r   r   Úent_typer   N)r   Úentsr   r   r   Úlabelr   )r   r   Úentr   s       r   r   r   $   st   € ð 
�‰Ó	ð 0˜[Ø—8‘8ò 	0ˆCØŸH™HŸL™L°·±·±È3Ï9É9ÑUˆEØ×Ñ˜c¨ÐÕ/ñ	0÷0ð €J÷	0ð €Jús   ‘AA9Á9BÚmerge_subtokensr   r#   c                 ó\  — t        | j                  «      }|j                  d|ddœgg«        || «      }t        j                  |D ���cg c]  \  }}}| ||dz    ‘Œ c}}}«      }| j                  «       5 }|D ]  }	|j                  |	«       Œ 	 ddd«       | S c c}}}w # 1 sw Y   | S xY w)zõMerge subtokens into a single token.

    doc (Doc): The Doc object.
    label (str): The subtoken dependency label.
    RETURNS (Doc): The Doc object with merged subtokens.

    DOCS: https://spacy.io/api/pipeline-functions#merge_subtokens
    ÚSUBTOKú+)r   Úopé   N)r	   ÚvocabÚaddr   Úfilter_spansr   r   )
r   r#   ÚmergerÚmatchesÚ_ÚstartÚendÚspansr   Úspans
             r   r%   r%   8   s°   € ô �S—Y‘YÓ€FØ
‡J�Jˆx 5°Ñ4Ð5Ð6Ô7Ù�S‹k€GÜ×ÑÈ×QÐQ¹¸¸5À#˜s 5¨3°©7Ò3ÔQÓR€EØ	�‰Ó	ð $˜[Øò 	$ˆDØ×Ñ˜dÕ#ñ	$÷$ð €Jùô	 R÷$ð €Jús   Á
BÁ6B!Â!B+c                   óz   — e Zd Zddedefd„Zdedefd„Zdeee	f   fd„Z
i fdeee	f   dd	fd
„Zd„ Zd„ Zd„ Zd„ Zy	)ÚTokenSplitterÚ
min_lengthÚsplit_lengthc                 ó    — || _         || _        y ©N©r7   r8   )Úselfr7   r8   s      r   Ú__init__zTokenSplitter.__init__N   s   € Ø$ˆŒØ(ˆÕó    r   r   c           	      ó  — | j                   dkD  ré| j                  dkD  rÚ|j                  «       5 }|D ]¹  }t        |j                  «      | j                   k\  sŒ&g }g }i }t        dt        |j                  «      | j                  «      D ]M  }|j                  |j                  ||| j                  z    «       |j                  ||| j                  z  f«       ŒO |j                  ||||«       Œ» 	 d d d «       |S |S # 1 sw Y   |S xY w)Nr   )r7   r8   r   ÚlenÚtextÚrangeÚappendÚsplit)r<   r   r   ÚtÚorthsÚheadsr   Úis           r   Ú__call__zTokenSplitter.__call__R   sü   € Ø�?‰?˜QÒ 4×#4Ñ#4°qÒ#8Ø—‘Ó!ð 	B [Øò B�AÜ˜1Ÿ6™6“{ d§o¡oÓ5Ø "˜Ø "˜Ø "˜Ü!& q¬#¨a¯f©f«+°t×7HÑ7HÓ!Iò E˜AØ!ŸL™L¨¯©°°A¸×8IÑ8IÑ4IÐ)JÔKØ!ŸL™L¨!¨Q°×1BÑ1BÑ-BÐ)CÕDðEð $×)Ñ)¨!¨U°E¸5ÕAñB÷	Bð ˆ
ˆsˆ
÷	Bð ˆ
ús   ¯(C;ÁBC;Ã;Dc                 ó4   — | j                   | j                  dœS )Nr;   r;   ©r<   s    r   Ú_get_configzTokenSplitter._get_config`   s   € àŸ/™/Ø ×-Ñ-ñ
ð 	
r>   ÚconfigNc                 ó`   — |j                  dd«      | _        |j                  dd«      | _        y )Nr7   r   r8   )Úgetr7   r8   )r<   rM   s     r   Ú_set_configzTokenSplitter._set_configf   s'   € Ø Ÿ*™* \°1Ó5ˆŒØ"ŸJ™J ~°qÓ9ˆÕr>   c                 ó>   ‡ — dˆ fd„i}t        j                  |g «      S )NÚcfgc                  óJ   •— t        j                  ‰ j                  «       «      S r:   )ÚsrslyÚ
json_dumpsrL   rK   s   €r   ú<lambda>z(TokenSplitter.to_bytes.<locals>.<lambda>l   s   ø€ œ5×+Ñ+¨D×,<Ñ,<Ó,>Ó?€ r>   ©r   Úto_bytes©r<   ÚkwargsÚserializerss   `  r   rX   zTokenSplitter.to_bytesj   s#   ø€ àÓ?ð
ˆô �}‰}˜[¨"Ó-Ð-r>   c                 óD   ‡ — dˆ fd„i}t        j                  ||g «       ‰ S )NrR   c                 óL   •— ‰j                  t        j                  | «      «      S r:   )rP   rT   Ú
json_loads©Úbr<   s    €r   rV   z*TokenSplitter.from_bytes.<locals>.<lambda>r   s   ø€ ˜T×-Ñ-¬e×.>Ñ.>¸qÓ.AÓB€ r>   ©r   Ú
from_bytes©r<   ÚdatarZ   Údeserializerss   `   r   rb   zTokenSplitter.from_bytesp   s'   ø€ àÓBð
ˆô 	�‰˜˜m¨RÔ0Øˆr>   c                 ój   ‡ — t        j                  |«      }dˆ fd„i}t        j                  ||g «      S )NrR   c                 óL   •— t        j                  | ‰j                  «       «      S r:   )rT   Ú
write_jsonrL   ©Úpr<   s    €r   rV   z'TokenSplitter.to_disk.<locals>.<lambda>z   s   ø€ œU×-Ñ-¨a°×1AÑ1AÓ1CÓD€ r>   ©r   Úensure_pathÚto_disk©r<   ÚpathrZ   r[   s   `   r   rm   zTokenSplitter.to_diskw   s5   ø€ Ü×Ñ Ó%ˆàÓDð
ˆô �|‰|˜D +¨rÓ2Ð2r>   c                 ól   ‡ — t        j                  |«      }dˆ fd„i}t        j                  ||g «       y )NrR   c                 óL   •— ‰j                  t        j                  | «      «      S r:   )rP   rT   Ú	read_jsonri   s    €r   rV   z)TokenSplitter.from_disk.<locals>.<lambda>�   s   ø€ ˜T×-Ñ-¬e¯o©o¸aÓ.@ÓA€ r>   ©r   rl   Ú	from_diskrn   s   `   r   rt   zTokenSplitter.from_disk~   s2   ø€ Ü×Ñ Ó%ˆàÓAð
ˆô 	�‰�t˜[¨"Õ-r>   )r   r   )Ú__name__Ú
__module__Ú__qualname__Úintr=   r
   rI   r   Ústrr   rL   rP   rX   rb   rm   rt   © r>   r   r6   r6   M   sp   „ ñ) 3ð )¸#ó )ð˜Cð  Có ð
˜T # s (™^ó 
ð 46ñ : $ s¨C x¡.ð :¸$ó :ò.òò3ó.r>   r6   c                   óT   — e Zd Zddœdeeef   defd„Zdedefd„Z	d	„ Z
d
„ Zd„ Zd„ Zy)Ú
DocCleanerT)Úsilentr   r}   c                ó*   — t        |«      |dœ| _        y )N)r   r}   )ÚdictrR   )r<   r   r}   s      r   r=   zDocCleaner.__init__‡   s   € Ü-1°%«[ÀFÑ#Kˆ�r>   r   r   c                 ó  — | j                   d   }| j                   d   }|j                  «       D ]Î  \  }}|}|j                  d«      }d}|d d D ]S  }	t        ||	«      rt	        ||	«      }Œd}|rŒ!t        j                  t        j                  j                  |¬«      «       ŒU |rŒyt        ||d   «      rt        ||d   |«       Œ™|rŒœt        j                  t        j                  j                  |¬«      «       ŒÐ |S )Nr   r}   ú.FéÿÿÿÿT)Úattr)rR   ÚitemsrD   ÚhasattrÚgetattrÚwarningsÚwarnr   ÚW116ÚformatÚsetattr)
r<   r   r   r}   rƒ   ÚvalueÚobjÚpartsÚskipÚparts
             r   rI   zDocCleaner.__call__Š   sî   € Ø—h‘h˜wÑ'ˆØ—x‘x Ñ)ˆØ Ÿ;™;›=ò 	G‰KˆD�%ØˆCØ—J‘J˜s“OˆEØˆDØ˜c˜r˜
ò G�Ü˜3 Ô%Ü! # tÓ,‘Cà�DÚ!Ü Ÿ™¤h§m¡m×&:Ñ&:ÀÐ&:Ó&EÕFðGò Ü˜3  b¡	Ô*Ü˜C  r¡¨EÕ2â!Ü Ÿ™¤h§m¡m×&:Ñ&:ÀÐ&:Ó&EÕFð!	Gð" ˆ
r>   c                 ó>   ‡ — dˆ fd„i}t        j                  |g «      S )NrR   c                  óB   •— t        j                  ‰ j                  «      S r:   )rT   rU   rR   rK   s   €r   rV   z%DocCleaner.to_bytes.<locals>.<lambda>¢   s   ø€ œ5×+Ñ+¨D¯H©HÓ5€ r>   rW   rY   s   `  r   rX   zDocCleaner.to_bytes    s#   ø€ àÓ5ð
ˆô �}‰}˜[¨"Ó-Ð-r>   c                 óD   ‡ — dˆ fd„i}t        j                  ||g «       ‰ S )NrR   c                 ó`   •— ‰j                   j                  t        j                  | «      «      S r:   )rR   ÚupdaterT   r^   r_   s    €r   rV   z'DocCleaner.from_bytes.<locals>.<lambda>¨   s   ø€ ˜TŸX™XŸ_™_¬U×-=Ñ-=¸aÓ-@ÓA€ r>   ra   rc   s   `   r   rb   zDocCleaner.from_bytes¦   s'   ø€ àÓAð
ˆô 	�‰˜˜m¨RÔ0Øˆr>   c                 ój   ‡ — t        j                  |«      }dˆ fd„i}t        j                  ||g «      S )NrR   c                 óD   •— t        j                  | ‰j                  «      S r:   )rT   rh   rR   ri   s    €r   rV   z$DocCleaner.to_disk.<locals>.<lambda>°   s   ø€ œU×-Ñ-¨a°·±Ó:€ r>   rk   rn   s   `   r   rm   zDocCleaner.to_disk­   s5   ø€ Ü×Ñ Ó%ˆàÓ:ð
ˆô �|‰|˜D +¨rÓ2Ð2r>   c                 ól   ‡ — t        j                  |«      }dˆ fd„i}t        j                  ||g «       y )NrR   c                 ó`   •— ‰j                   j                  t        j                  | «      «      S r:   )rR   r•   rT   rr   ri   s    €r   rV   z&DocCleaner.from_disk.<locals>.<lambda>·   s   ø€ ˜TŸX™XŸ_™_¬U¯_©_¸QÓ-?Ó@€ r>   rs   rn   s   `   r   rt   zDocCleaner.from_disk´   s2   ø€ Ü×Ñ Ó%ˆàÓ@ð
ˆô 	�‰�t˜[¨"Õ-r>   N)ru   rv   rw   r   ry   r   Úboolr=   r
   rI   rX   rb   rm   rt   rz   r>   r   r|   r|   †   sJ   „ Ø@Dò L˜d 3¨ 8™nð L¸ó Lð˜Cð  Có ò,.òò3ó.r>   r|   c                 óÄ   — | dk(  r!t        j                  d«      }|j                  S | dk(  r!t        j                  d«      }|j                  S t	        dt
        › d| › �«      ‚)NÚmake_doc_cleanerzspacy.pipeline.factoriesÚmake_token_splitterzmodule z has no attribute )Ú	importlibÚimport_modulerœ   r�   ÚAttributeErrorru   )ÚnameÚmodules     r   Ú__getattr__r£   ½   sg   € ØÐ!Ò!Ü×(Ñ(Ð)CÓDˆØ×&Ñ&Ð&Ø	Ð&Ò	&Ü×(Ñ(Ð)CÓDˆØ×)Ñ)Ð)Ü
˜7¤8 *Ð,>¸t¸fÐEÓ
FÐFr>   )Úsubtok)rž   r‡   Útypingr   r   rT   Ú r   Úerrorsr   Úlanguager   Úmatcherr	   Útokensr
   Ú	componentr   r   ry   r%   r6   r|   r£   rz   r>   r   ú<module>r¬      sã   ðÛ Û ß ã å Ý Ý Ý Ý ð €×ÑØÚ4Øôð
˜3ð  3ò óð
ð" €×ÑØÚ<Øôð
˜ò óð
ð €×ÑÐ%°°È4ÔPñ˜ð  Sð ¸ò ó Qð÷(6.ñ 6.÷r3.ñ 3.ónGr>   