Extrair Funcionalidades N-Grama a partir de Texto

Cria funcionalidades de dicionário N-Gram e apresenta seleção neles

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 explica como usar as funcionalidades extrato N-Gram do módulo texting studio (clássico), para exibir texto, e extrair apenas as peças de informação mais importantes de longas cordas de texto.

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

Se já criou um vocabulário de n-gramas, pode atualizar as suas estatísticas, ou fundir-se em novos termos, usando um algoritmo de ponderação à sua escolha.

Como este módulo suporta a caracterização de n-gramas, também pode ser usado ao marcar.

Como configurar extrato de N-Gram características do texto

Estes módulos suportam os seguintes cenários para criar, atualizar ou aplicar um dicionário n-gram:

  • Está a desenvolver um novo modelo utilizando uma coluna de coluna de texto livre e pretende extrair funcionalidades de texto baseadas exclusivamente nos dados de entrada. Consulte as instruções.

  • Tem um conjunto de funcionalidades de texto existente e pretende atualizar os pesos através do processamento de novas entradas de texto. Consulte as instruções.

  • Está a gerar pontuações a partir de um modelo preditivo e precisa de gerar e utilizar entradas de texto com um dicionário n-gram como parte do processo de pontuação. Consulte as instruções.

Pode usar a experiência de exemplo como referência.

Criar um novo dicionário n-grama a partir de uma coluna de texto

  1. Adicione as funcionalidades Extract N-Gram do módulo de texto à sua experiência e conecte o conjunto de dados que tem o texto que pretende processar.

  2. Para a coluna Text, escolha uma coluna de tipo de cadeia que contenha o texto que pretende extrair.

    Por predefinição, o módulo seleciona todas as colunas de cordas. No entanto, como o resultado é verboso, pode precisar processar uma única coluna de cada vez.

  3. Para o modo Vocabulário, selecione Criar para indicar que está a criar uma nova lista de funcionalidades n-gram.

    Para obter informações sobre como atualizar um conjunto de funcionalidades n-gram existentes, consulte esta secção.

  4. Para o tamanho N-Grams, escreva um número que indique o tamanho máximo dos n-gramas para extrair e armazenar.

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

  5. Para o tamanho K-Skip, digite o número máximo de caracteres que podem ser diferentes ao identificar variantes de n-gramas. Se o valor de k for definido para 0, n-gramas só podem ser criados a partir de uma sequência única e contígua de caracteres.

    Por exemplo, assuma que o seu dicionário contém o "computador" do unigrama. Um k k valor de 0 significaria que "computador" é o único unigrama válido. Se aumentar o valor de k para 1, pode saltar sobre um personagem que intervém, o que lhe permite encontrar sequências mais semelhantes. Um skip-gram com um valor k de 1 diferiria por um personagem do unigrama de 0-k.k Assim, o "conputer" e o "compuuter" seriam considerados parte da mesma entrada do dicionário que o "computador". Definir o valor k para 2 corresponderia ainda mais palavras diferentes.

    Para obter mais informações sobre como os skip-grams são usados na análise de texto, consulte este artigo: Geração de Candidatos e Engenharia de Recursos para Normalização Lexical Supervisionada

  6. A opção, função de ponderação, só é necessária se fundir ou atualizar vocabulários. Especifica como os termos nos dois vocabulários e as suas pontuações devem ser ponderados uns contra os outros.

  7. Para o comprimento mínimo da palavra, digite o comprimento mínimo de palavras das cordas que podem ser analisadas.

    Por exemplo, assuma que o comprimento mínimo da palavra foi definido para 3 (o valor padrão), e você tinha uma entrada que tinha uma única palavra, e outra que tinha algum texto curto como "lugar agradável". Ambas as linhas seriam ignoradas.

  8. Para o comprimento máximo da palavra, escreva o número máximo de letras que podem ser utilizadas em qualquer palavra num n-grama.

    Por predefinição, são permitidos até 25 caracteres por palavra ou ficha. Palavras mais longas do que são removidas, assumindo que são possivelmente sequências de caracteres arbitrários em vez de itens lexical reais.

  9. Para a frequência absoluta do documento n-gram mínimo, escreva um número que indique as ocorrências mínimas necessárias para que qualquer palavra ou símbolo seja incluído no dicionário n-grama.

    Por exemplo, se utilizar o valor predefinido de 5, qualquer n-gram ou skip-gram deve aparecer pelo menos cinco vezes no corpus para ser incluído no dicionário n-grama.

  10. Para a relação de documento máximo n-grama, escreva um número que represente esta relação: o número de linhas que contêm um determinado n-gram, sobre o número de linhas no corpus geral.

    Por exemplo, uma relação de 1 indicaria que, mesmo que um n-gram específico esteja presente em cada linha, o n-gram pode ser adicionado ao dicionário n-grama. Mais tipicamente, 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 esta relação.

    Importante

    A taxa de ocorrência de palavras específicas não é uniforme, mas varia de documento para documento. Por exemplo, se estiver a analisar comentários do cliente sobre um produto específico, o nome do produto pode ser de alta frequência e perto de uma palavra de ruído, mas será um termo significativo em outros contextos.

  11. Selecione a opção, Detete linhas fora do vocabulário, se quiser gerar um indicador para quaisquer linhas que contenham palavras que não estejam no vocabulário n-grama, que são chamadas palavras "fora do vocabulário" (OOV).

