
    hG1                         S SK Jr  S SKJr  S SKrS SKJr   " S S\5      r	 " S S5      r
 " S	 S
\5      rS\S\S\4S jr " S S\5      rg)    )IntEnum)ListN)OpRunc                   6    \ rS rSrS rS rS r\S 5       rSr	g)IntMap   c                 <    [         R                  U 5        / U l        g N)dict__init__
added_keysselfs    `/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/reference/ops/op_tfidf_vectorizer.pyr   IntMap.__init__   s    d    c                    [        U[        5      (       d  [        S[        U5       S35      e[        U[        5      (       d  [        S[        U5       S35      eX;  a  U R
                  R                  U5        X U'   X   $ )Nzkey must be a NGramPart not .zvalue must be a NGramPart not )
isinstanceint	TypeErrortype	NgramPartr   appendr   keyvalues      r   emplaceIntMap.emplace   st    #s##:49+QGHH%++<T%[MKLL?OO""3'Iyr   c           	      x   U R                  5        VVs0 s H  u  pU[        U5      _M     nnnS/n[        UR                  5       5       H  u  pSU;   a  UR                  S5      n[	        U5       H  u  pgUS:X  a9  US:X  a  UR                  SU SU 35        M*  UR                  SU SU S35        MD  U[        U5      S-
  :X  a  UR                  SU 35        Ml  UR                  SU 35        M     M  UR                  SU SU S35        M     UR                  S	5        SR                  U5      $ s  snnf )
N{
r   z  =,   z    })itemsreprsortedsplit	enumerater   lenjoin)r   kvvalsrowsvsilines           r   __repr__IntMap.__repr__   s   '+zz|4|tq47
|4u4::<(DAqyWWT](}GAAv3; KK"QCq8 KK"QCqa(89c"gk)bK0d4&M2  - b1QCqM* ) 	Cyy% 5s   D6c                 T    [        U 5      S:X  a  [        S5      eU R                  S   $ )Nr   zIntMap is empty.)r,   
ValueErrorr   r   s    r   	first_keyIntMap.first_key2   s(    t9>/00q!!r   )r   N)
__name__
__module____qualname____firstlineno__r   r   r5   propertyr9   __static_attributes__ r   r   r   r      s%    * " "r   r   c                   \    \ rS rSrS\4S jrS rS rS rS r	\
S 5       rS	 rS
 rS rSrg)r   9   nidc                     Xl         S U l        g r
   )id__leafs_)r   rD   s     r   r   NgramPart.__init__:   s    r   c                 "    [        5       U l        g r
   )r   rG   r   s    r   initNgramPart.init>   s    xr   c                     U R                  5       (       a  SU R                   S3$ SU R                   SU R                  < S3$ )Nz
NgramPart()z, )emptyrF   leafs_r   s    r   r5   NgramPart.__repr__A   s=    ::<<z++DHH:Ra88r   c                     U R                   S L $ r
   rG   r   s    r   rN   NgramPart.emptyF   s    ||t##r   c                 \    U R                   S L=(       a    [        U R                   5      S:  $ )Nr   )rG   r,   r   s    r   
has_leavesNgramPart.has_leavesI   s$    ||4'AC,=,AAr   c                 J    U R                   c  [        S5      eU R                   $ )NzNgramPart was not initialized.)rG   RuntimeErrorr   s    r   rO   NgramPart.leafs_L   s"    <<?@@||r   c                 R    U R                  5       (       d  g XR                  ;   a  U$ g r
   )rU   rG   r   r   s     r   findNgramPart.findR   s$      ,,Jr   c                 8    U R                   R                  X5      $ r
   )rO   r   r   s      r   r   NgramPart.emplaceY   s    {{""3..r   c                      U R                   U   $ r
   rR   r[   s     r   __getitem__NgramPart.__getitem__\   s    ||C  r   )rG   rF   N)r;   r<   r=   r>   r   r   rJ   r5   rN   rU   r?   rO   r\   r   ra   r@   rA   r   r   r   r   9   sF    C  9
$B  
/!r   r   c                   $    \ rS rSrSrSrSrSrSrg)WeightingCriteria`   r   r%         rA   N)	r;   r<   r=   r>   NONETFIDFTFIDFr@   rA   r   r   rd   rd   `   s    D	
B
CEr   rd   n_ngrams
ngram_sizengram_idc                 X   [        USS5       H  nSnUnU[        U 5      :  d  M  UR                  X   [        S5      5      n	Xs:X  a  XIl        US-  nUS-  nML  U	R                  5       (       a  U	R                  5         U	R                  nUS-  nUS-  nU[        U 5      :  a  M  M     U$ )Nr   r%   )ranger,   r   r   rF   rN   rJ   rO   )
els	els_indexrl   rm   rn   c_ngramsnmps
             r   populate_gramsry   g   s     1b)#c("		#.)A,7A AQ	wwyyAFANI #c(" * Or   c                       \ rS rSrS rS\S\S\\   SS4S jrS	\S\\   S\R                  4S
 jr
         SS\R                  S\S\S\\   SS4
S jjr         SS jrSrg)TfIdfVectorizer   c           	      <   [         R                  " XU5        U R                  nUS:X  a  [        R                  U l        O7US:X  a  [        R                  U l        OUS:X  a  [        R                  U l        U R                  U l	        U R                  U l        U R                  U l        U R                  U l        U R                  U l        U R                   U l        [%        U R"                  5      S-   U l        U R(                  U l        U R,                  U l        [1        S5      U l        U R2                  R5                  5         [7        U R.                  5      nSnSn[9        [7        U R                  5      5       H  nU R                  U   nUS-   [7        U R                  5      :  a  U R                  US-      OUn	X-
  n
U
S:  aK  X-  nX`R                  :  a4  X`R                  ::  a%  [;        U R.                  UUUUU R2                  5      nOX[-  nUS-  nM     g )Nri   rj   rk   r%   ir   )r   r   moderd   ri   weighting_criteria_rj   rk   min_gram_lengthmin_gram_length_max_gram_lengthmax_gram_length_max_skip_countmax_skip_count_ngram_countsngram_counts_ngram_indexesngram_indexes_maxoutput_size_weightsweights_pool_int64spool_int64s_r   
int64_map_rJ   r,   rq   ry   )r   	onnx_node
run_paramsr~   total_itemsrn   rm   r3   	start_idxend_idxr'   ngramss               r   r   TfIdfVectorizer.__init__   s   t
3yy4<'8';';D$U]'8'<'<D$W_'8'>'>D$ $ 4 4 $ 4 4#22!.. $ 4 4"00 3 34q8 ,,#C.$++,
s4--./A**1-I ES!3!344 ""1q5)  
 'Eqy,"7"77"&;&;;-))!"  H &H!OJ1 0r   rn   row_numfrequenciesreturnNc                 b    US-  nX R                   -  U R                  U   -   nX4==   S-  ss'   g )Nr%   )r   r   )r   rn   r   r   
output_idxs        r   increment_countTfIdfVectorizer.increment_count   s9     	A00043F3Fx3PP
1$r   Bc                    / nUS:X  a  UR                  U R                  5        SnO,UR                  U5        UR                  U R                  5        [        U5      nU R                  n[        R                  " U5      n[        R
                  " U4[        R                  S9nU R                  nU R                  [        R                  :X  a  Sn	U H  n
XU	'   U	S-  n	M     GO
U R                  [        R                  :X  ah  [        U5      S:  a<  Sn[        U5       H*  n[        U5       H  n	X+   S:  a  X   OSX{'   US-  nM     M,     OSnU H  n
U
S:  a  SOSX{'   US-  nM     OU R                  [        R                  :X  a[  [        U5      S:  a7  Sn[        U5       H%  n[        U5       H  n	X   X+   -  X{'   US-  nM     M'     O SnU H  n
XU'   US-  nM     O[        S5      eUR!                  U5      $ )Nr   r%   dtypezUnexpected weighting_criteria.)r   r   tuplenpprodrN   float32r   r   rd   ri   rj   r,   rq   rk   rX   reshape)r   r   r   l_output_dimsoutput_dimsrow_size
total_dimsYwr3   frx   _batchs                r   output_resultTfIdfVectorizer.output_result   s   #%6  !2!23A  #  !2!23M*$$WW[)
HHj]"**5MM##'8';';;A !Q ! %%):)>)>>1vz#AhF"8_'2~'9qtqQ - '
 $A !A11ADFA % %%):)@)@@1vz#AhF"8_ tkn4Q - '
 $AaDFA % ?@@yy%%r   Xr   c                 Z   [        UR                  5      S:  a  X   nOUnSnX-   nUS-   nUn[        SUS-   5       H  nUnUnUU:  a  UUUS-
  -  -   nUU:  a  OUnU R                  nSnUR	                  5       (       a  UU::  a  UU:  ay  UU   nUR                  U5      nUc  O_UU   R                  nUU:  a  US:w  a  U R                  UX$5        UU   nUS-  nUU-  nUR	                  5       (       a  UU::  a  UU:  a  My  US-  nUU:  a  M  US:X  d  M  US-  nUU:  d  M    g    g )Nr%   r   )r,   shaperq   r   rU   r\   rF   r   )r   r   r   r   r   r   r   r   r~   r   r   r   pool_stringsr   X_flat	row_beginrow_endmax_skip_distancestart_ngram_sizeskip_distancengram_startngram_row_endat_least_this
ngram_itemint_maprm   valhits                               r   compute_implTfIdfVectorizer.compute_impl   s|     qww<!ZFF	&*Q.*"1&7!&;<M#K#M- +m?ORS?S.T T M1(
//
&&(("o5"]2 ,C!,,s+C{!#,**C!%55#(,,S'G%clG!OJ-/J &&(("o5"]2 q 3 -8  1$ A% #o5G =r   c                   ^ ^^^^^^^^^	^
^^ [         R                  " TR                  5      nSnSnSmTR                  n[        U5      S:X  a  SnSmUS:w  a  [	        SU S35      eO][        U5      S:X  a  SnUS   mOF[        U5      S:X  a%  US   nUS   mUnUS:  a  [	        SU ST S35      eO[	        SU ST S35      eUT-  U:w  a  [	        SUT-   S	U S35      e[         R
                  " UT R                  -  4[         R                  S
9mUS:X  d  T R                  R                  5       (       a  T R                  UT5      $ UUUUUUUUUUU	U U
4S jn[        U5       H  nU" U5        M     T R                  UT5      4$ )Nr   r%   zUnexpected total of items r   rf   zCInput shape must have either [C] or [B,C] dimensions with B > 0, B=z, C=z*Unexpected total of items, num_rows * C = z != total_items = r   c                 <   > TR                  TU TTTTTTTT	T
TTS9  g )N)	r   r   r   r~   r   r   r   r   r   )r   )r   Cr   r   r   r   r   r~   r   r   r   r   r   r   s    r   fn TfIdfVectorizer._run.<locals>.fnl  s=     /- /)+')  r   )r   r   r   r,   r8   zerosr   int64r   rN   r   rq   )r   r   r   r   r   r~   r   r   r   r   r   r   num_rowsr   
input_dimsr   r3   r   r   s   ```````````      @@r   _runTfIdfVectorizer._run1  s   " ggagg&WW
z?aHAa #=k]!!LMM  _!H1A_!1A1AH1u YZ[Y\\`ab`ccde  
 UVWUXX\]^\__`a  a<;&<X\NJ\]h\iijk  hh4+<+< <>bhhO!t4466 %%a55	 	 	$ xAqE ! ""1k244r   )
r   r   r   r   r   r   r   r   r   r   )	NNNNNNNNN)r;   r<   r=   r>   r   r   r   r   r   ndarrayr   r   r   r@   rA   r   r   r{   r{      s    4l%%&)%8<S	%	%/&s /&c /&rzz /&n =::= = 	=
 #Y= 
=D P5r   r{   )enumr   typingr   numpyr   onnx.reference.op_runr   r   r   r   rd   r   ry   r{   rA   r   r   <module>r      sh       '("T ("V$! $!N   	
 4@5e @5r   