Partilhar via


Reconhecimento de Entidades Nomeadas

Importante

O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.

A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).

A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.

Reconhece entidades nomeadas numa coluna de texto

Categoria: Análise de Texto

Nota

Aplica-se a: Machine Learning Studio (clássico) apenas

Módulos semelhantes de arrasto e queda estão disponíveis em Azure Machine Learning designer.

Visão geral do módulo

Este artigo descreve como usar o módulo de Reconhecimento de Entidades Nomeadas em Machine Learning Studio (clássico), para identificar os nomes das coisas, tais como pessoas, empresas ou localizações numa coluna de texto.

O reconhecimento de entidades nomeadas é uma área importante de investigação em machine learning e processamento de linguagem natural (NLP), porque pode ser usado para responder a muitas questões do mundo real, tais como:

  • Um tweet contém o nome de uma pessoa? O tweet também fornece a sua localização atual?

  • Que empresas foram mencionadas num artigo de notícias?

  • Foram mencionados produtos especificados em reclamações ou revisões?

Para obter uma lista de entidades nomeadas, fornece um conjunto de dados como entrada que contém uma coluna de texto. O módulo de Reconhecimento de Entidades Nomeadas identificará então três tipos de entidades: pessoas (PER), localizações (LOC) e organizações (ORG).

O módulo também rotula as sequências por onde estas palavras foram encontradas, para que possa usar os termos em análise mais aprofundada.

Por exemplo, a tabela a seguir mostra uma simples frase de entrada e os termos e valores gerados pelo módulo:

Texto de entrada Saída do módulo
"Boston é um ótimo lugar para se viver." 0,Boston,0,6,LOC

A saída pode ser interpretada da seguinte forma:

  • O primeiro '0' significa que esta corda é a primeira entrada de artigo para o módulo.

    Porque um único artigo pode ter várias entidades, incluindo o número da linha de artigo na saída é importante para mapear funcionalidades de artigos.

  • Boston é a entidade reconhecida.

  • O 0 que se segue Boston significa que a entidade Boston parte da primeira letra da cadeia de entrada. Os índices são baseados em zero.

  • 6 significa que o comprimento da entidade Boston é de 6.

  • LOC significa que a entidade Boston é um lugar, ou localização. Outros tipos de entidades com nome suportado são pessoa (PER) e organização (ORG).

Como configurar o reconhecimento de entidades nomeadas

  1. Adicione o módulo de Reconhecimento de Entidades Nomeado à sua experiência em Studio (clássico). Pode encontrar o módulo na categoria Text Analytics .

  2. Na entrada chamada Story, ligue um conjunto de dados contendo o texto para analisar.

    A "história" deve conter o texto a partir do qual extrair entidades nomeadas.

    A coluna usada como Story deve conter várias linhas, onde cada linha é composta por uma corda. a corda pode ser curta, como uma frase, ou longo, como um artigo de notícias.

    Pode ligar qualquer conjunto de dados que contenha uma coluna de texto. No entanto, se o conjunto de dados de entrada contiver várias colunas, utilize Colunas Selecionadas no Conjunto de Dados para escolher apenas a coluna que contém o texto que pretende analisar

    Nota

    A segunda entrada, Recursos Personalizados (Zip), não é suportada neste momento.

    No futuro, pode adicionar ficheiros de recursos personalizados aqui, para identificar diferentes tipos de entidades.

  3. Execute a experimentação.

Resultados

O módulo produz um conjunto de dados contendo uma linha para cada entidade que foi reconhecida, juntamente com as compensações.

Como cada linha de texto de entrada pode conter várias entidades nomeadas, um número de ID de artigo é automaticamente gerado e incluído na saída, para identificar a linha de entrada que continha a entidade nomeada. O ID do artigo baseia-se na ordem natural das linhas no conjunto de dados de entrada.

Pode converter este conjunto de dados de saída em CSV para download ou guardá-lo como um conjunto de dados para reutilização.

Utilizar o reconhecimento de entidades nomeadas num serviço web

Se publicar um serviço web a partir de Machine Learning Studio (clássico) e quiser consumir o serviço web utilizando C#, Python ou outra língua como R, deve primeiro implementar o código de serviço fornecido na página de ajuda do serviço web.

Se o seu serviço web fornecer várias linhas de saída, o URL do serviço web que adiciona ao seu código C#, Python ou R deverá ter o sufixo scoremultirow em vez de score.

Por exemplo, assuma que utiliza o seguinte URL para o seu serviço web: https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/score

Para permitir a saída de várias linhas, altere o URL para https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/scoremultirow

Para publicar este serviço web, deve adicionar um módulo executular adicional de Script após o módulo de Reconhecimento de Entidades Nomeadas , para transformar a saída multi-linha numa única delimitada com pontos -;) .. A razão para consolidar as múltiplas linhas de saída numa única linha é devolver várias entidades por linha de entrada.

Por exemplo, vamos supor que tem uma sentença de entrada com duas entidades nomeadas. Em vez de devolver duas linhas para cada linha de entrada, pode retornar uma única linha com várias entidades, separadas por pontos-e-cólons, como mostrado aqui:

Texto de entrada Saída do Serviço Web
A Microsoft tem duas localizações de escritórios em Boston. 0,Microsoft,0,9,ORG,;,0,Boston,38,6,LOC,;

A seguinte amostra de código demonstra como fazê-lo:

# Map 1-based optional input ports to variables  
d <- maml.mapInputPort(1) # class: data.frame  
y=length(d) ##size of cols  
x=dim(d)[1] ##size of rows  
longd=matrix("NA",nrow=1,ncol=x*(y+1))  
for (i in 1:x)  
  {   
     for (j in 1:y)  
     {  
       longd[1,j+(i-1)*(y+1)]=toString(d[i,j])   
     }  
     longd[1,j+(i-1)*(y+1)+1]=c(";")  
  }   

final_output=as.data.frame(longd)  
# Select data.frame to be sent to the output Dataset port  
maml.mapOutputPort("final_output");  

Exemplos

Este blog fornece uma explicação alargada de como o reconhecimento de entidades nomeadas funciona, o seu passado e possíveis aplicações:

Consulte também as seguintes experiências de amostra na Galeria Azure AI para demonstrações de como utilizar métodos de classificação de texto comumente utilizados na aprendizagem automática:

Notas técnicas

Suporte de idiomas

Atualmente, o módulo de Reconhecimento de Entidades Nomeadas suporta apenas texto em inglês. Pode detetar nomes de organizações, nomes pessoais e locais em frases inglesas. Se utilizar o módulo noutras línguas, pode não ter um erro, mas os resultados não são tão bons como para o texto em inglês.

No futuro, o suporte a línguas adicionais pode ser ativado através da integração dos componentes multilingues fornecidos no Office Kit de Ferramentas de Linguagem Natural.

Entradas esperadas

Nome Tipo Description
História Tabela de Dados Um conjunto de dados de entrada (DataTable) que contém a coluna de texto que pretende analisar.
Recursos personalizados Zip (Opcional) Um ficheiro em formato ZIP que contém recursos personalizados adicionais.

Esta opção não está disponível atualmente e está prevista apenas para compatibilidade a prazo.

Saídas

Nome Tipo Description
Entidades Tabela de Dados Uma lista de compensações de caracteres e entidades

Ver também

Análise de Texto
Hashing de Funcionalidade
Pontuação Vowpal Wabbit 7-4 Modelo
Modelo Wabbit 7-4 do comboio