Share via


Extrair recursos N-Gram do texto

Importante

O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).

A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.

Cria recursos de dicionário N-Gram e faz a seleção de recursos neles

Categoria: Análise de Texto

Observação

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

Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.

Visão geral do módulo

Este artigo explica como usar o módulo Extrair Recursos N-Gram de Texto no Machine Learning Studio (clássico) para personalizar o texto e extrair apenas as informações mais importantes de cadeias de caracteres de texto longo.

O módulo funciona criando um dicionário de n-grams de uma coluna de texto livre que você especifica como entrada. O módulo aplica várias métricas de informações à lista n-gram para reduzir a dimensionalidade de dados e identificar os n-grams que têm o valor mais informações.

Se você já tiver criado um vocabulário de n-grams, poderá atualizar suas estatísticas ou mesclar em novos termos, usando um algoritmo de ponderação de sua escolha.

Como este módulo dá suporte à apresentação de n-grams, ele também pode ser usado ao pontuar.

Como configurar a extração de recursos N-Gram do texto

Esse módulo dá suporte aos seguintes cenários para criar, atualizar ou aplicar um dicionário n-gram:

  • Você está desenvolvendo um novo modelo usando uma coluna de coluna de texto livre e deseja extrair recursos de texto com base apenas nos dados de entrada. Consulte instruções.

  • Você tem um conjunto existente de recursos de texto e deseja atualizar os pesos processando novas entradas de texto. Consulte instruções.

  • Você está gerando pontuações de um modelo preditivo e precisa gerar e usar entradas de texto com um dicionário n-gram como parte do processo de pontuação. Consulte instruções.

Você pode usar o experimento de exemplo para referência.