Todos os léxicos são finitos; portanto, o seu corpus de texto é quase garantido para incluir palavras que não estão no dicionário léxico ou n-gram. No entanto, tais palavras podem ter vários efeitos sobre os modelos linguísticos, incluindo taxas de erro mais elevadas em comparação com as palavras no vocabulário (IV). Dependendo do seu domínio, estas palavras OOV podem representar palavras de conteúdo importantes. 

Ao identificar linhas que contenham estas palavras, pode compensar os efeitos destes termos, ou lidar separadamente com os termos e linhas relacionadas.
  1. Selecione a opção, Mark start-of-sentence, para adicionar uma sequência de caracteres especiais que indica o início de uma frase no seu dicionário n-grama. Prefixar n-gramas que iniciam uma frase com um caráter especial é comum na análise de texto e pode ser útil na análise de limites do discurso.

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

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

    A normalização é utilizada por defeito.

  3. Detiver a seleção de funcionalidades baseada em filtros para True se pretender permitir opções adicionais para gerir o tamanho do seu vetor de recursos de texto.

    • A seleção de recursos pode ser útil na redução da dimensionalidade dos seus n-gramas.
    • Quando não aplica seleção de filtros, todos os n-gramas possíveis são criados, aumentando a cobertura em detrimento de tornar o dicionário mais longo e possivelmente incluindo muitos termos pouco frequentes.
    • Num pequeno corpus, a utilização da seleção de recursos pode reduzir consideravelmente o número de termos que são criados.
    • Para obter mais informações, consulte a Seleção de Funcionalidades Baseadas em Filtros.

    Se estiver a utilizar a seleção de funcionalidades, tem de selecionar um método da lista de drop-down do método de pontuação de funcionalidades:

    • PearsonCorrelation: Calcula a correlação de Pearson com base no valor da coluna do rótulo e no vetor de texto.
    • MutualInformation: Calcula uma pontuação de informação mútua, com base no valor da coluna do rótulo e no vetor de texto.
    • KendallCorrelation: Calcula a correlação de Kendall, com base no valor da coluna do rótulo e no vetor de texto.
    • SpearmanCorrelation: Calcula a correlação de Spearman, com base no valor da coluna de etiqueta e no vetor de texto.
    • ChiSquared: Utiliza o método chi-quadrado para calcular a correlação entre o valor da coluna do rótulo e o vetor de texto.
    • FisherScore: Calcula a pontuação fisher para o valor da coluna de etiqueta e o vetor de texto.
    • Seleção de recursos baseado em contagem: Cria novas funcionalidades com base nas contagens de valores. Não é necessária uma coluna de etiqueta com este método.

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

    • Número de características desejadas: Requerido se utilizar qualquer método de seleção de recursos que não seja a seleção de recursos baseado na contagem.

      No processo de seleção de recursos, todos os n-grams obtêm uma pontuação de recurso, e n-gramas são classificados por pontuação. O valor que definiu aqui determina quantas das funcionalidades mais bem classificadas são a saída. N-gramas com pontuações de características mais baixas são descartadas.

    • Número mínimo de elementos não nulos: Requerido se utilizar a seleção de recursos baseados na contagem.

      Digite um número inteiro que represente o número mínimo de instâncias totais necessárias para tabuar as contagens para uma característica potencial.

  4. Execute a experimentação.

    Consulte esta secção para obter uma explicação dos resultados e do seu formato.

