B
    .(b	                 @   sL   d dl mZ d dlmZ d dlmZ ddlmZ dd Zdd	 Z	d
d Z
dS )    )unicode_literals)ensure_path)KnowledgeBase   )make_tempdirc          	   C   sv   t | }t| t N}t|}| s0|  |d }|t| t| dd}|	t| W d Q R X t| d S )Nkb   )vocabentity_vector_length)
_get_dummy_kb	_check_kbr   r   existsmkdirdumpstrr   Z	load_bulk)Zen_vocabZkb1dZdir_path	file_pathZkb2 r   V/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/serialize/test_serialize_kb.pytest_serialize_kb_disk
   s    r   c             C   s   t | dd}|jdddddgd |jdd	d
ddgd |jdd
ddd
gd |jdddddgd |jdddgddgd |jdddddgddddgd |jddgdgd |S )Nr   )r	   r
   Q53!   r      )entityfreqentity_vectorQ17r         Q007Q44iV     double07g?g?)aliasentitiesZprobabilitiesguyg333333?g?randomg      ?)r   Z
add_entity	add_alias)r	   r   r   r   r   r      s    
r   c             C   s  |   dkstxdD ]}||  kstqW xdD ]}||  ks4tq4W |  dks\txdD ]}||  ksbtqbW xdD ]}||  kstqW t| ddd	 d
}t|dkst|d jdkstd|d j	  k rdk sn t|d j
dddgks
t|d jdkstd|d j  k r<dk sBn t|d jdksVtd|d j	  k rtdk szn t|d j
dddgkst|d jdkstd|d j  k rdk sn td S )Nr!   )r   r   r   r    ) ZQ0r   )r"   r%   r&   )Znothingnessr(   Zrandomnoiser"   c             S   s   | j S )N)entity_)xr   r   r   <lambda>A       z_check_kb.<locals>.<lambda>)keyr   r   r   g"@g
ףp=
@r   gS㥛?gE?r   r   gףp=
?gGz @gMbX?gB`"۹?)Zget_size_entitiesAssertionErrorZget_entity_stringsZget_size_aliasesZget_alias_stringssortedZget_candidateslenr)   Zentity_freqr   Zalias_Z
prior_prob)r   Zentity_stringZalias_string
candidatesr   r   r   r   1   s,    



 $$r   N)
__future__r   Z
spacy.utilr   Zspacy.kbr   utilr   r   r   r   r   r   r   r   <module>   s   