
    Of$                     b    S r SSKrSSKJr  SSKJrJr  SSKJr   " S S\R                  5      r
g)z4
Tests for common methods of IBM translation models
    Ndefaultdict)AlignedSentIBMModel)AlignmentInfoc                   l    \ rS rSr/ SQr/ SQrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)TestIBMModel   )j'aimebienjambonilovehamc                    [        / SQ/ SQ5      [        / SQ/ SQ5      [        / S/5      /n[        U5      nU R                  [        UR                  5      S5        U R                  [        UR
                  5      S5        g )N)onetwothreefour)undeuxtrois)fiver   six)quatrecinqr   sept      )r   r   assertEquallen	src_vocab	trg_vocabselfparallel_corpora	ibm_models      I/usr/lib/python3/dist-packages/nltk/test/unit/translate/test_ibm_model.py!test_vocabularies_are_initialized.TestIBMModel.test_vocabularies_are_initialized   sq    79PQ.0IJVH%
 -.	Y00115Y00115    c                     / n[        U5      nU R                  [        UR                  5      S5        U R                  [        UR                  5      S5        g )N   r   )r   r"   r#   r$   r%   r&   s      r*   9test_vocabularies_are_initialized_even_with_empty_corporaFTestIBMModel.test_vocabularies_are_initialized_even_with_empty_corpora   sI    -.	Y00115Y00115r-   c                 r   [        [        R                  [        R                  5      nSSSSSS.SSSSSS.SSSSSS.S	.n[	        S
 5      n[        / 5      nX$l        X4l        UR                  U5      nU R                  UR                  SS  S5        U R                  UR                  / S/S// S//5        g )N?皙?{Gz?Q?r   r   r   r   r   N{Gz?Gz?r   c                      [        S 5      $ )Nc                      [        S 5      $ )Nc                      [        S 5      $ )Nc                      gNg? r?   r-   r*   <lambda>oTestIBMModel.test_best_model2_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.       PSr-   r   r?   r-   r*   r@   ]TestIBMModel.test_best_model2_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.   	    K<Tr-   r   r?   r-   r*   r@   KTestIBMModel.test_best_model2_alignment.<locals>.<lambda>.<locals>.<lambda>.   
    4T(Ur-   r   r?   r-   r*   r@   9TestIBMModel.test_best_model2_alignment.<locals>.<lambda>.   
    K UVr-   r/   )r/         rI      r   r	    _TestIBMModel__TEST_TRG_SENTENCE _TestIBMModel__TEST_SRC_SENTENCEr   r   translation_tablealignment_tablebest_model2_alignmentr"   	alignmentceptsr'   sentence_pairrO   rP   r)   a_infos         r*   test_best_model2_alignment'TestIBMModel.test_best_model2_alignment"   s    #,,l.N.N

 T44qQddRVWT1AN

 &V
 RL	&7#$3! 00? 	))!"-y9QC!b1#'>?r-   c           	      v   [        [        R                  [        R                  5      nSSSSSS.SSSSSS.SSSSSS.S	.n[	        S
 5      n[        / 5      nX$l        X4l        UR                  USS5      nU R                  UR                  SS  S5        U R                  UR                  / S// / SS//5        g )Nr3   r4   r5   r6   r   r7   r8   r9   r   c                      [        S 5      $ )Nc                      [        S 5      $ )Nc                      [        S 5      $ )Nc                      gr>   r?   r?   r-   r*   r@   ڐTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>G   rB   r-   r   r?   r-   r*   r@   ~TestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>G   rD   r-   r   r?   r-   r*   r@   lTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>.<locals>.<lambda>G   rF   r-   r   r?   r-   r*   r@   ZTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>G   rH   r-   rI   rJ   r/   )r/   rJ   rJ   rK   rL   rT   s         r*   ;test_best_model2_alignment_does_not_change_pegged_alignmentHTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment<   s    #,,l.N.N
 T44qQddRVWT1AN

 &V
 RL	&7#$3! 001E))!"-y9QCR!Q'@Ar-   c           
      |   [        / SQ[        R                  5      nSSSSSS.SSSSS	S.SSS
SSS.SSSSSS.SSSSSS.S.n[        S 5      n[	        / 5      nX$l        X4l        UR                  U5      nU R                  UR                  SS  S5        U R                  UR                  S/S/S/SS/S//5        g )N)r   really,re   r   r   r3   r4   r5   r6   r   r7   r8   g
ףp=
?g333333?ffffff?r9   )r   re   rf   r   r   c                      [        S 5      $ )Nc                      [        S 5      $ )Nc                      [        S 5      $ )Nc                      gr>   r?   r?   r-   r*   r@   څTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>c   rB   r-   r   r?   r-   r*   r@   sTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>c   rD   r-   r   r?   r-   r*   r@   aTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>.<locals>.<lambda>c   rF   r-   r   r?   r-   r*   r@   OTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>c   rH   r-   r/   )r/   rK   r   rK   rI   rJ   rK      rI   rJ   r!   )r   r	   rN   r   r   rO   rP   rQ   r"   rR   rS   rT   s         r*   0test_best_model2_alignment_handles_fertile_words=TestIBMModel.test_best_model2_alignment_handles_fertile_wordsT   s    #9,,
 T44qQ3$dS1cQcJddRVWT1AN
 &V
 RL	&7#$3! 00? 	))!"-/ABaS1#1vs'CDr-   c                     [        [        R                  / 5      n[        / 5      nUR	                  U5      nU R                  UR                  SS  S5        U R                  UR                  / SQ/5        g )Nr/   )r   r   r   )r/   rI   rK   )r   r	   rM   r   rQ   r"   rR   rS   r'   rU   r)   rV   s       r*   5test_best_model2_alignment_handles_empty_src_sentenceBTestIBMModel.test_best_model2_alignment_handles_empty_src_sentenceq   sd    #L$D$DbIRL	 00? 	))!"-y9	{3r-   c                     [        / [        R                  5      n[        / 5      nUR	                  U5      nU R                  UR                  SS  S5        U R                  UR                  / / / / / /5        g )Nr/   r?   )r   r	   rN   r   rQ   r"   rR   rS   rt   s       r*   5test_best_model2_alignment_handles_empty_trg_sentenceBTestIBMModel.test_best_model2_alignment_handles_empty_trg_sentence}   sm    #B(H(HIRL	 00? 	))!"-r2BB';<r-   c           	          [        SSS/ / S/S//5      n[        / 5      nUR                  U5      n[        5       nU H  nUR	                  UR
                  5        M      1 SknU R                  XF5        g )Nr   rK   rI   Ndesu   œufsvertsUNUSEDgreeneggsrI   r/   >   r   r   rI   r   r/   rI   r   rI   rI   r   rI   rK   r   rK   r   r   rK   rK   r   rK   r/   r{   r   r   neighboringsetaddrR   r"   r'   rV   r)   	neighborsneighbor_alignmentsneighborexpected_alignmentss          r*   *test_neighboring_finds_neighbor_alignments7TestIBMModel.test_neighboring_finds_neighbor_alignments   s    +'aS1#	
 RL	 ))&1	 "e!H##H$6$67 "
 	,Br-   c           	      N   [        SSS/ / S/S//5      n[        / 5      nUR                  U5      nU H+  nUR                  S:X  a  UnM  UR                  S:X  d  M)  UnM-     U R	                  WR
                  / / SS// /5        U R	                  WR
                  / / S/S//5        g )Nr{   r|   r   rI   r/   r   )r   r   r   rR   r"   rS   )r'   rV   r)   r   r   moved_alignmentswapped_alignments          r*   -test_neighboring_sets_neighbor_alignment_info:TestIBMModel.test_neighboring_sets_neighbor_alignment_info   s    +'aS1#	
 RL	 ))&1	 "H!!Y."*##y0$,!	 " 	..R!Q0DE*002rA32DEr-   c           	          [        SSS/ / S/S//5      n[        / 5      nUR                  US5      n[        5       nU H  nUR	                  UR
                  5        M      1 SknU R                  XF5        g )Nr{   r|   r   rI   r/   >   r   r   r   r{   r   r   s          r*   8test_neighboring_returns_neighbors_with_pegged_alignmentETestIBMModel.test_neighboring_returns_neighbors_with_pegged_alignment   s    +'aS1#	
 RL	 ))&!4	 "e!H##H$6$67 "
 	,Br-   c                     [        SS S S 5      nS nS n[        / 5      nX$l        X4l        UR	                  U5      nU R                  UR                  S5        g )Nr{   c                     U R                   S:X  a  [        SS S S 5      [        SS S S 5      1$ U R                   S:X  a  [        SS S S 5      [        SS S S 5      1$ [        5       $ )Nr{   r   r   r/   r/   r   r   rJ   rJ   )rR   r   r   )ajs     r*   neighboring_mock5TestIBMModel.test_hillclimb.<locals>.neighboring_mock   sq    {{i'!)T4>!)T4>  	)!)T4>!)T4>  5Lr-   c                 J    SSSSSS.nUR                  U R                  S5      $ )Ng      ?g333333?g?rg   )r{   r   r   r   r   r8   )getrR   )r   prob_valuess     r*   prob_t_a_given_s_mock:TestIBMModel.test_hillclimb.<locals>.prob_t_a_given_s_mock   s/    K ??1;;55r-   r   )r   r   r   prob_t_a_given_s	hillclimbr"   rR   )r'   initial_alignmentr   r   r)   best_alignments         r*   test_hillclimbTestIBMModel.test_hillclimb   s_    ))T4F		6 RL	 0%:" #,,->? 	119=r-   c                     [        [        R                  [        R                  5      n[	        / 5      nS Ul        UR                  U5      u  p4U R                  [        U5      S5        g )Nc                     g)NgMbP?r?   )xs    r*   r@   *TestIBMModel.test_sample.<locals>.<lambda>  s    ur-   =   )	r   r	   rM   rN   r   r   sampler"   r#   )r'   rU   r)   samplesr   s        r*   test_sampleTestIBMModel.test_sample  s[    #,,l.N.N
 RL	%4	" #,"2"2="A 	Wr*r-   r?   N)__name__
__module____qualname____firstlineno__rN   rM   r+   r0   rW   rb   rq   ru   rx   r   r   r   r   r   __static_attributes__r?   r-   r*   r	   r	      sR    :.	66@4B0E:
4
=C@F.C8#>J+r-   r	   )__doc__unittestcollectionsr   nltk.translater   r   nltk.translate.ibm_modelr   TestCaser	   r?   r-   r*   <module>r      s,     # 0 2A+8$$ A+r-   