Atualizar um dicionário n-grama existente, ou fundir dicionários

  1. Adicione as funcionalidades Extract N-Gram do módulo de texto à sua experiência e conecte o conjunto de dados que tem o texto que pretende processar para a porta Dataset.

  2. Para a coluna Text, escolha a coluna de texto que contém o texto que pretende exibir. Por predefinição, o módulo seleciona todas as colunas de cadeia tipo. Para obter os melhores resultados, processe uma única coluna de cada vez.

  3. Adicione o conjunto de dados guardado contendo um dicionário n-grama previamente gerado e conecte-o à porta do vocabulário entrada. Também pode ligar a saída do vocabulário Resultado de uma instância a montante das características extrato N-Gram do módulo Text.

    Para fundir 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 quaisquer colunas ao vocabulário de entrada.

  4. Para o modo Vocabulário, selecione uma das seguintes opções de atualização da lista de drop-down:

    • Leia Também: Representa o corpus de entrada em termos do vocabulário de entrada. Ou seja, em vez de calcular frequências de termo a partir do novo conjunto de dados de texto (na entrada esquerda), os pesos n-grama do vocabulário de entrada são aplicados como está.

      Dica

      Utilize esta opção ao marcar um classificador de texto.

    • Atualização: Cria um novo vocabulário n-gram a partir do corpus de entrada, e funde-o com o vocabulário de entrada. Por outras palavras, pode adicionar novas entradas ao vocabulário criado a partir do vocabulário de entrada, ou pode atualizar as entradas existentes.

      Dica

      Utilize esta opção para atualizações incrementais do vocabulário com lotes de dados de entrada.

    • Fusão: Gera um novo vocabulário n-gram do corpus de entrada.

      Esta opção é útil se estiver a passar um vocabulário de fundo como entrada para o módulo e quiser reduzir o peso das palavras de paragem. Por outras palavras, cada entrada que tenha uma pontuação de alta frequência de documento no vocabulário de fundo será atribuída uma pontuação de frequência de documento inversa mais baixa no vocabulário criado.

      Dica

      Utilize esta opção se não quiser adicionar novas entradas ao vocabulário criado a partir da entrada, e apenas pretenda ajustar as pontuações das entradas existentes.

  5. A opção, Escolha a função de ponderação, é necessária se fundir ou atualizar vocabulários. A função de ponderação especifica como as pontuações df e IDF nos dois vocabulários devem ser ponderadas umas contra as outras:

    • Peso binário: Atribui um valor de presença binária aos n-gramas extraídos. Por outras palavras, o valor para cada n-grama é 1 quando existe no documento dado, e 0 de outra forma.
    • Peso TF: Atribui uma pontuação de frequência de termo (TF) aos n-gramas extraídos. O valor para cada n-grama é a sua frequência de ocorrência no documento dado.
    • Peso IDF: Atribui uma pontuação inversa de frequência documental (IDF) às n-gramas extraídas. O valor para cada n-grama é o log do tamanho do corpus dividido pela sua frequência de ocorrência em todo o corpus. Isso é: IDF = log of corpus_size / document_frequency
    • Peso TF-IDF: Atribui uma pontuação de frequência/frequência de documento inversa (TF/IDF) às n-gramas extraídas. O valor para cada n-gram é a sua pontuação TF multiplicada pela sua pontuação IDF.
    • Peso do gráfico: Atribui a pontuação aos n-gramas extraídos com base no ranking do gráfico TextRank. TextRank é um modelo de classificação baseado em gráficos para processamento de texto. Os algoritmos de classificação baseados em gráficos são essencialmente uma forma de decidir a importância com base na informação global. Para mais informações, consulte TextRank: Bringing Order in Texts by Rada Mihalcea and Paul Tarau.
  6. Para todas as outras opções, consulte as descrições da propriedade na secção anterior.

  7. Execute a experimentação.

    Consulte esta secção para obter uma explicação dos resultados e do seu formato.

