Comando FUZZYJOIN

Usa correspondências parciais para combinar campos de duas tabelas do Analytics em uma única tabela nova do Analytics.

Nota

Para detectar valores quase idênticos (duplicidades parciais) em um único campo de caracteres, consulte Comando FUZZYDUP.

Para ver as diversas opções de associação de tabelas usando valores de campos-chave com correspondência exata, consulte Comando JOIN.

Sintaxe

FUZZYJOIN {DICE PERCENT porcentagem NGRAM comprimento_ngrama|LEVDISTANCE DISTANCE valor} PKEY campo_chave_primária SKEY campo_chave_secundária {FIELDS campos_primários|FIELDS ALL} <WITH campos_secundários|WITH ALL> <IF teste> <OPEN> <FIRSTMATCH> TO nome_tabela <WHILE teste> <FIRST intervalo|NEXT intervalo> <APPEND>

Nota

Não é possível executar o comando FUZZYJOIN localmente em uma tabela de servidor.

Você deve especificar o nome do comando FUZZYJOIN com todas as letras. Esse comando não deve ser abreviado.

Parâmetros

Nome Descrição
DICE PERCENT porcentagem NGRAM comprimento_ngrama | LEVDISTANCE DISTANCE valor

O algoritmo de correspondência parcial a ser usado.

DICE usar o algoritmo do coeficiente de Dice

  • PERCENT porcentagem o menor coeficiente de Dice permissível de duas cadeias para que elas sejam qualificadas como uma correspondência parcial

    Especifique uma fração decimal de 0,0000 a 1,0000 (por exemplo, 0,7500). Use no máximo quatro casas decimais.

    A diminuição do valor aumenta o número de correspondências, incluindo correspondências com um maior grau de parcialidade, ou seja, cadeias que são mais diferentes entre si.

  • NGRAM comprimento_ngrama o comprimento do ngrama a ser usado

    Especifique um número inteiro, 1 ou maior.

    O aumento do comprimento do ngrama aumenta o rigor do critério de similaridade entre duas cadeias.

    Ngramas são subcadeias (blocos de caracteres) sobrepostas resultantes da divisão de cadeias de comparação durante o cálculo do coeficiente de Dice.

    Nota

    Quando você especifica DICE, o comando FUZZYJOIN usa a função DICECOEFFICIENT( ) de uma instrução IF para associar condicionalmente valores de campo-chave. Para obter informações detalhadas sobre a função, consulte Função DICECOEFFICIENT( ).

LEVDISTANCE usar o algoritmo de distância de Levenshtein

  • DISTANCE valor A máxima distância de Levenshtein permitida entre duas cadeias para que elas sejam qualificadas como uma correspondência parcial

    Especifique um número inteiro, 1 ou maior.

    O aumento do valor aumenta o número de correspondências, incluindo correspondências com um maior grau de parcialidade, ou seja, cadeias que são mais diferentes entre si.

    Nota

    Quando você especifica LEVDISTANCE, o comando FUZZYJOIN usa a função LEVDIST( ) de uma instrução IF para associar condicionalmente valores de campo-chave. Para obter informações detalhadas sobre a função, consulte Função LEVDIST( ).

    Ao contrário da função, o algoritmo de distância de Levenshtein no comando FUZZYJOIN remove automaticamente brancos à esquerda e à direita e não diferencia maiúsculas de minúsculas.

PKEY campo_chave_primário

O campo-chave de caracteres ou uma expressão na tabela primária.

Você pode especificar apenas um campo-chave primário.

SKEY campo_chave_secundário

O campo-chave de caracteres ou uma expressão na tabela secundária.

Você pode especificar apenas um campo-chave secundário.

FIELDS campos_primários | FIELDS ALL

Os campos ou expressões da tabela primária a serem incluídos na tabela de saída associada.

  • campos_primários inclua o campo ou os campos especificados
  • ALL inclua todos os campos da tabela

Nota

Você deve especificar de forma explícita o campo-chave primário se desejar incluí-lo na tabela associada. A especificação de ALL também inclui esse campo.

WITH campos_secundários | WITH ALL

opcional

Os campos ou expressões da tabela secundária a serem incluídos na tabela de saída associada.

  • campos_secundários inclua o campo ou os campos especificados
  • ALL inclua todos os campos da tabela

Nota

Você deve especificar de forma explícita o campo-chave secundário se desejar incluí-lo na tabela associada. A especificação de ALL também inclui esse campo.

IF teste

opcional

Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado apenas nos registros que atendem à condição.

Nota

O parâmetro IF é avaliado apenas em relação aos registros restantes em uma tabela depois da aplicação dos parâmetros de escopo (WHILE, FIRST, NEXT).

Nota

A condição IF pode referenciar a tabela primária, a tabela secundária ou as duas tabelas.

OPEN

opcional

Abre a tabela criada pelo comando após a execução do comando. Válido apenas se o comando criar uma tabela de saída.

FIRSTMATCH

opcional

Especifica que cada valor de chave primária é associado unicamente à primeira ocorrência de qualquer chave secundária correspondente.

Se a primeira ocorrência for uma correspondência exata, nenhum das correspondências parciais subsequentes para o valor de chave primária será incluída na tabela de saída associada.

Se você omitir FIRSTMATCH, o comportamento padrão de FUZZYJOIN será associar cada valor de chave primária a todas as ocorrências de todas as chaves secundárias correspondentes.

