Função SORTWORDS( )
Retorna uma cadeia com palavras individuais ordenadas sequencialmente.
Sintaxe
SORTWORDS(cadeia)
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| cadeia | caractere |
A cadeia ou expressão que contém as palavras a serem ordenadas. Uma "palavra" é qualquer caractere ou grupo de caracteres separado por espaços:
Espaços múltiplos entre palavras são convertidos automaticamente em um único espaço. Espaços à esquerda ou à direita são cortados automaticamente. |
Saída
Caractere.
Exemplos
Exemplos básicos
Entrada de caracteres literais
Retorna "1 2 A Z a z" (Analytics não Unicode):
SORTWORDS("Z a 2 z A 1")
Retorna "1 2 a A z Z" (Analytics Unicode):
SORTWORDS("Z a 2 z A 1")
Retorna "1 2 A A Z Z":
SORTWORDS(UPPER("Z a 2 z A 1"))
Retorna "CA, FL NY, TX,":
SORTWORDS("CA, TX, NY, FL")
Retorna "CA FL NY TX":
SORTWORDS(OMIT("CA, TX, NY, FL"; ","))
Entrada de campo
Retorna todos os valores do campo Endereço_Fornecedor, com os elementos de endereço ordenados sequencialmente:
SORTWORDS(Endereço_Fornecedor)
Exemplos avançados
Ordenar elementos de endereço para aprimorar a correspondência de duplicidades parciais
Você pode usar SORTWORDS( ) como uma função auxiliar na execução de diversos tipos de correspondência parcial no Analytics.
Efeitos de SORTWORDS( ) na distância de Levenshtein
Antes, vamos examinar a distância de Levenshtein entre duas ocorrências do mesmo endereço com formatação diferente.
Sem a função SORTWORDS( ), a distância de Levenshtein retornada é 22. Uma distância de Levenshtein tão grande sugere que as duas cadeias não são o mesmo endereço:
LEVDIST("125 SW 39TH ST, Suite 100"; "Suite 100, 125 SW 39TH ST")
Agora, vamos adicionar a função SORTWORDS( ). A distância de Levenshtein retornada é 2 (drasticamente menor), o que sugere que as duas cadeias são o mesmo endereço.
LEVDIST(SORTWORDS("125 SW 39TH ST, Suite 100"); SORTWORDS("Suite 100, 125 SW 39TH ST"))
Isolamento de duplicidades parciais de "125 SW 39TH ST, Suite 100"
Crie um filtro que isola todos os valores no campo Endereço_Fornecedor que estão dentro de uma distância de Levenshtein especificada em relação a "125 SW 39TH ST, Suite 100":
SET FILTER TO LEVDIST(SORTWORDS(Endereço_Fornecedor); SORTWORDS("125 SW 39TH ST, Suite 100"); F) < 3SET FILTER TO ISFUZZYDUP(SORTWORDS(Endereço_Fornecedor); SORTWORDS("125 SW 39TH ST; Suite 100"); 3; 99)
Aumentar ou diminuir a distância de Levenshtein nas expressões (3) permite ajustar o grau de diferença nos valores filtrados.
Para obter mais informações sobre a distância de Levenshtein, consulte Função LEVDIST( ).
Observações
Vídeo de visão geral
Para ver um vídeo com uma visão geral da função, consulte Correspondência parcial usando SORTWORDS() (somente em inglês).
A sequência de ordenação usada por SORTWORDS( )
A função SORTWORDS( ) usa a sequência de ordenação especificada na opção Critério de ordenação (Ferramentas > Opções > Tabelas). As sequências de ordenação padrão são mostradas abaixo.
Para obter informações detalhadas, consulte A opção Critério de Ordenação e as sequências de ordenação.
|
Edição do Analytics |
Padrão do Critério de Ordenação |
Sequência de ordenação associada |
|---|---|---|
|
não unicode |
Padrão do Sistema (ASCII) |
Números, maiúscula e minúscula: 0, 1, 2... A, B, C... a, b, c... Por exemplo, ordenações de "Z" antes de "a". |
|
Unicode |
Combinar linguagens (UCA) (Algoritmo de colação Unicode) |
Números, minúsculas e maiúsculas combinadas: 0, 1, 2... a, A, b, B, c, C... Por exemplo, ordenações de "a" antes de "Z". |
Diferenciação de maiúsculas e minúsculas
SORTWORDS( ) diferencia maiúsculas de minúsculas. Dependendo da edição do Analytics que você está usando (não Unicode ou Unicode), o uso de maiúsculas e minúsculas em cadeias pode afetar a ordenação.
Você pode usar a função UPPER( ) com SORTWORDS( ) se não quiser que o uso de maiúsculas e minúsculas afete a ordenação:
SORTWORDS(UPPER("cadeia"))
SORTWORDS( ) pode aprimorar a correspondência parcial
SORTWORDS( ) pode aprimorar a eficácia de comandos de correspondência parcial e de filtros ou condições que usam funções de correspondência parcial:
Cuidado
Se você usar SORTWORDS( ) com qualquer dos comandos ou funções de correspondência parcial, deverá aplicar SORTWORDS( ) em ambas as cadeias ou campos sendo comparados. A aplicação da função a apenas uma das duas cadeias ou campos pode degradar seriamente os resultados da correspondência parcial.
Algoritmo de distância de Levenshtein
SORTWORDS( ) é muito útil quando usada com comandos e funções baseadas no algoritmo de distância de Levenshtein, que retorna valores de diferença maiores quando elementos idênticos ou semelhantes em duas cadeias estão em posições diferentes. Ao ordenar os elementos antes, você pode reduzir significativamente os valores de diferença retornados pelo algoritmo de Levenshtein. Os conjuntos de resultados têm menos falsos positivos e mais positivos verdadeiros.
Algoritmo do coeficiente de Dice
SORTWORDS( ) pode ser útil quando usada com comandos e funções baseadas no algoritmo do coeficiente de Dice. No entanto, nem sempre há um aprimoramento da eficácia. Por projeto, o algoritmo do coeficiente de Dice minimiza a importância da posição dos elementos. Portanto, a ordenação de elementos tem menos impacto que o algoritmo da distância de Levenshtein.
Dependendo da natureza dos dados, SORTWORDS( ) pode na verdade reduzir a eficácia, fazendo com que o algoritmo do coeficiente de Dice retorne pontuações menores. Teste um conjunto de dados de amostra antes de decidir usar SORTWORDS( ) com o algoritmo do coeficiente de Dice em um ambiente de produção.
Uma segunda consideração é que o benefício do uso de SORTWORDS( ) é menor quando o comprimento do ngrama do coeficiente de Dice é menor. À medida que você reduz o comprimento do ngrama, o algoritmo do coeficiente de Dice minimiza cada vez mais a importância da posição dos elementos.