
    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 1 training methods
    N)defaultdict)AlignedSentIBMModel	IBMModel1)AlignmentInfoc                        e Zd Zd Zd Zd ZdS )TestIBMModel1c                 <   t          ddgg d          t          g dddg          g}t          |d          }|                    |           |                     |j        d         d         d           |                     |j        d         d          d           d S )	Nhameggsschinkenr   eierspamr   r   r   r   r   r   gUUUUUU?)r   r   set_uniform_probabilitiesassertEqualtranslation_tableselfcorpusmodel1s      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/nltk/test/unit/translate/test_ibm1.py*test_set_uniform_translation_probabilitiesz8TestIBMModel1.test_set_uniform_translation_probabilities   s     )I)I)IJJ88866:JKK
 61%% 	((000 	1%8@'JJJ1&9$?IIIII    c                    t          ddgg d          t          g dddg          g}t          |d          }|                    |           |                     |j        d         d         t
          j                   d S )	Nr   r   r   r   r   r   parrotr   )r   r   r   r   r   r   MIN_PROBr   s      r   ?test_set_uniform_translation_probabilities_of_non_domain_valueszMTestIBMModel1.test_set_uniform_translation_probabilities_of_non_domain_values   s     )I)I)IJJ88866:JKK
 61%% 	((000 	1(;FCXEVWWWWWr   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}|}	|                     t          |d          t          |	d                     d S )N)ichessejagern   räucherschinken)ilovetoeatsmokedr   )r         r         r.   UNUSEDc                  *    t          t                    S )N)r   float r   r   <lambda>z5TestIBMModel1.test_prob_t_a_given_s.<locals>.<lambda>8   s    E0B0B r   g\(\?r&   r!   r'   r$   r(   r)   r"   r*   r%   r   r   gX?r,   )r   r   r   r   r   prob_t_a_given_sr   round)
r   src_sentencetrg_sentencer   alignment_infor   r   probabilitylexical_translationexpected_probabilitys
             r   test_prob_t_a_given_sz#TestIBMModel1.test_prob_t_a_given_s,   s5   HHHBBBlL99:&!F\!J%	
 
 ((B(BCC(,#u%,0&!&)(,$%+/% (:>(#$677;% !3461%%#4  --n== F2{A..6JA0N0NOOOOOr   N)__name__
__module____qualname__r   r   r<   r2   r   r   r	   r	      sL        J J J X X XP P P P Pr   r	   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser	   r2   r   r   <module>rF      s      # # # # # # ; ; ; ; ; ; ; ; ; ; 2 2 2 2 2 2=P =P =P =P =PH% =P =P =P =P =Pr   