
    <hZ                        S r SSKrSSKrSSKJr  SSKJr  SSKJrJ	r	  SSK
Jr  SSKJrJr  S	S
KJrJrJr  \" 5       (       a  SSKr\R(                  " \5      rSr    S/S\	\\   S4   S\S\\   4S jjr\" 5       (       a<  \S4S\R8                  R:                  S\S\\   S\R8                  R:                  4S jjr    S/S\\   S\S\\   4S jjr " S S\5      r  " S S\5      r! " S S\5      r" " S S\"5      r# " S S\5      r$ " S S\5      r% " S  S!\5      r& " S" S#\5      r' " S$ S%\5      r( " S& S'\5      r) " S( S)\5      r*S*SS*S*S	S*S*S*S*S+.	r+\$\"\#\!\%\&\'\(\)\*S,.
r,S-S-S-S-S-S.S-S-S-S-S,.
r-g)0zGLUE processors and helpers    N)asdict)Enum)OptionalUnion   )PreTrainedTokenizer)is_tf_availablelogging   )DataProcessorInputExampleInputFeaturesu  This {0} will be removed from the library soon, preprocessing should be handled with the 🤗 Datasets library. You can have a look at this example script for pointers: https://github.com/huggingface/transformers/blob/main/examples/pytorch/text-classification/run_glue.pyexamplesztf.data.Dataset	tokenizer
max_lengthc           	         [         R                  " [        R                  S5      [        5        [        5       (       aA  [        U [        R                  R                  5      (       a  Uc  [        S5      e[        XX#S9$ [        XX#XES9$ )a	  
Loads a data file into a list of `InputFeatures`

Args:
    examples: List of `InputExamples` or `tf.data.Dataset` containing the examples.
    tokenizer: Instance of a tokenizer that will tokenize the examples
    max_length: Maximum example length. Defaults to the tokenizer's max_len
    task: GLUE task
    label_list: List of labels. Can be obtained from the processor using the `processor.get_labels()` method
    output_mode: String indicating the output mode. Either `regression` or `classification`

Returns:
    If the `examples` input is a `tf.data.Dataset`, will return a `tf.data.Dataset` containing the task-specific
    features. If the input is a list of `InputExamples`, will return a list of task-specific `InputFeatures` which
    can be fed to the model.

functionzWWhen calling glue_convert_examples_to_features from TF, the task parameter is required.r   task)r   r   
label_listoutput_mode)warningswarnDEPRECATION_WARNINGformatFutureWarningr	   
isinstancetfdataDataset
ValueError%_tf_glue_convert_examples_to_features"_glue_convert_examples_to_features)r   r   r   r   r   r   s         Y/var/www/html/shao/venv/lib/python3.13/site-packages/transformers/data/processors/glue.py!glue_convert_examples_to_featuresr%   )   sn    2 MM%,,Z8-HZ"''//BB<vww4XU_kk-
*     returnc                 (  ^
 [         U   " 5       nU  Vs/ sH"  oTR                  UR                  U5      5      PM$     n n[        XX2S9m
US:X  a  [        R
                  O[        R                  nU
4S jnUR                  n[        R                  R                  R                  U[        R                  U[        R                  5      U4U V	s0 sH  o[        R                  " S/5      _M     sn	[        R                  " / 5      45      $ s  snf s  sn	f )zJ
Returns:
    A `tf.data.Dataset` containing the task-specific features.

r   sts-bc               3      >#    T HJ  n [        U 5      R                  5        VVs0 sH  u  pUc  M
  X_M     nnnUR                  S5      nX44v   ML     g s  snnf 7f)Nlabel)r   itemspop)exkvdr+   featuress        r$   gen2_tf_glue_convert_examples_to_features.<locals>.gen^   sS     &,Rj&6&6&8J&8daATQT&8Jgj  Js   "AAA$AN)glue_processorstfds_mapget_example_from_tensor_dictr%   r   float32int64model_input_namesr   r    from_generatordictfromkeysint32TensorShape)r   r   r   r   	processorexample
label_typer3   input_namesr/   r2   s             @r$   r"   r"   N   s     $D)+	gopgo\c&&y'M'Mg'VWgop4XU_k#'7?RZZ
	!  11ww--]];1:>1<=A''=r~~b?QR
 	
 q >s   (D
 Dc                   ^^ Uc  UR                   nUbc  [        U   " 5       nUc+  UR                  5       n[        R	                  SU SU 35        Tc$  [
        U   m[        R	                  ST SU 35        [        U5       VVs0 sH  u  pxX_M	     snnmS[        S[        [        [        S 4   4UU4S jjn	U  V
s/ sH
  o" U
5      PM     nn
U" U  V
s/ sH  oR                  U
R                  4PM     sn
USSS	9n/ n[        [        U 5      5       H;  nU Vs0 sH
  oX   U   _M     nn[        S0 UDS
X   0D6nUR!                  U5        M=     [        U S S 5       HV  u  pz[        R	                  S5        [        R	                  SU
R"                   35        [        R	                  SX    35        MX     U$ s  snnf s  sn
f s  sn
f s  snf )NzUsing label list z
 for task zUsing output mode rA   r'   c                    > U R                   c  g TS:X  a  TU R                      $ TS:X  a  [        U R                   5      $ [        T5      e)Nclassification
regression)r+   floatKeyError)rA   	label_mapr   s    r$   label_from_example>_glue_convert_examples_to_features.<locals>.label_from_example   sJ    == **W]]++L(''{##r&   r   T)r   padding
truncationr+      z*** Example ***zguid: z
features:  )model_max_lengthr5   
get_labelsloggerinfoglue_output_modes	enumerater   r   intrH   text_atext_brangelenr   appendguid)r   r   r   r   r   r   r@   ir+   rK   rA   labelsbatch_encodingr2   r/   inputsfeaturerJ   s        `           @r$   r#   r#   m   s    //
#D)+	"--/JKK+J<z$HI+D1KKK,[MD6JK*3J*?@*?ha*?@I$L $U3t;K5L $ $ :BBg )FB9ABg..'..	)B	N H3x=!3AB>a^&q))>B:&:	: 	 "  !-
%&fW\\N+,j./ .
 OA A C 	C Cs   F=>G GGc                       \ rS rSrSrSrSrg)
OutputMode   rF   rG   rP   N)__name__
__module____qualname____firstlineno__rF   rG   __static_attributes__rP   r&   r$   rd   rd      s    %NJr&   rd   c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )MrpcProcessor   z/Processor for the MRPC data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g Nr@   super__init__r   r   r   r   r   selfargskwargs	__class__s      r$   rr   MrpcProcessor.__init__   /    $)&))00=}Mr&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ See base class.idx	sentence1utf-8	sentence2r+   r   numpydecodestrrt   tensor_dicts     r$   r7   *MrpcProcessor.get_example_from_tensor_dict   n    $$&$**,33G<$**,33G<G$**,-	
 	
r&   c                     [         R                  S[        R                  R	                  US5       35        U R                  U R                  [        R                  R	                  US5      5      S5      $ )r|   zLOOKING AT 	train.tsvtrain)rS   rT   ospathjoin_create_examples	_read_tsvrt   data_dirs     r$   get_train_examples MrpcProcessor.get_train_examples   sQ    k"'',,x"E!FGH$$T^^BGGLL;4W%XZabbr&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r|   zdev.tsvdevr   r   r   r   r   r   s     r$   get_dev_examplesMrpcProcessor.get_dev_examples   .    $$T^^BGGLL94U%VX]^^r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r|   ztest.tsvtestr   r   s     r$   get_test_examplesMrpcProcessor.get_test_examples   .    $$T^^BGGLL:4V%WY_``r&   c                 
    SS/$ r|   01rP   rt   s    r$   rR   MrpcProcessor.get_labels       Szr&   c           
          / n[        U5       HD  u  pEUS:X  a  M  U SU 3nUS   nUS   nUS:X  a  SOUS   n	UR                  [        XgXS95        MF     U$ )5Creates examples for the training, dev and test sets.r   -r      r   Nr]   rX   rY   r+   rV   r\   r   
rt   linesset_typer   r^   liner]   rX   rY   r+   s
             r$   r   MrpcProcessor._create_examples   sp     'GAAvZq$D!WF!WF$.DDGEOOLd&^_ ( r&   rP   rf   rg   rh   ri   __doc__rr   r7   r   r   r   rR   r   rj   __classcell__rw   s   @r$   rl   rl      s2    9N
c
_a r&   rl   c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )MnliProcessor   z3Processor for the MultiNLI data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   MnliProcessor.__init__   ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ )r|   r}   premiser   
hypothesisr+   r   r   s     r$   r7   *MnliProcessor.get_example_from_tensor_dict   sn    $$&	"((*11':%++-44W=G$**,-	
 	
r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r|   r   r   r   r   s     r$   r    MnliProcessor.get_train_examples   .    $$T^^BGGLL;4W%XZabbr&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ )r|   zdev_matched.tsvdev_matchedr   r   s     r$   r   MnliProcessor.get_dev_examples   s/    $$T^^BGGLLK\4]%^`mnnr&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ )r|   ztest_matched.tsvtest_matchedr   r   s     r$   r   MnliProcessor.get_test_examples   s/    $$T^^BGGLLK]4^%_aoppr&   c                 
    / SQ$ )r|   )contradiction
entailmentneutralrP   r   s    r$   rR   MnliProcessor.get_labels   s    99r&   c           
          / n[        U5       HW  u  pEUS:X  a  M  U SUS    3nUS   nUS   nUR                  S5      (       a  SOUS   n	UR                  [        XgXS95        MY     U$ )	r   r   r      	   r   Nr   )rV   
startswithr\   r   r   s
             r$   r   MnliProcessor._create_examples   s}     'GAAvZqa	*D!WF!WF$//77DT"XEOOLd&^_ ( r&   rP   r   r   s   @r$   r   r      s2    =N
coq: r&   r   c                   8   ^  \ rS rSrSrU 4S jrS rS rSrU =r	$ )MnliMismatchedProcessori  z>Processor for the MultiNLI Mismatched data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr    MnliMismatchedProcessor.__init__	  ry   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ )r|   zdev_mismatched.tsvdev_mismatchedr   r   s     r$   r   (MnliMismatchedProcessor.get_dev_examples  s/    $$T^^BGGLLK_4`%acsttr&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ )r|   ztest_mismatched.tsvtest_mismatchedr   r   s     r$   r   )MnliMismatchedProcessor.get_test_examples  s/    $$T^^BGGLLK`4a%bduvvr&   rP   )
rf   rg   rh   ri   r   rr   r   r   rj   r   r   s   @r$   r   r     s    HNuw wr&   r   c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )ColaProcessori  z/Processor for the CoLA data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   ColaProcessor.__init__  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      S[        US   R                  5       5      5      $ r|   r}   sentencer   Nr+   r   r   s     r$   r7   *ColaProcessor.get_example_from_tensor_dict  U    $$&
#))+227;G$**,-	
 	
r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r    ColaProcessor.get_train_examples&  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   ColaProcessor.get_dev_examples*  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   ColaProcessor.get_test_examples.  r   r&   c                 
    SS/$ r   rP   r   s    r$   rR   ColaProcessor.get_labels2  r   r&   c           
          US:H  nU(       a  USS nU(       a  SOSn/ n[        U5       H8  u  pgU SU 3nXt   n	U(       a  SOUS   n
UR                  [        XSU
S95        M:     U$ )r   r   r   Nr   r   r   r   )rt   r   r   	test_mode
text_indexr   r^   r   r]   rX   r+   s              r$   r   ColaProcessor._create_examples6  s{    &	!"IE#Q
 'GAZq$D%F%D47EOOLd$V[\]	 (
 r&   rP   r   r   s   @r$   r   r     s2    9N
c_a r&   r   c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )Sst2ProcessoriE  z0Processor for the SST-2 data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   Sst2Processor.__init__H  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      S[        US   R                  5       5      5      $ r   r   r   s     r$   r7   *Sst2Processor.get_example_from_tensor_dictL  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r    Sst2Processor.get_train_examplesU  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   Sst2Processor.get_dev_examplesY  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   Sst2Processor.get_test_examples]  r   r&   c                 
    SS/$ r   rP   r   s    r$   rR   Sst2Processor.get_labelsa  r   r&   c           
          / nUS:X  a  SOSn[        U5       H?  u  pVUS:X  a  M  U SU 3nXd   nUS:X  a  SOUS   n	UR                  [        XxSU	S95        MA     U$ )r   r   r   r   r   Nr   r   )
rt   r   r   r   r   r^   r   r]   rX   r+   s
             r$   r   Sst2Processor._create_examplese  sw    "f,Q!
 'GAAvZq$D%F$.DDGEOOLd$V[\] ( r&   rP   r   r   s   @r$   r   r   E  s2    :N
c_a r&   r   c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )StsbProcessoris  z0Processor for the STS-B data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   StsbProcessor.__init__v  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ r{   r   r   s     r$   r7   *StsbProcessor.get_example_from_tensor_dictz  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r    StsbProcessor.get_train_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   StsbProcessor.get_dev_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   StsbProcessor.get_test_examples  r   r&   c                     S/$ )r|   NrP   r   s    r$   rR   StsbProcessor.get_labels  s	    vr&   c           
          / n[        U5       HG  u  pEUS:X  a  M  U SUS    3nUS   nUS   nUS:X  a  SOUS   n	UR                  [        XgXS95        MI     U$ )	r   r   r      r   r   Nr   r   r   r   s
             r$   r   StsbProcessor._create_examples  t     'GAAvZqa	*D!WF!WF$.DDHEOOLd&^_ ( r&   rP   r   r   s   @r$   r  r  s  s2    :N
c_a r&   r  c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )QqpProcessori  z.Processor for the QQP data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   QqpProcessor.__init__  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ )r|   r}   	question1r   	question2r+   r   r   s     r$   r7   )QqpProcessor.get_example_from_tensor_dict  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   QqpProcessor.get_train_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   QqpProcessor.get_dev_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   QqpProcessor.get_test_examples  r   r&   c                 
    SS/$ r   rP   r   s    r$   rR   QqpProcessor.get_labels  r   r&   c           
         US:H  nU(       a  SOSnU(       a  SOSn/ n[        U5       HG  u  pxUS:X  a  M  U SUS    3n	 X   n
X   nU(       a  SOUS	   nUR                  [        XXS
95        MI     U$ ! [         a     MZ  f = f)r   r   r   r      r   r   r   NrO   r   )rV   
IndexErrorr\   r   )rt   r   r   r   q1_indexq2_indexr   r^   r   r]   rX   rY   r+   s                r$   r   QqpProcessor._create_examples  s    &	!1q!1q 'GAAvZqa	*D )tAw OOLd&^_ (   s   A66
BBrP   r   r   s   @r$   r  r    s2    8N
c_a r&   r  c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )QnliProcessori  z/Processor for the QNLI data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   QnliProcessor.__init__  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ )r|   r}   questionr   r   r+   r   r   s     r$   r7   *QnliProcessor.get_example_from_tensor_dict  sn    $$&
#))+227;
#))+227;G$**,-	
 	
