Nltk: nltk.tag.__init__.pos_tag_sents() рдореЗрдВ рднрд╛рд╖рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдирд╡ре░ 2018  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: nltk/nltk

nltk/tag/__init__.py рдореЗрдВ pos_tag_sents() рдХрд╛ lang рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдХрдорд┐рдЯ 69583ceaaaff7e51dd9f07f4f226d3a2b75bea69 (nltk/tag/__init__.py рдХреА 110-116 рдкрдВрдХреНрддрд┐рдпреЛрдВ) рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреНрд░рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд, рдпрд╣ рдЕрдм "NotImplementedError('рд╡рд░реНрддрдорд╛рди рдореЗрдВ, NLTK pos_tag рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рдФрд░ рд░реВрд╕реА (рдпрд╛рдиреА lang=' рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ) рдХреА рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред eng' рдпрд╛ lang='rus')'" рд╡рд╛рдХреНрдп рдХреЛ рдЯреИрдЧ рдХрд░рддреЗ рд╕рдордпред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝ 17рд╡реАрдВ рд╣реИ рдЬрдмрдХрд┐ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкреБрд▓ рдЕрдиреБрд░реЛрдз: https://github.com/nltk/nltk/pull/2186

рдзрдиреНрдпрд╡рд╛рдж @ezhangsfl

рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ lang='eng' рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред @ezhangsfll @stevenbird

рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝ 17рд╡реАрдВ рд╣реИ рдЬрдмрдХрд┐ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣реА рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ lang='eng' рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред @ezhangsfll @stevenbird

(__init__.py) рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗ рдмрджрд▓реЗрдВ:

- - рдХреЛрдбрд┐рдВрдЧ: utf-8 - -

рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдЯреВрд▓рдХрд┐рдЯ: рдЯреИрдЧрд░реНрд╕

#

рдХреЙрдкреАрд░рд╛рдЗрдЯ (рд╕реА) реирежрежрез-реирежрезреп рдПрдирдПрд▓рдЯреАрдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛

рд▓реЗрдЦрдХ: рдПрдбрд╡рд░реНрдб рд▓реЛрдкрд░ [email protected]

рд╕реНрдЯреАрд╡рди рдмрд░реНрдб [email protected] (рдорд╛рдореВрд▓реА рдЬреЛрдбрд╝)

рдпреВрдЖрд░рдПрд▓: http://nltk.org/

рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ LICENSE.TXT

