НЛП | Обучение Unigram Tagger
Одиночный токен называется Юниграммой , например - привет; кино; кодирование. Эта статья посвящена устройству тегов unigram .
Unigram Tagger: для определения тега Part of Speech используется только одно слово. UnigramTagger
наследуется от NgramTagger, который является подклассом ContextTagger
, который наследуется от SequentialBackoffTagger
. Итак, UnigramTagger
- это контекстный теггер из одного слова.
Код №1: Обучение UnigramTagger.
# Loading Libraries from nltk.tag import UnigramTagger from nltk.corpus import treebank |
Код № 2: Обучение с использованием первых 1000 помеченных предложений корпуса банка деревьев в качестве данных.
# Using data train_sents = treebank.tagged_sents()[: 1000 ] # Initializing tagger = UnigramTagger(train_sents) # Lets see the first sentence # (of the treebank corpus) as list treebank.sents()[ 0 ] |
Выход :
['Пьер', 'Винкен', ',', '61', 'годы', 'Старый', ',', 'будут', 'присоединиться', 'the', 'доска', 'в виде', 'а', 'неисполнительный', 'директор', "Ноябрь", '29', '.']
Код № 3: поиск результатов с тегами после тренировки.
tagger.tag(treebank.sents()[ 0 ]) |
Выход :
[('Пьер', 'НПН'), ('Винкен', 'ННП'), (',', ','), ('61', 'CD'), ('годы', 'NNS'), ('старый', 'JJ'), (',', ','), ('будет', 'MD'), ('присоединиться', 'VB'), ('the', 'DT'), ('доска', 'NN'), ('как в'), ('а', 'DT'), ('неисполнительный', 'JJ'), ('директор', 'NN'), («Ноябрь», «ННП»), ('29', 'CD'), ('.', '.')]
Как работает код?
UnigramTagger
строит контекстную модель из списка помеченных предложений. Поскольку UnigramTagger наследуется от ContextTagger
, вместо предоставления choose_tag()
он должен реализовать context()
, который принимает те же три аргумента, что и choose_tag()
. Токен контекста используется для создания модели, а также для поиска лучшего тега после создания модели. Это также поясняется графически на приведенной выше диаграмме.
Переопределение контекстной модели -
Все теггеры, унаследованные от ContextTagger
вместо обучения своей собственной модели могут использовать предварительно созданную модель. Эта модель представляет собой просто словарь Python, сопоставляющий контекстный ключ с тегом. Ключи контекста (отдельные слова в случае UnigramTagger) будут зависеть от того, что ContextTagger subclass
возвращает из своего метода context()
Код # 4: переопределение контекстной модели
tagger = UnigramTagger(model = { 'Pierre' : 'NN' }) tagger.tag(treebank.sents()[ 0 ]) |
Выход :
[('Пьер', 'NN'), ('Винкен', Нет), (', ', Никто), ('61', Нет), ('лет', Нет), ('старый', Нет), (', ', Никто), ('будет', Нет), ('присоединиться', Нет), ('the', Нет), ('доска', Нет), ('as', Нет), ('a', Нет), ('неисполнительный', Нет), ('директор', Нет), ('Ноябрь', Нет), ('29', Нет), ('.', Никто)]
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.