r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r    QnliProcessor.get_train_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   QnliProcessor.get_dev_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   QnliProcessor.get_test_examples  r   r&   c                 
    SS/$ r|   r   not_entailmentrP   r   s    r$   rR   QnliProcessor.get_labels      .//r&   c           
          / n[        U5       HG  u  pEUS:X  a  M  U SUS    3nUS   nUS   nUS:X  a  SOUS   n	UR                  [        XgXS95        MI     U$ 	r   r   r   r   r(  r   Nr   r   r   r   s
             r$   r   QnliProcessor._create_examples  r  r&   rP   r   r   s   @r$   r.  r.    s2    9N
c_a0 r&   r.  c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )RteProcessori  z.Processor for the RTE data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   RteProcessor.__init__  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ r{   r   r   s     r$   r7   )RteProcessor.get_example_from_tensor_dict
  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   RteProcessor.get_train_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   RteProcessor.get_dev_examples  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   RteProcessor.get_test_examples  r   r&   c                 
    SS/$ r;  rP   r   s    r$   rR   RteProcessor.get_labels  r>  r&   c           
          / n[        U5       HG  u  pEUS:X  a  M  U SUS    3nUS   nUS   nUS:X  a  SOUS   n	UR                  [        XgXS95        MI     U$ r@  r   r   s
             r$   r   RteProcessor._create_examples#  r  r&   rP   r   r   s   @r$   rC  rC    s2    8N
c_a0 r&   rC  c                   P   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
rU =r$ )WnliProcessori1  z/Processor for the WNLI data set (GLUE version).c                    > [         TU ]  " U0 UD6  [        R                  " [        R                  S5      [        5        g ro   rp   rs   s      r$   rr   WnliProcessor.__init__4  ry   r&   c           	          [        US   R                  5       US   R                  5       R                  S5      US   R                  5       R                  S5      [        US   R                  5       5      5      $ r{   r   r   s     r$   r7   *WnliProcessor.get_example_from_tensor_dict8  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r    WnliProcessor.get_train_examplesA  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   WnliProcessor.get_dev_examplesE  r   r&   c                     U R                  U R                  [        R                  R	                  US5      5      S5      $ r   r   r   s     r$   r   WnliProcessor.get_test_examplesI  r   r&   c                 
    SS/$ r   rP   r   s    r$   rR   WnliProcessor.get_labelsM  r   r&   c           
          / n[        U5       HG  u  pEUS:X  a  M  U SUS    3nUS   nUS   nUS:X  a  SOUS   n	UR                  [        XgXS95        MI     U$ r@  r   r   s
             r$   r   WnliProcessor._create_examplesQ  r  r&   rP   r   r   s   @r$   rS  rS  1  s2    9N
c_a r&   rS  r(  )	colamnlimrpcsst-2r)   qqpqnlirtewnli)
rb  rc  zmnli-mmrd  re  r)   rf  rg  rh  ri  rF   rG   )NNNN).r   r   r   dataclassesr   enumr   typingr   r   tokenization_utilsr   utilsr	   r
   r   r   r   
tensorflowr   
get_loggerrf   rS   r   listrW   r%   r   r   r    r"   r#   rd   rl   r   r   r   r   r  r  r.  rC  rS  glue_tasks_num_labelsr5   rU   rP   r&   r$   <module>rs     s    " 	    " 5 - = = 			H	%m  !%	 D&(99: "   F 
 $(	
''//
&
 SM	

 

D !%	4< 4"4 4n 
,M ,^+M +\wm w ,M ,^+M +\+M +\1= 1h+M +\+= +\+M +^ 
  &  r&   