许可证:apache-2.0
语言:
- 多语言
库名称:gliner
数据集:
- urchade/pile-mistral-v0.1
- numind/NuNER
- knowledgator/GLINER-multi-task-synthetic-data
管道标签:token-classification
关于
GLiNER 是一个命名实体识别(NER)模型,能够通过双向 Transformer 编码器(类似 BERT)识别任何实体类型。它为传统 NER 模型提供了实用替代方案,后者仅限于预定义实体,而大型语言模型(LLMs)虽然灵活,但在资源受限场景下成本高昂且体积庞大。
此版本采用后融合的双编码器架构,其中文本编码器为 DeBERTa v3 small,实体标签编码器为句子 Transformer - BGE-small-en。
相比单编码器 GLiNER,此架构具有以下优势:
- 可一次性识别无限数量的实体;
- 若实体嵌入已预处理,推理速度更快;
- 对未见实体的泛化能力更强;
后融合策略相比经典双编码器能更好地理解标签间关系。
安装与使用
安装或更新 gliner 包:
pip install gliner -U
下载 GLiNER 库后,可导入 GLiNER 类,并通过 GLiNER.from_pretrained
加载模型,使用 predict_entities
预测实体。
from gliner import GLiNER
model = GLiNER.from_pretrained("knowledgator/gliner-poly-small-v1.0")
text = """
克里斯蒂亚诺·罗纳尔多·多斯·桑托斯·阿维罗(葡萄牙语发音:[kɾiʃˈtjɐnu ʁɔˈnaldu];1985年2月5日出生)是葡萄牙职业足球运动员,司职前锋,同时担任沙特职业足球联赛俱乐部阿尔纳斯尔和葡萄牙国家队的队长。被广泛认为是有史以来最伟大的球员之一,罗纳尔多曾五次获得金球奖[注3],创纪录地三次获得欧足联年度最佳男子球员奖,以及四次欧洲金靴奖,是欧洲球员中获得该奖项次数最多的球员。他的职业生涯共获得33座奖杯,包括7次联赛冠军、5次欧冠冠军、1次欧洲杯冠军和1次欧国联冠军。罗纳尔多保持着欧冠出场次数(183)、进球(140)和助攻(42)的纪录,欧洲杯进球(14)、国家队进球(128)和出场次数(205)的纪录。他是少数职业生涯出场超过1200次的球员之一,也是非门将位置出场次数最多的球员,并为俱乐部和国家队打入超过850粒正式比赛进球,成为历史最佳射手。
"""
labels = ["人物", "奖项", "日期", "赛事", "球队"]
entities = model.predict_entities(text, labels, threshold=0.25)
for entity in entities:
print(entity["text"], "=>", entity["label"])
克里斯蒂亚诺·罗纳尔多·多斯·桑托斯·阿维罗 => 人物
1985年2月5日 => 日期
阿尔纳斯尔 => 球队
葡萄牙国家队 => 球队
金球奖 => 奖项
欧足联年度最佳男子球员奖 => 奖项
欧洲金靴奖 => 奖项
欧冠冠军 => 赛事
欧洲杯冠军 => 赛事
欧国联冠军 => 赛事
欧冠 => 赛事
欧洲杯 => 赛事
如需处理大量实体并预嵌入,请参考以下代码片段:
labels = ["您的实体"]
texts = ["您的文本"]
entity_embeddings = model.encode_labels(labels, batch_size=8)
outputs = model.batch_predict_with_embeds([text], entity_embeddings, labels)
基准测试
下表展示了在不同命名实体识别数据集上的基准测试结果:
数据集 |
得分 |
ACE 2004 |
25.4% |
ACE 2005 |
27.2% |
AnatEM |
17.7% |
Broad Tweet Corpus |
70.2% |
CoNLL 2003 |
67.8% |
FabNER |
22.9% |
FindVehicle |
40.2% |
GENIA_NER |
47.7% |
HarveyNER |
15.5% |
MultiNERD |
64.5% |
Ontonotes |
28.7% |
PolyglotNER |
47.5% |
TweetNER7 |
39.3% |
WikiANN en |
56.7% |
WikiNeural |
80.0% |
bc2gm |
56.2% |
bc4chemd |
48.7% |
bc5cdr |
60.5% |
ncbi |
53.5% |
平均 |
45.8% |
|
|
CrossNER_AI |
48.9% |
CrossNER_literature |
64.0% |
CrossNER_music |
68.7% |
CrossNER_politics |
69.0% |
CrossNER_science |
62.7% |
mit-movie |
40.3% |
mit-restaurant |
36.2% |
平均(零样本基准) |
55.7% |
加入我们的 Discord
通过 Discord 与社区联系,获取模型相关新闻、支持与讨论。加入 Discord。