你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何使用命名实体识别 (NER)

NER 功能可以评估非结构化文本,并从多个预定义类别(例如人员、位置、事件、产品和组织)的文本中提取命名实体。

开发选项

若要使用命名实体识别,需在应用程序中提交原始非结构化文本进行分析并处理 API 输出。 分析按原样执行,不会对数据所用的模型进行其他自定义。 可通过两种方式使用命名实体识别:

开发选项 说明
Language Studio Language Studio 是一个基于 Web 的平台,让你可以在没有 Azure 帐户的情况下尝试使用文本示例进行实体链接,并在注册时使用自己的数据。 有关详细信息,请参阅 Language Studio 网站Language Studio 快速入门
REST API 或客户端库 (Azure SDK) 使用 REST API 或以各种语言提供的客户端库将命名实体识别集成到应用程序中。 有关详细信息,请参阅命名实体识别快速入门

确定如何处理数据(可选)

输入语言

提交要处理的文档时,可以指定在编写这些文档时采用哪种受支持的语言。如果未指定语言,则关键短语提取将默认为英语。 API 可能会在响应中返回偏移量,以支持不同的多语言和表情符号编码

提交数据

在收到请求时执行分析。 同步使用 NER 功能是无状态的。 不会在帐户中存储数据,结果会立即在响应中返回。

以异步方式使用此功能时,API 结果在引入请求时的 24 小时内可用,并在响应中指示。 在此时间段后,结果将被清除,并且不再可用于检索。

此 API 会尝试检测给定文档语言的已定义实体类别

获取 NER 结果

从 NER 获得结果时,可以将结果流式传输到应用程序或将输出保存到本地系统上的文件中。 API 响应包括识别的实体(包括其类别和子类别)和置信度分数。

选择要返回的实体

此 API 会尝试检测给定文档语言的已定义实体类型和标记。 实体类型和标记会替换旧模型用于定义实体的类别和子类别结构,以提高灵活性。 也可以指定检测和返回哪些实体,将可选的 includeListexcludeList 参数与相应的实体类型结合使用。 以下示例仅检测 Location。 可以指定一种或多种要返回的实体类型。 鉴于此版本引入的类型和标记层次结构,你可以灵活地根据不同的粒度级别进行筛选,如下所示:

输入:

注意

在此示例中,仅返回“Location”实体类型

{
    "kind": "EntityRecognition",
    "parameters": 
    {
        "includeList" :
        [
            "Location"
        ]
    },
    "analysisInput":
    {
        "documents":
        [
            {
                "id":"1",
                "language": "en",
                "text": "We went to Contoso foodplace located at downtown Seattle last week for a dinner party, and we adore the spot! They provide marvelous food and they have a great menu. The chief cook happens to be the owner (I think his name is John Doe) and he is super nice, coming out of the kitchen and greeted us all. We enjoyed very much dining in the place! The pasta I ordered was tender and juicy, and the place was impeccably clean. You can even pre-order from their online menu at www.contosofoodplace.com, call 112-555-0176 or send email to order@contosofoodplace.com! The only complaint I have is the food didn't come fast enough. Overall I highly recommend it!"
            }
        ]
    }
}

上述示例将返回归入 Location 实体类型下的实体,例如 GPEStructuralGeological 标记的实体,如实体类型和标记所概述。 我们也可以使用 Location 实体类型的实体标记之一进行筛选,从而进一步筛选返回的实体,例如按照概述仅对 GPE 标记进行筛选:


    "parameters": 
    {
        "includeList" :
        [
            "GPE"
        ]
    }
    

此方法返回仅归入 GPE 标记下的所有 Location 实体,并忽略归入使用任何其他实体标记进行标记的 Location 类型下的任何其他实体,如 StructuralGeological 标记的 Location 实体。 还可以使用 excludeList 参数进一步向下钻取结果。 GPE 标记的实体可以使用以下标记进行标记:CityStateCountryRegionContinent。 例如,对于示例,我们可以排除 ContinentCountryRegion 标记:


    "parameters": 
    {
        "includeList" :
        [
            "GPE"
        ],
        "excludeList": :
        [
            "Continent",
            "CountryRegion"
        ]
    }
    

使用这些参数,我们可以成功地仅筛选 Location 实体类型,因为 includeList 参数中包含的 GPE 实体标记归入 Location 类型下。 然后,我们仅筛选 Geopolitical 实体,并排除使用 ContinentCountryRegion 标记进行标记的任何实体。

其他输出属性

为了让用户更深入地了解实体的类型并提高可用性,NER 支持输出中的这些属性:

属性名称 类型 定义
type 字符串 已检测实体的特定类型。

例如,“Seattle”是 CityGPE(地理政治实体)和 Location。 “Seattle”最精准的分类是 City。 文本“Seattle”的类型是 City
tags 列表(标记) 标记对象列表,用于表示已检测实体与层次结构或其他任何分组的关联。

标记包含两个字段:
1. name:标记的唯一名称。
2. confidenceScore:标记的关联置信度分数,范围为 0 到 1。

该唯一 tagName 用于筛选 inclusionListexclusionList 参数。
metadata Object 元数据是一个对象,其中包含有关已检测实体类型的详细数据。 它根据字段 metadataKind 而变化。

示例输出

此示例输出包含其他输出属性的示例。

{ 
    "kind": "EntityRecognitionResults", 
    "results": { 
        "documents": [ 
            { 
                "id": "1", 
                "entities": [ 
                    { 
                        "text": "Microsoft", 
                        "category": "Organization", 
                        "type": "Organization", 
                        "offset": 0, 
                        "length": 9, 
                        "confidenceScore": 0.97, 
                        "tags": [ 
                            { 
                                "name": "Organization", 
                                "confidenceScore": 0.97 
                            } 
                        ] 
                    }, 
                    { 
                        "text": "One", 
                        "category": "Quantity", 
                        "type": "Number", 
                        "subcategory": "Number", 
                        "offset": 21, 
                        "length": 3, 
                        "confidenceScore": 0.9, 
                        "tags": [ 
                            { 
                                "name": "Number", 
                                "confidenceScore": 0.8 
                            }, 
                            { 
                                "name": "Quantity", 
                                "confidenceScore": 0.8 
                            }, 
                            { 
                                "name": "Numeric", 
                                "confidenceScore": 0.8 
                            } 
                        ], 
                        "metadata": { 
                            "metadataKind": "NumberMetadata", 
                            "numberKind": "Integer", 
                            "value": 1.0 
                        } 
                    } 
                ], 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2023-09-01" 
    } 
} 

指定 NER 模型

默认情况下,此功能对文本使用最新的可用 AI 模型。 你还可以将 API 请求配置为使用特定模型版本

服务和数据限制

有关每分钟和每秒可以发送的请求大小和数量信息,请参阅服务限制一文。

后续步骤

命名实体识别概述