Criar um dicionário n-gram de uma coluna de texto

  1. Adicione o módulo Extrair Recursos N-Gram de Texto ao seu experimento e conecte o conjuntos de dados que tem o texto que você deseja processar.

  2. Para Coluna de texto, escolha uma coluna do tipo cadeia de caracteres que contém o texto que você deseja extrair.

    Por padrão, o módulo seleciona todas as colunas de cadeia de caracteres. No entanto, como o resultado é detalhado, talvez seja necessário processar uma única coluna por vez.

  3. Para o modo vocabulário, selecione Criar para indicar que você está criando uma nova lista de recursos n-gram.

    Para obter informações sobre como atualizar um conjunto existente de recursos n-gram, consulte esta seção.

  4. Para o tamanho de N-Grams, digite um número que indica o tamanho máximo dos n-grams a extrair e armazenar.

    Por exemplo, se você digitar 3, unigramas, bigrams e trigramas serão criados.

  5. Para tamanho K-Skip, digite o número máximo de caracteres que podem ser diferentes ao identificar variantes de n-grams. Se o valor de k for definido como 0, n-grams poderão ser criados somente de uma sequência exclusiva e contígua de caracteres.

    Por exemplo, suponha que seu dicionário contenha o "computador" do unigrama. Um valor k de 0 significa que "computador" é o único unigrama válido. Se você aumentar o valor de k para 1, poderá ignorar um caractere intermediária, o que permite encontrar sequências mais semelhantes. Um skip-gram com um valor k de 1 seria diferente em um caractere do unigrama de 0 k. Portanto, os skip-grams "conputer" e "compuuter" seriam considerados parte da mesma entrada de dicionário que "computador". Definir o valor k como 2 corresponderia a palavras ainda mais diferentes.

    Para obter mais informações sobre como os skip-grams são usados na análise de texto, consulte este artigo: Geração candidata e engenharia de recursos para normalização lexical supervisionada

  6. A opção Ponderação só será necessária se você mesclar ou atualizar vocabulários. Ele especifica como os termos nos dois vocabulários e suas pontuações devem ser ponderados entre si.

  7. Para Comprimento mínimo da palavra, digite o comprimento mínimo de palavras de cadeias de caracteres que podem ser analisadas.

    Por exemplo, suponha que o comprimento mínimo da palavra tenha sido definido como 3 (o valor padrão) e você tenha uma entrada com uma única palavra e outra que tenha algum texto curto, como "lugar bom". Ambas as linhas seriam ignoradas.

  8. Para Comprimento máximo da palavra, digite o número máximo de letras que podem ser usadas em qualquer palavra em um n-gram.

    Por padrão, são permitidos até 25 caracteres por palavra ou token. Palavras maiores do que as removidas, com a suposição de que são possivelmente sequências de caracteres arbitrários em vez de itens lexical reais.

  9. Para Frequência absoluta mínima do documento n-gram, digite um número que indica as ocorrências mínimas necessárias para qualquer palavra ou token a ser incluído no dicionário n-gram.

    Por exemplo, se você usar o valor padrão de 5, qualquer n-gram ou skip-gram deverá aparecer pelo menos cinco vezes no corpus a ser incluído no dicionário n-gram.

  10. Para Taxa máxima de documentos n-gram, digite um número que representa essa proporção: o número de linhas que contêm um n-gram específico, sobre o número de linhas no corpus geral.

    Por exemplo, uma taxa de 1 indicaria que, mesmo se um n-grama específico estiver presente em cada linha, o n-grama poderá ser adicionado ao dicionário de n-gramas. Normalmente, uma palavra que ocorre em cada linha seria considerada uma palavra de ruído e seria removida. Para filtrar as palavras de ruído dependentes do domínio, tente reduzir essa taxa.

    Importante

    A taxa de ocorrência de palavras específicas não é uniforme, mas varia de documento para documento. Por exemplo, se você estiver analisando comentários do cliente sobre um produto específico, o nome do produto poderá ser muito alto e próximo a uma palavra de ruído, mas ser um termo significativo em outros contextos.

  11. Selecione a opção Detectar linhas fora do vocabulário se você quiser gerar um indicador para qualquer linha que contenha palavras que não estão no vocabulário n-gram, que são chamadas de palavras "fora do vocabulário" (OOV).

    Todos os léxicos são finitos; portanto, seu corpus de texto tem quase a garantia de incluir palavras que não estão no dicionário léxico ou n-gram. No entanto, essas palavras podem ter vários efeitos sobre modelos de linguagem, incluindo taxas de erro mais altas em comparação com palavras de iv (vocabulário). Dependendo do seu domínio, essas palavras OOV podem representar palavras importantes de conteúdo.

    Ao identificar linhas que contêm essas palavras, você pode compensar os efeitos desses termos ou lidar com os termos e as linhas relacionadas separadamente.

  12. Selecione a opção Marcar início da frase para adicionar uma sequência de caracteres especial que indica o início de uma frase em seu dicionário n-gram. Prefixar n-grams que iniciam uma frase com um caractere especial é comum na análise de texto e pode ser útil na análise de limites de fronteira.

    O Azure ML Studio (clássico) insere o símbolo |||. Não é possível especificar um caractere personalizado.

  13. Selecione a opção Normalizar vetores de recurso n-gram se você quiser normalizar os vetores de recurso. Quando você faz isso, cada vetor de recurso n-gram é dividido por sua norma L2.

    A normalização é usada por padrão.

  14. De acordo com Usar seleção de recurso baseado em filtro como True se você quiser habilitar opções adicionais para gerenciar o tamanho do vetor de recurso de texto.

    • A seleção de recursos pode ser útil para reduzir a dimensionalidade de seus n-grams.
    • Quando você não aplica a seleção de filtro, todos os n-grams possíveis são criados, aumentando a cobertura às custas de tornar o dicionário mais longo e possivelmente incluindo muitos termos pouco frequentes.
    • Em um corpus pequeno, o uso da seleção de recursos pode reduzir consideravelmente o número de termos criados.
    • Para obter mais informações, consulte Seleção de recursos baseada em filtro.

    Se você estiver usando a seleção de recursos, deverá selecionar um método na lista de opções Método de pontuação de recursos:

    • PearsonCorrelation: calcula a correlação de Pearson com base no valor da coluna de rótulo e no vetor de texto.
    • MutualInformation: calcula uma pontuação de informações mútuas, com base no valor da coluna de rótulo e no vetor de texto.
    • Correlation: calcula a correlação de Ela, com base no valor da coluna de rótulo e no vetor de texto.
    • SpearmanCorrelation: calcula a correlação de Spearman, com base no valor da coluna de rótulo e no vetor de texto.
    • ChiSquared: usa o método qui-quadrado para calcular a correlação entre o valor da coluna de rótulo e o vetor de texto.
    • FisherScore: calcula a pontuação de Artilar para o valor da coluna de rótulo e o vetor de texto.
    • Seleção de recursos baseada em contagem: cria novos recursos com base nas contagens de valores. Uma coluna de rótulo não é necessária com esse método.

    Dependendo do método escolhido, de definido uma das seguintes opções:

    • Número de recursos desejados: necessário se você usar qualquer método de seleção de recurso diferente da seleção de recursos baseado em contagem.

      No processo de seleção de recursos, todos os n-grams têm uma pontuação de recurso e n-grams são classificados por pontuação. O valor definido aqui determina quantos dos recursos mais altamente classificados são produzidos. N-grams com pontuações de recursos inferiores são descartadas.

    • Número mínimo de elementos diferentes de zero: necessário se você usar a seleção de recursos baseada em contagem.

      Digite um número inteiro que representa o número mínimo de instâncias totais necessárias para tabular contagens para um recurso potencial.

  15. Execute o experimento.

    Consulte esta seção para ver uma explicação dos resultados e seu formato.

