标签:
- flair
- 标记分类
- 序列标注模型
语言: 英文
数据集:
- ontonotes
小部件示例:
- 文本: "乔治回到柏林归还他的帽子。"
Flair中的英语动词消歧(快速模型)
这是Flair自带的英语动词消歧快速模型。
F1分数: 88.27 (基于Ontonotes数据集) - 预测命题库动词框架。
基于Flair嵌入和LSTM-CRF架构。
演示:如何在Flair中使用
需要安装: Flair (pip install flair
)
from flair.data import Sentence
from flair.models import SequenceTagger
tagger = SequenceTagger.load("flair/frame-english-fast")
sentence = Sentence("乔治回到柏林归还他的帽子。")
tagger.predict(sentence)
print(sentence)
print('发现以下框架标签:')
for entity in sentence.get_spans('frame'):
print(entity)
输出结果如下:
Span [2]: "回到" [− 标签: return.01 (0.9867)]
Span [6]: "归还" [− 标签: return.02 (0.4741)]
在句子"乔治回到柏林归还他的帽子"中,词语"回到"被标注为return.01(表示返回某地),而"归还"被标注为return.02(表示归还某物)。
训练:模型训练脚本
使用以下Flair脚本训练本模型:
from flair.data import Corpus
from flair.datasets import ColumnCorpus
from flair.embeddings import WordEmbeddings, StackedEmbeddings, FlairEmbeddings
corpus = ColumnCorpus(
"resources/tasks/srl", column_format={1: "text", 11: "frame"}
)
tag_type = 'frame'
tag_dictionary = corpus.make_tag_dictionary(tag_type=tag_type)
embedding_types = [
BytePairEmbeddings("en"),
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/frame-english-fast',
train_with_dev=True,
max_epochs=150)
引用
使用本模型时请引用以下论文:
@inproceedings{akbik2019flair,
title={FLAIR: 一个易用的前沿NLP框架},
author={阿克比克, 艾伦 and 伯格曼, 坦尼娅 and 布莱斯, 邓肯 and 拉苏尔, 卡希夫 and 施韦特, 斯特凡 and 福尔格拉夫, 罗兰},
booktitle={{NAACL}2019, 北美计算语言学协会2019年会(演示环节)},
pages={54--59},
year={2019}
}
问题反馈?
Flair问题跟踪器详见此处。