o
    i                     @   sl   d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ dd Zd	d
 Zdd Zdd ZdS )    N)registry)EntityRecognizer)DEFAULT_NER_MODEL)DocSpan)Examplec                 C   s*   t | jg dd}dddgi}t||S )N)JoelovesvisitingLondonduringtheweekendwordsentities)r      PERSON)      LOC)r   vocabr   	from_dict)nerdocgold r   U/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/doc/test_add_entities.py_ner_example
   s   r   c                    s   g d}t | |d}dti}tj|ddd }t| |   fdd  | dg|_d	d
 |D g dks:J dg|_dd
 |D g dksKJ d S )NThisisalionr   modelTvalidatec                      
   t  gS Nr   r   r   r   r   <lambda>      
 z4test_doc_add_entities_set_ents_iob.<locals>.<lambda>)ANIMALr      c                 S      g | ]}|j qS r   ent_iob_.0wr   r   r   
<listcomp>       z6test_doc_add_entities_set_ents_iob.<locals>.<listcomp>)Or7   r7   B)WORDr      c                 S   r/   r   r0   r2   r   r   r   r5       r6   )r8   Ir7   r7   )r   r   r   resolver   
initializeents)en_vocabtextr   cfgr$   r   r*   r   "test_doc_add_entities_set_ents_iob   s   
rB   c                    s   g d}t | |d}dti}tj|ddd }t| |   fdd  | dd	 |D }t|j|_d
d	 |D |ksAJ dS )z7Ensure that resetting doc.ents does not change anythingr   r   r$   Tr%   c                      r'   r(   r)   r   r*   r   r   r+   *   r,   z!test_ents_reset.<locals>.<lambda>c                 S   r/   r   r0   r3   tr   r   r   r5   ,   r6   z#test_ents_reset.<locals>.<listcomp>c                 S   r/   r   r0   rC   r   r   r   r5   .   r6   N)r   r   r   r<   r   r=   listr>   )r?   r@   r   rA   r$   	orig_iobsr   r*   r   test_ents_reset#   s   
rG   c                 C   s~   g d}t | |d}t|dddd}|g|_t|dddd}tt t|j|g |_W d    d S 1 s8w   Y  d S )	N)	LouisianaOfficeofConservationr   r   r.   i  )label   i  )r   r   r>   pytestraises
ValueErrorrE   )r?   r@   r   entity
new_entityr   r   r   test_add_overlapping_entities1   s   "rS   )rN   spacyr   spacy.pipeliner   spacy.pipeline.nerr   spacy.tokensr   r   spacy.trainingr   r   rB   rG   rS   r   r   r   r   <module>   s    	