
    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 2 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel2)AlignmentInfoc                        e Zd Zd Zd Zd ZdS )TestIBMModel2c                 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      ?   gUUUUUU?)r   r   set_uniform_probabilitiesassertEqualalignment_tableselfcorpusmodel2s      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/nltk/test/unit/translate/test_ibm2.py(test_set_uniform_alignment_probabilitiesz6TestIBMModel2.test_set_uniform_alignment_probabilities   s     )I)I)IJJ88866:JKK
 61%% 	((000 	/215a8;WEEE/215a8;WEEEEE    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                   d S )Nr   r   r   r   r   r   c   r   r   r   r   )r   r   r   r   r   r   MIN_PROBr   s      r   =test_set_uniform_alignment_probabilities_of_non_domain_valueszKTestIBMModel2.test_set_uniform_alignment_probabilities_of_non_domain_values   s     )I)I)IJJ88866:JKK
 61%% 	((000 	/3A6q9!<h>OPPP/22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           }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         d         d<   d|d         d         d         d<   t          |d          }||_        ||_        |                    |          }d}	d}
|	|
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   UNUSEDc                  *    t          t                    S Nr   float r    r   <lambda>z5TestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>9   s    E0B0B r    g\(\?r+   r&   r,   r)   r-   r.   r'   r/   r*   r   c                  "    t          d           S )Nc                  "    t          d           S )Nc                  *    t          t                    S r3   r4   r6   r    r   r7   zYTestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>B   s    K<N<N r    r   r6   r    r   r7   zGTestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>B   s    4N4N(O(O r    r   r6   r    r   r7   z5TestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>B   s    K O OPP r    g
ףp=
?r   r   r0      r   r   r   gQ?gX?gh\?)	r   r   r   r   translation_tabler   prob_t_a_given_sr   round)r   src_sentencetrg_sentencer   alignment_infor<   r   r   probabilitylexical_translation	alignmentexpected_probabilitys               r   test_prob_t_a_given_sz#TestIBMModel2.test_prob_t_a_given_s-   s   HHHBBBlL99:&!F\!J%	
 
 ((B(BCC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%PP
 
 '+1a #&*1a #&*1a #&*1a #&*1a #&*1a #61%%#4 !0 --n== F;	2Y>{A..6JA0N0NOOOOOr    N)__name__
__module____qualname__r   r$   rF   r6   r    r   r
   r
      sL        F F F Q Q Q )P )P )P )P )Pr    r
   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser
   r6   r    r   <module>rP      s      # # # # # # ; ; ; ; ; ; ; ; ; ; 2 2 2 2 2 2JP JP JP JP JPH% JP JP JP JP JPr    