Comparación

class comparacion.DiferenciaStrings

Bases: object

Esta clase se recomienda para comparaciones de strings relativamente cortos, como nombres, direcciones y otras cadenas de caracteres similares. Para textos más extensos, se recomiendan las clases comparacion.Similitud() o comparacion.Distancia().

comparacion_lista(lista1, lista2=[], tipo='levenshtein', norm=None)

Permite hacer comparaciones entre una o dos listas de textos de entrada.

Parámetros
  • lista1 (str, list) – Texto o lista de textos de interés para realizar las comparaciones.

  • lista2 (str, list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se harán las comparaciones entre cada uno de los textos de lista1 con cada uno de los textos de lista2. Valor por defecto [].

  • tipo ({'damerau_levenshtein', 'levenshtein', 'hamming', 'jaro_winkler', 'jaro'}, opcional) – Criterio de comparación a utilizar entre los textos. Valor por defecto “levenshtein”.

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

comparacion_pares(texto1, texto2, tipo='levenshtein', norm=None)

Permite hacer comparaciones entre dos textos de entrada, de acuerdo a un tipo de distancia o similitud determinado.

Parámetros
  • texto1 (str) – Primer texto de interés a comparar.

  • texto2 (str) – Segundo texto de interés a comparar.

  • tipo ({'damerau_levenshtein', 'levenshtein', 'hamming', 'jaro_winkler', 'jaro'}, opcional) – Criterio de comparación a utilizar entre los textos. Valor por defecto “levenshtein”.

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(float) Valor resultado de la comparación entre texto1 y texto2.

distancia_damerau_levenshtein(lista1, lista2=[], norm=None)

Permite calcular la distancia de Damerau-Levenshtein entre una o dos listas de textos de entrada.

Permite calcular la distancia de Levenshtein entre una o dos listas de textos de entrada.

Parámetros
  • lista1 (str, list) – Texto o lista de textos de interés para realizar las comparaciones.

  • lista2 (str, list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se harán las comparaciones entre cada uno de los textos de lista1 con cada uno de los textos de lista2. Valor por defecto [].

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

distancia_hamming(lista1, lista2=[], norm=None)

Permite calcular la distancia de Hamming entre una o dos listas de textos de entrada.

Permite calcular la distancia de Levenshtein entre una o dos listas de textos de entrada.

Parámetros
  • lista1 (str, list) – Texto o lista de textos de interés para realizar las comparaciones.

  • lista2 (str, list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se harán las comparaciones entre cada uno de los textos de lista1 con cada uno de los textos de lista2. Valor por defecto [].

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

distancia_levenshtein(lista1, lista2=[], norm=None)

Permite calcular la distancia de Levenshtein entre una o dos listas de textos de entrada.

Parámetros
  • lista1 (str, list) – Texto o lista de textos de interés para realizar las comparaciones.

  • lista2 (str, list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se harán las comparaciones entre cada uno de los textos de lista1 con cada uno de los textos de lista2. Valor por defecto [].

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

similitud_jaro(lista1, lista2=[])

Permite calcular la similitud de Jaro entre una o dos listas de textos de entrada.

Permite calcular la distancia de Levenshtein entre una o dos listas de textos de entrada.

Parámetros
  • lista1 (str, list) – Texto o lista de textos de interés para realizar las comparaciones.

  • lista2 (str, list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se harán las comparaciones entre cada uno de los textos de lista1 con cada uno de los textos de lista2. Valor por defecto [].

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

similitud_jaro_winkler(lista1, lista2=[])

Permite calcular la similitud de Jaro-Winkler entre una o dos listas de textos de entrada.

Permite calcular la distancia de Levenshtein entre una o dos listas de textos de entrada.

Parámetros
  • lista1 (str, list) – Texto o lista de textos de interés para realizar las comparaciones.

  • lista2 (str, list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se harán las comparaciones entre cada uno de los textos de lista1 con cada uno de los textos de lista2. Valor por defecto [].

  • norm ({1,2}, opcional) – Permite normalizar los resultados en función de la longitud de los textos. Si norm = 1 se normaliza en función al texto más corto, si norm = 2 se normaliza en función al texto de mayor extensión.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

class comparacion.Distancia(vectorizador=None, lenguaje='es')

Bases: object

Constructor de la clase Distancia. Permite calcular las diferentes medidas de distancia entre textos y/o vectores.

Parámetros
  • vectorizador (vectorizador, str, opcional) – Objeto de tipo vectorizador, o string con la ubicación del archivo que lo contiene. Vectorizador que va a ser utilizado para generar representaciones vectoriales de los textos. Si no se especifica un vectorizador, se utilizará uno de tipo Word2Vec. Si se pasa un vectorizador al objeto de clase Distancia, este ya debe estar ajustado. Valor por defecto None.

  • lenguaje (str) – Indica el lenguaje que utilizará el vectorizador. Para mayor información, consultar la sección de Lenguajes soportados. Si se pasa un vectorizador ya ajustado, este parámetro no será utilizado. Valor por defecto “es”.

distancia_pares(lista1, lista2=[], tipo_distancia='l2', **kwargs)

Permite calcular diferentes métricas de distancias entre uno o dos grupos de textos y/o vectores de entrada.

Parámetros
  • lista1 (list, str, numpy.array) – Texto o lista de textos de interés para el cálculo de las distancias. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (list, str, numpy.array, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calculará la distancia entre cada uno de los textos/vectores de lista1 con cada uno de los elementos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

  • tipo_distancia (str, opcional) – Métrica de distancia que se desea calcular. Para una lista de todas las distancias que se pueden calcular por medio de esta función, se puede consultar la documentación de scikit-learn y scipy: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise_distances.html. Valor por defecto l2.

  • kwargs (dict, opcional) – Parámetros opcionales que pueden ser ajustables, dependiendo de la métrica de distancia elegida.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n_1 x n_2, con las distancias entre los elementos de lista1 y los elementos de lista2.

establecer_lenguaje(lenguaje)

Establece el lenguaje del objeto Distancia.

Parámetros

lenguaje (str) – Indica el lenguaje que utilizará el vectorizador. Para mayor información, consultar la sección de Lenguajes soportados. Si se pasa un vectorizador ya ajustado, este parámetro no será utilizado.

establecer_vectorizador(vectorizador)

Establece el vectorizador del objeto Distancia.

Parámetros

vectorizador (vectorizador, str) – Objeto de tipo vectorizador, o string con la ubicación del archivo que lo contiene. Vectorizador que va a ser utilizado para generar representaciones vectoriales de los textos. Si no se especifica un vectorizador, se utilizará uno de tipo Word2Vec. Si se pasa un vectorizador al objeto de clase Distancia, este ya debe estar ajustado.

hamming(lista1, lista2=[])

Calcula la distancia de Hamming entre uno o dos grupos de textos y/o vectores de entrada.

Parámetros
  • lista1 (str, list, numpy.array) – Texto o lista de textos de interés para el cálculo de las distancias. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (str, list, numpy.array, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calcularán la distancias entre cada uno de los textos/vectores de lista1 con cada uno de los elementos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

jaccard(lista1, lista2=[])

Calcula la distancia de Jaccard entre uno o dos grupos de textos y/o vectores de entrada.

Parámetros
  • lista1 (str, list, numpy.array) – Texto o lista de textos de interés para el cálculo de las distancias. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (str, list, numpy.array, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calcularán la distancias entre cada uno de los textos/vectores de lista1 con cada uno de los elementos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

l1(lista1, lista2=[])

Calcula la distancia L1, también conocida como la distancia Manhattan, entre uno o dos grupos de textos y/o vectores de entrada.

Parámetros
  • lista1 (str, list, numpy.array) – Texto o lista de textos de interés para el cálculo de las distancias. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (str, list, numpy.array, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calcularán la distancias entre cada uno de los textos/vectores de lista1 con cada uno de los elementos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias L1 calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias L1 entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n1 y n2 textos/vectores respectivamente, devolverá una matriz de n_1 x n_2, con las distancias entre los elementos de lista1 y los elementos de lista2.

l2(lista1, lista2=[])

Calcula la distancia L2, también conocida como la distancia euclidiana, entre uno o dos grupos de textos y/o vectores de entrada.

Parámetros
  • lista1 (str, list, numpy.array) – Texto o lista de textos de interés para el cálculo de las distancias. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (str, list, numpy.array, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calcularán la distancias entre cada uno de los textos/vectores de lista1 con cada uno de los elementos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias L2 calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias L2 entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n_1 x n_2, con las distancias entre los elementos de lista1 y los elementos de lista2.

minkowski(lista1, lista2=[], p=2)

Calcula la distancia de Minkowski entre uno o dos grupos de textos y/o vectores de entrada.

Parámetros
  • lista1 (str, list, numpy.array) – Texto o lista de textos de interés para el cálculo de las distancias. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (str, list, numpy.array, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calcularán la distancias entre cada uno de los textos/vectores de lista1 con cada uno de los elementos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

  • p (int) – Orden o grado de la distancia de Minkowski que se desea calcular. Si p = 1, la distancia calculada es equivalente a la distancia de Manhattan (L1) y cuando p=2 la distancia calculada es equivalente a la distancia euclidiana (L2). Valor por defecto 2.

Devuelve

(numpy.array) Matriz de dos dimensiones con las distancias calculadas entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las distancias entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos/vectores respectivamente, devolverá una matriz de n1 x n2, con las distancias entre los elementos de lista1 y los elementos de lista2.

class comparacion.Similitud(vectorizador=None, lenguaje='es')

Bases: object

Constructor de la clase Similitud. Permite calcular la similitud coseno y de Jaccard entre textos y/o vectores.

Parámetros
  • vectorizador (str/None/Vectorizador, opcional) – Objeto de tipo vectorizador, o string con la ubicación del archivo que lo contiene. Vectorizador que va a ser utilizado para generar representaciones vectoriales de los textos. Si no se especifica un vectorizador, se utilizará uno de tipo Word2Vec. Si se pasa un vectorizador al objeto de clase Similitud, este ya debe estar ajustado. Valor por defecto None

  • lenguaje (str, opcional) – Indica el lenguaje que utilizará el vectorizador. Para mayor información, consultar la sección de Lenguajes soportados. Si se pasa un vectorizador ya ajustado, este parámetro no será utilizado. Valor por defecto “es”.

coseno(lista1, lista2=[])

Calcula la similitud coseno entre uno o dos grupos de textos o vectores de entrada.

Parámetros
  • lista1 (list, str) – Texto o lista de textos de interés para el cálculo de similitud. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa.

  • lista2 (list, opcional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calculará la similitud entre cada uno de los textos de lista1 con cada uno de los textos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy o una matriz dispersa. Valor por defecto [].

Devuelve

(numpy.array) Matriz de dos dimensiones con las similitudes coseno entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las similitudes coseno entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos respectivamente, devolverá una matriz de n_ 1 x n_2, con las similitudes coseno entre los textos/vectores de lista1 y los elementos de lista2.

establecer_lenguaje(lenguaje)

Establece el lenguaje del objeto Similitud.

Parámetros

lenguaje (str) – Indica el lenguaje que utilizará el vectorizador. Para mayor información, consultar la sección de Lenguajes soportados. Si se pasa un vectorizado ajustado, este parámetro no será usado.

establecer_vectorizador(vectorizador=None)

Establece el vectorizador del objeto Similitud.

Parámetros

vectorizador (vectorizador, opcional) – Objeto de tipo vectorizador, o string con la ubicación del archivo que lo contiene. Vectorizador que va a ser utilizado para generar representaciones vectoriales de los textos. Si se pasa un vectorizador al objeto de clase Similitud, este ya debe estar ajustado.

jaccard(lista1, lista2=[], vectorizar=False)

Calcula la similitud de Jaccard entre uno o dos grupos de textos o vectores de entrada.

Parámetros
  • lista1 (list, str) – Texto o lista de textos de interés para el cálculo de similitud. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy, utilizando vectorizadores basados en frecuencias (BOW, TF-IDF, Hashing).

  • lista2 (list, str, optional) – Texto o lista de textos para comparar. Si se utiliza este parámetro, se calculará la similitud entre cada uno de los textos de lista1 con cada uno de los textos de lista2. También es posible ingresar directamente los vectores pre-calculados de los textos en un arreglo de numpy, utilizando vectorizadores basados en frecuencias (BOW, TF-IDF, Hashing). Valor por defecto [].

  • vectorizar (bool, opcional) – Indica si se desean vectorizar los textos de entrada pertenecientes a lista1 y a lista2. Si vectorizar=False, se calculará la similitud de Jaccard de cada par de textos directamente, sin obtener sus representaciones vectoriales. Valor por defecto False.

Devuelve

(numpy.array) Matriz de dos dimensiones con las similitudes de Jaccard entre los textos/vectores de entrada. Si solo se utilizó el parámetro lista1 con n textos/vectores, devolverá una matriz de n x n simétrica, con las similitudes de Jaccard entre todos los elementos de lista1. Si se utilizan los parámetros lista1 y lista2 con n_1 y n_2 textos respectivamente, devolverá una matriz de n_1 x n_2, con las similitudes de Jaccard entre los elementos de lista1 y los elementos de lista2.