🚀 GLiNER - 通用命名實體識別模型
GLiNER是一個命名實體識別(NER)模型,它能夠使用雙向Transformer編碼器(類似BERT)識別任何實體類型。該模型為傳統NER模型(侷限於預定義實體)和大語言模型(雖靈活但在資源受限場景下成本高且規模大)提供了實用的替代方案。
🚀 快速開始
安裝
要使用此模型,你必須安裝GLiNER Python庫:
!pip install gliner
使用示例
基礎用法
一旦你下載了GLiNER庫,就可以導入GLiNER
類。然後使用GLiNER.from_pretrained
加載模型,並使用predict_entities
預測實體。
from gliner import GLiNER
model = GLiNER.from_pretrained("urchade/gliner_small-v2.1")
text = """
Cristiano Ronaldo dos Santos Aveiro (Portuguese pronunciation: [kɾiʃˈtjɐnu ʁɔˈnaldu]; born 5 February 1985) is a Portuguese professional footballer who plays as a forward for and captains both Saudi Pro League club Al Nassr and the Portugal national team. Widely regarded as one of the greatest players of all time, Ronaldo has won five Ballon d'Or awards,[note 3] a record three UEFA Men's Player of the Year Awards, and four European Golden Shoes, the most by a European player. He has won 33 trophies in his career, including seven league titles, five UEFA Champions Leagues, the UEFA European Championship and the UEFA Nations League. Ronaldo holds the records for most appearances (183), goals (140) and assists (42) in the Champions League, goals in the European Championship (14), international goals (128) and international appearances (205). He is one of the few players to have made over 1,200 professional career appearances, the most by an outfield player, and has scored over 850 official senior career goals for club and country, making him the top goalscorer of all time.
"""
labels = ["person", "award", "date", "competitions", "teams"]
entities = model.predict_entities(text, labels)
for entity in entities:
print(entity["text"], "=>", entity["label"])
運行上述代碼,輸出結果如下:
Cristiano Ronaldo dos Santos Aveiro => person
5 February 1985 => date
Al Nassr => teams
Portugal national team => teams
Ballon d'Or => award
UEFA Men's Player of the Year Awards => award
European Golden Shoes => award
UEFA Champions Leagues => competitions
UEFA European Championship => competitions
UEFA Nations League => competitions
Champions League => competitions
European Championship => competitions
✨ 主要特性
- 通用實體識別:能夠識別任何實體類型,突破了傳統NER模型對預定義實體的限制。
- 資源友好:相較於大語言模型,在資源受限的場景下更具優勢。
📦 安裝指南
要使用此模型,你必須安裝GLiNER Python庫:
!pip install gliner
💻 使用示例
基礎用法
from gliner import GLiNER
model = GLiNER.from_pretrained("urchade/gliner_small-v2.1")
text = """
Cristiano Ronaldo dos Santos Aveiro (Portuguese pronunciation: [kɾiʃˈtjɐnu ʁɔˈnaldu]; born 5 February 1985) is a Portuguese professional footballer who plays as a forward for and captains both Saudi Pro League club Al Nassr and the Portugal national team. Widely regarded as one of the greatest players of all time, Ronaldo has won five Ballon d'Or awards,[note 3] a record three UEFA Men's Player of the Year Awards, and four European Golden Shoes, the most by a European player. He has won 33 trophies in his career, including seven league titles, five UEFA Champions Leagues, the UEFA European Championship and the UEFA Nations League. Ronaldo holds the records for most appearances (183), goals (140) and assists (42) in the Champions League, goals in the European Championship (14), international goals (128) and international appearances (205). He is one of the few players to have made over 1,200 professional career appearances, the most by an outfield player, and has scored over 850 official senior career goals for club and country, making him the top goalscorer of all time.
"""
labels = ["person", "award", "date", "competitions", "teams"]
entities = model.predict_entities(text, labels)
for entity in entities:
print(entity["text"], "=>", entity["label"])
📚 詳細文檔
可用模型
命名實體識別基準測試結果

🔧 技術細節
GLiNER使用雙向Transformer編碼器(類似BERT)來實現命名實體識別。這種架構使得模型能夠捕捉文本中的上下文信息,從而更準確地識別各種實體類型。
📄 許可證
本項目採用Apache-2.0許可證。
📎 相關鏈接
👨💻 模型作者
📖 引用
@misc{zaratiana2023gliner,
title={GLiNER: Generalist Model for Named Entity Recognition using Bidirectional Transformer},
author={Urchade Zaratiana and Nadi Tomeh and Pierre Holat and Thierry Charnois},
year={2023},
eprint={2311.08526},
archivePrefix={arXiv},
primaryClass={cs.CL}
}