概述
命名实体标记(Named Entity Tagger)使用表示实体类型的标签对文本块中的每个单词或术语进行注释,这些标签取自 Groningen Meaning Bank (GMB) 数据集中由 17 个实体标签组成的列表。这些标签涵盖了以下 8 种命名实体:个人、地点、组织、地缘政治实体、人工制品、事件、自然物体、时间以及表示“无实体”的标签(参阅 GMB 数据集手册页面以获取完整的实体定义)。另外,还可以使用“B-”标签或“I-”标签来标记实体类型。“B-”标签表示新实体中的第一个术语(或单术语实体的唯一术语),而实体中的后续术语将带有“I-”标签。例如,”New York” 将标记为 ["B-GEO", "I-GEO"]
,而 “London” 将标记为 "B-GEO"
。
此模型由递归神经网络架构组成,其中将一个双向 LSTM 层应用于字符级嵌入向量(这些向量与预先训练的 GloVe 6B 词嵌入向量组合使用);最后将第二个双向 LSTM 层应用于此组合向量表示。此模型的输入是一个字符串,而输出是输入文本中的术语列表(在应用简单的标记化之后)以及每个术语的预测实体标签列表。
此模型基于 Guillaume Genthial 的 Named Entity Recognition with TensorFlow 模型,适合使用 Keras 框架。IBM CODAIT 团队根据 GMB 数据集版本 2.2.0
的子集对此模型进行了训练。
模型元数据
领域 | 应用 | 行业 | 框架 | 训练数据 | 输入数据格式 |
---|---|---|---|---|---|
自然语言处理 | 命名实体识别 | 通用 | Keras | Groningen Meaning Bank (GMB) 数据集 | 文本 |
注意基础数据集主要基于新闻文章,因此该模型在处理与一般新闻、商业、地缘政治和体育赛事相关的输入时应该表现得相对更好。该数据集涵盖了 2014 年之前的时间段,这决定了模型将要注意到的实体。
参考资料
- G.Lample、M. Ballesteros、S. Subramanian、K. Kawakami 和 C. Dyer,“Neural Architectures for Named Entity Recognition”,出自 arXiv(2016 年)。
- X.Ma 和 E. Hovy,“End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF”,出自 arXiv(2016 年)。
- Named Entity Recognition with TensorFlow。
- V.Basile、J. Bos、K. Evang 和 N. Venhuizen,“Developing a large semantically annotated corpus”, 出自第八届语言资源与评测国际会议 (LREC-2012) 会议记录(第 3196-3200 页)。欧洲语言资源学会 (ELRA)。2012 年。
- GMB 数据集关于页面和数据集手册。
- Stokastik 博客资源 GitHub 代码仓库。
许可
组件 | 许可 | 链接 |
---|---|---|
模型仓库 | Apache 2.0 | 许可 |
模型权重 | Apache 2.0 | 许可 |
模型代码(第三方) | Apache 2.0 | TensorFlow NER Repo 许可 |
此模型的可用部署选项
可以使用以下机制来部署此模型:
通过 Dockerhub 进行部署:
docker run -it -p 5000:5000 codait/max-named-entity-tagger
在 Red Hat OpenShift 上部署:
遵循本教程中有关 OpenShift Web 控制台或 OpenShift Container Platform CLI 的操作说明,并指定
codait/max-named-entity-tagger
作为镜像名称。在 Kubernetes 上部署:
kubectl apply -f https://raw.githubusercontent.com/IBM/MAX-Named-Entity-Tagger/master/max-named-entity-tagger.yaml
本地部署:遵循 GitHub 上的模型 README 文件中的操作说明
用法示例
您可以测试或使用此模型
使用 cURL 测试模型
在部署模型后,可以在命令行中测试该模型。例如:
curl -X POST -H 'Content-Type: application/json' -d '{"text":"John lives in Brussels and works for the EU"}' 'http://localhost:5000/model/predict'
您应该会看到与下面类似的 JSON 响应:
{
"status": "ok",
"prediction": {
"entities": [
"B-PER",
"O",
"O",
"B-GEO",
"O",
"O",
"O",
"O",
"B-ORG"
],
"input_terms": [
"John",
"lives",
"in",
"Brussels",
"and",
"works",
"for",
"the",
"EU"
]
}
}
在无服务器应用程序中测试模型
通过遵循在 IBM Cloud Functions 中利用深度学习教程中的操作说明,可以在无服务器应用程序中使用此模型。
此模型的可用训练选项
可以使用以下机制来训练此模型:
- 在 IBM Cloud – Watson Machine Learning 上训练:遵循 GitHub 上的模型训练 README 文件中的操作说明。
资源与贡献
如果您有兴趣为 Model Asset Exchange 项目做出贡献或有任何疑问,遵循此处的操作说明。
本文翻译自:Named Entity Tagger(2018-10-31)