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

2021-09-09 05:54:35 字數 2170 閱讀 4457

flair簡介

flair是最近開源的乙個基於pytorch的nlp框架,據官方github介紹,它具有以下特點:

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

文字嵌入庫。 flair具有簡單的介面,允許您使用和組合不同的單詞和文件嵌入,包括作者提出的上下文本串嵌入(文章:coling2018-contextual string embeddings for sequence labeling)。

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

作者測試的結果:

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

tutorial 1: 基本型別

安裝環境:

官網說目前對linux支援較好,以下為我在winodw上測試環境

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 .

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)]

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

沒想到堅持學習以及寫作總結已經超過半個月了,謝謝大家的關注 點讚 收藏 前面談了nlp的基礎技術,我始終覺得,入門學習一件事情最好的方式就是實踐,加之現在python如此好用,有越來越多的不錯nlp的python庫,所以接下來的一段時間裡,讓我們一起來感受一下這些不錯的工具。我均使用jupyter編...

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

安裝 pip install spacy 國內源安裝 pip install spacy i import spacy nlp spacy.load en doc nlp u this is a sentence.1.tokenize功能for token in doc print token th...

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

安裝 pip install textblob 配置國內源安裝 pip install textblob i 參考 from textblob import textblobtext i love natural language processing i am not like fish blob...