Book Image

Natural Language Processing with Flair

By : Tadej Magajna
Book Image

Natural Language Processing with Flair

By: Tadej Magajna

Overview of this book

Flair is an easy-to-understand natural language processing (NLP) framework designed to facilitate training and distribution of state-of-the-art NLP models for named entity recognition, part-of-speech tagging, and text classification. Flair is also a text embedding library for combining different types of embeddings, such as document embeddings, Transformer embeddings, and the proposed Flair embeddings. Natural Language Processing with Flair takes a hands-on approach to explaining and solving real-world NLP problems. You'll begin by installing Flair and learning about the basic NLP concepts and terminology. You will explore Flair's extensive features, such as sequence tagging, text classification, and word embeddings, through practical exercises. As you advance, you will train your own sequence labeling and text classification models and learn how to use hyperparameter tuning in order to choose the right training parameters. You will learn about the idea behind one-shot and few-shot learning through a novel text classification technique TARS. Finally, you will solve several real-world NLP problems through hands-on exercises, as well as learn how to deploy Flair models to production. By the end of this Flair book, you'll have developed a thorough understanding of typical NLP problems and you’ll be able to solve them with Flair.
Table of Contents (15 chapters)
1
Part 1: Understanding and Solving NLP with Flair
6
Part 2: Deep Dive into Flair – Training Custom Models
11
Part 3: Real-World Applications with Flair

Part-of-speech tagging in Flair

PoS taggers are responsible for tagging/labeling tokens with their corresponding parts of speech. A simplified set of parts-of-speech categories consists of nouns, verbs, adjectives, and adverbs. However, most taggers in Flair use larger, more descriptive tag sets. For example, the Penn tag set consists of 36 different tags.

The tagging process and PoS tagging syntax is no different from NER or any other tagging task in Flair. The only difference in loading a PoS tagger is choosing the right tagger ID that corresponds to our PoS tagger of choice.

Let's experiment with the default English PoS tagger in Flair using the pos tagger ID:

from flair.data import Sentence
from flair.models import SequenceTagger
tagger = SequenceTagger.load('pos')
sentence = Sentence('Making a living')
tagger.predict(sentence)
print(sentence.to_tagged_string())

In the preceding script, we loaded Flair's default English pos tagger and tagged...