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的使用方法
我們可以透過load()方法來選擇載入的預訓練模型。 目前,提供以下預先訓練的模型:
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組成
(
sentence
)
Sentence
:
“The grass is green 。”
-
5
Tokens
我們可以透過Token ID或其索引訪問句子的Token:
# 使用 token id
(
sentence
。
get_token
(
4
))
# 使用索引
(
sentence
[
3
])
Token
:
4
green
Token
:
4
green
# 迭代輸出token
for
token
in
sentence
:
(
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
)
(
sentence
)
Sentence
:
“The grass is green 。”
-
5
Tokens
Adding Tags to Tokens(為token打標籤)
token具有用於語言註釋的欄位,如lemmas、
詞性標記
或命名實體標記。可以透過指定標籤型別和標籤值來新增標籤。
# 給句子中某個詞加標籤
sentence
[
3
]
。
add_tag
(
‘ner’
,
‘color’
)
# 我們可以看到,輸出green後面帶有命名實體標籤‘color’
(
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’
)
(
sentence
。
labels
)
[
sports
(
1。0
)]
# 給句子增加多個標籤
sentence
=
Sentence
(
‘France is the current world cup winner。’
)
sentence
。
add_labels
([
‘sports’
,
‘world cup’
])
(
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(小白人工智慧入門學習)