o
    i                     @   s  d dl mZ d dlZd dlZd dlmZ ddgg dg dg dg d	d
didfddgg dg dg dg d	d
didfddgg dg dg dg dddidfddgg dg dg dg dddddfddd gg d!g d"g d#g d$ddidfgZd%dgd&d'gd(d)gd d gd*d+gd,didfd-d.gg dg d/g d0g d1ddddfd2d3d4gg d5g d6g dg d7ddidfgZd8d9 Zd:d; Z	d<d= Z
d>d? Zd@edAedBefdCdDZejd@g dEdFdG ZdS )H    )ListN)ExamplezWho is Kofi Annan?)      PERSON)PRONAUXPROPNr   PUNCT)   r      r   r   )attrROOTcompoundnsubjpunct) 5Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=FinNumber=Singr   PunctType=Periquestiong      ?)entitiestagsheadsdepsmorphscatszWho is Steve Jobs?)r      r   zBob is a nice person.)r   r   r   )r	   r   DETADJNOUNr
   )r   r      r!   r   r   )r   r   detamodr   r   )r   r   zDefinite=Ind|PronType=Art
Degree=Posr   r   	statementzHi Anil, how are you?)r   r   r   )INTJr	   r
   ADVr   r   r
   )intjnpadvmodr   advmodr   r   r   )r!   r   r!   r!   r!   r!   r!   )r   r   PunctType=Commr   z Mood=Ind|Tense=Pres|VerbForm=FinCase=Nom|Person=2|PronType=Prsr   )greetingr   )r   r   r   r   r   r   zI like London and Berlin.)r      LOC)r      r/   )r	   VERBr	   CCONJr	   r
   )r   r   dobjccconjr   )r   r   r      r6   r   )z*Case=Nom|Number=Sing|Person=1|PronType=PrszTense=Pres|VerbForm=Finr   zConjType=Cmpr   r   zHi Anilr&   r	   r   r)   r   r   r-   zHi Ravish, how you doing?)r   	   r   )r(   r   r   r*   r   advclr   )r   r   r      r9   r   r   )r   zVerbForm=Infr+   r   r,   z$Aspect=Prog|Tense=Pres|VerbForm=Partr   zNatasha bought new forks.)r   r   r   )   r0   UTENSIL)r	   r1   r   r    r
   )r   r   r#   r3   r   )r   zTense=Past|VerbForm=Finr$   zNumber=Plurr   c                 C   s.   |D ]\}}|d D ]	}|  |d  q
qd S )Nr   r6   	add_label)nerdata_annotationsent rC   V/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/training/test_rehearse.py_add_ner_label   s
   rE   c                 C   *   |D ]\}}|d D ]}|  | q
qd S )Nr   r<   )taggerr?   r@   rA   tagrC   rC   rD   _add_tagger_label   
   rI   c                 C   rF   )Nr   r<   )parserr?   r@   rA   deprC   rC   rD   _add_parser_label   rJ   rM   c                 C   rF   )Nr   r<   )textcatr?   r@   rA   catrC   rC   rD   _add_textcat_label   rJ   rP   	componentr?   rehearsec                 C   s   |  |}|dkrt|| n |dkrt|| n|dkr#t|| n|dkr-t|| nt|r6|  }n|  }tdD ]'}|D ]"\}}| 	|}	t
|	|}
|r\| j|
g|d qB| j|
g|d qBq>| S )zRun either train or rehearse.r>   rG   rK   textcat_multilabelr9   )sgd)get_piperE   rI   rM   rP   NotImplementedErrorresume_training
initializerangemake_docr   	from_dictrR   update)nlprQ   r?   rR   pipe	optimizerr@   text
annotationdocexamplerC   rC   rD   	_optimize   s,   


rd   )r>   rG   rK   rS   c                 C   s4   t d}||  t|| td}t|| td d S )NenFT)spacyblankadd_piperd   
TRAIN_DATAREHEARSE_DATA)rQ   r]   rC   rC   rD   test_rehearse   s   

rk   )typingr   pytestrf   spacy.trainingr   ri   rj   rE   rI   rM   rP   strboolrd   markparametrizerk   rC   rC   rC   rD   <module>   s    	^	4