+
    ÖÇÜh-  ã                   ó\  € R t ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHtHtHt ^ R	IHt ^ R
IHtHt ^ RIHtH t H!t!H"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t( ^ RI)H*t* ^ RI+H,t,H-t- ^ RI.H/t/H0t0 ]Pb                  RR l4       t2RR lt3]	! 4       t4RR lt5R# )a@	  
NLTK Tokenizer Package

Tokenizers divide strings into lists of substrings.  For example,
tokenizers can be used to find the words and punctuation in a string:

    >>> from nltk.tokenize import word_tokenize
    >>> s = '''Good muffins cost $3.88\nin New York.  Please buy me
    ... two of them.\n\nThanks.'''
    >>> word_tokenize(s) # doctest: +NORMALIZE_WHITESPACE
    ['Good', 'muffins', 'cost', '$', '3.88', 'in', 'New', 'York', '.',
    'Please', 'buy', 'me', 'two', 'of', 'them', '.', 'Thanks', '.']

This particular tokenizer requires the Punkt sentence tokenization
models to be installed. NLTK also provides a simpler,
regular-expression based tokenizer, which splits text on whitespace
and punctuation:

    >>> from nltk.tokenize import wordpunct_tokenize
    >>> wordpunct_tokenize(s) # doctest: +NORMALIZE_WHITESPACE
    ['Good', 'muffins', 'cost', '$', '3', '.', '88', 'in', 'New', 'York', '.',
    'Please', 'buy', 'me', 'two', 'of', 'them', '.', 'Thanks', '.']

We can also operate at the level of sentences, using the sentence
tokenizer directly as follows:

    >>> from nltk.tokenize import sent_tokenize, word_tokenize
    >>> sent_tokenize(s)
    ['Good muffins cost $3.88\nin New York.', 'Please buy me\ntwo of them.', 'Thanks.']
    >>> [word_tokenize(t) for t in sent_tokenize(s)] # doctest: +NORMALIZE_WHITESPACE
    [['Good', 'muffins', 'cost', '$', '3.88', 'in', 'New', 'York', '.'],
    ['Please', 'buy', 'me', 'two', 'of', 'them', '.'], ['Thanks', '.']]

Caution: when tokenizing a Unicode string, make sure you are not
using an encoded version of the string (it may be necessary to
decode it first, e.g. with ``s.decode("utf8")``.

NLTK tokenizers can produce token-spans, represented as tuples of integers
having the same semantics as string slices, to support efficient comparison
of tokenizers.  (These methods are implemented as generators.)

    >>> from nltk.tokenize import WhitespaceTokenizer
    >>> list(WhitespaceTokenizer().span_tokenize(s)) # doctest: +NORMALIZE_WHITESPACE
    [(0, 4), (5, 12), (13, 17), (18, 23), (24, 26), (27, 30), (31, 36), (38, 44),
    (45, 48), (49, 51), (52, 55), (56, 58), (59, 64), (66, 73)]

There are numerous ways to tokenize text.  If you need more control over
tokenization, see the other methods provided in this package.

For further information, please see Chapter 3 of the NLTK book.
N)Úload)ÚTweetTokenizerÚcasual_tokenize)ÚNLTKWordTokenizer)ÚLegalitySyllableTokenizer)ÚMWETokenizer)ÚPunktSentenceTokenizerÚPunktTokenizer)ÚBlanklineTokenizerÚRegexpTokenizerÚWhitespaceTokenizerÚWordPunctTokenizerÚblankline_tokenizeÚregexp_tokenizeÚwordpunct_tokenize)ÚReppTokenizer)ÚSExprTokenizerÚsexpr_tokenize)ÚLineTokenizerÚSpaceTokenizerÚTabTokenizerÚline_tokenize)ÚSyllableTokenizer)ÚStanfordSegmenter)ÚTextTilingTokenizer)ÚToktokTokenizer)ÚTreebankWordDetokenizerÚTreebankWordTokenizer)Úregexp_span_tokenizeÚstring_span_tokenizec                ó   € \        V 4      # )zš
A constructor for the PunktTokenizer that utilizes
a lru cache for performance.

:param language: the model name in the Punkt corpus
:type language: str
)r	   )Úlanguages   &Ú8/usr/lib/python3/dist-packages/nltk/tokenize/__init__.pyÚ_get_punkt_tokenizerr#   `   s   € ô ˜(Ó#Ð#ó    c                ó:   € \        V4      pVP                  V 4      # )a  
Return a sentence-tokenized copy of *text*,
using NLTK's recommended sentence tokenizer
(currently :class:`.PunktSentenceTokenizer`
for the specified language).

:param text: text to split into sentences
:param language: the model name in the Punkt corpus
)r#   Útokenize)Útextr!   Ú	tokenizers   && r"   Úsent_tokenizer)   m   s   € ô % XÓ.€IØ×Ñ˜dÓ#Ð#r$   c                ó˜   € V'       d   V .M
\        W4      pV UUu. uF   p\        P                  V4       F  qUNK  	  K"  	  upp# u uppi )aº  
Return a tokenized copy of *text*,
using NLTK's recommended word tokenizer
(currently an improved :class:`.TreebankWordTokenizer`
along with :class:`.PunktSentenceTokenizer`
for the specified language).

:param text: text to split into words
:type text: str
:param language: the model name in the Punkt corpus
:type language: str
:param preserve_line: A flag to decide whether to sentence tokenize the text or not.
:type preserve_line: bool
)r)   Ú_treebank_word_tokenizerr&   )r'   r!   Úpreserve_lineÚ	sentencesÚsentÚtokens   &&&   r"   Úword_tokenizer0      sK   € ÷ (�‘¬]¸4Ó-J€Iá#ôÙ#�$Ô1I×1RÑ1RÐSWÖ1X¨ŠÑ1X‰™)òð ùó s   œ&A)Úenglish)r1   F)6Ú__doc__Ú	functoolsÚreÚ	nltk.datar   Únltk.tokenize.casualr   r   Únltk.tokenize.destructiver   Ú nltk.tokenize.legality_principler   Únltk.tokenize.mwer   Únltk.tokenize.punktr   r	   Únltk.tokenize.regexpr
   r   r   r   r   r   r   Únltk.tokenize.reppr   Únltk.tokenize.sexprr   r   Únltk.tokenize.simpler   r   r   r   Ú!nltk.tokenize.sonority_sequencingr   Ú nltk.tokenize.stanford_segmenterr   Únltk.tokenize.texttilingr   Únltk.tokenize.toktokr   Únltk.tokenize.treebankr   r   Únltk.tokenize.utilr   r   Ú	lru_cacher#   r)   r+   r0   © r$   r"   Ú<module>rG      sŠ   ðñ2óh Û 	å ß @Ý 7Ý FÝ *ß F÷÷ ñ õ -ß >÷ó õ @Ý >Ý 8Ý 0ß Qß Ið ×Ñó$ó ð$ô$ñ -Ó.Ð ör$   