🚀 Flairによる英語の品詞タグ付け (デフォルトモデル)
これは、Flair とともに提供される英語の標準的な品詞タグ付けモデルです。
F1スコア: 98,19 (Ontonotes)
細粒度の品詞タグを予測します:
タグ |
意味 |
ADD |
メール |
AFX |
接辞 |
CC |
接続詞 |
CD |
基数 |
DT |
限定詞 |
EX |
存在を表す「there」 |
FW |
外来語 |
HYPH |
ハイフン |
IN |
前置詞または従属接続詞 |
JJ |
形容詞 |
JJR |
形容詞の比較級 |
JJS |
形容詞の最上級 |
LS |
リスト項目マーカー |
MD |
助動詞 |
NFP |
余分な句読点 |
NN |
名詞(単数または集合) |
NNP |
固有名詞(単数) |
NNPS |
固有名詞(複数) |
NNS |
名詞(複数) |
PDT |
前限定詞 |
POS |
所有格の語尾 |
PRP |
人称代名詞 |
PRP$ |
所有代名詞 |
RB |
副詞 |
RBR |
副詞の比較級 |
RBS |
副詞の最上級 |
RP |
小品詞 |
SYM |
記号 |
TO |
「to」 |
UH |
感嘆詞 |
VB |
動詞の原形 |
VBD |
動詞の過去形 |
VBG |
動詞の動名詞または現在分詞 |
VBN |
動詞の過去分詞 |
VBP |
動詞の非第三人称単数現在形 |
VBZ |
動詞の第三人称単数現在形 |
WDT |
疑問限定詞 |
WP |
疑問代名詞 |
WP$ |
所有疑問代名詞 |
WRB |
疑問副詞 |
XX |
不明 |
このモデルは Flair埋め込み とLSTM-CRFに基づいています。
🚀 クイックスタート
デモ: Flairでの使用方法
必要条件: Flair (pip install flair
)
基本的な使用法
from flair.data import Sentence
from flair.models import SequenceTagger
tagger = SequenceTagger.load("flair/pos-english")
sentence = Sentence("I love Berlin.")
tagger.predict(sentence)
print(sentence)
print('The following NER tags are found:')
for entity in sentence.get_spans('pos'):
print(entity)
これにより、以下の出力が得られます:
Span [1]: "I" [− Labels: PRP (1.0)]
Span [2]: "love" [− Labels: VBP (1.0)]
Span [3]: "Berlin" [− Labels: NNP (0.9999)]
Span [4]: "." [− Labels: . (1.0)]
したがって、文「I love Berlin」では、「I」は代名詞 (PRP)、「love」は動詞 (VBP)、「Berlin」は固有名詞 (NNP) としてラベル付けされます。
トレーニング: このモデルをトレーニングするスクリプト
このモデルのトレーニングには、以下のFlairスクリプトが使用されました:
from flair.data import Corpus
from flair.datasets import ColumnCorpus
from flair.embeddings import WordEmbeddings, StackedEmbeddings, FlairEmbeddings
corpus: Corpus = ColumnCorpus(
"resources/tasks/onto-ner",
column_format={0: "text", 1: "pos", 2: "upos", 3: "ner"},
tag_to_bioes="ner",
)
tag_type = 'pos'
tag_dictionary = corpus.make_tag_dictionary(tag_type=tag_type)
embedding_types = [
FlairEmbeddings('news-forward'),
FlairEmbeddings('news-backward'),
]
embeddings = StackedEmbeddings(embeddings=embedding_types)
from flair.models import SequenceTagger
tagger = SequenceTagger(hidden_size=256,
embeddings=embeddings,
tag_dictionary=tag_dictionary,
tag_type=tag_type)
from flair.trainers import ModelTrainer
trainer = ModelTrainer(tagger, corpus)
trainer.train('resources/taggers/pos-english',
train_with_dev=True,
max_epochs=150)
📚 ドキュメント
引用
このモデルを使用する際には、以下の論文を引用してください。
@inproceedings{akbik2018coling,
title={Contextual String Embeddings for Sequence Labeling},
author={Akbik, Alan and Blythe, Duncan and Vollgraf, Roland},
booktitle = {{COLING} 2018, 27th International Conference on Computational Linguistics},
pages = {1638--1649},
year = {2018}
}
問題報告
Flairの問題追跡システムは こちら で利用できます。