Ë
    8Ò^j-Ð  ã                   ót  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlZd dlZd dlmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZmZm Z  d dl!m"Z"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2 dZ3dZ4e3e4z   Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;ejx                  j{                  deef«      d„ «       Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd „ ZDd!„ ZEd"„ ZFd#„ ZGd$„ ZHd%„ ZId&„ ZJd'„ ZKd(„ ZLd)„ ZMd*„ ZNd+„ ZOejx                  j¡                  e0d,¬-«      d.„ «       ZQd/„ ZRd0„ ZSd1„ ZTd2„ ZUd3„ ZVejx                  j{                  deef«      d4„ «       ZWd5„ ZXd6„ ZYd7„ ZZd8„ Z[d9„ Z\ejx                  j{                  deef«      d:„ «       Z]d;„ Z^d<„ Z_d=„ Z`d>„ Zad?„ Zbd@„ Zcejx                  j{                  dAejÈ                  ejÊ                  ejÌ                  g«      dB„ «       ZgdC„ ZhdD„ ZidE„ ZjdF„ ZkdG„ ZldH„ ZmdI„ ZndJ„ ZodK„ ZpdL„ ZqdM„ Zrejx                  j{                  deeef«      dN„ «       Zsejx                  j{                  dOejè                  ejê                  g«      dP„ «       Zvejx                  j{                  dQ ee1e2«      «      dR„ «       Zwejx                  j{                  dSejð                  ejê                  dTfejò                  ejê                  dTfejè                  ejè                  dUfejê                  ejê                  dUfg«      dV„ «       Zzejx                  j{                  dW edX¬Y«       edX¬Y«       edX¬Y«      g«      dZ„ «       Z{d[„ Z|d\„ Z}e.ejx                  j{                  d]e2«      d^„ «       «       Z~ejx                  j{                  d_eeeg«      d`„ «       Zejx                  j{                  d_eeeg«      ejx                  j{                  dadbe€dcfdde�defg«      df„ «       «       Z‚ejx                  j{                  d_ee e�j                  e«      g«      ejx                  j{                  dgdh„ di„ g«      ejx                  j{                  djdddbg«      dk„ «       «       «       Z„ejx                  j{                  d_eeeg«      dl„ «       Z…ejx                  j{                  deeeg«      ejx                  j{                  dmdndogdddpddqdrdsdtf	ddu„ ddpddqdvdsdtf	ddw„ ddpdxdydzdvd{f	ddd|„ dpdxd}„ d~dsdf	dddd€dd�„ d‚dsdf	dƒg«      d„„ «       «       Z†ejx                  j{                  d…ed†d‡dˆœd‰d†dŠœgfee3ff«      d‹„ «       Z‡dŒ„ Zˆd�„ Z‰ejx                  j{                  d_eeeeg«      dŽ„ «       ZŠejx                  j{                  d]e2«      d�„ «       Z‹ejx                  j{                  d�ejè                  ejê                  g«      d‘„ «       ZŒd’„ Z�d“„ ZŽy)”é    N)Údefaultdict)ÚMapping)Úpartial)ÚStringIO)Úproduct)Úassert_array_almost_equalÚassert_array_equal)Úsparse)Úclone)ÚENGLISH_STOP_WORDSÚCountVectorizerÚHashingVectorizerÚTfidfTransformerÚTfidfVectorizerÚstrip_accents_asciiÚstrip_accents_unicodeÚ
strip_tags)ÚGridSearchCVÚcross_val_scoreÚtrain_test_split)ÚPipeline)Ú	LinearSVC)Ú_align_api_if_sparse)Úassert_allclose_dense_sparseÚassert_almost_equalÚskip_if_32bit)Ú_IS_WASMÚCSC_CONTAINERSÚCSR_CONTAINERS)zthe pizza pizza beer copyrightzthe pizza burger beer copyrightz!the the pizza beer beer copyrightzthe burger beer beer copyrightzthe coke burger coke copyrightzthe coke burger burger)zthe salad celeri copyrightz)the salad salad sparkling water copyrightzthe the celeri celeri copyrightzthe tomato tomato salad waterz the tomato salad water copyrightc                 ó4   — t        | «      j                  «       S ©N)r   Úupper©Úss    úu/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/feature_extraction/tests/test_text.pyÚ	uppercaser&   :   s   € Ü  Ó#×)Ñ)Ó+Ð+ó    c                 ó&   — | j                  dd«      S )Nõ   Ã©Úe)Úreplacer#   s    r%   Ústrip_eacuter,   >   s   € Ø�9‰9�T˜3ÓÐr'   c                 ó"   — | j                  «       S r!   ©Úsplitr#   s    r%   Úsplit_tokenizer0   B   s   € Ø�7‰7‹9Ðr'   c                 ó   — dgS )NÚthe_ultimate_feature© r#   s    r%   Úlazy_analyzer4   F   s   € Ø"Ð#Ð#r'   c                  ó  — d} d}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚d	} d
}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚d} d
}t        | «      |k(  sJ ‚y )Nõ   Ã Ã¡Ã¢Ã£Ã¤Ã¥Ã§Ã¨Ã©ÃªÃ«Úaaaaaaceeeeõ   Ã¬Ã­Ã®Ã¯Ã±Ã²Ã³Ã´ÃµÃ¶Ã¹ÃºÃ»Ã¼Ã½Úiiiinooooouuuuyõ   Ø¥u   Ø§õ   this is Ã  testúthis is a testu   oÌˆÚou   Ì€Ì�Ì‚ÌƒÚ u   oÌˆÌ„)r   ©ÚaÚexpecteds     r%   Útest_strip_accentsrB   J   s×   € à €AØ€HÜ  Ó# xÒ/Ð/Ð/à(€AØ €HÜ  Ó# xÒ/Ð/Ð/ð 	€AØ€HÜ  Ó# xÒ/Ð/Ð/ð 	€AØ€HÜ  Ó# xÒ/Ð/Ð/ð 	€AØ€HÜ  Ó# xÒ/Ð/Ð/ð 	#€AØ€HÜ  Ó# xÒ/Ð/Ð/ð 	€AØ€HÜ  Ó# xÒ/Ð/Ñ/r'   c                  ó¤   — d} d}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚d} d}t        | «      |k(  sJ ‚y )	Nr6   r7   r8   r9   r:   r>   r;   r<   )r   r?   s     r%   Útest_to_asciirD   n   sz   € à €AØ€HÜ˜qÓ! XÒ-Ð-Ð-à(€AØ €HÜ˜qÓ! XÒ-Ð-Ð-ð 	€AØ€HÜ˜qÓ! XÒ-Ð-Ð-ð 	€AØ€HÜ˜qÓ! XÒ-Ð-Ñ-r'   Ú
Vectorizerc                 óž  —  | d¬«      j                  «       }d}g d¢} ||«      |k(  sJ ‚d}g d¢} ||«      |k(  sJ ‚ | d¬«      j                  «       }t        d	«      }g d
¢} ||«      |k(  sJ ‚ | t        ¬«      j                  «       }d}g d¢} ||«      |k(  sJ ‚ | t        d¬«      j                  «       }d}g d¢} ||«      |k(  sJ ‚y )NÚascii©Ústrip_accentsõ:   J'ai mangÃ© du kangourou  ce midi, c'Ã©tait pas trÃ¨s bon.)
ÚaiÚmangeÚduÚ	kangourouÚceÚmidiÚetaitÚpasÚtresÚbonz0This is a test, really.

 I met Harry yesterday.)ÚthisÚisÚtestÚreallyÚmetÚharryÚ	yesterdayÚfile)Úinputú'This is a test with a file-like object!)rU   rV   rW   Úwithr\   ÚlikeÚobject©Úpreprocessoru;   J'ai mangÃ© du kangourou  ce midi,  c'Ã©tait pas trÃ¨s bon.)
ÚAIÚMANGEÚDUÚ	KANGOUROUÚCEÚMIDIÚETAITÚPASÚTRESÚBON)Ú	tokenizerrI   )
zj'airL   rM   rN   rO   zmidi,zc'etaitrR   rS   zbon.)Úbuild_analyzerr   r&   r0   )rE   ÚwaÚtextrA   s       r%   Útest_word_analyzer_unigramsrr   ƒ   sò   € á	 'Ô	*×	9Ñ	9Ó	;€BØG€Dò€Hñ ˆd‹8�xÒÐÐà?€DÚL€HÙˆd‹8�xÒÐÐá	˜&Ô	!×	0Ñ	0Ó	2€BÜÐ=Ó>€DÚG€HÙˆd‹8�xÒÐÐñ 
¤Ô	+×	:Ñ	:Ó	<€BØH€Dò€Hñ ˆd‹8�xÒÐÐñ 
œn¸GÔ	D×	SÑ	SÓ	U€BØG€Dò€Hñ ˆd‹8�xÒÐÑr'   c                  ób   — t        ddd¬«      j                  «       } d}g d¢} | |«      |k(  sJ ‚y )NÚwordÚunicode©é   é   ©ÚanalyzerrI   Úngram_rangerJ   )rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   zai mangezmange duzdu kangourouzkangourou cezce midiz
midi etaitz	etait paszpas tresztres bon)r   ro   )rp   rq   rA   s      r%   Ú'test_word_analyzer_unigrams_and_bigramsr|   Á   sA   € Ü	Ø y¸fô
ç�nÓð ð H€Dò€Hñ* ˆd‹8�xÒÐÑr'   c                  óp  — d} | j                  d«      }t        dd¬«      j                  «       }t        j                  t
        «      5   ||«       d d d «       t        ddd¬«      j                  «       }t        j                  t
        «      5   ||«       d d d «       y # 1 sw Y   ŒPxY w# 1 sw Y   y xY w)	NrJ   zutf-8rv   rG   )r{   ÚencodingÚchar©é   é   )rz   r{   r~   )Úencoder   ro   ÚpytestÚraisesÚUnicodeDecodeError)rq   Ú
text_bytesrp   Úcas       r%   Útest_unicode_decode_errorr‰   ß   s¦   € ð H€DØ—‘˜WÓ%€Jô 
 V°gÔ	>×	MÑ	MÓ	O€BÜ	�‰Ô)Ó	*ñ Ù