"""
рдПрдирдПрд▓рдЯреАрдХреЗ рдЯреИрдЧрд░реНрд╕

рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд╛рд░реНрдЯ-рдСрдл-рд╕реНрдкреАрдЪ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдЯреИрдЧрд┐рдВрдЧ, рдпрд╛ рдмрд╕ "рдЯреИрдЧрд┐рдВрдЧ"ред

рдПрдХ "рдЯреИрдЧ" рдПрдХ рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдЯреЛрдХрди рдХреА рдХреБрдЫ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ,
рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕рдХреЗ рднрд╛рд╖рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЯреЛрдХрди рдЯреБрдкрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ
(tag, token) ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЯреЛрдХрди рд╕рдВрдпреЛрдЬрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ
рднрд╛рд╖рдг рдЯреИрдЧ рдХреЗ рд╕рдВрдЬреНрдЮрд╛ рднрд╛рдЧ рдХреЗ рд╕рд╛рде 'fly' рд╢рдмреНрдж ( 'NN' ):

>>> tagged_tok = ('fly', 'NN')

рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдл-рдж-рд╢реЗрд▓реНрдл рдЯреИрдЧрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдкреЗрди рдЯреНрд░реАрдмреИрдВрдХ рдЯреИрдЧрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

>>> from nltk import pos_tag, word_tokenize
>>> pos_tag(word_tokenize("John's big idea isn't all that bad."))
[('John', 'NNP'), ("'s", 'POS'), ('big', 'JJ'), ('idea', 'NN'), ('is', 'VBZ'),
("n't", 'RB'), ('all', 'PDT'), ('that', 'DT'), ('bad', 'JJ'), ('.', '.')]

рдпрджрд┐ рдЖрдк lang="rus" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдПрдХ рд░реВрд╕реА рдЯреИрдЧрд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ
рд░реВрд╕реА рд░рд╛рд╖реНрдЯреНрд░реАрдп рдХреЛрд╖ рдЯреИрдЧрд╕реЗрдЯ:

>>> pos_tag(word_tokenize("╨Ш╨╗╤М╤П ╨╛╤В╨╛╤А╨╛╨┐╨╡╨╗ ╨╕ ╨┤╨▓╨░╨╢╨┤╤Л ╨┐╨╡╤А╨╡╤З╨╕╤В╨░╨╗ ╨▒╤Г╨╝╨░╨╢╨║╤Г."), lang='rus')    # doctest: +SKIP
[('╨Ш╨╗╤М╤П', 'S'), ('╨╛╤В╨╛╤А╨╛╨┐╨╡╨╗', 'V'), ('╨╕', 'CONJ'), ('╨┤╨▓╨░╨╢╨┤╤Л', 'ADV'), ('╨┐╨╡╤А╨╡╤З╨╕╤В╨░╨╗', 'V'),
('╨▒╤Г╨╝╨░╨╢╨║╤Г', 'S'), ('.', 'NONLEX')]

рдпрд╣ рдкреИрдХреЗрдЬ рдХрдИ рдЯреИрдЧрд░реНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЯреЛрдХрди рдХреА рдПрдХ рд╕реВрдЪреА рд▓реЗрддреЗ рд╣реИрдВ,
рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рдЯреИрдЧ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ, рдФрд░ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЯреЛрдХрди рдХреА рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдВред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреИрдЧрд░реНрд╕ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛрд╖ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреВрдирд┐рдЧреНрд░рд╛рдо рдЯреИрдЧрд░ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреЛ w рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдЯреИрдЧ рдХрд░рддрд╛ рд╣реИ
рдбрдмреНрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдЯреИрдЧ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛрд╖ рдореЗрдВ рдерд╛:

>>> from nltk.corpus import brown
>>> from nltk.tag import UnigramTagger
>>> tagger = UnigramTagger(brown.tagged_sents(categories='news')[:500])
>>> sent = ['Mitchell', 'decried', 'the', 'high', 'rate', 'of', 'unemployment']
>>> for word, tag in tagger.tag(sent):
...     print(word, '->', tag)
Mitchell -> NP
decried -> None
the -> AT
high -> JJ
rate -> NN
of -> IN
unemployment -> None

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд┐рди рд╢рдмреНрджреЛрдВ рдХреЛ рдЯреИрдЧрд░ рдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЯреИрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
None ред

рд╣рдо рдбреЗрдЯрд╛ рдкрд░ рдПрдХ рдЯреИрдЧрд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛:

>>> tagger.evaluate(brown.tagged_sents(categories='news')[500:600])
0.73...

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдПрдирдПрд▓рдЯреАрдХреЗ рдмреБрдХ рдХреЗ рдЕрдзреНрдпрд╛рдп 5 рдХреЛ рджреЗрдЦреЗрдВред
"""
__рднрд╡рд┐рд╖реНрдп__ рд╕реЗ рдкреНрд░рд┐рдВрдЯ_рдлрдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░реЗрдВ

nltk.tag.api рд╕реЗ рдЯреИрдЧрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.util рд╕реЗ рдЖрдпрд╛рдд str2tuple, tuple2str, untag
nltk.tag.рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЖрдпрд╛рдд рд╕реЗ (
рдЕрдиреБрдХреНрд░рдорд┐рдХ рдмреИрдХрдСрдл рдЯреИрдЧрд░,
рдкреНрд░рд╕рдВрдЧрдЯреИрдЧрд░,
рдбрд┐рдлрд╝реЙрд▓реНрдЯрдЯреИрдЧрд░,
рдПрдирдЧреНрд░рд╛рдордЯреИрдЧрд░,
рдпреВрдирд┐рдЧреНрд░рд╛рдордЯреИрдЧрд░,
рдмрд┐рдЧреНрд░рд╛рдордЯреИрдЧрд░,
рдЯреНрд░рд┐рдЧреНрд░рд╛рдордЯреИрдЧрд░,
рдПрдлрд╝рд┐рдХреНрд╕рдЯреИрдЧрд░,
рд░реЗрдЧреЗрдХреНрд╕рдкрдЯреИрдЧрд░,
рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдЖрдзрд╛рд░рд┐рдд рдЯреИрдЧрд░,
рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдЖрдзрд╛рд░рд┐рдд рдкреЛрд╕реНрдЯрдЯреИрдЧрд░,
)
nltk.tag.brill рд╕реЗ рдмреНрд░рд┐рд▓рдЯреИрдЧрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.brill_trainer рд╕реЗ рдмреНрд░рд┐рд▓рдЯреИрдЧрд░рдЯреНрд░реЗрдирд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.tnt рд╕реЗ рдЖрдпрд╛рдд TnT
nltk.tag.hunpos рд╕реЗ рд╣рдирдкреЛрд╕рдЯреИрдЧрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.stanford рд╕реЗ StanfordTagger, StanfordPOSTagger, StanfordNERTagger рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.hmm рд╕реЗ рд╣рд┐рдбрдирдорд╛рд░реНрдХреЛрд╡рдореЙрдбрд▓рдЯреИрдЧрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рд╣рд┐рдбрдирдорд╛рд░реНрдХреЛрд╡рдореЙрдбрд▓рдЯреНрд░реЗрдирд░
nltk.tag.senna рд╕реЗ SennaTagger, SennaChunkTagger, SennaNERTagger рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.mapping рд╕реЗ рдЖрдпрд╛рдд tagset_mapping, map_tag
nltk.tag.crf рд╕реЗ CRFTagger рдЖрдпрд╛рдд рдХрд░реЗрдВ
nltk.tag.perceptron рд╕реЗ PerceptronTagger рдЖрдпрд╛рдд рдХрд░реЗрдВ

