o
    'N iN  ã                   @   sˆ   d dl mZ d dl mZ d dlT d dlZd dlZd dlZd dl	Z	dd„ Z
dd„ Zd	d
„ Zdd„ Zdd„ Zddd„Zdd„ Zddd„ZdS )é    )Úloader)Úlanginfo)Ú*Nc                 C   s   t  t| |ƒ¡dkrdS dS )Nr   g        g      ð?)ÚnpÚsumÚxor_vectors©Úv1Úv2© r   úP/home/ubuntu/.local/lib/python3.10/site-packages/indicnlp/script/phonetic_sim.pyÚequal   s   r   c                 C   s.   dt t | |j¡ƒ }|t t| ƒt|ƒ ƒ S )Né   ©Úfloatr   ÚdotÚTÚlen©r	   r
   Údotprodr   r   r   Údice   s   r   c                 C   s.   t t | |j¡ƒ}|t t| ƒt|ƒ | ƒ S ©Nr   r   r   r   r   Újaccard   s   r   c                 C   sL   t t | |j¡ƒ}t t | | j¡ƒ}t t ||j¡ƒ}|t || ¡d  S )Ngñhãˆµøä>)r   r   r   r   Úsqrt)r	   r
   r   Únorm1Únorm2r   r   r   Úcosine   s   r   c                 C   s   t t | |j¡ƒS r   )r   r   r   r   r   r   r   r   r   "   ó   r   ç      @c                 C   s   t  |t| |ƒ¡S r   )r   Úpowerr   )r	   r
   Úbaser   r   r   Úsim1%   r   r!   c                 C   s   t | |tjƒS r   )r!   r   Úer   r   r   r   Úsoftmax(   s   r#   Tc                 C   s¦   t jt j d }t ||f¡}tt jt jd ƒD ]'}tt||ƒ|ƒ}tt jt jd ƒD ]}tt||ƒ|ƒ}	| ||	ƒ|||f< q+q|rQtj|dd}
| 	¡ |
  	¡ }|S )Né   )Úaxis)
r   ÚCOORDINATED_RANGE_END_INCLUSIVEÚ!COORDINATED_RANGE_START_INCLUSIVEr   ÚzerosÚrangeÚget_phonetic_feature_vectorÚoffset_to_charr   Ú	transpose)Úsim_funcÚslangÚtlangÚ	normalizeÚdimÚsim_matÚoffset1r	   Úoffset2r
   Úsumsr   r   r   Úcreate_similarity_matrix+   s   þr6   )r   )T)Úindicnlpr   r   Úindicnlp.script.indic_scriptsÚnumpyr   ÚgzipÚpandasÚpdÚsysr   r   r   r   r   r!   r#   r6   r   r   r   r   Ú<module>   s   