ˆ:Œ÷ô 
Ø V°gô
ç�nÓð ô 
�‰Ô)Ó	*ñ Ù
ˆ:Œ÷ð ÷ð ú÷ð ús   Á	B Â	B,Â B)Â,B5c                  óZ  — t        ddd¬«      j                  «       } d}g d¢} | |«      d d |k(  sJ ‚g d¢} | |«      d	d  |k(  sJ ‚d
}g d¢} | |«      d d |k(  sJ ‚g d¢} | |«      d	d  |k(  sJ ‚t        ddd¬«      j                  «       } t        d«      }g d¢} | |«      d d |k(  sJ ‚y )Nr   ru   r€   ry   u9   J'ai mangÃ© du kangourou  ce midi, c'Ã©tait pas trÃ¨s bon)zj'az'aizai zi mz maé   )zs tresz tres ztres bzres bozes bonéûÿÿÿú1This 
	is a test, really.

 I met Harry yesterday)ÚthiÚhisúis zs iz is)z yesteÚyesterÚesterdÚsterdaÚterdayr\   ©r]   rz   r{   r^   ©r   ro   r   ©Úcngarq   rA   s      r%   Útest_char_ngram_analyzerr™   ò   så   € ÜØ y¸fôç�nÓð 	ð G€DÚ2€HÙ�‹:�b�qˆ>˜XÒ%Ð%Ð%ÚA€HÙ�‹:�b�cˆ?˜hÒ&Ð&Ð&àB€DÚ2€HÙ�‹:�b�qˆ>˜XÒ%Ð%Ð%âA€HÙ�‹:�b�cˆ?˜hÒ&Ð&Ð&äØ˜v°6ôç�nÓð 	ô Ð=Ó>€DÚ2€HÙ�‹:�b�qˆ>˜XÒ%Ð%Ñ%r'   c                  ó  — t        ddd¬«      j                  «       } d}g d¢} | |«      d d |k(  sJ ‚g d¢} | |«      d	d  |k(  sJ ‚t        d
dd¬«      j                  «       } t        d«      }g d¢} | |«      d d |k(  sJ ‚y )NÚchar_wbru   r€   ry   r�   )z thrŽ   r�   r�   z thir‹   )r‘   r’   r“   r”   zerday rŒ   r\   r•   zA test with a file-like object!)z a z teÚtesÚestzst z tesr‚   r–   r—   s      r%   Útest_char_wb_ngram_analyzerrž     s¦   € ÜØ¨)Àôç�nÓð 	ð C€DÚ3€HÙ�‹:�b�qˆ>˜XÒ%Ð%Ð%âA€HÙ�‹:�b�cˆ?˜hÒ&Ð&Ð&äØ˜y°fôç�nÓð 	ô Ð5Ó6€DÚ:€HÙ�‹:�b�qˆ>˜XÒ%Ð%Ñ%r'   c                  ó  — t        ddd¬«      j                  «       } d}g d¢} | |«      d d |k(  sJ ‚g d¢} | |«      d	d  |k(  sJ ‚t        d
dd¬«      j                  «       }t        |«      } ||«       | |«      k(  sJ ‚y )Nrt   ru   r€   ry   r�   )zthis is testzis test reallyztest really metr�   )ztest really met harry yesterdayzthis is test really met harryz"is test really met harry yesterdayéýÿÿÿr\   r•   r–   )r˜   rq   rA   Ú	cnga_filer\   s        r%   Útest_word_ngram_analyzerr¢      s¡   € ÜØ y¸fôç�nÓð 	ð C€DÚD€HÙ�‹:�b�qˆ>˜XÒ%Ð%Ð%ò€Hñ
 �‹:�b�cˆ?˜hÒ&Ð&Ð&äØ˜v°6ôç�nÓð ô �D‹>€DÙ�T‹?™d 4›jÒ(Ð(Ñ(r'   c                  óB  — dddœ} t        | j                  «       «      }t        t        t        t        t        t        «      fD ]Ú  } || «      }t        |¬«      }|j                  t        «       t        |t        «      r|j                  | k(  sJ ‚t        |j                  «      |k(  sJ ‚|j                  t        «      }|j                  d   t!        |«      k(  sJ ‚ || «      }t        |¬«      }|j#                  |«      }t!        |«      |j                  d   k(  rŒÚJ ‚ y )Nr   rw   ©ÚpizzaÚbeer©Ú
vocabulary)ÚsetÚkeysÚdictÚlistÚiterr   r   Úintr   ÚfitÚJUNK_FOOD_DOCSÚ
isinstancer   Úvocabulary_Ú	transformÚshapeÚlenÚinverse_transform)ÚvocabÚtermsÚtypÚvÚvectÚXÚinvs          r%   Ú&test_countvectorizer_custom_vocabularyr¾   7  sø   € Ø Ñ#€EÜ�—
‘
“Ó€Eô ”dœD¤'¬+´sÓ";Ð<ò &ˆÙ�‹JˆÜ¨!Ô,ˆØ�‰”Ô Ü�aœÔ!Ø×#Ñ# uÒ,Ð,Ð,ä�t×'Ñ'Ó(¨EÒ1Ð1Ð1Ø�N‰Nœ>Ó*ˆØ�w‰w�q‰zœS ›ZÒ'Ð'Ð'Ù�‹JˆÜ¨!Ô,ˆØ×$Ñ$ QÓ'ˆÜ�3‹x˜1Ÿ7™7 1™:Ó%Ð%Ð%ñ&r'   c                  ó  — ddg} t        dt        | ¬«      fdt        «       fg«      }|j                  t        «      }t        |j                  d   j                  «      t        | «      k(  sJ ‚|j                  d   t        | «      k(  sJ ‚y )Nr¥   r¦   Úcountr§   Útfidfrw   )
r   r   r   Úfit_transformÚALL_FOOD_DOCSr©   Únamed_stepsr²   r´   rµ   )Úwhat_we_likeÚpiper¼   s      r%   Ú/test_countvectorizer_custom_vocabulary_pipelinerÇ   L  sŠ   € Ø˜VÐ$€LÜà”o°Ô>Ð?ØÔ&Ó(Ð)ð	
ó€Dð 	×Ñœ=Ó)€AÜˆt×Ñ Ñ(×4Ñ4Ó5¼¸\Ó9JÒJÐJÐJØ�7‰7�1‰:œ˜\Ó*Ò*Ð*Ñ*r'   c                  ó®   — dddœ} d}t        j                  t        |¬«      5  t        | ¬«      }|j	                  dg«       d d d «       y # 1 sw Y   y xY w)Nr   r¤   z$Vocabulary contains repeated indices©Úmatchr§   Úpasta_siziliana©r„   r…   Ú
ValueErrorr   r¯   )r·   Úmsgr»   s      r%   Ú7test_countvectorizer_custom_vocabulary_repeated_indicesrÏ   Y  sN   € Ø Ñ#€EØ
0€CÜ	�‰”z¨Ô	-ñ &Ü¨%Ô0ˆØ�‰Ð#Ð$Ô%÷&÷ &ñ &ús   £AÁAc                  óª   — dddœ} t        j                  t        d¬«      5  t        | ¬«      }|j	                  dg«       d d d «       y # 1 sw Y   y xY w)Nrw   rx   r¤   zdoesn't contain indexrÉ   r§   Úpasta_verdurarÌ   ©r·   r»   s     r%   Ú0test_countvectorizer_custom_vocabulary_gap_indexrÓ   a  sI   € Ø Ñ#€EÜ	�‰”zÐ)@Ô	Añ $Ü¨%Ô0ˆØ�‰�/Ð"Ô#÷$÷ $ñ $ús   ¡A	Á	Ac                  ó  — t        «       } | j                  d¬«       | j                  «       t        k(  sJ ‚| j                  d¬«       t	        j
                  t        «      5  | j                  «        d d d «       | j                  d¬«       t	        j
                  t        «      5  | j                  «        d d d «       g d¢}| j                  |¬«       | j                  «       t        |«      k(  sJ ‚y # 1 sw Y   Œ‚xY w# 1 sw Y   ŒJxY w)NÚenglish©Ú
stop_wordsÚ_bad_str_stop_Ú_bad_unicode_stop_)ÚsomeÚotherÚwords)r   Ú
set_paramsÚget_stop_wordsr   r„   r…   rÍ   r©   )ÚcvÚstoplists     r%   Útest_countvectorizer_stop_wordsrá   h  sÖ   € Ü	Ó	€BØ‡M�M˜Y€MÔ'Ø×ÑÓÔ"4Ò4Ð4Ð4Ø‡M�MÐ-€MÔ.Ü	�‰”zÓ	"ñ Ø
×ÑÔ÷à‡M�MÐ1€MÔ2Ü	�‰”zÓ	"ñ Ø
×ÑÔ÷â)€HØ‡M�M˜X€MÔ&Ø×ÑÓ¤# h£-Ò/Ð/Ñ/÷ð ú÷ð ús   Á!C3Â%C?Ã3C<Ã?Dc                  ó@  — t        j                  t        d¬«      5  t        g ¬«      } | j	                  dg«       d d d «       t        j                  t        d¬«      5  t        dd¬«      }|j	                  g d¢«       d d d «       y # 1 sw Y   ŒNxY w# 1 sw Y   y xY w)	Nzempty vocabularyrÉ   r§   Úfooç      ð?rÕ   )Úmax_dfr×   )zto be or not to bez
and me toozand so do yourÌ   )r»   rº   s     r%   Ú%test_countvectorizer_empty_vocabularyræ   w  s‡   € Ü	�‰”zÐ);Ô	<ñ Ü¨"Ô-ˆØ�‰�%�Ô÷ô 
�‰”zÐ);Ô	<ñ EÜ 3°9Ô=ˆà	�‰ÒCÔD÷Eð E÷	ð ú÷Eð Eús   œBÁ!BÂBÂBc                  óº   — t        «       } | j                  t        d d «      }| j                  t        dd  «      }|j                  d   |j                  d   k7  sJ ‚y )Nr‹   rw   )r   rÂ   rÃ   r´   )rß   ÚX1ÚX2s      r%   Útest_fit_countvectorizer_twicerê   ‚  sV   € Ü	Ó	€BØ	×	Ñ	œ-¨¨Ð+Ó	,€BØ	×	Ñ	œ-¨¨Ð+Ó	,€BØ�8‰8�A‰;˜"Ÿ(™( 1™+Ò%Ð%Ñ%r'   c                  óŠ   — g d¢} d}t        |¬«      }|j                  | «       g d¢}|j                  «       }t        ||«       y)z¦Check `get_feature_names_out()` when a custom token pattern is passed.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12971
    ©z&This is the 1st document in my corpus.z This document is the 2nd sample.zAnd this is the 3rd one.zIs this the 4th document?z'[0-9]{1,3}(?:st|nd|rd|th)\s\b(\w{2,})\b©Útoken_pattern)ÚdocumentÚoneÚsampleN)r   rÂ   Úget_feature_names_outr	   )Úcorpusrî   Ú
vectorizerrA   Úfeature_names_outs        r%   Ú)test_countvectorizer_custom_token_patternrö   ‰  sG   € ò
€Fð ?€MÜ ¨}Ô=€JØ×Ñ˜VÔ$Ú,€HØ"×8Ñ8Ó:ÐÜÐ(¨(Õ3r'   c                  ó®   — g d¢} d}d}t        |¬«      }t        j                  t        |¬«      5  |j	                  | «       ddd«       y# 1 sw Y   yxY w)z¥Check that we raise an error if token pattern capture several groups.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12971
    rì   z)([0-9]{1,3}(?:st|nd|rd|th))\s\b(\w{2,})\bz,More than 1 capturing group in token patternrí   rÉ   N©r   r„   r…   rÍ   r¯   )ró   rî   Úerr_msgrô   s       r%   Ú<test_countvectorizer_custom_token_pattern_with_several_grouprú   œ  sO   € ò
€Fð A€MØ<€GÜ ¨}Ô=€JÜ	�‰”z¨Ô	1ñ Ø�‰�vÔ÷÷ ñ ús   °AÁAc                  óT  — g d¢} d}t        d| ¬«      }t        j                  t        |¬«      5  |j	                  | «       d d d «       t        j                  «       5  t        j                  dt        «       |j                  | «       d d d «       y # 1 sw Y   ŒRxY w# 1 sw Y   y xY w)N)ÚSampleÚUpperÚCaseÚ
VocabularyzyUpper case characters found in vocabulary while 'lowercase' is True. These entries will not be matched with any documentsT)Ú	lowercaser¨   rÉ   Úerror)	r   r„   ÚwarnsÚUserWarningr¯   ÚwarningsÚcatch_warningsÚsimplefilterr³   )r¨   Úmessagerô   s      r%   Ú'test_countvectorizer_uppercase_in_vocabr  ¯  s–   € ò ;€Jð	)ð ô !¨4¸JÔG€Jä	�‰”k¨Ô	1ñ #Ø�‰�zÔ"÷#ô 
×	 Ñ	 Ó	"ñ )Ü×Ñ˜g¤{Ô3Ø×Ñ˜ZÔ(÷)ð )÷#ð #ú÷)ð )ús   ¯BÁ,BÂBÂB'c                  ó”   — g d¢g d¢g d¢g} t        dd¬«      j                  | «      }g d¢}|j                  |«      }t        ||«       y)	z0Check get_feature_names_out for TfidfTransformer©rw   rw   rw   ©rw   rw   r   ©rw   r   r   TÚl2©Ú
smooth_idfÚnorm)r@   ÚcÚbN)r   r¯   rò   r	   )r¼   ÚtrÚfeature_names_inrõ   s       r%   Ú%test_tf_transformer_feature_names_outr  Ä  sI   € â	’IšyÐ)€AÜ	 T°Ô	5×	9Ñ	9¸!Ó	<€Bâ&ÐØ×0Ñ0Ð1AÓBÐÜÐ'Ð):Õ;r'   c                  óv  — g d¢g d¢g d¢g} t        dd¬«      }|j                  | «      j                  «       }|dk\  j                  «       sJ ‚t	        |dz  j                  d	¬
«      g d¢«       g d¢g d¢g d¢g} t        dd¬«      }|j                  | «      j                  «       }|dk\  j                  «       sJ ‚y )Nr
  r  r  Tr  r  r   rx   rw   ©Úaxis©rä   rä   rä   )r   rÂ   ÚtoarrayÚallr   Úsum©r¼   r  rÁ   s      r%   Útest_tf_idf_smoothingr  Î  s­   € Ú	’IšyÐ)€AÜ	 T°Ô	5€BØ×Ñ˜QÓ×'Ñ'Ó)€EØ�Q‰J×ÑÔÐÐô ˜u a™xŸn™n°!˜nÓ4²oÔFò 
