gradio/guides/cn/07_other-tutorials/named-entity-recognition.md
pngwn 643442e1a5
generate docs json in ci, reimplement main vs release (#5092)
* fixup site

* fix docs versions

* test ci

* test ci some more

* test ci some more

* test ci some more

* asd

* asd

* asd

* asd

* asd

* asd

* asd

* asd

* asd

* test

* fix

* add changeset

* fix

* fix

* fix

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* test ci

* notebook ci

* notebook ci

* more ci

* more ci

* update changeset

* update changeset

* update changeset

* fix site

* fix

* fix

* fix

* fix

* fix ci

* render mising pages

* remove changeset

* fix path

* fix workflows

* fix workflows

* fix workflows

* fix comment

* tweaks

* tweaks

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
2023-08-11 15:54:56 +01:00

3.0 KiB
Raw Blame History

命名实体识别 Named-Entity Recognition

相关空间:https://huggingface.co/spaces/rajistics/biobert_ner_demohttps://huggingface.co/spaces/abidlabs/nerhttps://huggingface.co/spaces/rajistics/Financial_Analyst_AI 标签NERTEXTHIGHLIGHT

简介

命名实体识别NER又称为标记分类或文本标记它的任务是对一个句子进行分类将每个单词或 "token")归为不同的类别,比如人名、地名或词性等。

例如,给定以下句子:

芝加哥有巴基斯坦餐厅吗?

命名实体识别算法可以识别出:

  • "Chicago" as a location
  • "Pakistani" as an ethnicity

等等。

使用 gradio(特别是 HighlightedText 组件),您可以轻松构建一个 NER 模型的 Web 演示并与团队分享。

这是您将能够构建的一个演示的示例:

$demo_ner_pipeline

本教程将展示如何使用预训练的 NER 模型并使用 Gradio 界面部署该模型。我们将展示两种不同的使用 HighlightedText 组件的方法--根据您的 NER 模型,可以选择其中任何一种更容易学习的方式!

环境要求

确保您已经安装gradio Python 包。您还需要一个预训练的命名实体识别模型。在本教程中,我们将使用 transformers 库中的一个模型。

方法一:实体字典列表

许多命名实体识别模型输出的是一个字典列表。每个字典包含一个实体,一个 " 起始 " 索引和一个 " 结束 " 索引。这就是 transformers 库中的 NER 模型的操作方式。

from transformers import pipeline
ner_pipeline = pipeline("ner")
ner_pipeline("芝加哥有巴基斯坦餐厅吗?")

输出结果:

[{'entity': 'I-LOC',
  'score': 0.9988978,
  'index': 2,
  'word': 'Chicago',
  'start': 5,
  'end': 12},
 {'entity': 'I-MISC',
  'score': 0.9958592,
  'index': 5,
  'word': 'Pakistani',
  'start': 22,
  'end': 31}]

如果您有这样的模型,将其连接到 Gradio 的 HighlightedText 组件非常简单。您只需要将这个实体列表原始文本以字典的形式传递给模型,其中键分别为 "entities""text"

下面是一个完整的示例:

$code_ner_pipeline $demo_ner_pipeline

方法二:元组列表

将数据传递给 HighlightedText 组件的另一种方法是使用元组列表。每个元组的第一个元素应该是被归类为特定实体的单词或词组。第二个元素应该是实体标签(如果不需要标签,则为 None)。HighlightedText 组件会自动组合单词和标签来显示实体。

在某些情况下,这比第一种方法更简单。下面是一个使用 Spacy 的词性标注器演示此方法的示例:

$code_text_analysis $demo_text_analysis


到此为止!您已经了解了为您的 NER 模型构建基于 Web 的图形用户界面所需的全部内容。

有趣的提示:只需在 launch() 中设置 share=True,即可立即与其他人分享您的 NER 演示。