ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lang
ΡΡΠ½ΠΊΡΠΈΠΈ pos_tag_sents () Π² nltk / tag / __ init__.py Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ.
Π ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΠΊΡΠ°ΡΠΈΠΈ 69583ceaaaff7e51dd9f07f4f226d3a2b75bea69 (ΡΡΡΠΎΠΊΠΈ 110-116 Π² nltk / tag / __ init__.py) ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ NotImplementedError ('Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ NLTK pos_tag ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΈ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊΠΈ (Ρ. eng 'ΠΈΠ»ΠΈ lang =' rus ')' "ΠΏΡΠΈ ΠΏΠΎΠΌΠ΅ΡΠΊΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅: https://github.com/nltk/nltk/pull/2186
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @ezhangsfl
Π― Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Ρ
ΠΎΡΡ Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠ°ΠΉΠ»Ρ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π²ΡΡΡΠ½ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ lang='eng'
, Π½ΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. @ezhangsfll @stevenbird
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠΏΡΡΠΊ - 17-ΠΉ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½.
Π― Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Ρ ΠΎΡΡ Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠ°ΠΉΠ»Ρ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π²ΡΡΡΠ½ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
lang='eng'
, Π½ΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. @ezhangsfll @stevenbird
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° (__init__.py) ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
#
"" "
ΠΠΠ’Π Π’ΡΠ³Π³Π΅ΡΡ
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈ
ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ "ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅".
Β«Π’Π΅Π³Β» - ΡΡΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΡΡΠΎΠΊΠ°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΎΠΊΠ΅Π½Π°,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π³ΠΎ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΈ. ΠΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠΈ
(tag, token)
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ
ΡΠ»ΠΎΠ²ΠΎ 'fly'
Ρ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠ΅Π³Π° ΡΠ΅ΡΠΈ ( 'NN'
):
>>> tagged_tok = ('fly', 'NN')
ΠΠ»Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ³Π³Π΅Ρ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΎΠ² Penn Treebank:
>>> 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')]
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΊΠ΅Π½ΠΎΠ²,
Π½Π°Π·Π½Π°ΡΡΡΠ΅ ΡΠ΅Π³ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ
ΠΈ Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΡ
ΡΠΎΠΊΠ΅Π½ΠΎΠ².
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π³Π΅ΡΠΎΠ² ΡΡΡΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΡΠΏΡΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³Π³Π΅Ρ unigram ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ w , ΠΏΡΠΎΠ²Π΅ΡΡΡ, ΡΡΠΎ
Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΠΉ ΡΠ΅Π³ Π΄Π»Ρ 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 ΠΠ½ΠΈΠ³ΠΈ ΠΠΠ’Π.
"" "
ΠΈΠ· __future__ import print_function
ΠΈΠ· nltk.tag.api ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ TaggerI
ΠΈΠ· nltk.tag.util import str2tuple, tuple2str, untag
ΠΈΠ· nltk.tag.sequential import (
SequentialBackoffTagger,
ContextTagger,
DefaultTagger,
NgramTagger,
UnigramTagger,
BigramTagger,
TrigramTagger,
AffixTagger,
RegexpTagger,
ClassifierBasedTagger,
ClassifierBasedPOSTagger,
)
ΠΈΠ· nltk.tag.brill ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ BrillTagger
ΠΈΠ· nltk.tag.brill_trainer ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ BrillTaggerTrainer
ΠΈΠ· nltk.tag.tnt ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ TnT
ΠΈΠ· nltk.tag.hunpos ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ HunposTagger
ΠΈΠ· nltk.tag.stanford import StanfordTagger, StanfordPOSTagger, StanfordNERTagger
ΠΈΠ· nltk.tag.hmm ΠΈΠΌΠΏΠΎΡΡ HiddenMarkovModelTagger, HiddenMarkovModelTrainer
ΠΈΠ· nltk.tag.senna import SennaTagger, SennaChunkTagger, SennaNERTagger
ΠΈΠ· nltk.tag.mapping import tagset_mapping, map_tag
ΠΈΠ· nltk.tag.crf ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ CRFTagger
ΠΈΠ· nltk.tag.perceptron import PerceptronTagger
ΠΈΠ· Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° nltk.data, Π½Π°ΠΉΡΠΈ
RUS_PICKLE = (
'taggers / averaged_perceptron_tagger_ru / averaged_perceptron_tagger_ru.pickle'
)
def _get_tagger (lang = None):
Π΅ΡΠ»ΠΈ lang == 'rus':
tagger = PerceptronTagger (ΠΠΎΠΆΡ)
ap_russian_model_loc = 'file:' + str (Π½Π°ΠΉΡΠΈ (RUS_PICKLE))
tagger.load (ap_russian_model_loc)
Π΅ΡΠ΅:
tagger = PerceptronTagger ()
Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π³Π³Π΅Ρ
def _pos_tag (ΡΠΎΠΊΠ΅Π½Ρ, tagset = None, tagger = None, lang = None):
# Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΈ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊΠΈ.
Π΅ΡΠ»ΠΈ lang Π½Π΅ Π² ['eng', 'rus']:
ΠΏΠΎΠ΄Π½ΡΡΡ NotImplementedError (
"Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ NLTK pos_tag ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΠΈ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊΠΈ"
"(Ρ.Π΅. lang = 'eng' ΠΈΠ»ΠΈ lang = 'rus')"
)
Π΅ΡΠ΅:
tagged_tokens = tagger.tag (ΡΠΎΠΊΠ΅Π½Ρ)
if tagset: # Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅Π³ΠΎΠ².
Π΅ΡΠ»ΠΈ lang == 'eng':
tagged_tokens = [
(ΡΠΎΠΊΠ΅Π½, map_tag ('en-ptb', Π½Π°Π±ΠΎΡ ΡΠ΅Π³ΠΎΠ², ΡΠ΅Π³))
Π΄Π»Ρ (ΡΠΎΠΊΠ΅Π½Π°, ΡΠ΅Π³Π°) Π² tagged_tokens
]
elif lang == 'ΡΡΡ':
# ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΠΈ Russion pos ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΡΡΠΈΠΊΡΡ,
# ΡΠΌ. https://github.com/nltk/nltk/issues/2151#issuecomment -430709018
tagged_tokens = [
(ΡΠΎΠΊΠ΅Π½, map_tag ('ru-rnc-new', tagset, tag.partition ('=') [0]))
Π΄Π»Ρ (ΡΠΎΠΊΠ΅Π½Π°, ΡΠ΅Π³Π°) Π² tagged_tokens
]
Π²Π΅ΡΠ½ΡΡΡ tagged_tokens
def pos_tag (ΡΠΎΠΊΠ΅Π½Ρ, tagset = None, lang = 'eng'):
"" "
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π³Π³Π΅ΡΠ° NLTK, ΡΡΠΎΠ±Ρ
ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΊΠ΅Π½ΠΎΠ².
>>> 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 (ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, tagset = None, lang = 'eng'):
"" "
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅Π³Π° NLTK, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ
Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠΊΠ΅Π½ΠΎΠ².
: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]
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠΏΡΡΠΊ - 17-ΠΉ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½.