’IšyÐ)€AÜ	 T°Ô	5€BØ×Ñ˜QÓ×'Ñ'Ó)€EØ�Q‰J×ÑÔÐÑr'   zcno floating point exceptions, see https://github.com/numpy/numpy/pull/21895#issuecomment-1311525881)Úreasonc                  ó°  — g d¢g d¢g d¢g} t        dd¬«      }|j                  | «      j                  «       }|dk\  j                  «       sJ ‚t	        |dz  j                  d	¬
«      g d¢«       g d¢g d¢g d¢g} t        dd¬«      }d}t        j                  t        |¬«      5  |j                  | «      j                  «        d d d «       y # 1 sw Y   y xY w)Nr
  r  r  Fr  r  r   rx   rw   r  r  zdivide by zerorÉ   )	r   rÂ   r  r  r   r  r„   r  ÚRuntimeWarning)r¼   r  rÁ   Úin_warning_messages       r%   Útest_tfidf_no_smoothingr#  Þ  sÁ   € ò 
’IšyÐ)€AÜ	 U°Ô	6€BØ×Ñ˜QÓ×'Ñ'Ó)€EØ�Q‰J×ÑÔÐÐô ˜u a™xŸn™n°!˜nÓ4²oÔFò 
’IšyÐ)€AÜ	 U°Ô	6€Bà)ÐÜ	�‰”nÐ,>Ô	?ñ &Ø
×Ñ˜Ó×#Ñ#Ô%÷&÷ &ñ &ús   Â# CÃCc                  óÞ   — dgdgdgg} t        ddd ¬«      }|j                  | «      j                  «       }|d   dk(  sJ ‚|d   |d   kD  sJ ‚|d   |d   kD  sJ ‚|d   dk  sJ ‚|d   dk  sJ ‚y )Nrw   rx   r�   TF)Úsublinear_tfÚuse_idfr  r   )r   rÂ   r  r  s      r%   Útest_sublinear_tfr'  ø  s–   € Ø
ˆˆqˆc�A�3ˆ€AÜ	 t°UÀÔ	F€BØ×Ñ˜QÓ×'Ñ'Ó)€EØ�‰8�qŠ=Ðˆ=Ø�‰8�e˜A‘hÒÐÐØ�‰8�e˜A‘hÒÐÐØ�‰8�aŠ<Ðˆ<Ø�‰8�aŠ<Ð‰<r'   c                  ó.	  — t        t        d d «      } t        d   g}t        t        «      dz
  }t        d¬«      }|j	                  | «      }t        |d«      r|j                  «       }|d|j                  d   f   dk(  sJ ‚t        |j                  ¬	«      }||fD ]°  }|j                  |«      }t        |d«      r|j                  «       }|j                  }|d|d
   f   dk(  sJ ‚|d|d   f   dk(  sJ ‚|d|d   f   dk(  sJ ‚d|vsJ ‚d|vsJ ‚|d|d   f   dk(  sJ ‚|d|d   f   dk(  sJ ‚|d|d   f   dk(  sJ ‚|d|d   f   dk(  rŒ°J ‚ t        d¬«      }	|	j                  |«      j                  |«      j                  «       }
t        |	j                  «      t        |j                  «      k(  sJ ‚|
j                  |t        |j                  «      fk(  sJ ‚|	j                  «      j                  «       }|j                  t        |«      t        |j                  «      fk(  sJ ‚t        dd¬«      }|j                  |«      j                  |«      j                  «       }t        |d«      rJ ‚t        d¬«      }t        j                  t         «      5  |j                  |«       d d d «       t#        t%        j&                  |d¬«      dg|z  «       t        t        d d «      } t)        d¬«      }|j*                  |_        |j	                  | «      j                  «       }|j,                  rJ ‚t#        |
|«       |j                  |«      j                  «       }t#        ||«       t        d ¬	«      }t        j                  t         «      5  |j                  | «       d d d «       |j/                  dd¬«       |j1                  «       }d}t3        |«      } ||«      }||k(  sJ ‚|j/                  dd ¬«       t        j                  t         «      5  |j1                  «        d d d «       d |_        t        j                  t         «      5  |j5                  «        d d d «       y # 1 sw Y   �Œ¿xY w# 1 sw Y   ŒÔxY w# 1 sw Y   Œ\xY w# 1 sw Y   y xY w)!Néÿÿÿÿrw   ç      à?©rå   Útocsrr   r¥   rx   r§   ÚsaladÚtomatoÚwaterÚtheÚ	copyrightÚcokeÚburgerr¦   Úl1©r  F)r  r&  Úidf_T©r&  r  rä   rG   )rI   r   rJ   Ú_gabbledegook_)rI   rc   Ú_invalid_analyzer_type_)r­   rÃ   rµ   r   rÂ   Úhasattrr,  r²   r³   r   r¯   r  r6  r´   r„   r…   rÍ   r   Únpr  r   rå   Úfixed_vocabulary_rÝ   Úbuild_preprocessorr   ro   )Ú
train_dataÚ	test_dataÚn_trainÚv1Úcounts_trainÚv2rº   Úcounts_testr¨   Út1rÁ   Ú
tfidf_testÚt2ÚtfÚt3ÚtvÚtfidf2Útfidf_test2Úv3Ú	processorrq   rA   Úresults                          r%   Útest_vectorizerrP    s  € ä”m C RÐ(Ó)€JÜ˜rÑ"Ð#€IÜ”-Ó  1Ñ$€Gô 
 Ô	$€BØ×#Ñ# JÓ/€LÜˆ|˜WÔ%Ø#×)Ñ)Ó+ˆØ˜˜2Ÿ>™>¨'Ñ2Ð2Ñ3°qÒ8Ð8Ð8ô 
 B§N¡NÔ	3€Bð �"ˆXò 8ˆØ—k‘k )Ó,ˆÜ�; Ô(Ø%×+Ñ+Ó-ˆKà—]‘]ˆ
Ø˜1˜j¨Ñ1Ð1Ñ2°aÒ7Ð7Ð7Ø˜1˜j¨Ñ2Ð2Ñ3°qÒ8Ð8Ð8Ø˜1˜j¨Ñ1Ð1Ñ2°aÒ7Ð7Ð7ð ˜JÑ&Ð&Ð&ð  *Ñ,Ð,Ð,ð ˜1˜j¨Ñ0Ð0Ñ1°QÒ6Ð6Ð6Ø˜1˜j¨Ñ2Ð2Ñ3°qÒ8Ð8Ð8Ø˜1˜j¨Ñ0Ð0Ñ1°QÒ6Ð6Ð6Ø˜1˜j¨Ñ1Ð1Ñ2°aÓ7Ð7Ð7ð/8ô4 
˜tÔ	$€BØ�F‰F�<Ó ×*Ñ*¨<Ó8×@Ñ@ÓB€EÜˆr�w‰w‹<œ3˜rŸ~™~Ó.Ò.Ð.Ð.Ø�;‰;˜7¤C¨¯©Ó$7Ð8Ò8Ð8Ð8ð —‘˜kÓ*×2Ñ2Ó4€JØ×Ñ¤ I£´°B·N±NÓ0CÐDÒDÐDÐDô 
˜t¨UÔ	3€BØ	�‰�Ó	×	'Ñ	'¨Ó	5×	=Ñ	=Ó	?€BÜ�r˜6Ô"Ð"Ð"ô 
 $Ô	'€BÜ	�‰”zÓ	"ñ #Ø
�‰�\Ô"÷#ô œbŸf™f R¨aÔ0°3°%¸'±/ÔBô ”m C RÐ(Ó)€JÜ	˜dÔ	#€Bà—	‘	€B„IØ×Ñ˜jÓ)×1Ñ1Ó3€FØ×#Ò#Ð#Ð#Ü˜e VÔ,ð —,‘,˜yÓ)×1Ñ1Ó3€KÜ˜j¨+Ô6ô 
 DÔ	)€BÜ	�‰”zÓ	"ñ !Ø
�‰�ZÔ ÷!ð ‡M�M °5€MÔ9Ø×%Ñ%Ó'€IØG€DÜ" 4Ó(€HÙ�t‹_€FØ�vÒÐÐð ‡M�MÐ 0¸t€MÔDÜ	�‰”zÓ	"ñ  Ø
×ÑÔ÷ ð .€B„MÜ	�‰”zÓ	"ñ Ø
×ÑÔ÷ð ÷Q#ñ #ú÷,!ð !ú÷ ð  ú÷
ð ús0   ÊQ&ÎQ3ÐQ?ÑRÑ&Q0Ñ3Q<Ñ?RÒRc                  ó”  — d\  } }}}t        | |||¬«      }|j                  t        «       |j                  j                  | k(  sJ ‚|j                  j
                  |k(  sJ ‚|j                  j                  |k(  sJ ‚|j                  j                  |k(  sJ ‚d|_        d|_        d|_        d|_        |j                  j                  | k(  sJ ‚|j                  j
                  |k(  sJ ‚|j                  j                  |k(  sJ ‚|j                  j                  |k(  sJ ‚|j                  t        «       |j                  j                  |j                  k(  sJ ‚|j                  j
                  |j
                  k(  sJ ‚|j                  j                  |j                  k(  sJ ‚|j                  j                  |j                  k(  sJ ‚y )N)r  FFF)r  r&  r  r%  r4  T)r   r¯   r°   Ú_tfidfr  r&  r  r%  )r  r&  r  r%  rJ  s        r%   Útest_tfidf_vectorizer_settersrS  j  s…  € Ø.GÑ+€Dˆ'�:˜|Ü	Ø˜7¨zÈô
€Bð ‡F�FŒ>ÔØ�9‰9�>‰>˜TÒ!Ð!Ð!Ø�9‰9×Ñ Ò'Ð'Ð'Ø�9‰9×Ñ :Ò-Ð-Ð-Ø�9‰9×!Ñ! \Ò1Ð1Ð1ð €B„GØ€B„JØ€B„MØ€B„OØ�9‰9�>‰>˜TÒ!Ð!Ð!Ø�9‰9×Ñ Ò'Ð'Ð'Ø�9‰9×Ñ :Ò-Ð-Ð-Ø�9‰9×!Ñ! \Ò1Ð1Ð1à‡F�FŒ>ÔØ�9‰9�>‰>˜RŸW™WÒ$Ð$Ð$Ø�9‰9×Ñ §
¡
Ò*Ð*Ð*Ø�9‰9×Ñ 2§=¡=Ò0Ð0Ð0Ø�9‰9×!Ñ! R§_¡_Ò4Ð4Ñ4r'   c                  óˆ  — t        «       } | j                  t        «      }|j                  }|j                  t        t        «      | j                  fk(  sJ ‚|j                  | j                  k(  sJ ‚t        j                  |j                  «      dkD  sJ ‚t        j                  |j                  «      dk  sJ ‚t        j                  |j                  «      dkD  sJ ‚t        j                  |j                  «      dk  sJ ‚|D ]6  }t        t        j                  j                  |j                  d«      d«       Œ8 t        dd¬«      } | j                  t        «      }|j                  t        t        «      | j                  fk(  sJ ‚|j                  | j                  k(  sJ ‚|j                  }||kD  sJ ‚|d|z  k  sJ ‚t        j                  |j                  «      dkD  sJ ‚t        j                  |j                  «      dk  sJ ‚|D ]6  }t        t        j                  j                  |j                  d«      d«       Œ8 y )	Nr)  r   rw   rx   rä   rv   r4  )r{   r  )r   r³   rÃ   Únnzr´   rµ   Ú
n_featuresÚdtyper;  ÚminÚdataÚmaxr   Úlinalgr  )rº   r¼   Ú	token_nnzÚrowÚ
ngrams_nnzs        r%   Útest_hashing_vectorizerr_  ‡  sÐ  € ÜÓ€AØ	�‰”MÓ"€AØ—‘€IØ�7‰7”sœ=Ó)¨1¯<©<Ð8Ò8Ð8Ð8Ø�7‰7�a—g‘gÒÐÐô �6‰6�!—&‘&‹>˜BÒÐÐÜ�6‰6�!—&‘&‹>˜AÒÐÐÜ�6‰6�!—&‘&‹>˜AÒÐÐÜ�6‰6�!—&‘&‹>˜AÒÐÐð ò >ˆÜœBŸI™IŸN™N¨3¯8©8°QÓ7¸Õ=ð>ô 	 f°4Ô8€AØ	�‰”MÓ"€AØ�7‰7”sœ=Ó)¨1¯<©<Ð8Ò8Ð8Ð8Ø�7‰7�a—g‘gÒÐÐð —‘€JØ˜	Ò!Ð!Ð!Ø˜˜I™Ò%Ð%Ð%ô �6‰6�!—&‘&‹>˜BÒÐÐÜ�6‰6�!—&‘&‹>˜AÒÐÐð ò >ˆÜœBŸI™IŸN™N¨3¯8©8°QÓ7¸Õ=ñ>r'   c                  ó4  — t        d¬«      } t        j                  t        «      5  | j	                  «        d d d «       | j
                  rJ ‚| j                  t        «      }|j                  \  }}t        | j                  «      |k(  sJ ‚| j	                  «       }t        |t        j                  «      sJ ‚|j                  t        k(  sJ ‚t        |«      |k(  sJ ‚t!        g d¢|«       t#        |«      D ]%  \  }}|| j                  j%                  |«      k(  rŒ%J ‚ g d¢}t        |¬«      } | j	                  «       }t!        g d¢|«       | j
                  sJ ‚t#        |«      D ]%  \  }}|| j                  j%                  |«      k(  rŒ%J ‚ y # 1 sw Y   �ŒXxY w)Nr*  r+  ©	r¦   r3  Úcelerir2  r¥   r-  Ú	sparklingr.  r/  r§   )r   r„   r…   rÍ   rò   r<  rÂ   rÃ   r´   rµ   r²   r±   r;  ÚndarrayrW  ra   r	   Ú	enumerateÚget)rß   r¼   Ú	n_samplesrV  Úfeature_namesÚidxÚnamer·   s           r%   Útest_feature_namesrk  ­  s�  € Ü	 Ô	$€Bô 
�‰”zÓ	"ñ #Ø
× Ñ Ô"÷#à×#Ò#Ð#Ð#ð 	×ÑœÓ'€AØŸG™GÑ€IˆzÜˆr�~‰~Ó *Ò,Ð,Ð,à×,Ñ,Ó.€MÜ�m¤R§Z¡ZÔ0Ð0Ð0Ø×Ñ¤&Ò(Ð(Ð(äˆ}Ó Ò+Ð+Ð+Üò
	
ð 	ôô ˜}Ó-ò /‰	ˆˆTØ�b—n‘n×(Ñ(¨Ó.Ó.Ð.Ð.ð/ò
€Eô 
 EÔ	*€BØ×,Ñ,Ó.€MÜò
	
ð 	ôð ×ÒÐÐä˜}Ó-ò /‰	ˆˆTØ�b—n‘n×(Ñ(¨Ó.Ó.Ð.Ð.ñ/÷#ñ #ús   ¦FÆFc                 ó~   — h d£} | dd¬«      }|j                  t        «       t        |j                  «      |k(  sJ ‚y )N>   r¦   r¥   r-  r3  g333333ã?é   )rå   Úmax_features)r¯   rÃ   r©   r²   )rE   Úexpected_vocabularyrô   s      r%   Útest_vectorizer_max_featuresrp  ô  s<   € â>Ðñ  3°QÔ7€JØ‡N�N”=Ô!Üˆz×%Ñ%Ó&Ð*=Ò=Ð=Ñ=r'   c                  ó¶  — t        d¬«      } t        d¬«      }t        d ¬«      }| j                  t        «      j                  d¬«      }|j                  t        «      j                  d¬«      }|j                  t        «      j                  d¬«      }| j	                  «       }|j	                  «       }|j	                  «       }d|j                  «       k(  sJ ‚d|j                  «       k(  sJ ‚d|j                  «       k(  sJ ‚d|t        j                  |«         k(  sJ ‚d|t        j                  |«         k(  sJ ‚d|t        j                  |«         k(  sJ ‚y )Nrw   ©rn  r�   r   r  é   r0  )r   rÂ   r°   r  rò   rZ  r;  Úargmax)	Úcv_1Úcv_3Úcv_NoneÚcounts_1Úcounts_3Úcounts_NoneÚ
features_1Ú
features_3Úfeatures_Nones	            r%   Ú"test_count_vectorizer_max_featuresr~  þ  s;  € ô ¨Ô*€DÜ¨Ô*€DÜ¨4Ô0€Gà×!Ñ!¤.Ó1×5Ñ5¸1Ð5Ó=€HØ×!Ñ!¤.Ó1×5Ñ5¸1Ð5Ó=€HØ×'Ñ'¬Ó7×;Ñ;ÀÐ;ÓC€Kà×+Ñ+Ó-€JØ×+Ñ+Ó-€JØ×1Ñ1Ó3€Mð �—‘“ÒÐÐØ�—‘“ÒÐÐØ�—‘Ó!Ò!Ð!Ð!ð �JœrŸy™y¨Ó2Ñ3Ò3Ð3Ð3Ø�JœrŸy™y¨Ó2Ñ3Ò3Ð3Ð3Ø�M¤"§)¡)¨KÓ"8Ñ9Ò9Ð9Ñ9r'   c                  óL  — g d¢} t        dd¬«      }|j                  | «       d|j                  j                  «       v sJ ‚t	        |j                  j                  «       «      dk(  sJ ‚d|_        |j                  | «       d|j                  j                  «       vsJ ‚t	        |j                  j                  «       «      dk(  sJ ‚d	|_        |j                  | «       d|j                  j                  «       vsJ ‚t	        |j                  j                  «       «      dk(  sJ ‚y )
N©ÚabcÚdeaÚeatr   rä   ©rz   rå   r@   r‚   r*  rm  rw   )r   r¯   r²   rª   rµ   rå   ©r?  r»   s     r%   Útest_vectorizer_max_dfr†    s  € Ú%€IÜ F°3Ô7€DØ‡H�HˆYÔØ�$×"Ñ"×'Ñ'Ó)Ñ)Ð)Ð)Üˆt×Ñ×$Ñ$Ó&Ó'¨1Ò,Ð,Ð,à€D„KØ‡H�HˆYÔØ�d×&Ñ&×+Ñ+Ó-Ñ-Ð-Ð-Üˆt×Ñ×$Ñ$Ó&Ó'¨1Ò,Ð,Ð,à€D„KØ‡H�HˆYÔØ�d×&Ñ&×+Ñ+Ó-Ñ-Ð-Ð-Üˆt×Ñ×$Ñ$Ó&Ó'¨1Ò,Ð,Ñ,r'   c                  óL  — g d¢} t        dd¬«      }|j                  | «       d|j                  j                  «       v sJ ‚t	        |j                  j                  «       «      dk(  sJ ‚d|_        |j                  | «       d|j                  j                  «       vsJ ‚t	        |j                  j                  «       «      dk(  sJ ‚d	|_        |j                  | «       d|j                  j                  «       vsJ ‚t	        |j                  j                  «       «      dk(  sJ ‚y )
Nr€  r   rw   )rz   Úmin_dfr@   r‚   rx   r  gš™™™™™é?)r   r¯   r²   rª   rµ   rˆ  r…  s     r%   Útest_vectorizer_min_dfr‰  *  s  € Ú%€IÜ F°1Ô5€DØ‡H�HˆYÔØ�$×"Ñ"×'Ñ'Ó)Ñ)Ð)Ð)Üˆt×Ñ×$Ñ$Ó&Ó'¨1Ò,Ð,Ð,à€D„KØ‡H�HˆYÔØ�d×&Ñ&×+Ñ+Ó-Ñ-Ð-Ð-Üˆt×Ñ×$Ñ$Ó&Ó'¨1Ò,Ð,Ð,à€D„KØ‡H�HˆYÔØ�d×&Ñ&×+Ñ+Ó-Ñ-Ð-Ð-Üˆt×Ñ×$Ñ$Ó&Ó'¨1Ò,Ð,Ñ,r'   c                  óØ  — ddg} t        dd¬«      }|j                  | «      j                  «       }t        g d¢|j	                  «       «       t        g d¢g d¢g|«       t        ddd	¬
«      }|j                  | «      j                  «       }t        g d¢g d¢g|«       t        ddd	t
        j                  ¬«      }|j                  | «      }|j                  t
        j                  k(  sJ ‚y )NÚaaabcÚabbder   rä   r„  )r@   r  r  Údr*   )r�   rw   rw   r   r   )rw   rx   r   rw   rw   T)rz   rå   Úbinary)rw   rw   rw   r   r   )rw   rw   r   rw   rw   )rz   rå   rŽ  rW  )r   rÂ   r  r	   rò   r;  Úfloat32rW  )r?  r»   r¼   ÚX_sparses       r%   Útest_count_binary_occurrencesr‘  <  sÈ   € à˜'Ð"€IÜ F°3Ô7€DØ×Ñ˜9Ó%×-Ñ-Ó/€AÜÒ0°$×2LÑ2LÓ2NÔOÜšªÐ9¸1Ô=ô  F°3¸tÔD€DØ×Ñ˜9Ó%×-Ñ-Ó/€AÜšªÐ9¸1Ô=ô  F°3¸tÌ2Ï:É:ÔV€DØ×!Ñ! )Ó,€HØ�>‰>œRŸZ™ZÒ'Ð'Ñ'r'   c                  ó†  — ddg} t        ddd ¬«      }|j                  | «      }t        j                  |dd j                  «      dk(  sJ ‚t        j                  |dd	 j                  «      d	k(  sJ ‚|j
                  t        j                  k(  sJ ‚t        ddd
d ¬«      }|j                  | «      }t        j                  |j                  «      dk(  sJ ‚|j
                  t        j                  k(  sJ ‚t        ddd
d t        j                  ¬«      }|j                  | «      }|j
                  t        j                  k(  sJ ‚y )Nr‹  rŒ  Fr   )Úalternate_signrz   r  r   rw   r�   rx   T)rz   r“  rŽ  r  )rz   r“  rŽ  r  rW  )r   r³   r;  rZ  rY  rW  Úfloat64)r?  r»   r¼   s      r%   Útest_hashed_binary_occurrencesr•  P  s  € à˜'Ð"€IÜ¨E¸FÈÔN€DØ�‰�yÓ!€AÜ�6‰6�!�A�a�&—+‘+Ó !Ò#Ð#Ð#Ü�6‰6�!�A�a�&—+‘+Ó !Ò#Ð#Ð#Ø�7‰7”b—j‘jÒ Ð Ð ô Ø¨°dÀô€Dð 	�‰�yÓ!€AÜ�6‰6�!—&‘&‹>˜QÒÐÐØ�7‰7”b—j‘jÒ Ð Ð ô Ø¨°dÀÌRÏZÉZô€Dð 	�‰�yÓ!€AØ�7‰7”b—j‘jÒ Ð Ñ r'   c                 ó~  — t         } | «       }|j                  |«      }|j                  |«      }t        |t        «      sJ ‚|j                  «       }t        ||«      D ]g  \  }}t        j                  t        j                   ||«      «      «      }t        j                  t        j                  |«      «      }t        ||«       Œi t        j                  |«      sJ ‚|j                  dk(  sJ ‚|j                  «       }	|j                  |	«      }
