o
    i,                     @   s  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d!ed"ddd"d"d#dd!gZ
ed$d%dd$d$d&dd!ed'd%dd'd'd(dd!edddddd dd!ed"ddd"d"d#dd!gZed$d%dd$d$d&dd!ed'd%dd'd'd(dd!ed)ddd)d)d*dd!gZd+dde
ggeeggfgZe jd,d-d. Ze jd/ed0d1 Ze jd2ed3d4 Ze jd5ed6d7 Ze jjd8d9e jd:e	d;d< Zd=d> Ze jd?ed@dA Ze jdBg dCdDdE Ze jdFedGdH Ze jdIdJdKgg dLgdMgfdNgdOgdPgdQgffdRg g g fdSgdTgdUgffgdVdW ZdXdY ZdS )Z    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                  C   s:   zt  } W n ty   t  Y nw | d}|sJ dS )zTest that `nlp` doesn't fail.u   pythonが大好きですN)r   ImportErrorpytestskip)nlpdoc r/   V/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/lang/ja/test_tokenizer.pytest_issue2901:   s   
r1   ztext,expected_tokensc                 C   "   dd | |D }||ksJ d S )Nc                 S      g | ]}|j qS r/   )text.0tokenr/   r/   r0   
<listcomp>H       z%test_ja_tokenizer.<locals>.<listcomp>r/   )ja_tokenizerr4   expected_tokenstokensr/   r/   r0   test_ja_tokenizerF      r=   ztext,expected_tagsc                 C   r2   )Nc                 S   r3   r/   )tag_r5   r/   r/   r0   r8   N   r9   z*test_ja_tokenizer_tags.<locals>.<listcomp>r/   )r:   r4   expected_tagstagsr/   r/   r0   test_ja_tokenizer_tagsL   r>   rB   ztext,expected_posc                 C   r2   )Nc                 S   r3   r/   )pos_r5   r/   r/   r0   r8   T   r9   z)test_ja_tokenizer_pos.<locals>.<listcomp>r/   )r:   r4   expected_posposr/   r/   r0   test_ja_tokenizer_posR   r>   rF   z+sentence segmentation in tokenizer is buggy)reasonztext,expected_sentsc                 C   s$   dd | |j D }||ksJ d S )Nc                 S   s   g | ]}t |qS r/   )str)r6   sentr/   r/   r0   r8   [   s    z+test_ja_tokenizer_sents.<locals>.<listcomp>)sents)r:   r4   expected_sentsrJ   r/   r/   r0   test_ja_tokenizer_sentsX   s   rL   c                 C   s   | d}|d j dksJ d S )NzI   like cheese.   z  )orth_)r:   r<   r/   r/   r0   test_ja_tokenizer_extra_spaces_   s   rO   r4   c                 C   s   | |}|j |ksJ d S )N)text_with_ws)r:   r4   r<   r/   r/   r0   !test_ja_tokenizer_naughty_stringse   s   rQ   ztext,len_a,len_b,len_c))r)      r   rM   )u   客室乗務員r      rM   )u   労働者協同組合rR   r   rM   )u   機能性食品r   rS   rM   c                 C   s   t ddddiii}t ddddiii}t ddddiii}t| ||ks+J t|||ks5J t|||ks?J t|||ksIJ d S )Nr-   	tokenizer
split_modeABC)r   from_configlen)r:   r4   len_alen_blen_cnlp_anlp_bnlp_cr/   r/   r0   test_ja_tokenizer_split_modesk   s   
ra   z(text,sub_tokens_list_b,sub_tokens_list_cc                 C   s   t ddddiii}t ddddiii}t ddddiii}| |jdd u s-J ||jdd u s9J ||jd |ksDJ ||jd |ksOJ d S )Nr-   rT   rU   rV   rW   rX   r(   )r   rY   	user_dataget)r:   r4   sub_tokens_list_bsub_tokens_list_cr^   r_   r`   r/   r/   r0   test_ja_tokenizer_sub_tokens   s   rf   ztext,inflections,reading_formsu   取ってつけたu!   五段-ラ行;連用形-促音便u!   下一段-カ行;連用形-一般u   助動詞-タ;終止形-一般u   トッu   テu   ツケu   タz2=3u   ニ_u   サンc                 C   sH   | |}dd |D }|t |ksJ dd |D }|t |ks"J d S )Nc                 S      g | ]}|j d qS )
Inflectionmorphrc   r6   ttr/   r/   r0   r8          z?test_ja_tokenizer_inflections_reading_forms.<locals>.<listcomp>c                 S   rh   )Readingrj   rl   r/   r/   r0   r8      rn   )list)r:   r4   inflectionsreading_formsr<   test_inflectionstest_readingsr/   r/   r0   +test_ja_tokenizer_inflections_reading_forms   s
   ru   c                 C   sL   | d}t |dksJ | d}t |dksJ | d}t |dks$J d S )Nr!   r    rM   z



 		 


)rZ   )r:   r.   r/   r/   r0    test_ja_tokenizer_emptyish_texts   s   rw   )r+   spacy.lang.jar   r   tokenizer.test_naughty_stringsr   TOKENIZER_TESTS	TAG_TESTS	POS_TESTSSENTENCE_TESTStokens1tokens2tokens3SUB_TOKEN_TESTSmarkissuer1   parametrizer=   rB   rF   r,   rL   rO   rQ   ra   rf   ru   rw   r/   r/   r/   r0   <module>   s    





	




	




	






	



