
    g                     f    d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	  G d dej                        Zy)z(
Tests for IBM Model 3 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel3)AlignmentInfoc                       e Zd Zd Zd Zd Zy)TestIBMModel3c                    t        ddgg d      t        g dddg      g}t        |d      }|j                  |       | j                  |j                  d   d   d   d	   d
       | j                  |j                  d   d	   d	   d   d       y )Nhameggsschinkenr   eierspamr   r   r   r   r            g      ?   g      ?)r   r   set_uniform_probabilitiesassertEqualdistortion_tableselfcorpusmodel3s      W/var/www/openai/venv/lib/python3.12/site-packages/nltk/test/unit/translate/test_ibm3.py)test_set_uniform_distortion_probabilitiesz7TestIBMModel3.test_set_uniform_distortion_probabilities   s     )IJ866:JK
 61% 	((0 	003A6q9!<gF003A6q9!<gF    c                    t        ddgg d      t        g dddg      g}t        |d      }|j                  |       | j                  |j                  d   d   d   d   t
        j                         | j                  |j                  d	   d   d   d
   t
        j                         | j                  |j                  d   d	   d   d
   t
        j                         y )Nr   r   r   r   r   r   r   r   	   r   )r   r   r   r   r   r   MIN_PROBr   s      r   >test_set_uniform_distortion_probabilities_of_non_domain_valueszLTestIBMModel3.test_set_uniform_distortion_probabilities_of_non_domain_values   s     )IJ866:JK
 61% 	((0 	003A6q9!<h>O>OP003A6q9!<h>O>OP003A6q9!<h>O>OPr    c                    g d}g 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|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<   t        d       }d|d   d<   d|d   d<   d|d   d<   d|d   d<   d|d   d<   d|d   d <   d|||d d}t        |d|      }	|	j	                  |      }
d	t        dd      z  t        d d      z  }d!}d"}d#}||z  |z  |z  }| j                  t        |
d      t        |d             y )$N)ichessejagern   räucherschinken)ilovetoeatsmokedr   )r   r   r   r   r      r0   UNUSEDr   r   r   r   r0      c                      t        d       S )Nc                      t        d       S )Nc                       t        t              S Nr   float r    r   <lambda>zYTestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>;   s	    K<Nr    r   r9   r    r   r:   zGTestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>;   s
    4N(Or    r   r9   r    r   r:   z5TestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>;   s
    K OPr    g
ףp=
?r   c                       t        t              S r6   r7   r9   r    r   r:   z5TestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>D   s	    E0Br    g\(\?r+   r&   r,   r)   r-   r.   r'   r/   r*   r   c                       t        t              S r6   r7   r9   r    r   r:   z5TestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>L   s	    k%.@r    gGz?r(   g+?gK7A`?)p1translation_tabler   fertility_tablealignment_tableg-?gtSU?gX?gV紧?)r   r   r   r   prob_t_a_given_spowr   round)r   src_sentencetrg_sentencer   alignment_infor   r>   r?   probabilitiesr   probabilitynull_generation	fertilitylexical_translation
distortionexpected_probabilitys                   r   test_prob_t_a_given_sz#TestIBMModel3.test_prob_t_a_given_s.   sz   HBlL9:&!F\!J%S1#sBaV,	
 'P
 (,Aq!!$'+Aq!!$'+Aq!!$'+Aq!!$'+Aq!!$'+Aq!!$'(BC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%&@A$(5!%)6"#'4 %)6"16-.#'4  !2 0.#
 61m4 --n= c%m+c%m;I	E<
i'*==
J 	 	{A.6JA0NOr    N)__name__
__module____qualname__r   r$   rN   r9   r    r   r
   r
      s    G Q";Pr    r
   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser
   r9   r    r   <module>rX      s1     # ; ; 2]PH%% ]Pr    