t        ||
«      D ]7  \  }}t        t        j                  |«      t        j                  |«      «       Œ9 |j                  «       }|j                  |«      }t        ||«      D ]7  \  }}t        t        j                  |«      t        j                  |«      «       Œ9 y )NÚcsr)rÃ   rÂ   r¶   r±   r¬   ro   Úzipr;  ÚsortÚuniquer	   r
   ÚissparseÚformatr  Útocsc)rE   rY  rô   Útransformed_dataÚinversed_dataÚanalyzeÚdocÚinversed_termsr¸   Útransformed_data2Úinversed_data2Úterms2Útransformed_data3Úinversed_data3Úterms3s                  r%   Ú!test_vectorizer_inverse_transformr©  j  s|  € ô €DÙ“€JØ!×/Ñ/°Ó5ÐØ×0Ñ0Ð1AÓB€MÜ�m¤TÔ*Ð*Ð*à×'Ñ'Ó)€GÜ" 4¨Ó7ò 2Ñˆˆ^Ü—‘œŸ	™	¡'¨#£,Ó/Ó0ˆÜŸ™¤§¡¨>Ó!:Ó;ˆÜ˜5 .Õ1ð2ô
 �?‰?Ð+Ô,Ð,Ð,Ø×"Ñ" eÒ+Ð+Ð+ð )×0Ñ0Ó2ÐØ×1Ñ1Ð2CÓD€NÜ˜]¨NÓ;ò <‰ˆˆvÜœ2Ÿ7™7 5›>¬2¯7©7°6«?Õ;ð<ð )×.Ñ.Ó0ÐØ×1Ñ1Ð2CÓD€NÜ˜]¨NÓ;ò <‰ˆˆvÜœ2Ÿ7™7 5›>¬2¯7©7°6«?Õ;ñ<r'   c                  óÒ  — t         t        z   } dgt        t         «      z  dgt        t        «      z  z   }t        | |dd¬«      \  }}}}t	        dt        «       fdt        «       fg«      }dd	gd