Marque ou publique um modelo que use n-gramas

  1. Copie as funcionalidades Extract N-Gram do módulo de texto do fluxo de dados de treino para o fluxo de dados de pontuação.

  2. Ligue a saída do Vocabulário de Resultado do fluxo de dados de formação ao Vocabulário de Entrada no fluxo de dados de pontuação.

  3. No fluxo de trabalho de pontuação, modifique as funcionalidades Extract N-Gram do módulo text e faça estas alterações, deixando tudo o resto igual:

    • Desajuste o parâmetro do modo Vocabulário para ReadOnly.

    • Alterar a opção Utilize a seleção de funcionalidades baseadas no filtro para False .

  4. Para publicar a experiência, guarde o Vocabulário de Resultado como conjunto de dados.

    Em seguida, ligue o conjunto de dados guardado às funcionalidades Extract N-Gram do módulo de texto no seu gráfico de pontuação.

Resultados

As funcionalidades extrato N-Gram do módulo de texto criam dois tipos de saída:

  • Conjunto de dados de resultados: Um resumo do texto analisado juntamente com os n-gramas extraídos. As colunas que não selecionou na opção coluna Texto são transmitidas para a saída. Para cada coluna de texto que analisa, o módulo gera estas colunas:

    • NgramsString: Uma corda contendo todos os n-gramas únicos.
    • NumUniqueNgrams: A contagem de n-gramas extraídas com as propriedades especificadas.
    • Matriz escassa de ocorrências de n-gram: O módulo gera uma coluna para cada n-grama encontrada no corpus total e adiciona uma pontuação em cada coluna para indicar o peso do n-gram para esta linha.
  • Vocabulário de resultados: O vocabulário contém o dicionário de n-grama real, juntamente com as pontuações de frequência do termo que são geradas como parte da análise. Pode guardar o conjunto de dados para reutilização com um conjunto diferente de entradas ou para atualização posterior. Também pode atualizar as pontuações, ou reutilizar o vocabulário para modelar e pontuar.

Resultados da amostra

Para ilustrar como pode utilizar os resultados, o exemplo a seguir utiliza o conjunto de dados da Amazon Book Review disponível no Studio (clássico). O dataaset foi filtrado para mostrar apenas comentários com uma pontuação de 4 ou 5, e avalia com um comprimento de cadeia inferior a 300 caracteres.

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

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

Conjunto de dados de resultados para texto de revisão de amostras

