
    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 4 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel4)AlignmentInfoc                        e Zd Zd Zd Zd ZdS )TestIBMModel4c                    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         |           |                     |j        d         d         |           d S )Nr      schinkeneierspam   hameggsr   r   r   r   r   r   r   r   r   r   r   gUUUUUU?   )r   r   set_uniform_probabilitiesassertEqualhead_distortion_tablenon_head_distortion_table)selfsrc_classestrg_classescorpusmodel4expected_probs         ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/nltk/test/unit/translate/test_ibm4.py>test_set_uniform_distortion_probabilities_of_max_displacementszLTestIBMModel4.test_set_uniform_distortion_probabilities_of_max_displacements   s(   #$a;;A66)I)I)IJJ88866:JKK
 61k;?? 	((000
 , 	5a8;A>NNN5b9!<Q?OOO9!<Q?OOO9"=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         t
          j                   |                     |j        d         d         t
          j                   d S )Nr   r   r   r   r   r   r   r   r   r      d   )r   r   r   r   r   r   MIN_PROBr   )r   r   r   r    r!   s        r#   >test_set_uniform_distortion_probabilities_of_non_domain_valueszLTestIBMModel4.test_set_uniform_distortion_probabilities_of_non_domain_values%   s-   #$a;;A66)I)I)IJJ88866:JKK
 61k;?? 	((000 	5a8;A>@QRRR5c:1=a@(BSTTT9!<Q?ARSSS9#>qA8CTUUUUUr%   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<   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   r.   r,   r-   r/   )r   r5   r1   r2   r3   r4   )r   r   r'   r   r      r6   UNUSEDr6      c                  "    t          d           S )Nc                  *    t          t                    S Nr   float r%   r#   <lambda>zGTestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>H   s    E(:(: r%   r   r>   r%   r#   r?   z5TestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>H   s    K : :;; r%   g
ףp=
?c                  *    t          t                    S r;   r<   r>   r%   r#   r?   z5TestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>O   s    E8J8J r%   gQ?c                  *    t          t                    S r;   r<   r>   r%   r#   r?   z5TestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>R   s    E0B0B r%   g\(\?r1   r,   r2   r/   r3   r4   r-   r5   r0   r   c                  *    t          t                    S r;   r<   r>   r%   r#   r?   z5TestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>Z   s    k%.@.@ r%   gGz?r.   g+?gK7A`?)p1translation_tabler   r   fertility_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   rE   rF   probabilitiesr!   probabilitynull_generation	fertilitylexical_translation
distortionexpected_probabilitys                      r#   test_prob_t_a_given_sz#TestIBMModel4.test_prob_t_a_given_s9   s   HHHBBB+,AaTUVV11aqQRSSlL99:&!F\!J%S1#sBaV,	
 
 !,;;!
 !
 -1a &q))-a #A&*.b!!$Q')-a #A&$/0J0J$K$K!*.!!$Q''(B(BCC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%&@&@AA$(5!%)6"#'4 %)6"16-.#'4  !2%:)B.#
 
 61k;NN --n== c%mm+c%mm;I	E9
i'*==
J 	 	{A..6JA0N0NOOOOOr%   N)__name__
__module____qualname__r$   r*   rU   r>   r%   r#   r
   r
      sL        Q Q Q0V V V(?P ?P ?P ?P ?Pr%   r
   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser
   r>   r%   r#   <module>r_      s      # # # # # # ; ; ; ; ; ; ; ; ; ; 2 2 2 2 2 2lP lP lP lP lPH% lP lP lP lP lPr%   