Flair簡介

Flair是最近開源的一個基於Pytorch的NLP框架,據官方github介紹,它具有以下特點:

一個功能強大的NLP庫。 Flair允許您將最先進的自然語言處理(NLP)模型應用於您的文字,例如命名實體識別(NER),詞性標註(PoS),意義消歧和分類。

文字嵌入庫。 Flair具有簡單的介面,允許您使用和組合不同的單詞和文件嵌入,包括作者提出的上下文

字串

嵌入(文章:COLING2018-Contextual String Embeddings for Sequence Labeling)。

Pytorch NLP框架。 我們的框架直接在Pytorch上構建,使您可以輕鬆地訓練自己的模型,並使用Flair嵌入和類來嘗試新方法。

Github地址:https://github.com/zalandoresearch/flair

作者測試的結果:

自然語言處理基礎技術工具篇之Flair

作者也提供了不錯的教程:

自然語言處理基礎技術工具篇之Flair

接下來我們一起來看看Flair的使用方法

我們可以透過load()方法來選擇載入的預訓練模型。 目前,提供以下預先訓練的模型:

自然語言處理基礎技術工具篇之Flair

Tutorial 1: 基本型別

安裝環境:

windows 10

PyTorch 0。4+

Python 3。6+

pip install flair

這個庫包含兩種型別:

Sentence

Token

, Sentence型別包含我們想要處理的一個句,是Token型別的集合

from

flair。data

import

Sentence

sentence

=

Sentence

‘The grass is green 。’

# 輸出顯示這個句子由5個Token組成

print

sentence

Sentence

“The grass is green 。”

-

5

Tokens

我們可以透過Token ID或其索引訪問句子的Token:

# 使用 token id

print

sentence

get_token

4

))

# 使用索引

print

sentence

3

])

Token

4

green

Token

4

green

# 迭代輸出token

for

token

in

sentence

print

token

Token

1

The

Token

2

grass

Token

3

is

Token

4

green

Token

5

Tokenization:一些情況下,文字未Tokenization

from

flair。data

import

Sentence

# 設定use_tokenizer引數

sentence

=

Sentence

‘The grass is green。’

use_tokenizer

=

True

print

sentence

Sentence

“The grass is green 。”

-

5

Tokens

Adding Tags to Tokens(為token打標籤)

token具有用於語言註釋的欄位,如lemmas、

詞性標記

或命名實體標記。可以透過指定標籤型別和標籤值來新增標籤。

# 給句子中某個詞加標籤

sentence

3

add_tag

‘ner’

‘color’

# 我們可以看到,輸出green後面帶有命名實體標籤‘color’

print

sentence

to_tagged_string

())

The

grass

is

green

<

color

>

Adding Labels to Sentences(給句子打標籤)

句子可以具有一個或多個標籤,例如,這些標籤可用於文字分類任務。

sentence

=

Sentence

‘France is the current world cup winner。’

# 給句子增加一個sports標籤

sentence

add_label

‘sports’

print

sentence

labels

sports

1。0

)]

# 給句子增加多個標籤

sentence

=

Sentence

‘France is the current world cup winner。’

sentence

add_labels

([

‘sports’

‘world cup’

])

print

sentence

labels

sports

1。0

),

world

cup

1。0

)]

另外,程式碼我已經上傳github:

https://github。com/yuquanle/StudyForNLP/blob/master/NLPtools/FlairDemo1。ipynb

更多個人筆記請關注:

知乎專欄:https://www.zhihu.com/people/yuquanle/columns

公眾號:StudyForAI(小白人工智慧入門學習)