
    i,                        d dl Z d dlmZmZ ddlmZ dg dfdg dfd	g d
fdg dfdg dfgZdg dfdg dfd	g dfdg dfdg dfgZdg dfdg dfd	g dfdg dfdg dfgZdddgfddgfgZ	 edddddd d!       ed"ddd"d"d#d!      gZ
 ed$d%dd$d$d&d!       ed'd%dd'd'd(d!       edddddd d!       ed"ddd"d"d#d!      gZ ed$d%dd$d$d&d!       ed'd%dd'd'd(d!       ed)ddd)d)d*d!      gZd+dde
ggeeggfgZe j                  j                  d,      d-        Ze j                  j#                  d.e      d/        Ze j                  j#                  d0e      d1        Ze j                  j#                  d2e      d3        Ze j                  j+                  d45      e j                  j#                  d6e	      d7               Zd8 Ze j                  j#                  d9e      d:        Ze j                  j#                  d;g d<      d=        Ze j                  j#                  d>e      d?        Ze j                  j#                  d@dAdBgg dCgdDgfdEgdFgdGgdHgffdIg g g fdJgdKgdLgffg      dM        ZdN Zy)O    N)DetailedTokenJapanese   )NAUGHTY_STRINGSu   日本語だよ)u   日本u   語u   だ   よu0   東京タワーの近くに住んでいます。)
u   東京u	   タワー   のu   近く   にu   住ん   でu   いu   ます   。u   吾輩は猫である。)u   吾輩u   はu   猫r
   u   あるr   u%   月に代わって、お仕置きよ!)	u   月r	   u	   代わっu   てu   、u   おu	   仕置きr   !u$   すもももももももものうち)u	   すもも   も   ももr   r   r   u   うち)u   名詞-固有名詞-地名-国   名詞-普通名詞-一般	   助動詞   助詞-終助詞)
u!   名詞-固有名詞-地名-一般r      助詞-格助詞    名詞-普通名詞-副詞可能r      動詞-一般   助詞-接続助詞   動詞-非自立可能r      補助記号-句点)u	   代名詞   助詞-係助詞r   r   r   r   )	u#   名詞-普通名詞-助数詞可能r   r   r   u   補助記号-読点u	   接頭辞r   r   r   )r   r   r   r   r   r   r   )PROPNNOUNAUXPART)
r   r   ADPr   r   VERBSCONJr   r   PUNCT)PRONr   r   r   r   r    )	r   r   r   r   r    r   r   r   r    )r   r   r   r   r   r   r   u   あれ。これ。u	   あれ。u	   これ。u<   「伝染るんです。」という漫画があります。u   委員r    u	   イイン)surfacetaginflemmanormreading
sub_tokensu   会u   カイu   選挙u    名詞-普通名詞-サ変可能u   センキョu   管理u	   カンリu	   委員会u   イインカイ   選挙管理委員会iU  c                  x    	 t               }   d      }|sJ y# t        $ r t        j                          Y ,w xY w)zTest that `nlp` doesn't fail.u   pythonが大好きですN)r   ImportErrorpytestskip)nlpdocs     s/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/lang/ja/test_tokenizer.pytest_issue2901r2   :   s<    j (
)CJ3	  s   
 99ztext,expected_tokensc                 Z     | |      D cg c]  }|j                    }}||k(  sJ y c c}w N)text)ja_tokenizerr5   expected_tokenstokentokenss        r1   test_ja_tokenizerr:   F   s1    &24&89Uejj9F9_$$$ :   (ztext,expected_tagsc                 Z     | |      D cg c]  }|j                    }}||k(  sJ y c c}w r4   )tag_)r6   r5   expected_tagsr8   tagss        r1   test_ja_tokenizer_tagsr@   L   s1    $0$675EJJ7D7=    8r;   ztext,expected_posc                 Z     | |      D cg c]  }|j                    }}||k(  sJ y c c}w r4   )pos_)r6   r5   expected_posr8   poss        r1   test_ja_tokenizer_posrE   R   s1    #/#5
