Partilhar via


Referência do componente Hashing de recursos

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

Use o componente Hashing de recursos para transformar um fluxo de texto em inglês em um conjunto de recursos inteiros. 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 hash de recurso fornecida neste componente é baseada na estrutura 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. Ele opera nas cadeias de caracteres exatas que você fornece como entrada e não executa nenhuma análise linguística ou pré-processamento.

Por exemplo, pegue um conjunto de frases simples como estas, seguidas por uma pontuação de sentimento. Suponha que você deseja usar este texto para criar um modelo.

Texto do utilizador Sentimento
Eu amei este livro 3
Eu odiava este livro 1
Este livro foi ótimo 3
Adoro livros 2

Internamente, o componente Feature Hashing cria um dicionário de n-gramas. Por exemplo, a lista de bigramas para este conjunto de dados seria algo assim:

Termo (bigramas) Frequência
Este livro 3
Eu amei 1
Eu odiava 1
Eu amo 1

Você pode controlar o tamanho dos n-gramas usando a propriedade N-gramas . Se você escolher bigramas, os unigramas também serão computados. O dicionário também incluiria termos únicos como estes:

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

Depois que o dicionário é criado, o componente Feature Hashing converte os termos do dicionário em valores de hash. Em seguida, calcula se um recurso foi usado em cada caso. Para cada linha de dados de texto, o componente gera um conjunto de colunas, uma coluna para cada recurso com hash.

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

Rating 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 o recurso.

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 você tentasse usar a coluna de texto para treinamento como está, ela seria tratada como uma coluna de recurso categórica com muitos valores distintos.

As saídas numéricas também possibilitam o uso de métodos comuns de aprendizado de máquina, incluindo classificação, agrupamento e recuperaçã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 recursos

  1. Adicione o componente Hashing de recursos ao seu pipeline no designer.

  2. Conecte o conjunto de dados que contém o texto que você deseja analisar.

    Gorjeta

    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 devem ser o tipo de dados de cadeia de caracteres.

    • A escolha de várias colunas de texto pode ter um impacto significativo na dimensionalidade do recurso. 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 padrão é 10. Para muitos problemas, este valor é adequado. Você pode precisar de mais espaço para evitar colisões, dependendo do tamanho do vocabulário de n-gramas no texto de treinamento.

  5. Para N-gramas, insira um número que defina o comprimento máximo dos n-gramas a serem adicionados ao dicionário de treinamento. Um n-grama é uma sequência de n palavras, tratadas como uma unidade única.

    Por exemplo, se você inserir 3, unigramas, bigramas e trigramas serão criados.

  6. Envie 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 várias colunas. Cada coluna representa uma característica no texto. Dependendo de quão significativo é o 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, você pode usá-lo como entrada para o componente Train Model.

Melhores práticas

As seguintes práticas recomendadas podem ajudá-lo a aproveitar ao máximo o componente Hashing de recursos:

  • Adicione um componente Pré-processar texto antes de usar o hash de recurso para pré-processar o texto de entrada.

  • Adicione um componente Selecionar colunas após o componente Hash de recurso 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 usar estas opções de pré-processamento de texto, para simplificar os resultados e melhorar a precisão:

    • Separação de palavras
    • Parar a remoção de palavras
    • Normalização de casos
    • Remoção de pontuação e caracteres especiais
    • Travessão

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

Próximos passos

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