Reconhecimento de Entidades Nomeadas

Reconhece entidades nomeadas numa coluna de texto

Categoria: Análise de Texto

Nota

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

Este conteúdo diz respeito apenas ao Studio (clássico). Módulos semelhantes de arrasto e queda foram adicionados ao designer de Aprendizagem automática Azure. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo de Reconhecimento de Entidades Nomeadas no Azure Machine Learning Studio (clássico), para identificar os nomes de coisas, 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 cadeia é 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 significa que a entidade parte da primeira letra da cadeia de Boston Boston 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 História 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 do Azure 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 ativar 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 adicional de Execut R 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:

  • Amostra de categorização denotícias : Utiliza hashing de recurso para classificar os artigos numa lista de categorias predefinida.

  • Amostra de Empresas Similares: Utiliza o texto dos artigos da Wikipédia para categorizar empresas.

  • Passo 1 de 5: Preparação de dados: Nesta passagem de cinco partes da classificação de texto, o texto das mensagens do Twitter é utilizado para a análise de sentimento. Uma variedade de técnicas de pré-processamento de texto também são demonstradas.

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 Natural Language Toolkit.

Entradas esperadas

Nome Tipo Descrição
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 Descrição
Entidades Tabela de Dados Uma lista de compensações de caracteres e entidades

Ver também

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