§
    �zIfi  ã                   óh   — d Z ddlZddlmZ ddlmZmZmZmZ ddl	m
Z
  G d„ dej        ¦  «        ZdS )z(
Tests for IBM Model 5 training methods
é    N©Údefaultdict)ÚAlignedSentÚIBMModelÚ	IBMModel4Ú	IBMModel5)ÚAlignmentInfoc                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestIBMModel5c                 ó(  — ddddœ}ddddœ}t          ddgg d¢¦  «        t          g d	¢d
d
g¦  «        g}t          |d||¦  «        }|                     |¦  «         d}|                      |j        d         d         d         |¦  «         |                      |j        d         d         d         |¦  «         |                      |j        d         d         d         |¦  «         |                      |j        d         d         d         |¦  «         d S )Nr   é   ©ÚschinkenÚeierÚspamé   ©ÚhamÚeggsr   r   r   ©r   r   r   ©r   r   r   r   r   g      À?é   éýÿÿÿ)r   r   Úset_uniform_probabilitiesÚassertEqualÚhead_vacancy_tableÚnon_head_vacancy_table)ÚselfÚsrc_classesÚtrg_classesÚcorpusÚmodel5Úexpected_probs         úV/var/www/piapp/venv/lib/python3.11/site-packages/nltk/test/unit/translate/test_ibm5.pyÚ;test_set_uniform_vacancy_probabilities_of_max_displacementszITestIBMModel5.test_set_uniform_vacancy_probabilities_of_max_displacements   s2  € à#$¨a¸Ð;Ð;ˆØ¨°AÐ6Ð6ˆå˜ ˜Ð)IÐ)IÐ)IÑJÔJÝÐ8Ð8Ð8¸6À6Ð:JÑKÔKð
ˆõ ˜6 1 k°;Ñ?Ô?ˆð 	×(Ò(¨Ñ0Ô0Ð0ð
 &ˆð 	×Ò˜Ô2°1Ô5°aÔ8¸Ô;¸]ÑKÔKÐKØ×Ò˜Ô2°2Ô6°qÔ9¸!Ô<¸mÑLÔLÐLØ×Ò˜Ô6°qÔ9¸!Ô<¸QÔ?ÀÑOÔOÐOØ×Ò˜Ô6°rÔ:¸1Ô=¸aÔ@À-ÑPÔPÐPÐPÐPó    c                 óâ  — ddddœ}ddddœ}t          ddgg d¢¦  «        t          g d	¢d
d
g¦  «        g}t          |d||¦  «        }|                     |¦  «         |                      |j        d         d         d         t
          j        ¦  «         |                      |j        d         d         d         t
          j        ¦  «         |                      |j        d         d         d         t
          j        ¦  «         |                      |j        d         d         d         t
          j        ¦  «         |                      |j        d         d         d         t
          j        ¦  «         d S )Nr   r   r   r   r   r   r   r   r   r   é   r   éüÿÿÿ)r   r   r   r   r   r   ÚMIN_PROBr   )r   r   r    r!   r"   s        r$   Ú;test_set_uniform_vacancy_probabilities_of_non_domain_valueszITestIBMModel5.test_set_uniform_vacancy_probabilities_of_non_domain_values%   sb  € à#$¨a¸Ð;Ð;ˆØ¨°AÐ6Ð6ˆå˜ ˜Ð)IÐ)IÐ)IÑJÔJÝÐ8Ð8Ð8¸6À6Ð:JÑKÔKð
