
    Ng                     d    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dS )z(
Tests for IBM Model 3 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel3)AlignmentInfoc                        e Zd Zd Zd Zd ZdS )TestIBMModel3c                 l   t          ddgg d          t          g dddg          g}t          |d          }|                    |           |                     |j        d         d         d         d	         d
           |                     |j        d         d	         d	         d         d           d S )Nhameggsschinkenr   eierspamr   r   r   r   r            g      ?   g      ?)r   r   set_uniform_probabilitiesassertEqualdistortion_tableselfcorpusmodel3s      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/nltk/test/unit/translate/test_ibm3.py)test_set_uniform_distortion_probabilitiesz7TestIBMModel3.test_set_uniform_distortion_probabilities   s     )I)I)IJJ88866:JKK
 61%% 	((000 	03A6q9!<gFFF03A6q9!<gFFFFF    c                    t          ddgg d          t          g dddg          g}t          |d          }|                    |           |                     |j        d         d         d         d         t
          j                   |                     |j        d	         d         d         d
         t
          j                   |                     |j        d         d	         d         d
         t
          j                   d S )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)I)IJJ88866:JKK
 61%% 	((000 	03A6q9!<h>OPPP03A6q9!<h>OPPP03A6q9!<h>OPPPP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|          }	|	                    |          }
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   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<N<N r    r   r9   r    r   r:   zGTestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>;   s    4N4N(O(O r    r   r9   r    r   r:   z5TestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>;   s    K O OPP r    g
ףp=
?r   c                  *    t          t                    S r6   r7   r9   r    r   r:   z5TestIBMModel3.test_prob_t_a_given_s.<locals>.<lambda>D   s    E0B0B r    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.   s   HHHBBBlL99:&!F\!J%S1#sBaV,	
 
 'PP
 
 (,Aq!!$'+Aq!!$'+Aq!!$'+Aq!!$'+Aq!!$'+Aq!!$'(B(BCC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%&@&@AA$(5!%)6"#'4 %)6"16-.#'4  !2 0.#
 
 61m44 --n== c%mm+c%mm;I	E<
i'*==
J 	 	{A..6JA0N0NOOOOOr    N)__name__
__module____qualname__r   r$   rN   r9   r    r   r
   r
      sL        G G G Q Q Q";P ;P ;P ;P ;Pr    r
   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser
   r9   r    r   <module>rX      s      # # # # # # ; ; ; ; ; ; ; ; ; ; 2 2 2 2 2 2]P ]P ]P ]P ]PH% ]P ]P ]P ]P ]Pr    