Función SORTWORDS( )
Devuelve una cadena con palabras individuales ordenadas secuencialmente.
Sintaxis
SORTWORDS(cadena)
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| cadena | carácter |
La cadena o la expresión que contiene palabras que se deben ordenar. Una "palabra" es cualquier carácter o grupo de caracteres separado por espacios:
Si hay varios espacios entre las palabras, automáticamente se convierten en un espacio. Los espacios iniciales o finales se quitan automáticamente. |
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valor de entrada de caracteres literales
Devuelve "1 2 A Z a z" (Analytics no Unicode):
SORTWORDS("Z a 2 z A 1")
Devuelve "1 2 A Z a z" (Analytics Unicode):
SORTWORDS("Z a 2 z A 1")
Devuelve "1 2 A A Z Z":
SORTWORDS(UPPER("Z a 2 z A 1"))
Devuelve "CA, FL NY, TX,":
SORTWORDS("CA; TX; NY; FL")
Devuelve "CA FL NY TX":
SORTWORDS(OMIT("CA; TX; NY; FL"; ","))
Valor de entrada del campo
Devuelve todos los valores del campo Domicilio_proveedor con los elementos de domicilio ordenados secuencialmente:
SORTWORDS(Domicilio_proveedor)
Ejemplos avanzados
Ordene los elementos del domicilio para mejorar la correspondencia de los duplicados inexactos
Puede usar SORTWORDS( ) como una función de ayuda al realizar varios tipos de correspondencia inexacta en Analytics.
Efecto de SORTWORDS( ) en la distancia de Levenshtein
En primer lugar, veamos la distancia de Levenshtein entre dos instancias del mismo domicilio, pero con un formato diferente.
Sin la función SORTWORDS( ), la distancia de Levenshtein que se devuelve es 22. Una distancia de Levenshtein tan elevada sugiere que las dos cadenas no son el mismo domicilio:
LEVDIST("125 SW 39TH ST, Suite 100";"Suite 100, 125 SW 39TH ST")
Ahora, agreguemos la función SORTWORDS( ). La distancia de Levenshtein que se devuelve es 2 (drásticamente menor) y esto indica que las dos cadenas son la misma dirección.
LEVDIST(SORTWORDS("125 SW 39TH ST, Suite 100"), SORTWORDS("Suite 100, 125 SW 39TH ST"))
Aislamiento de duplicados inexactos para "125 SW 39TH ST, Suite 100"
Usted crea un filtro que aísla todos los valores del campo Domicilio_proveedor que se encuentren a una distancia de Levenshtein especificada de "125 SW 39TH ST, Suite 100":
SET FILTER TO LEVDIST(SORTWORDS(Domicilio_proveedor); SORTWORDS("125 SW 39TH ST, Suite 100"); F) < 3SET FILTER TO ISFUZZYDUP(SORTWORDS(Domicilio_proveedor), SORTWORDS("125 SW 39TH ST; Suite 100"); 3; 99)
Aumentar o reducir el número de la distancia de Levenshtein en las expresiones (3) le permite ajustar el grado de diferencia de los valores filtrados.
Para obtener más información acerca de la distancia de Levenshtein, consulte Función LEVDIST( ).
Observaciones
Video de descripción general
Si desea ver un video con una descripción general de la función, vea Fuzzy Matching Using SORTWORDS() (Coincidencias inexactas con SORTWORDS()) (solo disponible en inglés).
La secuencia de ordenamiento utilizada por SORTWORDS( )
La función SORTWORDS( ) utiliza la secuencia de ordenamiento que se especifique en la opción Criterio de ordenamiento (Herramientas > Opciones > Tabla).} A continuación, se muestran las secuencias de ordenamiento prefijadas.
Si desea obtener información detallada, consulte La opción Criterio de ordenamiento y las secuencias de ordenamiento.
|
Edición de Analytics |
Criterio de ordenamiento predeterminado |
Secuencia de ordenamiento asociada |
|---|---|---|
|
No Unicode |
Predeterminado del sistema (ASCII) |
Números, luego mayúsculas, luego minúsculas: 0, 1, 2... A, B, C... a, b, c... Por ejemplo, "Z" se ordena antes de "a". |
|
Unicode |
Combinar idiomas (UCA) (Algoritmo de compaginación Unicode) |
Números, luego letras minúsculas y mayúsculas entremezcladas: 0, 1, 2... a, A, b, B, c, C... Por ejemplo, "Z" se ordena antes de "a". |
Coincidir mayúsc.-minúsc.
SORTWORDS( ) distingue entre mayúsculas y minúsculas Según la edición de Analytics que esté usando (No Unicode o Unicode), el uso de mayúsculas y minúsculas en las cadenas puede afectar el ordenamiento.
Puede usar la función UPPER( ) junto con SORTWORDS( ) si no desea que el uso de mayúsculas o minúsculas afecte el ordenamiento:
SORTWORDS(UPPER("cadena"))
SORTWORDS( ) puede mejorar la correspondencia inexacta
SORTWORDS( ) puede mejorar la efectividad de los comandos de correspondencia inexacta y los filtros o las condiciones que utilizan las funciones de correspondencia inexacta:
- Comando FUZZYJOIN
- Comando FUZZYDUP
- Función ISFUZZYDUP( )
- Función LEVDIST( )
- Función DICECOEFFICIENT( )
¡Precaución!
Si usa SORTWORDS( ) junto con los comandos o las funciones de correspondencia inexacta, debe aplicar SORTWORDS( ) a las dos cadenas o los dos campos que se comparan. Si aplica esta función a una sola de las cadenas o uno solo de los campos, puede afectar gravemente los resultados de la correspondencia inexacta.
Algoritmo de distancia de Levenshtein
SORTWORDS( ) es particularmente útil cuando se utiliza con comandos y funciones que se basan en el algoritmo de la distancia de Levenshtein, lo cual puede devolver valores de diferencia mayores cuando los elementos idénticos o similares de las dos cadenas se encuentran en distintas posiciones. Si primero ordena los elementos, puede reducir de manera significativa los valores de diferencia que devuelve el algoritmo de Levenshtein. Los conjuntos de resultados tienen menos falsos positivos y más verdaderos positivos.
Algoritmo del coeficiente de Dice
SORTWORDS( ) puede resultar útil cuando se utiliza con comandos y funciones basados en el algoritmo del coeficiente de Dice. Sin embargo, no siempre se obtiene una mayor efectividad. Por su diseño, el algoritmo del coeficiente de Dice minimiza la importancia de la posición de los elementos; por lo tanto, el ordenamiento de los elementos tiene menos impacto que con el algoritmo de la distancia de Levenshtein.
Según la naturaleza de los datos, SORTWORDS( ) puede reducir la efectividad haciendo que el algoritmo del coeficiente de Dice devuelva menores resultados. Pruebe un conjunto de datos de muestra antes de decidir si usar SORTWORDS( ) junto con el algoritmo del coeficiente de Dice en un entorno de producción.
Otra consideración es que el beneficio de usar SORTWORDS( ) es menor cuando la longitud n-grama del coeficiente de Dice es menor. A medida que reduce la longitud del n-grama, el algoritmo del coeficiente de Dice minimiza aún más la importancia de la posición de los elementos.