ˆõ ˜6 1 k°;Ñ?Ô?ˆð 	×(Ò(¨Ñ0Ô0Ð0ð 	×Ò˜Ô2°1Ô5°aÔ8¸Ô;½XÔ=NÑOÔOÐOØ×Ò˜Ô2°2Ô6°qÔ9¸!Ô<½hÔ>OÑPÔPÐPØ×Ò˜Ô2°1Ô5°aÔ8¸Ô;½XÔ=NÑOÔOÐOØ×Ò˜Ô6°qÔ9¸!Ô<¸QÔ?ÅÔARÑSÔSÐSØ×Ò˜Ô6°rÔ:¸1Ô=¸aÔ@Å(ÔBSÑTÔTÐTÐTÐTr&   c                 ó  — g d¢}g d¢}ddddddœ}ddddddd	œ}t          ||¦  «        g}t          d
d g|z   dg|z   dgdgdgg dgddgg¦  «        }t          d„ ¦  «        }d|d         d         d<   d|d         d         d<   d|d         d         d<   d|d         d         d<   t          d„ ¦  «        }d|d         d         d<   t          d„ ¦  «        }	d|	d         d<   d|	d         d<   d|	d         d <   d|	d         d<   d|	d         d<   d|	d         d<   t          d„ ¦  «        }
d |
d         d<   d |
d         d<   d |
d         d!<   d |
d         d<   d"|
d         d<   d |
d         d <   d#|	|
||d d d d$œ}t          |d|||¦  «        }|                     |¦  «        }dt          d#d¦  «        z  t          d%d¦  «        z  }d&}d'}d(}||z  |z  |z  }|                      t          |d¦  «        t          |d¦  «        ¦  «         d S ))N)ÚichÚesseÚjaÚgernõ   rÃ¤ucherschinken)ÚiÚloveÚtoÚeatÚsmokedr   r   r   r   é   r   )r1   r/   r-   r.   r0   )r   r6   r2   r3   r4   r5   )r   r   r   r   r   r(   r(   ÚUNUSEDr(   é   c                  ó"   — t          d„ ¦  «        S )Nc                  ó*   — t          t          ¦  «        S ©N©r   Úfloat© r&   r$   ú<lambda>zGTestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>I   ó   € ­µEÑ(:Ô(:€ r&   r   r?   r&   r$   r@   z5TestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>I   ó   € •KÐ :Ð :Ñ;Ô;€ r&   g
×£p=
ï?éÿÿÿÿc                  ó"   — t          d„ ¦  «        S )Nc                  ó*   — t          t          ¦  «        S r<   r=   r?   r&   r$   r@   zGTestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>Q   rA   r&   r   r?   r&   r$   r@   z5TestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>Q   rB   r&   g¸…ëQ¸î?c                  ó*   — t          t          ¦  «        S r<   r=   r?   r&   r$   r@   z5TestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>U   s   € µ½EÑ0BÔ0B€ r&   g\�Âõ(\ï?r2   r-   r3   r0   r4   r5   r.   r6   r1   r   c                  ó*   — t          t          ¦  «        S r<   r=   r?   r&   r$   r@   z5TestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>]   s   € ­k½%Ñ.@Ô.@€ r&   g®Gáz®ï?r/   g+‡ÙÎ÷ï?gÇK7‰A`Å?)Úp1Útranslation_tableÚfertility_tabler   r   Úhead_distortion_tableÚnon_head_distortion_tableÚalignment_tableg-²�ï§ê?gtåSUµþ?gÍçÒXì?gWÇõ×92ë?)r   r	   r   r   Úprob_t_a_given_sÚpowr   Úround)r   Úsrc_sentenceÚtrg_sentencer   r    r!   Úalignment_infor   r   rI   rJ   Úprobabilitiesr"   ÚprobabilityÚnull_generationÚ	fertilityÚlexical_translationÚvacancyÚexpected_probabilitys                      r$   Útest_prob_t_a_given_sz#TestIBMModel5.test_prob_t_a_given_s:   sß  € àHÐHÐHˆØBÐBÐBˆØ+,°A¸aÈÐTUÐVÐVˆØ¨1°1¸aÀqÐQRÐSÐSˆÝ˜l¨LÑ9Ô9Ð:ˆÝ&Ø!ØˆF�\Ñ!ØˆJ˜Ñ%ØˆS�1�#˜�s˜B   a¨ VÐ,ñ	
ô 
ˆõ )Ø;Ð;ñ
ô 
Ðð +/Ð˜5Ô! !Ô$ QÑ'Ø*.Ð˜5Ô! !Ô$ QÑ'Ø*.Ð˜5Ô! !Ô$ QÑ'Ø*.Ð˜5Ô! !Ô$ QÑ'å!,Ø;Ð;ñ"
ô "
Ðð /3Ð˜uÔ% aÔ(¨Ñ+å'Ð(BÐ(BÑCÔCÐØ(,Ð˜#Ô˜uÑ%Ø,0Ð˜&Ô! &Ñ)Ø(,Ð˜$Ô Ñ%Ø+/Ð˜%Ô  Ñ(Ø:>Ð˜(Ô#Ð$6Ñ7Ø7;Ð˜%Ô Ð!3Ñ4å%Ð&@Ð&@ÑAÔAˆØ$(ˆ˜Ô˜5Ñ!Ø%)ˆ˜Ô˜6Ñ"Ø#'ˆ˜Ô˜4Ñ Ø%)ˆ˜Ô˜6Ñ"Ø16ˆ˜ÔÐ-Ñ.Ø#'ˆ˜Ô˜4Ñ ð Ø!2Ø.Ø"4Ø&<Ø%)Ø)-Ø#ð	
ð 	
ˆõ ˜6 1 k°;ÀÑNÔNˆð ×-Ò-¨nÑ=Ô=ˆð �c %¨™mœmÑ+­c°%¸©m¬mÑ;ˆØIˆ	ØEÐØ6ˆà˜iÑ'Ð*=Ñ=ÀÑGð 	ð 	×Ò�˜{¨AÑ.Ô.µÐ6JÈAÑ0NÔ0NÑOÔOÐOÐOÐOr&   c           
      óf  ‡— t          dd d d ¦  «        t          dd d d ¦  «        t          dd d d ¦  «        t          dd d d ¦  «        t          dd d d ¦  «        g}t          j        }d}t          |dz  d¦  «        |z  |||z  ||z  d	z  t          |d
