
    /h                     j    S r SSKrSSKJr  SSKJrJrJrJr  SSK	J
r
   " S S\R                  5      rg)z(
Tests for IBM Model 5 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel4	IBMModel5)AlignmentInfoc                   ,    \ rS rSrS rS rS rS rSrg)TestIBMModel5   c                    SSSS.nSSSS.n[        SS// SQ5      [        / S	QS
S
/5      /n[        USX5      nUR                  U5        SnU R                  UR                  S   S   S   U5        U R                  UR                  S   S   S   U5        U R                  UR
                  S   S   S   U5        U R                  UR
                  S   S   S   U5        g )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         Z/var/www/auris/envauris/lib/python3.13/site-packages/nltk/test/unit/translate/test_ibm5.py;test_set_uniform_vacancy_probabilities_of_max_displacementsITestIBMModel5.test_set_uniform_vacancy_probabilities_of_max_displacements   s    #$a;A6)IJ866:JK
 61k? 	((0
 & 	2215a8;]K2226q9!<mL66q9!<Q?O66r:1=a@-P    c                    SSSS.nSSSS.n[        SS// SQ5      [        / S	QS
S
/5      /n[        USX5      nUR                  U5        U R                  UR                  S   S   S   [
        R                  5        U R                  UR                  S   S   S   [
        R                  5        U R                  UR                  S   S   S   [
        R                  5        U R                  UR                  S   S   S   [
        R                  5        U R                  UR                  S   S   S   [
        R                  5        g )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_valuesITestIBMModel5.test_set_uniform_vacancy_probabilities_of_non_domain_values%   s9   #$a;A6)IJ866:JK
 61k? 	((0 	2215a8;X=N=NO2226q9!<h>O>OP2215a8;X=N=NO66q9!<Q?ARARS66r:1=a@(BSBSTr(   c                    / SQn/ SQnSSSSSS.nSSSSSSS	.n[        X!5      /n[        S
S /U-   S/U-   S/S/S// S/SS//5      n[        S 5      nSUS   S   S'   SUS   S   S'   SUS   S   S'   SUS   S   S'   [        S 5      nSUS   S   S'   [        S 5      n	SU	S   S'   SU	S   S'   SU	S   S '   SU	S   S'   SU	S   S'   SU	S   S'   [        S 5      n
S U
S   S'   S U
S   S'   S U
S   S!'   S U
S   S'   S"U
S   S'   S U
S   S '   S#U	U
UUS S S S$.n[        USX4U5      nUR	                  U5      nS[        S#S5      -  [        S%S5      -  nS&nS'nS(nX-  U-  U-  nU R                  [        US5      [        US5      5        g ))N)ichessejagern   räucherschinken)ilovetoeatsmokedr   r   r   r      r   )r4   r2   r0   r1   r3   )r   r9   r5   r6   r7   r8   )r   r   r   r   r   r*   r*   UNUSEDr*      c                      [        S 5      $ )Nc                       [        [        5      $ Nr   float r(   r%   <lambda>GTestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>I   	    E(:r(   r   rB   r(   r%   rC   5TestIBMModel5.test_prob_t_a_given_s.<locals>.<lambda>I   
    K :;r(   g
ףp=
?c                      [        S 5      $ )Nc                       [        [        5      $ r?   r@   rB   r(   r%   rC   rD   Q   rE   r(   r   rB   r(   r%   rC   rF   Q   rG   r(   gQ?c                       [        [        5      $ r?   r@   rB   r(   r%   rC   rF   U   s	    E0Br(   g\(\?r5   r0   r6   r3   r7   r8   r1   r9   r4   r   c                       [        [        5      $ r?   r@   rB   r(   r%   rC   rF   ]   s	    k%.@r(   gGz?r2   g+?gK7A`?)p1translation_tablefertility_tabler   r   head_distortion_tablenon_head_distortion_tablealignment_tableg-?gtSU?gX?gW92?)r   r	   r   r   prob_t_a_given_spowr   round)r   src_sentencetrg_sentencer    r!   r"   alignment_infor   r   rN   rO   probabilitiesr#   probabilitynull_generation	fertilitylexical_translationvacancyexpected_probabilitys                      r%   test_prob_t_a_given_s#TestIBMModel5.test_prob_t_a_given_s:   s   HB+,AaTUV11aqQRSl9:&!F\!J%S1#sBaV,	
 );
 +/5!!$Q'*.5!!$Q'*.5!!$Q'*.5!!$Q'!,;"
 /3u%a(+'(BC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%&@A$(5!%)6"#'4 %)6"16-.#'4  !2."4&<%))-#	
 61kN --n= c%m+c%m;I	E6'*==G 	 	{A.6JA0NOr(   c           
        ^ [        SS S S 5      [        SS S S 5      [        SS S S 5      [        SS S S 5      [        SS S S 5      /n[        R                  nSn[        US-  S5      U-  UX#-  X#-  S	-  [        US
-  S5      S-  S.m[	        S/S/5      /n[
        R                  n[        U4S j5      [
        l        [        USS S 5      nUR                  U5      nU R                  [        U5      S5        U[
        l        g )Nr   r   r   r   r   r   r   r   r   r   g?g      ?r   g      ?g?g333333?)rc   rd   re   rf   rg   abc                 "   > TU R                      $ r?   )	alignment)rh   modelscoress     r%   rC   *TestIBMModel5.test_prune.<locals>.<lambda>   s    VAKK0r(   r   r:   )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_alignmentsrm   s	           @r%   
test_pruneTestIBMModel5.test_prune   s    &$d3&$d3&$d3&$d3&$d3
 //


S(!,z9++c1
S(!,s2
 secU+,!*!B!B,80-
	) 61dD1 #LL9 	./3 -C	)r(   rB   N)	__name__
__module____qualname____firstlineno__r&   r-   r`   rz   __static_attributes__rB   r(   r%   r   r      s    Q0U*CPJ!Cr(   r   )__doc__unittestcollectionsr   nltk.translater   r   r   r   nltk.translate.ibm_modelr	   TestCaser   rB   r(   r%   <module>r      s1     # F F 2TCH%% TCr(   