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...