z  d¦  «        dz  dœŠt	          dgdg¦  «        g}t
          j        }t          ˆfd„¦  «        t
          _        t          |dd d ¦  «        }|                     |¦  «        }|  	                    t          |¦  «        d¦  «         |t
          _        d S )N©r   r   ©r   r   ©r   r   ©r   r   ©r   r   gÍÌÌÌÌÌì?g      ø?r   g      à?gš™™™™™ñ?g333333ó?)r]   r^   r_   r`   ra   ÚaÚbc                 ó   •— ‰| j                  S r<   )Ú	alignment)rb   ÚmodelÚscoress     €r$   r@   z*TestIBMModel5.test_prune.<locals>.<lambda>•   s   ø€ ˜V A¤KÔ0€ r&   r   r7   )r	   r   ÚMIN_SCORE_FACTORÚminr   r   Úmodel4_prob_t_a_given_sÚstaticmethodÚpruner   Úlen)	r   Úalignment_infosÚ
min_factorÚ
best_scorer!   Úoriginal_prob_functionr"   Úpruned_alignmentsrg   s	           @r$   Ú
test_prunezTestIBMModel5.test_prune   s\  ø€ õ ˜& $¨¨dÑ3Ô3Ý˜& $¨¨dÑ3Ô3Ý˜& $¨¨dÑ3Ô3Ý˜& $¨¨dÑ3Ô3Ý˜& $¨¨dÑ3Ô3ð
ˆõ Ô/ˆ
Øˆ
å˜
 SÑ(¨!Ñ,Ô,¨zÑ9ØØ Ñ+Ø Ñ+¨cÑ1Ý˜
 SÑ(¨!Ñ,Ô,¨sÑ2ð
ð 
ˆõ ˜s˜e c UÑ+Ô+Ð,ˆÝ!*Ô!BÐå,8Ø0Ð0Ð0Ð0ñ-
ô -
�	Ô)õ ˜6 1 d¨DÑ1Ô1ˆð #ŸLšL¨Ñ9Ô9Ðð 	×Ò�Ð.Ñ/Ô/°Ñ3Ô3Ð3ð -C�	Ô)Ð)Ð)r&   N)Ú__name__Ú
__module__Ú__qualname__r%   r+   r[   rs   r?   r&   r$   r   r      sb   € € € € € ðQð Qð Qð0Uð Uð Uð*CPð CPð CPðJ!Cð !Cð !Cð !Cð !Cr&   r   )Ú__doc__ÚunittestÚcollectionsr   Únltk.translater   r   r   r   Únltk.translate.ibm_modelr	   ÚTestCaser   r?   r&   r$   ú<module>r}      s­   ððð ð €€€Ø #Ð #Ð #Ð #Ð #Ð #à FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ 2Ð 2Ð 2Ð 2Ð 2Ð 2ðTCð TCð TCð TCð TC�HÔ%ñ TCô TCð TCð TCð TCr&   