nltk.data рдЖрдпрд╛рдд рд▓реЛрдб рд╕реЗ, рдЦреЛрдЬреЗрдВ

рд░рд╕_рдкрд┐рдХрд▓ = (
'рдЯреИрдЧрд░реНрд╕/рдФрд╕рдд_рдкрд░рд╕реЗрдкреНрдЯреНрд░реЛрди_рдЯреИрдЧрд░_рд░реБ/рдФрд╕рдд_рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди_рдЯреИрдЧрд░_рд░реБ.рдЕрдЪрд╛рд░'
)

def _get_tagger (рд▓реИрдВрдЧ = рдХреЛрдИ рдирд╣реАрдВ):
рдЕрдЧрд░ рд▓реИрдВрдЧ == 'рд░рд╕':
рдЯреИрдЧрд░ = рдкрд░рд╕реЗрдкреНрдЯреНрд░реЛрдирдЯреИрдЧрд░ (рдЧрд▓рдд)
ap_russian_model_loc = 'рдлрд╝рд╛рдЗрд▓:' + str (рдвреВрдВрдвреЗрдВ (RUS_PICKLE))
рдЯреИрдЧрд░.рд▓реЛрдб (ap_russian_model_loc)
рдЕрдиреНрдпрдерд╛:
рдЯреИрдЧрд░ = рдкрд░рд╕реЗрдкреНрдЯреНрд░реЛрдирдЯреИрдЧрд░ ()
рд╡рд╛рдкрд╕реА рдЯреИрдЧрд░

def _pos_tag (рдЯреЛрдХрди, рдЯреИрдЧрд╕реЗрдЯ = рдХреЛрдИ рдирд╣реАрдВ, рдЯреИрдЧрд░ = рдХреЛрдИ рдирд╣реАрдВ, рд▓реИрдВрдЧ = рдХреЛрдИ рдирд╣реАрдВ):
# рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рд░реВрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рд▓реИрдВрдЧ ['eng', 'rus'] рдореЗрдВ рдирд╣реАрдВ рд╣реИ:
рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдмрдврд╝рд╛рдПрдВ (
"рд╡рд░реНрддрдорд╛рди рдореЗрдВ, NLTK pos_tag рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рдФрд░ рд░реВрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ"
"(рдпрд╛рдиреА рд▓реИрдВрдЧ = 'рдЗрдВрдЧреНрд▓реИрдВрдб' рдпрд╛ рд▓реИрдВрдЧ = 'рд░рд╕')"
)
рдЕрдиреНрдпрдерд╛:
tagged_tokens = tagger.tag (рдЯреЛрдХрди)
рдЕрдЧрд░ рдЯреИрдЧрд╕реЗрдЯ: # рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреИрдЧрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ред
рдЕрдЧрд░ рд▓реИрдВрдЧ == 'рдЗрдВрдЧреНрд▓реИрдВрдб':
рдЯреИрдЧ рдХрд┐рдП рдЧрдП_рдЯреЛрдХрди = [
(рдЯреЛрдХрди, рдореИрдк_рдЯреИрдЧ ('рдПрди-рдкреАрдЯреАрдмреА', рдЯреИрдЧрд╕реЗрдЯ, рдЯреИрдЧ))
рдХреЗ рд▓рд┐рдП (рдЯреЛрдХрди, рдЯреИрдЧ) tagged_tokens . рдореЗрдВ
]
рдПрд▓рд┐рдл рд▓реИрдВрдЧ == 'рд░рд╕':
# рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЙрдбрд▓ рдХреЗ рдирдП Russion рдкреЙрдЬрд╝ рдЯреИрдЧ рдореЗрдВ рдкреНрд░рддреНрдпрдп рд╣реИрдВ,
# рджреЗрдЦреЗрдВ https://github.com/nltk/nltk/issues/2151#issuecomment -430709018
рдЯреИрдЧ рдХрд┐рдП рдЧрдП_рдЯреЛрдХрди = [
(рдЯреЛрдХрди, map_tag('ru-rnc-new', tagset, tag.partition('=')[0]))
рдХреЗ рд▓рд┐рдП (рдЯреЛрдХрди, рдЯреИрдЧ) tagged_tokens . рдореЗрдВ
]
рдЯреИрдЧ рдХрд┐рдП рдЧрдП_рдЯреЛрдХрди рд▓реМрдЯрд╛рдПрдВ

