Referência do componente Hashing de Funcionalidades

Este artigo descreve um componente incluído no estruturador do Azure Machine Learning.

Utilize o componente Hashing de Funcionalidades para transformar um fluxo de texto em inglês num conjunto de funcionalidades de número inteiro. Em seguida, pode passar este conjunto de funcionalidades com hash para um algoritmo de aprendizagem automática para preparar um modelo de análise de texto.

A funcionalidade de hashing de funcionalidades fornecida neste componente baseia-se na arquitetura nimbusml. Para obter mais informações, veja Classe NgramHash.

O que é o hashing de funcionalidades?

O hashing de funcionalidades funciona ao converter tokens exclusivos em números inteiros. Funciona nas cadeias exatas que fornece como entrada e não efetua qualquer análise linguística ou pré-processamento.

Por exemplo, veja um conjunto de frases simples como estas, seguidas de uma classificação de sentimento. Suponha que pretende utilizar este texto para criar um modelo.

Texto do utilizador Sentimento
Adorei este livro 3
Odiei este livro. 1
Este livro foi óptimo 3
Adoro livros 2

Internamente, o componente Hashing de Funcionalidades cria um dicionário de n-gramas. Por exemplo, a lista de bigrams para este conjunto de dados seria algo semelhante ao seguinte:

Termo (bigrams) Frequência
Este livro 3
Eu amava 1
Odiei 1
Adoro 1

Pode controlar o tamanho dos n-gramas com a propriedade N-grams . Se escolher bigrams, os unigramas também são calculados. O dicionário também incluiria termos únicos como estes:

Termo (unigramas) Frequência
livro 3
I 3
livros 1
foi 1

Após a criação do dicionário, o componente Hashing de Funcionalidades converte os termos do dicionário em valores hash. Em seguida, calcula se uma funcionalidade foi utilizada em cada caso. Para cada linha de dados de texto, o componente produz um conjunto de colunas, uma coluna para cada funcionalidade hash.

Por exemplo, após a aplicação de hash, as colunas de funcionalidades podem ter este aspeto:

Classificação Funcionalidade de hashing 1 Funcionalidade de hashing 2 Funcionalidade de hashing 3
4 1 1 0
5 0 0 0
  • Se o valor na coluna for 0, significa que a linha não tinha a função com hash.
  • Se o valor for 1, a linha continha a funcionalidade.

O hashing de funcionalidades permite-lhe representar documentos de texto de comprimento variável como vetores de funcionalidades numéricos com comprimento igual para reduzir a dimensionalidade. Se tentou utilizar a coluna de texto para a preparação tal como está, esta seria tratada como uma coluna de funcionalidade categórica com muitos valores distintos.

As saídas numéricas também permitem utilizar métodos comuns de machine learning, incluindo classificação, clustering e obtenção de informações. Como as operações de procura podem utilizar hashes de números inteiros em vez de comparações de cadeias de carateres, a obtenção das ponderações das funcionalidades é, também, muito mais rápida.

Configurar o componente Hashing de Funcionalidades

  1. Adicione o componente Hashing de Funcionalidades ao pipeline no estruturador.

  2. Ligue o conjunto de dados que contém o texto que pretende analisar.

    Dica

    Uma vez que o hashing de funcionalidades não realiza operações lexicais, como a lematização ou a truncagem, por vezes, poderá obter melhores resultados através do pré-processamento do texto antes de aplicar o hashing de funcionalidades.

  3. Defina Colunas de destino para as colunas de texto que quer converter em funcionalidades com hash. Lembre-se de que:

    • As colunas têm de ser o tipo de dados de cadeia.

    • Escolher várias colunas de texto pode ter um impacto significativo na dimensionalidade das funcionalidades. Por exemplo, o número de colunas para um hash de 10 bits varia entre 1024 para uma única coluna e 2048 para duas colunas.

  4. Utilize o parâmetro Hashing bitsize para especificar o número de bits a utilizar quando estiver a criar a tabela de hash.

    O tamanho de bit predefinido é 10. Para muitos problemas, este valor é adequado. Poderá precisar de mais espaço para evitar colisões, consoante o tamanho do vocabulário n-gramas no texto de preparação.

  5. Para N-gramas, introduza um número que defina o comprimento máximo dos n-gramas a adicionar ao dicionário de preparação. Um n-grama é uma sequência de n palavras, tratada como uma unidade exclusiva.

    Por exemplo, se introduzir 3, serão criados unigramas, bigrams e trigramas.

  6. Submeta o pipeline.

Resultados

Após a conclusão do processamento, o componente produz um conjunto de dados transformado no qual a coluna de texto original foi convertida em múltiplas colunas. Cada coluna representa uma funcionalidade no texto. Dependendo da importância do dicionário, o conjunto de dados resultante pode ser grande:

Nome da coluna 1 Tipo de coluna 2
TEXTO DE UTILIZADOR Coluna de dados original
SENTIMENTO Coluna de dados original
USERTEXT – Funcionalidade de hashing 1 Coluna de funcionalidades com hash
USERTEXT – Funcionalidade de hashing 2 Coluna de funcionalidades com hash
USERTEXT – Funcionalidade de hashing n Coluna de funcionalidades com hash
USERTEXT – Funcionalidade de hashing 1024 Coluna de funcionalidades com hash

Depois de criar o conjunto de dados transformado, pode utilizá-lo como entrada para o componente Preparar Modelo.

Melhores práticas

As seguintes melhores práticas podem ajudá-lo a tirar o máximo partido do componente Hashing de Funcionalidades:

  • Adicione um componente Texto pré-processamento antes de utilizar o Hashing de Funcionalidades para pré-processar o texto de entrada.

  • Adicione um componente Select Columns a seguir ao componente Hashing de Funcionalidades para remover as colunas de texto do conjunto de dados de saída. As colunas de texto não são necessárias após a geração das funcionalidades de hashing.

  • Considere utilizar estas opções de pré-processamento de texto para simplificar os resultados e melhorar a precisão:

    • Quebra de palavras
    • A parar a remoção de palavras
    • Normalização de casos
    • Remoção de pontuação e carateres especiais
    • A conter

O conjunto ideal de métodos de pré-processamento a aplicar em qualquer solução depende do domínio, vocabulário e necessidade empresarial. pipeline com os seus dados para ver quais os métodos de processamento de texto mais eficazes.

Passos seguintes

Veja o conjunto de componentes disponíveis para o Azure Machine Learning