Para esta amostra, o módulo gerou estas colunas:

  • NumUniqueNgrams: Para esta revisão de 92 palavras, utilizando as definições padrão, foram extraídos 11 n-gramas da revisão da amostra.

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

    Quando a seleção de recursos foi aplicada ao padrão, não foram extraídos n-gramas.

  • NgramsString"Com as definições padrão, estes n-gramas foram devolvidos: ["o seu","melhor","um","altamente","recomendar", "romance","his_best","highly_recommend","recommend_this","this_novel"]

    Com um comprimento n-gram de 3 e um valor de 1 gramas, estes n-gramas foram devolvidos: ["o seu melhor", "melhor", "um", "altamente","recomendação","his_best","highly_recommend","recommend_this","this_novel","best_one","one_best", "highly_this","highly_recommend_this""

  • Matriz escassa de ocorrências de n-grama

    Para esta revisão em particular, os resultados incluíam estas colunas:

    ReviewText. [gere] ReviewText. [e _ altamente] ReviewText. [altamente] ReviewText. [altamente _ recomendado]
    0 0 0.301511 0.301511

    Dica

    Se tiver problemas em visualizar uma determinada coluna, prenda as Colunas Selecionadas no módulo Dataset à saída e, em seguida, utilize a função de pesquisa para filtrar colunas pelo nome.

Vocabulário de resultado para texto de revisão de amostras

O vocabulário contém o dicionário de n-gram real, juntamente com as pontuações de frequência que são geradas como parte da análise. Pode guardar o conjunto de dados para reutilização com um conjunto diferente de entradas ou para atualização posterior. As pontuações DF e IDF são geradas independentemente de outras opções. Ao combinar vocabulários, estes valores armazenados são usados como entrada para a função de ponderação que escolher.

  • Id: Um identificador gerado para cada n-grama único.
  • Ngram: O n-gram. Espaços ou outros separadores de palavras são substituídos pelo caráter de sublinhado.
  • DF: A pontuação de frequência de termo para o n-grama no corpus original.
  • IDF: A pontuação inversa da frequência do documento para o n-grama no corpus original.

É possível atualizar manualmente este conjunto de dados; no entanto, tenha cuidado, pois pode introduzir erros. Por exemplo:

  • Um erro é levantado se o módulo encontrar linhas duplicadas com a mesma chave no vocabulário de entrada. Certifique-se de que não há duas linhas no vocabulário que tenham a mesma palavra.
  • O esquema de entrada dos conjuntos de dados do vocabulário deve coincidir exatamente, incluindo nomes de colunas e tipos de colunas.
  • A coluna ID e a coluna de pontuação DF devem ser do tipo inteiro.
  • A coluna IDF deve ser do tipo FLOAT (ponto flutuante).

Notas técnicas

Recomendamos que experimente diferentes gamas de valores para o comprimento de n-grama, o número de gramas de salto e a utilização da seleção de recursos para determinar a dimensionalidade do seu corpus de texto e a relação característica ideal.

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

Entradas esperadas

Nome Tipo Descrição
Conjunto de dados 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 Predefinição Descrição
Número mínimo de elementos não nulos Número inteiro >=1 Só se aplica quando utilizar o seguinte método:

Baseado em Contagem
1 Especificar o número de funcionalidades de saída (para o método CountBased)
Coluna de texto Seleção de Colunas Necessário CadeiaFeature Nome ou índice de uma coluna de texto
Modo vocabulário Modo Vocabulário Criar

ReadOnly

Atualizar

Intercalar
Necessário Criar Especificar como o vocabulário n-grama deve ser criado a partir do corpus
Tamanho N-Gramas Número inteiro >=1 Necessário 1 Indicar o tamanho máximo de n-gramas para criar
Tamanho K-Skip Número inteiro >=0 Necessário 0 Indicar o tamanho k-skip
Função de ponderação Função de ponderação Peso Binário

Peso TF

Peso IDF

Peso TF-IDF

Peso do gráfico
Necessário Peso Binário Escolha a função de ponderação para aplicar a cada valor n-grama
Comprimento mínimo da palavra Número inteiro >=1 Necessário 3 Especificar o comprimento mínimo das palavras a incluir em n-gramas
Comprimento máximo da palavra Número inteiro >=2 Necessário 25 Especificar o comprimento máximo das palavras a incluir em n-gramas
Frequência absoluta de documento n-gram mínimo Float >=1.0 Necessário 5.0 Frequência absoluta de documento n-gram mínimo
Rácio máximo de documento n-grama Float >=0.0001 Necessário 1,0 Rácio máximo de documento n-grama
Detetar linhas fora do vocabulário Booleano Necessário true Detetar linhas que não têm palavras no vocabulário n-gram (OOV)
Marca início da frase Booleano Necessário false Indicar se uma marca de frase de início deve ser adicionada a n-gramas
Normalizar vetores de recurso n-gram Booleano Necessário Normalizar vetores de característica n-grama. Se for verdade, então o vetor de recurso n-gram é dividido pela sua norma L2.
Utilize a seleção de funcionalidades baseada em filtros Verdadeiro Tipo Falso Verdadeiro

Falso
Necessário Verdadeiro Utilize a seleção de funcionalidades baseadas em filtros para reduzir a dimensionalidade
Método de pontuação de recursos Método de pontuação Correlação Pearson

Informação Mútua

Correlação Kendall

Correlação de Spearman

Chi Quadrado

Pontuação de Pescador

Baseado em Contagem
Aplica-se apenas quando a opção Utilizar a seleção de funcionalidades baseada em filtros é verdadeira Pontuação de Pescador Escolha o método a utilizar para marcar
Coluna-alvo Seleção de Colunas Aplica-se ao utilizar um dos seguintes métodos:

Correlação Pearson

Informação Mútua

Correlação Kendall

Correlação de Spearman

Chi Quadrado

Pontuação de Pescador
Especificar a coluna-alvo
Número de características desejadas Número inteiro >=1 Aplica-se ao utilizar um dos seguintes métodos:

Correlação Pearson

Informação Mútua

Correlação Kendall

Correlação de Spearman

Chi Quadrado

Pontuação de Pescador
1 Especificar o número de funcionalidades para a produção nos resultados

Saídas

Nome Tipo Descrição
Conjunto de dados de resultados Tabela de Dados Características extraídas
Vocabulário de resultados Tabela de Dados Vocabulário de resultados

Ver também

Análise de Texto
Lista A-Z de Módulos de Aprendizagem automática