6%5::
6C
6, 7r;   z+sentence segmentation in tokenizer is buggy)reasonztext,expected_sentsc                 l     | |      j                   D cg c]  }t        |       }}||k(  sJ y c c}w r4   )sentsstr)r6   r5   expected_sentssentrH   s        r1   test_ja_tokenizer_sentsrL   X   s9     $0#5#;#;<4SY<E<N""" =s   1c                 <     | d      }|d   j                   dk(  sJ y )NzI   like cheese.   z  )orth_)r6   r9   s     r1   test_ja_tokenizer_extra_spacesrP   _   s#    ,-F!9??d"""    r5   c                 6     | |      }|j                   |k(  sJ y r4   )text_with_ws)r6   r5   r9   s      r1   !test_ja_tokenizer_naughty_stringsrT   e   s     $F$&&&rQ   ztext,len_a,len_b,len_c))r*      r   rN   )u   客室乗務員r      rN   )u   労働者協同組合rU   r   rN   )u   機能性食品r   rV   rN   c                 V   t        j                  ddddiii      }t        j                  ddddiii      }t        j                  ddddiii      }t         | |            |k(  sJ t         ||            |k(  sJ t         ||            |k(  sJ t         ||            |k(  sJ y )Nr/   	tokenizer
split_modeABC)r   from_configlen)r6   r5   len_alen_blen_cnlp_anlp_bnlp_cs           r1   test_ja_tokenizer_split_modesre   k   s       %+c7J)K!LME  %+c7J)K!LME  %+c7J)K!LME|D!"e+++uT{u$$$uT{u$$$uT{u$$$rQ   z(text,sub_tokens_list_b,sub_tokens_list_cc                    t        j                  ddddiii      }t        j                  ddddiii      }t        j                  ddddiii      } | |      j                  j                  d      J  ||      j                  j                  d      J  ||      j                  d   |k(  sJ  ||      j                  d   |k(  sJ y )Nr/   rX   rY   rZ   r[   r\   r)   )r   r]   	user_dataget)r6   r5   sub_tokens_list_bsub_tokens_list_crb   rc   rd   s          r1   test_ja_tokenizer_sub_tokensrk      s       %+c7J)K!LME  %+c7J)K!LME  %+c7J)K!LME''++L9AAA;  $$\2:::;  .2CCCC;  .2CCCCrQ   ztext,inflections,reading_formsu   取ってつけたu!   五段-ラ行;連用形-促音便u!   下一段-カ行;連用形-一般u   助動詞-タ;終止形-一般u   トッu   テu   ツケu   タz2=3u   ニ_u   サンc                     | |      }|D cg c]  }|j                   j                  d       }}|t        |      k(  sJ |D cg c]  }|j                   j                  d       }}|t        |      k(  sJ y c c}w c c}w )N
InflectionReading)morphrh   list)r6   r5   inflectionsreading_formsr9   tttest_inflectionstest_readingss           r1   +test_ja_tokenizer_inflections_reading_formsrw      s~    & $F=CDr\2DDtK00007=>RXX\\),>M>D//// E>s   "A:"A?c                      | d      }t        |      dk(  sJ  | d      }t        |      dk(  sJ  | d      }t        |      dk(  sJ y )Nr"   r    rN   z



 		 


)r^   )r6   r0   s     r1    test_ja_tokenizer_emptyish_textsrz      sQ    
r
Cs8q==
s
Cs8q==
+
,Cs8q==rQ   )r-   spacy.lang.jar   r   tokenizer.test_naughty_stringsr   TOKENIZER_TESTS	TAG_TESTS	POS_TESTSSENTENCE_TESTStokens1tokens2tokens3SUB_TOKEN_TESTSmarkissuer2   parametrizer:   r@   rE   r.   rL   rP   rT   re   rk   rw   rz    rQ   r1   <module>r      s`    1 = 787  :R  S!QR,.wx+-mn yz7  :o  p  "_  `,  /  @+  .h  i	 897  :I  J!OP,.xy+-bc	 K56C  GE  FF  G ((D"T\ck  vA  NR  S%%ArQV]blt  BF  G
 ((JPRZbiq  |J  W[  \((JPRZbiq  |G  TX  Y((D"T\ck  vA  NR  S%%ArQV]blt  BF  G	 ((JPRZbiq  |J  W[  \((JPRZbiq  |G  TX  Y++GRWbit  P  ]a  b tTG95'8J7KL 4  /A% B%
 -y9! :!
 ,i8 9
 FG.?# @ H#
# 1' 2'
 %% C_U
D V
D $ !454512	 Z%8*ug6		
 
Rwz:; 0! 0rQ   