Atualizar um dicionário n-gram existente ou dicionários de mesclagem

  1. Adicione o módulo Extrair recursos N-Gram de Texto ao seu experimento e conecte o conjuntos de dados que tem o texto que você deseja processar à porta do conjuntos de dados.

  2. Para Coluna de texto, escolha a coluna de texto que contém o texto que você deseja personalizar. Por padrão, o módulo seleciona todas as colunas do tipo cadeia de caracteres. Para obter melhores resultados, processe uma única coluna de cada vez.

  3. Adicione o conjuntos de dados salvo que contém um dicionário n-gram gerado anteriormente e conecte-o à porta vocabulário de entrada. Você também pode conectar a saída de vocabulário resultado de uma instância upstream do módulo Extrair Recursos N-Gram de Texto.

    Para mesclar ou atualizar o vocabulário, o esquema do vocabulário de entrada deve corresponder exatamente ao formato esperado. Não remova nenhuma coluna ou adicione nenhuma coluna ao vocabulário de entrada.

  4. Para Modo de vocabulário, selecione uma das seguintes opções de atualização na lista lista listada:

    • ReadOnly: representa o corpus de entrada em termos do vocabulário de entrada. Ou seja, em vez de computar frequências de termo do novo conjuntos de dados de texto (na entrada à esquerda), os pesos n-gram do vocabulário de entrada são aplicados como estão.

      Dica

      Use essa opção ao pontuar um classificador de texto.

    • Atualização: cria um novo vocabulário n-gram do corpus de entrada e o mescla com o vocabulário de entrada. Em outras palavras, você pode adicionar novas entradas ao vocabulário criado do vocabulário de entrada ou atualizar as entradas existentes.

      Dica

      Use essa opção para atualizações incrementais de vocabulário com lotes de dados de entrada.

    • Mesclagem: gera um novo vocabulário n-gram do corpus de entrada.

      Essa opção será útil se você estiver passando um vocabulário em segundo plano como entrada para o módulo e quiser reduzir o peso das palavras de parada. Em outras palavras, cada entrada que tem uma pontuação de frequência de documento alta no vocabulário em segundo plano receberá uma pontuação de frequência de documento inversa mais baixa no vocabulário criado.

      Dica

      Use essa opção se você não quiser adicionar novas entradas ao vocabulário criado da entrada e quiser ajustar apenas as pontuações de entradas existentes.

  5. A opção Escolher a função de ponderação será necessária se você mesclar ou atualizar vocabulários. A função de ponderação especifica como as pontuações de DF e IDF nos dois vocabulários devem ser ponderadas entre si:

    • Ponderação binária: atribui um valor de presença binária para os n-gramas extraídos. Em outras palavras, o valor para cada n-gram é 1 quando ele existe no documento determinado e 0 caso contrário.
    • Peso de TF: atribui uma TF (pontuação de frequência de termo) aos n-grams extraídos. O valor de cada n-gram é sua frequência de ocorrência no documento determinado.
    • Peso do IDF: atribui uma IDF (pontuação de frequência de documento) inversa aos n-grams extraídos. O valor de cada n-grama é o log do tamanho de Corpus dividido pela frequência de sua ocorrência no Corpus inteiro. Isto é: IDF = log of corpus_size / document_frequency
    • Peso do TF-IDF: atribui um termo TF/IDF (pontuação de frequência inversa de documento) aos n-grams extraídos. O valor de cada n-grama é sua pontuação de TF multiplicada por sua pontuação de IDF.
    • Graph Peso: atribui pontuação aos n-grams extraídos com base na classificação do grafo TextRank. TextRank é um modelo de classificação baseado em grafo para processamento de texto. Graph algoritmos de classificação baseados em Graph são essencialmente uma maneira de decidir a importância com base em informações globais. Para obter mais informações, consulte TextRank: Bringing Order into Texts de Rada Mihalcea e Paul Ltdu.
  6. Para todas as outras opções, consulte as descrições de propriedade na seção anterior.

  7. Execute o experimento.

    Consulte esta seção para ver uma explicação dos resultados e seu formato.

