🚀 Flair英文通用品詞タグ付け(高速モデル)
このプロジェクトは、英文用の高速な通用品詞タグ付けモデルであり、Flair ライブラリの一部です。このモデルは、英文テキストに対して効率的かつ正確に品詞タグ付けを行うことができ、品詞タグ付けタスクで優れた性能を発揮します。
F1 スコア:98.47(Ontonotes データセットに基づく)
このモデルが予測できる通用品詞タグは以下の通りです。
タグ |
意味 |
ADJ |
形容詞 |
ADP |
前置詞 |
ADV |
副詞 |
AUX |
助動詞 |
CCONJ |
並立接続詞 |
DET |
限定詞 |
INTJ |
感嘆詞 |
NOUN |
名詞 |
NUM |
数詞 |
PART |
小品詞 |
PRON |
代名詞 |
PROPN |
固有名詞 |
PUNCT |
句読点 |
SCONJ |
従属接続詞 |
SYM |
記号 |
VERB |
動詞 |
X |
その他 |
このモデルは、Flair エンベディング と LSTM - CRF を基に構築されています。
🚀 クイックスタート
このモデルを使用するには、Flair ライブラリをインストールする必要があります。以下のコマンドを使用してインストールできます。
pip install flair
💻 使用例
基本的な使用法
from flair.data import Sentence
from flair.models import SequenceTagger
tagger = SequenceTagger.load("flair/upos-english-fast")
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: PRON (0.9996)]
Span [2]: "love" [− Labels: VERB (1.0)]
Span [3]: "Berlin" [− Labels: PROPN (0.9986)]
Span [4]: "." [− Labels: PUNCT (1.0)]
文 “I love Berlin.” では、“I” は 代名詞(PRON)、“love” は 動詞(VERB)、“Berlin” は 固有名詞(PROPN)としてタグ付けされています。
🔧 技術詳細
トレーニングスクリプト
このモデルをトレーニングするための 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 = 'upos'
tag_dictionary = corpus.make_tag_dictionary(tag_type=tag_type)
embedding_types = [
FlairEmbeddings('news-forward-fast'),
FlairEmbeddings('news-backward-fast'),
]
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/upos-english-fast',
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 問題トラッカー で問題を提出できます。