НЛП | Отсрочка тегирования для объединения тегеров
Что такое теги части речи (POS)?
Это процесс преобразования предложения в формы - список слов, список кортежей (где каждый кортеж имеет форму (слово, тег)). Тег в случае является тегом части речи и указывает, является ли слово существительным, прилагательным, глаголом и т. Д.
Что такое Backoff Tagging?
Это одна из наиболее важных функций SequentialBackoffTagger, поскольку она позволяет объединять тегеры вместе. Преимущество этого заключается в том, что если теггер не знает о тегировании слова, он может передать эту задачу тегирования следующему теггеру отсрочки. Если тот не может этого сделать, он может передать слово
следующий теггер отсрочки, и так до тех пор, пока не останется тэгеров отсрочки для проверки.
Код №1: выполнение тегов
# Loading Libraries from nltk.tag import SequentialBackoffTagger from nltk.tag import DefaultTagger from nltk.tag import UnigramTagger from nltk.corpus import treebank # initializing training and testing set train_data = treebank.tagged_sents()[: 3000 ] test_data = treebank.tagged_sents()[ 3000 :] # Defining Tag tag1 = DefaultTagger( 'NN' ) # Tagging tag2 = UnigramTagger(train_data, backoff = tag1) # Evaluation tag2.evaluate(test_data) |
Выход :
0,8752428232246924
Как это работает ?
Класс SequentialBackoffTagger может принимать аргумент ключевого слова отсрочки, значение которого является другим экземпляром SequentialBackoffTagger. В приведенном выше коде теггер части речи unigram откладывается с помощью теггера по умолчанию и обучен на наборе данных treebank.tagged_sents ().
Код # 2: Подготовка внутреннего списка тегеров отсрочки
from nltk.tag import SequentialBackoffTagger print (tag1._taggers = = [tag1]) print ( "
" , tag2._taggers = = [tag2, tag1]) |
Выход :
Правда Правда
Как это работает ?
- Класс SequentialBackoffTagger инициализируется, создавая внутренний список тегеров отсрочки, причем первым элементом является он сам.
- Внутренний список теггеров отката добавляется, если задан теггер отсрочки.
- Класс SequentialBackoffTagger использует _taggers list - это внутренний список тегеров отсрочки при вызове метода tag ().
- Вызывая select_tag () для каждого из них, он просматривает свой список тегеров.
- Он останавливает и возвращает тег, когда тег найден.
- Тег будет возвращен, если основной теггер может пометить слово.
- В противном случае он возвращает None, и пробуется следующий теггер, и так далее, пока тег не будет найден, иначе не будет возвращено None.
Код №3: Сохранение и загрузка обученного теггера с помощью pickle.
# Loading Libraries import pickle # Opening file and writing file = open ( 'tagger.pickle' , 'wb' ) pickle.dump(tagger, file ) file .close() # Reading file file = open ( 'tagger.pickle' , 'rb' ) # Loading tagger = pickle.load(f) |
Выход :
nltk.data.load ('tagger.pickle') загрузит файл
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.