Pontuar ou publicar um modelo que usa n-grams

  1. Copie o módulo Extrair recursos N-Gram de Texto do fluxo de dados de treinamento para o fluxo de dados de pontuação.

  2. Conexão saída de Vocabulário de Resultado do fluxo de dados de treinamento para o Vocabulário de Entrada no fluxo de dados de pontuação.

  3. No fluxo de trabalho de pontuação, modifique o módulo Extrair Recursos N-Gram de Texto e faça essas alterações, deixando todo o resto da mesma maneira:

    • De acordo com o parâmetro modo Vocabuláriocomo ReadOnly.

    • Altere a opção Usar seleção de recurso baseada em filtro para False.

  4. Para publicar o experimento, salve o Vocabulário de Resultado como um conjuntos de dados.

    Em seguida, conecte o conjuntos de dados salvo ao módulo Extrair Recursos N-Gram de Texto no grafo de pontuação.

Resultados

O módulo Extrair recursos N-Gram de Texto cria dois tipos de saída:

  • Conjunto de dados de resultados: um resumo do texto analisado junto com os n-grams que foram extraídos. As colunas que você não selecionou na opção Coluna de texto são passadas para a saída. Para cada coluna de texto analisada, o módulo gera as colunas:

    • NgramsString: uma cadeia de caracteres que contém todos os n-grams exclusivos.
    • NumUniqueNgrams: a contagem de n-grams extraídos usando as propriedades especificadas.
    • Matriz esparsa de ocorrências n-gram: o módulo gera uma coluna para cada n-gram encontrado no corpus total e adiciona uma pontuação em cada coluna para indicar o peso do n-gram para essa linha.
  • Vocabulário de resultado: o vocabulário contém o dicionário de n-gramas real, junto com as pontuações de frequência de termos que são geradas como parte da análise. Você pode salvar o conjunto de dados para rea uso com um conjunto diferente de entradas ou para atualização posterior. Você também pode atualizar as pontuações ou reutilizar o vocabulário para modelagem e pontuação.

Resultados de exemplo

Para ilustrar como você pode usar os resultados, o exemplo curto a seguir usa o conjuntos de dados do Amazon Book Review disponíveis no Studio (clássico). O dataaset foi filtrado para mostrar apenas revisões com uma pontuação de 4 ou 5 e revisões com um comprimento de cadeia de caracteres de menos de 300 caracteres.

Nesse conjuntos de dados, uma breve revisão foi selecionada, contendo apenas 92 palavras. Aqui, o nome do autor foi substituído por e Xxx o título do livro foi substituído por Yyy:

"Xxx at his best ! Yyy is one of Xxx's best yet! I highly recommend this novel."

Conjuntos de dados de resultados para o texto de análise de exemplo

Para este exemplo, o módulo gerou estas colunas:

  • NumUniqueNgrams: para esta revisão de 92 palavras, usando as configurações padrão, 11 n-grams foram extraídos da revisão de exemplo.

    Quando o comprimento n-gram foi aumentado para 3 e o valor skip-gram definido como 1, 15 n-grams foram encontrados.

    Quando a seleção de recursos foi aplicada ao padrão, nenhum n-grams foi extraído.

  • NgramsString:Com as configurações padrão, esses n-grams foram retornados: ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel"]

    Com um comprimento n-gram de 3 e o valor skip-gram de 1, esses n-grams foram retornados: ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel","best_one","one_best","highly_this","highly_recommend_this"]

  • Matriz esparsa de ocorrências n-gram

    Para esta revisão específica, os resultados incluíram estas colunas:

    ReviewText. [gerencia] ReviewText. [and_highly] ReviewText. [altamente] ReviewText. [highly_recommend]
    0 0 0.301511 0.301511

    Dica

    Se você tiver problemas para exibir uma coluna específica, anexe o módulo Selecionar Colunas no Dataset à saída e, em seguida, use a função de pesquisa para filtrar colunas por nome.

Vocabulário de resultado para o texto de análise de exemplo

O vocabulário contém o dicionário n-gram real, junto com as pontuações de frequência de termo geradas como parte da análise. Você pode salvar o conjunto de dados para rea uso com um conjunto diferente de entradas ou para atualização posterior. As pontuações DFe IDF são geradas independentemente de outras opções. Quando você combina vocabulários, esses valores armazenados são usados como entrada para a função de ponderação escolhida.

  • ID: um identificador gerado para cada n-gram exclusivo.
  • Ngram: o n-gram. Espaços ou outros separadores de palavras são substituídos pelo caractere de sublinhado.
  • DF: a pontuação de frequência do termo para o n-grama no Corpus original.
  • IDF: a pontuação de frequência de documento inversa para o n-grama no Corpus original.