dœ}t        ||dd¬«      }|j                  ||«      j                  |«      }	t        |	|«       |j                  dk(  sJ ‚|j                  j                  d   }
|
j                  dk(  sJ ‚y )Nr)  rw   gš™™™™™É?r   ©Ú	test_sizeÚrandom_stater»   Úsvc©rw   rw   rv   ©ÚhingeÚsquared_hinge)Úvect__ngram_rangeÚ	svc__lossr�   )Ún_jobsrß   rä   )r°   ÚNOTJUNK_FOOD_DOCSrµ   r   r   r   r   r   r¯   Úpredictr	   Úbest_score_Úbest_estimator_rÄ   r{   ©rY  Útargetr>  r?  Útarget_trainÚtarget_testÚpipelineÚ
parametersÚgrid_searchÚpredÚbest_vectorizers              r%   Ú-test_count_vectorizer_pipeline_grid_selectionrÃ  Š  sþ   € äÔ-Ñ-€Dð ˆT”CœÓ'Ñ'¨1¨#´Ô4EÓ0FÑ*FÑF€Fô 8HØˆf °!ô8Ñ4€J�	˜<¨ô ˜&¤/Ó"3Ð4°u¼i»kÐ6JÐKÓL€Hð % fÐ-Ø/ñ€Jô ˜x¨¸AÀ!ÔD€Kð �?‰?˜: |Ó4×<Ñ<¸YÓG€DÜ�t˜[Ô)ð
 ×"Ñ" cÒ)Ð)Ð)Ø!×1Ñ1×=Ñ=¸fÑE€OØ×&Ñ&¨&Ò0Ð0Ñ0r'   c                  ó  — t         t        z   } dgt        t         «      z  dgt        t        «      z  z   }t        | |dd¬«      \  }}}}t	        dt        «       fdt        «       fg«      }dd	gd
ddœ}t        ||d¬«      }|j                  ||«      j                  |«      }	t        |	|«       |j                  dk(  sJ ‚|j                  j                  d   }
|
j                  dk(  sJ ‚|
j                  dk(  sJ ‚|
j                   rJ ‚y )Nr)  rw   gš™™™™™¹?r   r«  r»   r®  r¯  rv   )r4  r  r°  )r³  Ú
vect__normr´  )rµ  rä   r  )r°   r¶  rµ   r   r   r   r   r   r¯   r·  r	   r¸  r¹  rÄ   r{   r  r<  rº  s              r%   Ú'test_vectorizer_pipeline_grid_selectionrÆ  ®  s%  € äÔ-Ñ-€Dð ˆT”CœÓ'Ñ'¨1¨#´Ô4EÓ0FÑ*FÑF€Fô 8HØˆf °!ô8Ñ4€J�	˜<¨ô ˜&¤/Ó"3Ð4°u¼i»kÐ6JÐKÓL€Hð % fÐ-Ø"Ø/ñ€Jô ˜x¨¸AÔ>€Kð �?‰?˜: |Ó4×<Ñ<¸YÓG€DÜ�t˜[Ô)ð
 ×"Ñ" cÒ)Ð)Ð)Ø!×1Ñ1×=Ñ=¸fÑE€OØ×&Ñ&¨&Ò0Ð0Ð0Ø×Ñ 4Ò'Ð'Ð'Ø×0Ò0Ð0Ð0Ð0r'   c                  óè   — t         t        z   } dgt        t         «      z  dgt        t        «      z  z   }t        dt	        «       fdt        «       fg«      }t        || |d¬«      }t        |g d¢«       y )Nr)  rw   r»   r®  r�   )rß   r  )r°   r¶  rµ   r   r   r   r   r	   )rY  r»  r¾  Ú	cv_scoress       r%   Ú)test_vectorizer_pipeline_cross_validationrÉ  Õ  sj   € äÔ-Ñ-€Dð ˆT”CœÓ'Ñ'¨1¨#´Ô4EÓ0FÑ*FÑF€Fä˜&¤/Ó"3Ð4°u¼i»kÐ6JÐKÓL€Hä ¨$°¸1Ô=€IÜ�y¢/Õ2r'   c                  ó„  — d} t        «       }|j                  | g«      }|j                  dk(  sJ ‚t        d d¬«      }|j	                  | g«      }|j                  dk(  sJ ‚|j
                  |j
                  k(  sJ ‚t        t        j                  |j                  «      t        j                  |j                  «      «       y )Nuî   ÐœÐ°ÑˆÐ¸Ð½Ð½Ð¾Ðµ Ð¾Ð±ÑƒÑ‡ÐµÐ½Ð¸Ðµ â€” Ð¾Ð±ÑˆÐ¸Ñ€Ð½Ñ‹Ð¹ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð´ÐµÐ» Ð¸Ñ�ÐºÑƒÑ�Ñ�Ñ‚Ð²ÐµÐ½Ð½Ð¾Ð³Ð¾ Ð¸Ð½Ñ‚ÐµÐ»Ð»ÐµÐºÑ‚Ð°, Ð¸Ð·ÑƒÑ‡Ð°ÑŽÑ‰Ð¸Ð¹ Ð¼ÐµÑ‚Ð¾Ð´Ñ‹ Ð¿Ð¾Ñ�Ñ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ� Ð°Ð»Ð³Ð¾Ñ€Ð¸Ñ‚Ð¼Ð¾Ð², Ñ�Ð¿Ð¾Ñ�Ð¾Ð±Ð½Ñ‹Ñ… Ð¾Ð±ÑƒÑ‡Ð°Ñ‚ÑŒÑ�Ñ�.)rw   é   F)r  r“  )rw   i   )
r   rÂ   r´   r   r³   rU  r	   r;  r™  rY  )rï   r»   Ú	X_countedÚX_hasheds       r%   Útest_vectorizer_unicoderÎ  â  s¦   € ð	1ð ô Ó€DØ×"Ñ" H :Ó.€IØ�?‰?˜gÒ%Ð%Ð%ä $°uÔ=€DØ�~‰~˜x˜jÓ)€HØ�>‰>˜ZÒ'Ð'Ð'ð �=‰=˜HŸL™LÒ(Ð(Ð(ô ”r—w‘w˜yŸ~™~Ó.´·±¸¿¹Ó0FÕGr'   c                  óä   — ddg} t        | ¬«      }|j                  t        «      }|j                  t        «      }t	        |j                  «       |j                  «       «       |j                  sJ ‚y )Nr¥   rb  r§   )r   rÂ   rÃ   r³   r   r  r<  )r¨   r»   ÚX_1ÚX_2s       r%   Ú+test_tfidf_vectorizer_with_fixed_vocabularyrÒ  ú  sY   € à˜8Ð$€JÜ jÔ1€DØ
×
Ñ
œ]Ó
+€CØ
�.‰.œÓ
'€CÜ˜cŸk™k›m¨S¯[©[«]Ô;Ø×!Ò!Ð!Ñ!r'   c                  óÚ  — t        «       t        d¬«      t        d¬«      t        d¬«      t        «       t        t        ¬«      t        t        ¬«      t        t        ¬«      j	                  t
        «      t        t        ¬	«      j	                  t
        «      t        «       t        t        ¬«      t        «       j	                  t
        «      g} | D ]›  }t        j                  |«      }t        j                  |«      }t        |«      |j                  k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚t        |j                  t
        «      |j                  t
        «      «       Œ� y )
Nr4  r5  T)rŽ  rv   ©r{   rb   )rz   rH   )r   r   r   r4   r¯   r°   r,   r   ÚpickleÚdumpsÚloadsÚtypeÚ	__class__Ú
get_paramsr   rÂ   )Ú	instancesÚorigr$   Úcopys       r%   Útest_pickling_vectorizerrÞ    s  € äÓÜ˜tÔ$Ü Ô&Ü fÔ-ÜÓÜ¤ZÔ0Ü¤Ô.Ü¤ZÔ0×4Ñ4´^ÓDÜ¤lÔ3×7Ñ7¼ÓGÜÓÜ¤Ô.ÜÓ×ÑœnÓ-ð€Ið ò 
ˆÜ�L‰L˜ÓˆÜ�|‰|˜A‹ˆÜ�D‹z˜TŸ^™^Ò+Ð+Ð+Ø�‰Ó  D§O¡OÓ$5Ò5Ð5Ð5Ü$Ø×Ñœ~Ó.Ø×Ñœ~Ó.õ	
ñ
r'   Úfactoryc                 óª   — t        «       } | |«      }d}t        j                  t        j                  |«      «      } ||«      } ||«      }||k(  sJ ‚y)z_Tokenizers cannot be pickled
    https://github.com/scikit-learn/scikit-learn/issues/12833
    rJ   N)r   rÕ  r×  rÖ  )rß  ÚvecÚfunctionrq   Úroundtripped_functionrA   rO  s          r%   Útest_pickling_built_processorsrä    sS   € ô Ó
