ner english fast
简介
核心亮点
- 极速推理,适合大规模文本实时实体提取
- 轻量化部署,显著降低显存和计算资源占用
- 精准识别人名、地名、机构等核心英文实体
- Apache-2.0 协议,支持灵活的商业化集成
使用方法
# 安装 Hugging Face transformers
pip install transformers torch
# 使用 transformers 加载模型
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained("flair/ner-english-fast")
tokenizer = AutoTokenizer.from_pretrained("flair/ner-english-fast")
Hugging Face 下载
我们推荐使用命令行或者 Hugging Face Hub SDK 来进行模型的下载。
操作指引:在下载前,请先通过如下命令安装 huggingface_hub:
pip install -U huggingface_hub
命令行下载
下载完整模型库
huggingface-cli download flair/ner-english-fast
下载单个文件到指定本地文件夹(以下载 config.json 到当前路径下 ./dir 目录为例)
huggingface-cli download flair/ner-english-fast config.json --local-dir ./dir
SDK 下载
# 模型下载
from huggingface_hub import snapshot_download
model_dir = snapshot_download('flair/ner-english-fast')
Git 下载
请确保 lfs 已经被正确安装
git lfs install
git clone https://huggingface.co/flair/ner-english-fast
如果您希望跳过 lfs 大文件下载,可以使用如下命令
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/flair/ner-english-fast
模型文件托管在 Hugging Face Hub,使用 HF CLI / SDK / Git 直接下载,不经过本站。
PyTorch / Transformers 使用
安装 Transformers
pip install -U transformers torch
模型加载和推理
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained('flair/ner-english-fast')
tokenizer = AutoTokenizer.from_pretrained('flair/ner-english-fast')
模型下载
我们推荐使用命令行或者 ModelScope SDK 来进行模型的下载。
操作指引:在下载前,请先通过如下命令安装 ModelScope:
pip install modelscope
命令行下载
下载完整模型库
modelscope download --model flair/ner-english-fast
下载单个文件到指定本地文件夹(以下载 README.md 到当前路径下 dir 目录为例)
modelscope download --model flair/ner-english-fast README.md --local_dir ./dir
SDK 下载
# 模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('flair/ner-english-fast')
Git 下载
请确保 lfs 已经被正确安装
git lfs install
git clone https://www.modelscope.cn/flair/ner-english-fast.git
如果您希望跳过 lfs 大文件下载,可以使用如下命令
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/flair/ner-english-fast.git
ModelScope 模型页直接下载模型文件;无需将模型文件放在本站服务器。
Notebook 快速开发
下载并安装 ModelScope library
pip install "modelscope[audio,cv,nlp,multi-modal,science]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
模型加载和推理
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
p = pipeline('text-generation', 'flair/ner-english-fast')
完整文档
---
tags:
- flair
- token-classification
- sequence-tagger-model
language: en
datasets:
- conll2003
widget:
- text: "George Washington went to Washington"
---
English NER in Flair (fast model)
This is the fast 4-class NER model for English that ships with Flair.
F1-Score: 92,92 (corrected CoNLL-03)
Predicts 4 tags:
| tag | meaning |
|---------------------------------|-----------|
| PER | person name |
| LOC | location name |
| ORG | organization name |
| MISC | other name |
Based on Flair embeddings and LSTM-CRF.
---
Demo: How to use in Flair
Requires: Flair (pip install flair)
from flair.data import Sentence
from flair.models import SequenceTagger
load tagger
tagger = SequenceTagger.load("flair/ner-english-fast")
make example sentence
sentence = Sentence("George Washington went to Washington")
predict NER tags
tagger.predict(sentence)
print sentence
print(sentence)
print predicted NER spans
print('The following NER tags are found:')
iterate over entities and print
for entity in sentence.get_spans('ner'):
print(entity)This yields the following output:
Span [1,2]: "George Washington" [− Labels: PER (0.9515)]
Span [5]: "Washington" [− Labels: LOC (0.992)]So, the entities "*George Washington*" (labeled as a person) and "*Washington*" (labeled as a location) are found in the sentence "*George Washington went to Washington*".
---
Training: Script to train this model
The following Flair script was used to train this model:
from flair.data import Corpus
from flair.datasets import CONLL_03
from flair.embeddings import WordEmbeddings, StackedEmbeddings, FlairEmbeddings
1. get the corpus
corpus: Corpus = CONLL_03()
2. what tag do we want to predict?
tag_type = 'ner'
3. make the tag dictionary from the corpus
tag_dictionary = corpus.make_tag_dictionary(tag_type=tag_type)
4. initialize each embedding we use
embedding_types = [
# GloVe embeddings
WordEmbeddings('glove'),
# contextual string embeddings, forward
FlairEmbeddings('news-forward-fast'),
# contextual string embeddings, backward
FlairEmbeddings('news-backward-fast'),
]
embedding stack consists of Flair and GloVe embeddings
embeddings = StackedEmbeddings(embeddings=embedding_types)
5. initialize sequence tagger
from flair.models import SequenceTagger
tagger = SequenceTagger(hidden_size=256,
embeddings=embeddings,
tag_dictionary=tag_dictionary,
tag_type=tag_type)
6. initialize trainer
from flair.trainers import ModelTrainer
trainer = ModelTrainer(tagger, corpus)
7. run training
trainer.train('resources/taggers/ner-english',
train_with_dev=True,
max_epochs=150)---
Cite
Please cite the following paper when using this model.
@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}
}---
Issues?
The Flair issue tracker is available here.