def pos_tag (рдЯреЛрдХрди, рдЯреИрдЧрд╕реЗрдЯ = рдХреЛрдИ рдирд╣реАрдВ, рд▓реИрдВрдЧ = 'рдЗрдВрдЧреНрд▓реИрдВрдб'):
"""
рдПрдирдПрд▓рдЯреАрдХреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдкреАрдЪ рдЯреИрдЧрд░ рдХреЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЯреЛрдХрди рдХреА рджреА рдЧрдИ рд╕реВрдЪреА рдХреЛ рдЯреИрдЧ рдХрд░реЗрдВред

    >>> from nltk.tag import pos_tag
    >>> from nltk.tokenize import word_tokenize
    >>> pos_tag(word_tokenize("John's big idea isn't all that bad."))
    [('John', 'NNP'), ("'s", 'POS'), ('big', 'JJ'), ('idea', 'NN'), ('is', 'VBZ'),
    ("n't", 'RB'), ('all', 'PDT'), ('that', 'DT'), ('bad', 'JJ'), ('.', '.')]
    >>> pos_tag(word_tokenize("John's big idea isn't all that bad."), tagset='universal')
    [('John', 'NOUN'), ("'s", 'PRT'), ('big', 'ADJ'), ('idea', 'NOUN'), ('is', 'VERB'),
    ("n't", 'ADV'), ('all', 'DET'), ('that', 'DET'), ('bad', 'ADJ'), ('.', '.')]

NB. Use `pos_tag_sents()` for efficient tagging of more than one sentence.

:param tokens: Sequence of tokens to be tagged
:type tokens: list(str)
:param tagset: the tagset to be used, e.g. universal, wsj, brown
:type tagset: str
:param lang: the ISO 639 code of the language, e.g. 'eng' for English, 'rus' for Russian
:type lang: str
:return: The tagged tokens
:rtype: list(tuple(str, str))
"""
tagger = _get_tagger(lang)
return _pos_tag(tokens, tagset, tagger, lang)

def pos_tag_sents (рд╡рд╛рдХреНрдп, рдЯреИрдЧрд╕реЗрдЯ = рдХреЛрдИ рдирд╣реАрдВ, рд▓реИрдВрдЧ = 'рдЗрдВрдЧреНрд▓реИрдВрдб'):
"""
рдЯреИрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдПрд▓рдЯреАрдХреЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдкреАрдЪ рдЯреИрдЧрд░ рдХреЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд╡рд╛рдХреНрдпреЛрдВ рдХреА рджреА рдЧрдИ рд╕реВрдЪреА, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЯреЛрдХрди рдХреА рдПрдХ рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИред

:param tokens: List of sentences to be tagged
:type tokens: list(list(str))
:param tagset: the tagset to be used, e.g. universal, wsj, brown
:type tagset: str
:param lang: the ISO 639 code of the language, e.g. 'eng' for English, 'rus' for Russian
:type lang: str
:return: The list of tagged sentences
:rtype: list(list(tuple(str, str)))
"""
tagger = _get_tagger(lang)
return [_pos_tag(sent, tagset, tagger, lang) for sent in sentences]
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

chaseireland picture chaseireland  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

goodmami picture goodmami  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alvations picture alvations  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alvations picture alvations  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

libingnan54321 picture libingnan54321  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