€CÙ�s‹|€HØG€DÜ"ŸL™L¬¯©°hÓ)?Ó@ÐÙ˜‹~€HÙ" 4Ó(€FØ�XÒÐÑr'   c                  óØ  — t         j                  j                  d«      } t        j                  g d¢«      }t	        dd«      D ]¥  }t        | j                  |dd¬«      «      }t        |¬«      }t        j                  t        j                  |«      «      }|j                  t        «       |j                  t        «       t        |j                  «       |j                  «       «       Œ§ y ©Nr   ra  éd   r‹   F)Úsizer+   r§   )r;  ÚrandomÚRandomStateÚarrayÚranger©   Úchoicer   rÕ  r×  rÖ  r¯   rÃ   r	   rò   )ÚrngÚvocab_wordsÚxÚ	vocab_setrß   Úunpickled_cvs         r%   Ú-test_countvectorizer_vocab_sets_when_picklingró  4  sµ   € ô �)‰)×
Ñ
 Ó
"€CÜ—(‘(ò
	
ó€Kô �1�c‹]ò 
ˆÜ˜Ÿ
™
 ;°QÀ˜
ÓFÓGˆ	Ü¨	Ô2ˆÜ—|‘|¤F§L¡L°Ó$4Ó5ˆØ
�‰Œ}ÔØ×ÑœÔ'ÜØ×$Ñ$Ó&¨×(JÑ(JÓ(Lõ	
ñ
r'   c                  ó  — t         j                  j                  d«      } t        j                  g d¢«      }t	        dd«      D ]¿  }t        «       }| j                  |dd¬«      }t	        dd«      D ]
  }||||   <   Œ t        |¬«      }t        j                  t        j                  |«      «      }|j                  t        «       |j                  t        «       t        |j                  «       |j                  «       «       ŒÁ y ræ  )r;  ré  rê  rë  rì  r«   rí  r   rÕ  r×  rÖ  r¯   rÃ   r	   rò   )rî  rï  rð  Ú
vocab_dictrÜ   Úyrß   rò  s           r%   Ú.test_countvectorizer_vocab_dicts_when_picklingr÷  P  sØ   € Ü
�)‰)×
Ñ
 Ó
"€CÜ—(‘(ò
	
ó€Kô �1�c‹]ò 
ˆÜ“Vˆ
Ø—
‘
˜;¨Q¸�
Ó>ˆÜ�q˜!“ò 	%ˆAØ#$ˆJ�u˜Q‘xÒ ð	%ä¨
Ô3ˆÜ—|‘|¤F§L¡L°Ó$4Ó5ˆØ
�‰Œ}ÔØ×ÑœÔ'ÜØ×$Ñ$Ó&¨×(JÑ(JÓ(Lõ	
ñ
r'   c                  ó„  — t        «       j                  t        «      } t        «       j	                  | «      }t        j                  |«      }t        j                  |«      }t        |«      |j                  k(  sJ ‚t        |j                  | «      j                  «       |j                  | «      j                  «       «       y r!   )r   rÂ   r°   r   r¯   rÕ  rÖ  r×  rØ  rÙ  r	   r  )r¼   rÜ  r$   rÝ  s       r%   Útest_pickling_transformerrù  m  s‹   € ÜÓ×'Ñ'¬Ó7€AÜÓ×!Ñ! !Ó$€DÜ�‰�TÓ€AÜ�<‰<˜‹?€DÜ�‹:˜Ÿ™Ò'Ð'Ð'Ü�t×)Ñ)¨!Ó,×4Ñ4Ó6¸×8JÑ8JÈ1Ó8M×8UÑ8UÓ8WÕXr'   c                  ó2  — t        «       j                  t        «      } t        «       j	                  | «      }t        «       }|j
                  |_        t        |j                  | «      j                  «       |j                  | «      j                  «       «       y r!   )	r   rÂ   r°   r   r¯   r6  r	   r³   r  )r¼   rÜ  rÝ  s      r%   Útest_transformer_idf_setterrû  v  si   € ÜÓ×'Ñ'¬Ó7€AÜÓ×!Ñ! !Ó$€DÜÓ€DØ—	‘	€D„IÜ�t—~‘~ aÓ(×0Ñ0Ó2°D·N±NÀ1Ó4E×4MÑ4MÓ4OÕPr'   c                  óæ  — t        d¬«      } | j                  t        «       t        | j                  d¬«      }| j                  |_        t        |j                  t        «      j                  «       | j                  t        «      j                  «       «       t        | j                  d¬«      }d}t        j                  t        |¬«      5  | j                  |_        d d d «       y # 1 sw Y   y xY w)NTr7  ©r¨   r&  Fz+`idf_` cannot be set when `user_idf=False`.rÉ   )r   r¯   r°   r²   r6  r	   r³   r  r„   r…   rÍ   )rÜ  rÝ  rù   s      r%   Útest_tfidf_vectorizer_setterrþ  ~  s®   € Ü 4Ô(€DØ‡H�HŒ^ÔÜ d×&6Ñ&6ÀÔE€DØ—	‘	€D„IÜØ�‰”~Ó&×.Ñ.Ó0Ø�‰”~Ó&×.Ñ.Ó0ôô
  d×&6Ñ&6ÀÔF€DØ;€GÜ	�‰”z¨Ô	1ñ Ø—I‘IˆŒ	÷÷ ñ ús   ÃC'Ã'C0c                  ó&  — t        d¬«      } | j                  t        «       t        | j                  d¬«      }t	        | j
                  «      }dg|dz   z  }t        j                  t        «      5  t        |d|«       d d d «       y # 1 sw Y   y xY w)NTr7  rý  rä   rw   r6  )
r   r¯   r°   r²   rµ   r6  r„   r…   rÍ   Úsetattr)r»   rÝ  Úexpected_idf_lenÚinvalid_idfs       r%   Ú%test_tfidfvectorizer_invalid_idf_attrr  Ž  sw   € Ü 4Ô(€DØ‡H�HŒ^ÔÜ d×&6Ñ&6ÀÔE€DÜ˜4Ÿ9™9“~ÐØ�%Ð+¨aÑ/Ñ0€KÜ	�‰”zÓ	"ñ +Ü��f˜kÔ*÷+÷ +ñ +ús   Á0BÂBc                  ó¢   — g d¢} t        | ¬«      }t        j                  t        «      5  |j	                  g «       d d d «       y # 1 sw Y   y xY w)N)r@   r  r  r@   r@   r§   rø   rÒ   s     r%   Útest_non_unique_vocabr  ˜  s=   € Ú%€EÜ eÔ,€DÜ	�‰”zÓ	"ñ Ø�‰�Œ÷÷ ñ ús   ªAÁAc                  ó€   — d} t         }d„ }t        j                  || ¬«      5   |«        d d d «       y # 1 sw Y   y xY w)Nz?np.nan is an invalid document, expected byte or unicode string.c                  ó\   — t        «       } | j                  dt        j                  dg«       y )Núhello worldúhello hello)r   rÂ   r;  Únan)Úhvs    r%   Úfuncz0test_hashingvectorizer_nan_in_docs.<locals>.func¥  s#   € ÜÓ ˆØ
×Ñ˜-¬¯©°Ð?Õ@r'   rÉ   )rÍ   r„   r…   )r  Ú	exceptionr  s      r%   Ú"test_hashingvectorizer_nan_in_docsr  Ÿ  s?   € ð P€GÜ€IòAô 
�‰�y¨Ô	0ñ ÙŒ÷÷ ñ ús   £4´=c                  ó0  — t        ddd ¬«      } | j                  sJ ‚| j                  ddg«      j                  «       }t	        |j                  «       g d¢«       | j                  ddg«      j                  «       }t	        |j                  «       g d¢«       y )NTF)rŽ  r&  r  r  r	  )rw   rw   rw   r   )r   rŽ  rÂ   r  r	   Úravelr³   )rº   r¼   ré   s      r%   Útest_tfidfvectorizer_binaryr  ­  ss   € ä˜t¨U¸Ô>€AØ�8Š8€Oˆ8à	�‰˜¨Ð6Ó7×?Ñ?ÓA€AÜ�q—w‘w“y¢,Ô/Ø	
�‰�m ]Ð3Ó	4×	<Ñ	<Ó	>€BÜ�r—x‘x“z¢<Õ0r'   c                  óš   — t        d¬«      } | j                  t        «       t        | j                  | j
                  j                  «       y )NTr7  )r   r¯   r°   r   r6  rR  )r»   s    r%   Útest_tfidfvectorizer_export_idfr  ¸  s0   € Ü 4Ô(€DØ‡H�HŒ^ÔÜ˜dŸi™i¨¯©×)9Ñ)9Õ:r'   c                  ó¾   — t        dg¬«      } t        | «      }| j                  t        «       |j                  t        «       |j                  | j                  k(  sJ ‚y )Nr0  r§   )r   r   r¯   rÃ   r²   )Ú