FIRSTMATCH é útil se você quiser apenas saber se existem correspondências, exatas ou parciais, entre as duas tabelas e desejar reduzir o tempo de processamento necessário para identificar todas as correspondências.

Você também pode usar FIRSTMATCH se tiver certeza de que existe no máximo apenas uma correspondência na tabela secundária para cada valor de chave primária.

Nota

FIRSTMATCH está disponível apenas como um parâmetro do ACLScript. Essa opção não está disponível na interface do usuário do Analytics.

TO nome_tabela

A localização para onde enviar os resultados do comando:

  • nome_tabela salva os resultados em uma tabela do Analytics

    Especifique nome_tabela como uma cadeia entre aspas com uma extensão de arquivo .FIL. For exemplo: TO "Saída.FIL"

    Por padrão, o arquivo de dados da tabela (.fil) é salvo na pasta que contém o projeto do Analytics.

    Use um caminho de arquivo absoluto ou relativo para salvar o arquivo de dados em uma pasta diferente já existente:

    • TO "C:\Saída.FIL"
    • TO "Resultados\Saída.FIL"

    Nota

    Os nomes de tabela são limitados a 64 caracteres alfanuméricos, sem contar a extensão .FIL. O nome pode incluir o caractere de sublinhado ( _ ) mas nenhum outro caractere especial e nenhum espaço. O nome não pode começar com um número.

WHILE teste

opcional

Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado até que a condição seja avaliada como falsa ou o fim da tabela seja alcançado.

Nota

Se você usar WHILE juntamente com FIRST ou NEXT, o processamento de registros será interrompido assim que um limite for alcançado.

FIRST intervalo | NEXT intervalo

opcional

O número de registros a ser processado:

  • FIRST iniciar o processamento a partir do primeiro registro até alcançar o número de registros especificado
  • NEXT iniciar o processamento a partir do registro selecionado no momento até alcançar o número de registros especificado

Use intervalo para especificar o número de registros a serem processados.

Se você omitir FIRST e NEXT, todos os registros serão processados por padrão.

APPEND

opcional

Anexa a saída do comando ao final de um arquivo existente, em vez de sobrescrevê-lo.

Nota

Você deve garantir que a estrutura da saída do comando e o arquivo existente são idênticos:

  • os mesmos campos
  • a mesma ordem de campos
  • os campos correspondentes têm o mesmo comprimento
  • os campos correspondentes têm o mesmo tipo de dados

O Analytics anexa a saída a um arquivo existente, seja qual for sua estrutura. Se a estrutura da saída e do arquivo existente não corresponderem, o resultado poderá ser dados misturados, ausentes ou incorretos.

ISOLOCALE código_local

opcional

Nota

Aplicável apenas à edição Unicode do Analytics.

A localidade do sistema no formato idioma_país. Por exemplo, para usar francês canadense, insira fr_ca.

Use os códigos a seguir:

  • idioma código de idioma padrão ISO 639
  • país código de país padrão ISO 3166

    Se você não especificar um código de país, será usado o país padrão do idioma.

Se você não usar ISOLOCALE, a localidade do sistema padrão será usada.

Exemplos

Use a correspondência parcial para associar duas tabelas como forma de descobrir empregados que também podem ser fornecedores

O exemplo a seguir associa as tabelas MestreFunc e Fornecedor usando o endereço como campo-chave comum (os campos Endereço e Rua_Fornecedor).

O comando FUZZYJOIN cria uma nova tabela que contém registros primários e secundários com correspondência exata ou registros primários e secundários com correspondência parcial. O resultado é uma lista de funcionários e fornecedores com endereços idênticos ou com endereços similares.

FUZZYJOIN com o algoritmo do coeficiente de Dice

OPEN MestreFunc PRIMARY
OPEN Fornecedor SECONDARY
FUZZYJOIN DICE PERCENT 0,8000 NGRAM 2 PKEY Endereço SKEY Rua_Fornecedor FIELDS Número_Funcionário Nome Sobrenome Endereço WITH Número_Fornecedor Nome_Fornecedor Rua_Fornecedor OPEN TO "Funcionários_Fornecedores_Correspondentes"

FUZZYJOIN com o algoritmo de distância de Levenshtein

OPEN MestreFunc PRIMARY
OPEN Fornecedor SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Endereço SKEY Rua_Fornecedor FIELDS Número_Funcionário Nome Sobrenome Endereço WITH Número_Fornecedor Nome_Fornecedor Rua_Fornecedor OPEN TO "Funcionários_Fornecedores_Correspondentes"

Incluir todos os campos

Esta versão do comando FUZZYJOIN inclui todos os campos das tabelas primária e secundária na tabela de saída associada.

OPEN MestreFunc PRIMARY
OPEN Fornecedor SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Endereço SKEY Rua_Fornecedor FIELDS ALL WITH ALL OPEN TO "Funcionários_Fornecedores_Correspondentes"

Observações

Nota

Para obter mais informações sobre o funcionamento desse comando, consulte a Ajuda do Analytics.

Diferenciação de maiúsculas e minúsculas

O comando FUZZYJOIN não diferencia maiúsculas de minúsculas, independentemente do algoritmo de correspondência parcial utilizado. Portanto, "SMITH" é equivalente a "smith."

Brancos à direita e à esquerda

O comando FUZZYJOIN remove automaticamente brancos à esquerda e à direita em campos, independentemente do algoritmo de correspondência parcial utilizado. Não é necessário usar as funções TRIM( ) ou ALLTRIM( ) na especificação de campos-chave primários e secundários.