É possível atualizar manualmente esse conjuntos de dados; no entanto, tenha cuidado, pois você pode introduzir erros. Por exemplo:

  • Um erro será gerado se o módulo encontrar linhas duplicadas com a mesma chave no vocabulário de entrada. Verifique se duas linhas no vocabulário têm a mesma palavra.
  • O esquema de entrada dos conjuntos de dados de vocabulário deve corresponder exatamente, incluindo nomes de coluna e tipos de coluna.
  • A coluna de ID e a coluna de Pontuação de DF devem ser do tipo inteiro.
  • A coluna IDF deve ser do tipo float (ponto flutuante).

Observações técnicas

Recomendamos que você teste com diferentes intervalos de valores para o comprimento de n-Gram, o número de ignorar-gramas e o uso da seleção de recursos para determinar a dimensionalidade do seu corpus de texto e a taxa de recursos ideal.

Para obter mais informações sobre n-grams e Skip-grams, consulte estes recursos:

Entradas esperadas

Nome Tipo Descrição
Dataset Tabela de Dados Dados de entrada
Vocabulário de entrada Tabela de Dados Vocabulário de entrada

Parâmetros do módulo

Nome Tipo Intervalo Opcional Padrão Descrição
Número mínimo de elementos diferentes de zero Inteiro >=1 Aplica-se somente ao usar o seguinte método:

Baseado na contagem
1 Especifique o número de recursos para a saída (para o método CountBased)
Coluna de texto Seleção de coluna Obrigatório StringFeature Nome ou índice com base em uma coluna de texto
Modo de vocabulário Modo de vocabulário Criar

ReadOnly

Atualizar

Mesclar
Necessária Criar Especifique como o vocabulário de n-Gram deve ser criado a partir do corpus
Tamanho de N-gramas Inteiro >=1 Necessária 1 Indicar o tamanho máximo de n-grams a serem criados
K-ignorar tamanho Inteiro >=0 Necessária 0 Indicar o tamanho k-Skip
Função de peso Função de peso Peso binário

Peso de TF

Peso IDF

TF – peso IDF

peso Graph
Necessária Peso binário Escolha a função de ponderação a ser aplicada a cada valor de n-Gram
Comprimento mínimo da palavra Inteiro >=1 Obrigatório 3 Especifique o comprimento mínimo das palavras a serem incluídas em n-grams
Comprimento máximo da palavra Inteiro >= 2 Necessária 25 Especifique o comprimento máximo das palavras a serem incluídas em n-grams
Frequência absoluta de documentos de n-Gram mínimos Float >= 1,0 Obrigatório 5,0 Frequência absoluta de documentos de n-Gram mínimos
Taxa máxima de documentos de n-grama Float >= 0, 1 Obrigatório 1,0 Taxa máxima de documentos de n-grama
Detectar linhas fora do vocabulário Boolean Obrigatório true Detectar linhas que têm palavras que não estão no vocabulário de n-Gram (OOV)
Marcar início de frase Boolean Obrigatório false Indique se uma marca de frase de início deve ser adicionada a n-grams
Normalizar vetores de recurso n-gram Boolean Obrigatório Normalizar vetores de recurso n-gram. Se for true, o vetor de recurso n-gram será dividido por sua norma L2.
Usar a seleção de recursos baseada em filtro Tipo falso verdadeiro True

Falso
Obrigatório True Usar a seleção de recursos baseada em filtro para reduzir a dimensionalidade
Método de classificação de recursos Método de pontuação Correlação de Pearson

Informações mútuas

Correlação Kendall

Correlação Spearman

Qui-quadrada

Classificação Fisher

Baseado na contagem
Aplica-se somente quando a opção Usar seleção de recurso baseada em filtro é True Classificação Fisher Escolha o método a ser usado para classificação
Coluna de destino Seleção de coluna Aplica-se ao usar um dos seguintes métodos:

Correlação de Pearson

Informações mútuas

Correlação Kendall

Correlação Spearman

Qui-quadrada

Classificação Fisher
Especificar a coluna de destino
Número de recursos desejados Inteiro >=1 Aplica-se ao usar um dos seguintes métodos:

Correlação de Pearson

Informações mútuas

Correlação Kendall

Correlação Spearman

Qui-quadrada

Classificação Fisher
1 Especifique o número de recursos na saída dos resultados

Saídas

Nome Tipo Descrição
Conjunto de dados de resultados Tabela de Dados Recursos extraídos
Vocabulário de resultado Tabela de Dados Vocabulário de resultado

Confira também

Análise de Texto
Lista A-Z de Machine Learning módulos