vect_vocabÚvect_vocab_clones     r%   Útest_vectorizer_vocab_cloner  ¾  sM   € Ü ¨U¨GÔ4€JÜ˜ZÓ(ÐØ‡N�N”=Ô!Ø×ÑœÔ'Ø×'Ñ'¨:×+AÑ+AÒAÐAÑAr'   c                 óÂ  — d} | «       }t        j                  t        |¬«      5  |j                  d«       d d d «       t        j                  t        |¬«      5  |j	                  d«       d d d «       |j	                  ddg«       t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   Œ‡xY w# 1 sw Y   Œ^xY w# 1 sw Y   y xY w)NzBIterable over raw text documents expected, string object received.rÉ   zhello world!ú	some textzsome other text)r„   r…   rÍ   rÂ   r¯   r³   )rE   r  rá  s      r%   Ú&test_vectorizer_string_object_as_inputr  Æ  s¹   € ð S€GÙ
‹,€Cä	�‰”z¨Ô	1ñ *Ø×Ñ˜.Ô)÷*ô 
�‰”z¨Ô	1ñ  Ø�‰�Ô÷ à‡G�Gˆ[Ð+Ð,Ô-ä	�‰”z¨Ô	1ñ &Ø�‰�nÔ%÷&ð &÷*ð *ú÷ ð  ú÷&ð &ús#   ¥B=ÁC	Â"CÂ=CÃ	CÃCÚX_dtypec                 óž   — t        j                  dd| d¬«      }t        «       j                  |«      }|j                  |j                  k(  sJ ‚y ©Né
   é N  é*   ©rW  r­  )r
   Úrandr   rÂ   rW  )r  r¼   ÚX_transs      r%   Útest_tfidf_transformer_typer$  Ø  s?   € ä�‰�B˜ W¸2Ô>€AÜÓ ×.Ñ.¨qÓ1€GØ�=‰=˜AŸG™GÒ#Ð#Ñ#r'   zcsc_container, csr_containerc                 ó$  — t        j                  ddt        j                  d¬«      } | |«      } ||«      }t	        «       j                  |«      }t	        «       j                  |«      }t        ||«       |j                  |j                  k(  sJ ‚y r  )r
   r"  r;  r”  r   rÂ   r   rœ  )Úcsc_containerÚcsr_containerr¼   ÚX_cscÚX_csrÚX_trans_cscÚX_trans_csrs          r%   Útest_tfidf_transformer_sparser,  ß  sz   € ô 	�‰�B˜¤R§Z¡Z¸bÔA€AÙ˜!Ó€EÙ˜!Ó€Eä"Ó$×2Ñ2°5Ó9€KÜ"Ó$×2Ñ2°5Ó9€KÜ  ¨kÔ:Ø×Ñ ×!3Ñ!3Ò3Ð3Ñ3r'   z0vectorizer_dtype, output_dtype, warning_expectedTFc                 ó   — t        j                  g d¢«      }t        | ¬«      }d}|r6t        j                  t
        |¬«      5  |j                  |«      }d d d «       nHt        j                  «       5  t        j                  dt
        «       |j                  |«      }d d d «       j                  |k(  sJ ‚y # 1 sw Y   ŒxY w# 1 sw Y   Œ'xY w)N)ÚnumpyÚscipyÚsklearn©rW  z'dtype' should be used.rÉ   r  )r;  rë  r   r„   r  r  rÂ   r  r  r  rW  )Úvectorizer_dtypeÚoutput_dtypeÚwarning_expectedr¼   rô   Úwarning_msg_matchÚX_idfs          r%   Útest_tfidf_vectorizer_typer7  í  s·   € ô 	�‰Ò.Ó/€AÜ Ð'7Ô8€Jà1ÐÙÜ�\‰\œ+Ð->Ô?ñ 	0Ø×,Ñ,¨QÓ/ˆE÷	0ð 	0ô ×$Ñ$Ó&ñ 	0Ü×!Ñ! '¬;Ô7Ø×,Ñ,¨QÓ/ˆE÷	0ð �;‰;˜,Ò&Ð&Ñ&÷	0ð 	0ú÷	0ð 	0ús   ÁB8Á2,CÂ8CÃCrá  )rx   rw   rÔ  c                 óü  — | j                   }t        j                  d|› d�«      }t        j                  t
        |¬«      5  | j                  dg«       d d d «       t        j                  t
        |¬«      5  | j                  dg«       d d d «       t        | t        «      r7t        j                  t
        |¬«      5  | j                  dg«       d d d «       y y # 1 sw Y   Œ‡xY w# 1 sw Y   Œ]xY w# 1 sw Y   y xY w)NzInvalid value for ngram_range=z/ lower boundary larger than the upper boundary.rÉ   zgood news everyone)r{   ÚreÚescaper„   r…   rÍ   r¯   rÂ   r±   r   r³   )rá  Úinvalid_ranger  s      r%   Ú$test_vectorizers_invalid_ngram_ranger<    sâ   € ð —O‘O€MÜ�i‰iØ
(¨¨ð 89ð 	9ó€Gô
 
�‰”z¨Ô	1ñ (Ø�‰Ð%Ð&Ô'÷(ô 
�‰”z¨Ô	1ñ 2Ø×ÑÐ/Ð0Ô1÷2ô �#Ô(Ô)Ü�]‰]œ:¨WÔ5ñ 	2Ø�M‰MÐ/Ð0Ô1÷	2ð 	2ð *÷(ð (ú÷2ð 2ú÷	2ð 	2ús$   ÁCÁ7C&Â=C2ÃC#Ã&C/Ã2C;c                 óˆ   — | j                  «       }| j                  «       }| j                  «       }| j                  |||«      S r!   )rÞ   Úbuild_tokenizerr=  Ú_check_stop_words_consistency)Ú	estimatorr×   ÚtokenizeÚ
preprocesss       r%   r?  r?  !  sA   € Ø×)Ñ)Ó+€JØ×(Ñ(Ó*€HØ×-Ñ-Ó/€JØ×2Ñ2°:¸zÈ8ÓTÐTr'   c                  óü  — d} d| z  }t        «       t        «       t        «       fD �]#  }|j                  g d¢¬«       t	        j
                  t        |¬«      5  |j                  dg«       d d d «       |`t	        j
                  t        |¬«      5  t        |«      du sJ ‚	 d d d «       t        j                  «       5  t        j                  dt        «       |j                  dg«       d d d «       t        |«      �J ‚|j                  g d	¢¬«       t	        j
                  t        |¬«      5  |j                  dg«       d d d «       �Œ& y # 1 sw Y   ŒãxY w# 1 sw Y   Œ¹xY w# 1 sw Y   Œ|xY w# 1 sw Y   �ŒVxY w)
Nz\['and', 'll', 've'\]z}Your stop_words may be inconsistent with your preprocessing. Tokenizing the stop words generated tokens %s not in stop_words.)úyou'veÚyouúyou'llÚANDrÖ   rÉ   r  Fr  )rD  rE  rF  ÚblahrG  )r   r   r   rÝ   r„   r  r  rÂ   Ú_stop_words_idr?  r  r  r  )Úlstrr  rá  s      r%   Ú'test_vectorizer_stop_words_inconsistentrK  (  sZ  € Ø#€Dð	'à)-ñ	.ð ô
  Ó!¤?Ó#4Ô6GÓ6IÐJó /ˆØ�‰Ò"DˆÔEÜ�\‰\œ+¨WÔ5ñ 	/Ø×Ñ˜}˜oÔ.÷	/ð ÐÜ�\‰\œ+¨WÔ5ñ 	?Ü0°Ó5¸Ñ>Ð>Ñ>÷	?ô ×$Ñ$Ó&ñ 	/Ü×!Ñ! '¬;Ô7Ø×Ñ˜}˜oÔ.÷	/ô -¨SÓ1Ð9Ð9Ð9ð 	�‰Ò"LˆÔMÜ�\‰\œ+¨WÔ5ñ 	/Ø×Ñ˜}˜oÔ.÷	/ñ 	/ñ#/÷	/ð 	/ú÷	?ð 	?ú÷	/ð 	/ú÷	/ñ 	/ús0   ÁEÂEÂ=-E%Ä.E1ÅE	ÅE"	Å%E.	Å1E;	r'  c                 óJ  —  | dt         j                  ¬«      }t         j                  }|j                  j                  |«      |_        |j                  j                  |«      |_        ddddœ}t        «       j                  ||«      }||j                  j                  k(  sJ ‚y)zò
    Check that CountVectorizer._sort_features preserves the dtype of its sparse
    feature matrix.

    This test is skipped on 32bit platforms, see:
        https://github.com/scikit-learn/scikit-learn/pull/11295
    for more details.
    )r‹   r‹   r1  r   rw   rx   )zscikit-learnrV   zgreat!N)r;  Úint64ÚindicesÚastypeÚindptrr   Ú_sort_featuresrW  )r'  r¼   ÚINDICES_DTYPEr¨   ÚXss        r%   Ú7test_countvectorizer_sort_features_64bit_sparse_indicesrT  D  s‚   € ñ 	�f¤B§H¡HÔ-€Aô —H‘H€MØ—	‘	× Ñ  Ó/€A„IØ�x‰x�‰˜}Ó-€A„Hà"#¨1¸Ñ:€Jä	Ó	×	)Ñ	)¨!¨ZÓ	8€Bà˜BŸJ™J×,Ñ,Ò,Ð,Ñ,r'   Ú	Estimatorc                 ó.  — ddig} | «       }t        |«      du sJ ‚ | d„ dg¬«      }t        |«      dk(  sJ ‚t        |«      �J ‚|j                  |«        G d„ d	| «      } |dg¬
«      }t        |«      dk(  sJ ‚ | d„ dg¬«      }t        |«      du sJ ‚y )Nrq   r  Tc                 ó   — | d   S ©Nrq   r3   ©rð  s    r%   ú<lambda>z?test_stop_word_validation_custom_preprocessor.<locals>.<lambda>g  s
   € ¨1¨V©9€ r'   Úand)rc   r×   r  c                   ó   — e Zd Zd„ Zy)úFtest_stop_word_validation_custom_preprocessor.<locals>.CustomEstimatorc                 ó   — d„ S )Nc                 ó   — | d   S rX  r3   rY  s    r%   rZ  zktest_stop_word_validation_custom_preprocessor.<locals>.CustomEstimator.build_preprocessor.<locals>.<lambda>o  s
   € ˜Q˜v™Y€ r'   r3   )Úselfs    r%   r=  zYtest_stop_word_validation_custom_preprocessor.<locals>.CustomEstimator.build_preprocessorn  s   € Ù&Ð&r'   N)Ú__name__Ú
__module__Ú__qualname__r=  r3   r'   r%   ÚCustomEstimatorr]  m  s   „ ó	'r'   rd  rÖ   c                 óJ   — t        j                  d«      j                  | «      S )Nz\w{1,})r9  ÚcompileÚfindall©r¡  s    r%   rZ  z?test_stop_word_validation_custom_preprocessor.<locals>.<lambda>u  s   € œbŸj™j¨Ó3×;Ñ;¸CÓ@€ r'   )rn   r×   )r?  rÂ   )rU  rY  rá  rd  s       r%   Ú-test_stop_word_validation_custom_preprocessorri  ^  s¿   € ð �[Ð!Ð"€Dá
‹+€CÜ(¨Ó-°Ñ5Ð5Ð5á
Ñ!4À%ÀÔ
I€CÜ(¨Ó-°Ò8Ð8Ð8ä(¨Ó-Ð5Ð5Ð5Ø×Ñ�dÔô'˜)ô 'ñ  e WÔ
-€CÜ(¨Ó-°Ò8Ð8Ð8á
Ù@ÈeÈWô€Cô )¨Ó-°Ñ5Ð5Ñ5r'   zinput_type, err_type, err_msgÚfilenamer>   r\   z$'str' object has no attribute 'read'c                 ó–   — dg}t        j                  ||¬«      5   | d„ |¬«      j                  |«       d d d «       y # 1 sw Y   y xY w)Nú"this is text, not file or filenamerÉ   c                 ó"   — | j                  «       S r!   r.   rY  s    r%   rZ  z.test_callable_analyzer_error.<locals>.<lambda>‡  s   €  Q§W¡W£Y€ r'   ©rz   r]   )r„   r…   rÂ   )rU  Ú
input_typeÚerr_typerù   rY  s        r%   Útest_callable_analyzer_errorrq  z  sJ   € ð 1Ð1€DÜ	�‰�x wÔ	/ñ VÙÑ.°jÔA×OÑOÐPTÔU÷V÷ Vñ Vús	   ›?¿Arz   c                 ó   — t        | d«      S )NÚr)Úopenrh  s    r%   rZ  rZ  “  s   € œT # s›^€ r'   c                 ó"   — | j                  «       S r!   )Úreadrh  s    r%   rZ  rZ  “  s   € ¸¿¹»€ r'   ro  c                 ó¤   — dg}t        j                  t        t        f«      5   | ||¬«      j	                  |«       d d d «       y # 1 sw Y   y xY w)Nrl  rn  )r„   r…   ÚFileNotFoundErrorÚAttributeErrorrÂ   )rU  rz   ro  rY  s       r%   Ú&test_callable_analyzer_change_behaviorrz  Š  sL   € ð 1Ð1€DÜ	�‰Ô)¬>Ð:Ó	;ñ KÙ˜8¨:Ô6×DÑDÀTÔJ÷K÷ Kñ Kús   £AÁAc                 óâ   — d„ }| j                  d«      }|j                  d«       t        j                  t        d¬«      5   ||d¬«      j                  |g«       d d d «       y # 1 sw Y   y xY w)Nc                 ó   — t        d«      ‚)NÚtesting)Ú	Exceptionrh  s    r%   rz   z6test_callable_analyzer_reraise_error.<locals>.analyzer¡  s   € Ü˜	Ó"Ð"r'   zfile.txtzsample content
r}  rÉ   r\   rn  )ÚjoinÚwriter„   r…   r~  rÂ   )ÚtmpdirrU  rz   Úfs       r%   Ú$test_callable_analyzer_reraise_errorrƒ  œ  sb   € ò
#ð 	�‰�JÓ€AØ‡G�GÐÔä	�‰”y¨	Ô	2ñ FÙ˜8¨6Ô2×@Ñ@À!ÀÔE÷F÷ Fñ Fús   ÁA%Á%A.zjstop_words, tokenizer, preprocessor, ngram_range, token_pattern,analyzer, unused_name, ovrd_name, ovrd_msgrD  rF  r¯  r   z'stop_words'ú
'analyzer'ú	!= 'word'c                 ó"   — | j                  «       S r!   r.   r#   s    r%   rZ  rZ  Á  ó   € �a—g‘g“i€ r'   z'tokenizer'c                 ó"   — | j                  «       S r!   r.   r#   s    r%   rZ  rZ  Ì  r‡  r'   ú\w+rt   ú'token_pattern'zis not Nonec                 ó"   — | j                  «       S r!   ©r"   r#   s    r%   rZ  rZ  Ø  r‡  r'   c                 ó"   — | j                  «       S r!   rŒ  r#   s    r%   rZ  rZ  Û  r‡  r'   z'preprocessor'zis callablerv   c                 ó"   — | j                  «       S r!   rŒ  r#   s    r%   rZ  rZ  æ  r‡  r'   z'ngram_range')	NNNr¯  r‰  r   rŠ  r„  r…  c
                 óä   — t         }
 | «       }|j                  ||||||¬«       d|›d|›d|	›�}t        j                  t        |¬«      5  |j                  |
«       d d d «       y # 1 sw Y   y xY w)N)r×   rn   rc   r{   rî   rz   zThe parameter z will not be used since ú rÉ   )r°   rÝ   r„   r  r  r¯   )rE   r×   rn   rc   r{   rî   rz   Úunused_nameÚ	ovrd_nameÚovrd_msgr>  r»   rÎ   s                r%   Útest_unused_parameters_warnr”  «  sw   € ôr  €Já‹<€DØ‡O�OØØØ!ØØ#Øð õ ò 	ÚÙð€Cô
 
�‰”k¨Ô	-ñ Ø�‰�Ô÷÷ ñ ús   ÁA&Á&A/zVectorizer, Xrw   rx   )rã   Úbarr�   )rã   Úbazc                 ól   —  | «       }t        |d«      rJ ‚|j                  |«       t        |d«      rJ ‚y )NÚn_features_in_)r:  r¯   )rE   r¼   rô   s      r%   Útest_n_features_inr™    s<   € ñ “€JÜ�zÐ#3Ô4Ð4Ð4Ø‡N�N�1ÔÜ�zÐ#3Ô4Ð4Ð4Ð4r'   c                  óž   — t        d¬«      } | j                  ddg«      j                  }| j                  ddg«      j                  }||k(  sJ ‚y )Nrw   rr  ÚhelloÚworld)r   r¯   r²   )rá  Úvocab1Úvocab2s      r%   Ú)test_tie_breaking_sample_order_invariancerŸ  '  sN   € ô  qÔ
)€CØ�W‰W�g˜wÐ'Ó(×4Ñ4€FØ�W‰W�g˜wÐ'Ó(×4Ñ4€FØ�VÒÐÑr'   c                  ój   — t        dd¬«      } | j                  dg«      j                  }|d   dk\  sJ ‚y )Ni@B )rx   r�   )rV  r{   z22pcs efuturer   )r   r³   rN  )ÚhashingrN  s     r%   Ú2test_nonnegative_hashing_vectorizer_result_indicesr¢  0  s7   € ä¨7ÀÔG€GØ×Ñ Ð 1Ó2×:Ñ:€GØ�1‰:˜Š?Ð‰?r'   c                 ó.   —  | «       }t        |d«      rJ ‚y)z0Check that vectorizers do not define set_output.Ú
set_outputN)r:  )rU  r�   s     r%   Ú'test_vectorizers_do_not_have_set_outputr¥  7  s   € ñ
 ‹+€CÜ�s˜LÔ)Ð)Ð)Ð)r'   c                 ó¶  — t        j                  ddt        j                  d¬«      } | |«      }|j	                  «       }t        «       j                  |«      }|j                  |d¬«      }t        ||«       ||usJ ‚|j                  |d¬«      }t        |«      |u r||u s~J ‚||usJ ‚|j                  |j                  u sJ ‚|j                  j                  |j                  j                  u sJ ‚|j                  j                  |j                  j                  u sJ ‚t        j                  t         «      5  t        ||«       ddd«       y# 1 sw Y   yxY w)	zJCheck the behaviour of TfidfTransformer.transform with the copy parameter.r  r  r   r!  T)rÝ  FN)r
   r"  r;  r”  rÝ  r   r¯   r³   r   r   rP  rN  ÚbaserY  r„   r…   ÚAssertionError)r'  r¼   r)  ÚX_csr_originalÚtransformerÚX_transforms         r%   Útest_tfidf_transformer_copyr¬  @  s<  € ô 	�‰�B˜¤R§Z¡Z¸bÔA€AÙ˜!Ó€Eð —Z‘Z“\€Nä"Ó$×(Ñ(¨Ó/€Kà×'Ñ'¨°DÐ'Ó9€KÜ  ¨Ô7Ø˜eÑ#Ð#Ð#à×'Ñ'¨°EÐ'Ó:€Kô ˜EÓ" eÑ+Ø˜eÑ#Ð#Ð#à %Ñ'Ð'Ð'Ø×!Ñ! U§\¡\Ñ1Ð1Ð1Ø×"Ñ"×'Ñ'¨5¯=©=×+=Ñ+=Ñ=Ð=Ð=Ø×Ñ×$Ñ$¨¯
©
¯©Ñ7Ð7Ð7ä	�‰”~Ó	&ñ <Ü$ U¨NÔ;÷<÷ <ñ <ús   Ä9EÅErW  c                 óà   — t        d«      D �cg c]  }t        t        j                  «       «      ‘Œ! }}t	        | ¬«      j                  |«      }|j                  j                  | k(  sJ ‚yc c}w )z˜Check that `idf_` has the same dtype as the input data.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/30016
    i † r1  N)rì  ÚstrÚuuidÚuuid4r   r¯   r6  rW  )rW  Úir¼   rô   s       r%   Ú(test_tfidf_vectorizer_preserve_dtype_idfr²  ^  sX   € ô %*¨'£NÖ3˜qŒŒT�Z‰Z‹\Õ	Ð3€AÐ3Ü  uÔ-×1Ñ1°!Ó4€JØ�?‰?× Ñ  EÒ)Ð)Ñ)ùò 	4s   Ž$A+c                  óT   — t        «       } | j                  «       }|j                  rJ ‚y)z7Test that HashingVectorizer has requires_fit=False tag.N)r   Ú__sklearn_tags__Úrequires_fit)rô   Útagss     r%   Ú(test_hashing_vectorizer_requires_fit_tagr·  j  s*   € ä"Ó$€JØ×&Ñ&Ó(€DØ× Ò Ð Ð Ð r'   c                  óh   — t        d¬«      } ddg}| j                  |«      }|j                  dk(  sJ ‚y)z:Test that HashingVectorizer can transform without fitting.r  )rV  zThis is testzAnother test)rx   r  N)r   r³   r´   )rô   ró   rO  s      r%   Ú-test_hashing_vectorizer_transform_without_fitr¹  q  s8   € ä"¨bÔ1€JØ˜nÐ-€FØ×!Ñ! &Ó)€FØ�<‰<˜7Ò"Ð"Ñ"r'   )�rÕ  r9  r¯  r  Úcollectionsr   Úcollections.abcr   Ú	functoolsr   Úior   Ú	itertoolsr   r.  r;  r„   Únumpy.testingr   r	   r/  r
   Úsklearn.baser   Úsklearn.feature_extraction.textr   r   r   r   r   r   r   r   Úsklearn.model_selectionr   r   r   Úsklearn.pipeliner   Úsklearn.svmr   Úsklearn.utilsr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r   r   r°   r¶  rÃ   r&   r,   r0   r4   rB   rD   ÚmarkÚparametrizerr   r|   r‰   r™   rž   r¢   r¾   rÇ   rÏ   rÓ   rá   ræ   rê   rö   rú   r  r  r  Úxfailr#  r'  rP  rS  r_  rk  rp  r~  r†  r‰  r‘  r•  r©  rÃ  rÆ  rÉ  rÎ  rÒ  rÞ  ro   r=  r>  rä  ró  r÷  rù  rû  rþ  r  r  r  r  r  r  r  r�  r”  r$  r,  Úint32rM  r7  r<  r?  rK  rT  ri  rx  ry  rq  Úparamrz  rƒ  r”  r™  rŸ  r¢  r¥  r¬  r²  r·  r¹  r3   r'   r%   ú<module>rÍ     sH  ðÛ Û 	Û Û Ý #Ý #Ý Ý Ý ã Û ß GÝ å ÷	÷ 	ó 	÷ TÑ SÝ %Ý !Ý .÷ñ ÷
 IÑ Hð€ðÐ ð Ð!2Ñ2€ò,ò òò$ò!0òH.ð* ‡�×Ñ˜¨Ð9JÐ'KÓLñ: ó Mð: òz ò<ò&&ò4&ò()ò.&ò*
+ò&ò$ò0òEò&ò4ò&ò&)ò*<òð  ‡�×ÑØð	Mð ó ñ&óð&ò&òdòN5ò:#>òLD/ðN ‡�×Ñ˜¨¸Ð'IÓJñ>ó Kð>ò:ò4-ò$-ò$(ò(!ð4 ‡�×Ñ˜¨¸Ð'IÓJñ<ó Kð<ò>!1òH$1òN
3òHò0"ò
ð6 ‡�×ÑØà×&Ñ&Ø×*Ñ*Ø×'Ñ'ðóñ
óð
ò
ò8
ò:YòQòò +òòò1ò;òBð ‡�×ÑØ�? OÐ5FÐGóñ&óð&ð ‡�×Ñ˜ R§Z¡Z°·±Ð$<Ó=ñ$ó >ð$ð ‡�×ÑØ"¡G¨N¸NÓ$Kóñ4óð4ð ‡�×ÑØ6à	�‰�2—:‘:˜tÐ$Ø	�‰�2—:‘:˜tÐ$Ø	�‰�R—Z‘Z Ð'Ø	�‰�R—Z‘Z Ð'ð	óñ'óð'ð ‡�×ÑØ	á fÔ-Ù FÔ+Ù FÔ+ðóñ2óð2ò(Uò/ð8 Ø‡�×Ñ˜¨.Ó9ñ-ó :ó ð-ð0 ‡�×ÑØ�/ ?Ð4EÐFóñ6óð6ð2 ‡�×ÑØ�/ ?Ð4EÐFóð ‡�×ÑØ#à	Ð&¨Ð+Ø	�Ð!GÐHðóñVóóðVð ‡�×ÑØàØØˆ�ŠÐ&Ó'ðóð ‡�×ÑØÑ+Ñ-CÐDóð ‡�×Ñ˜¨°
Ð';Ó<ñKó =óóðKð ‡�×ÑØ�/ ?Ð4EÐFóñ	Fóð	Fð ‡�×ÑØ�?Ð$5°ÐGóð ‡�×Ñð	5ð
 �xÐ ØØØØØØØØð
	
ð ÙØØØØØØØð
	
ð ÙØØØØØØØð
	
ð ØÙØØÙØØØð
	
ð ØØØØÙØØØð
	
ð
	
ðqCóIñTóUIóðZð@ ‡�×ÑØà	 Q¨qÑ1¸1ÀQÑ3GÐHÐIØ	˜.Ð)ðóñ5óð5òòð ‡�×ÑØ�/ ?Ð4DÐFWÐXóñ*óð*ð ‡�×Ñ˜¨.Ó9ñ<ó :ð<ð: ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñ*ó <ð*ò!ó#r'   