НЛП | Обучение Unigram Tagger

Опубликовано: 25 Июля, 2021

Одиночный токен называется Юниграммой , например - привет; кино; кодирование. Эта статья посвящена устройству тегов 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.