Cálculo de similitud de texto (1): método de distancia
1, representación de texto
1.1, representación VSM
1.2, representación de vector de palabra
1.3, método de migración
p>
2. Método de cálculo de distancia
2.1, distancia euclidiana (norma L 2), distancia de Manhattan (norma L 1), distancia de Mintz.
2.2. Distancia de Hamming
2.3. Coeficiente de similitud de Jaccard y distancia de Jaccard (coeficiente de similitud 1-Jaccard)
Distancia coseno
< p. >2.5 Coeficiente de correlación de Pearson2.5, editar distancia
Ejemplo de escenario:
1) Calcular la correlación entre la consulta y el documento, 2) Calcular la pregunta y sistema de respuesta 3) Calcular el grado de coincidencia entre la consulta y la palabra publicitaria en el sistema publicitario, 4) Recomendar un artículo a un usuario en el sistema de recomendación y calcular la similitud entre el artículo y los intereses del usuario.
Además, juzgar si dos consultas expresan el mismo significado también puede considerarse perteneciente a la categoría de similitud de texto.
La similitud debe referirse a la similitud entre dos cosas (digamos p y q respectivamente). Estas dos cosas pueden tener cualquier forma, como texto, imágenes, sonidos, etc. Para calcular la similitud, estas cosas deben abstraerse en forma matemática. Para decirlo claramente, es cómo representar estas cosas con números, generalmente usando vectores o matrices. Luego, si se representa mediante un vector, podemos usar el conocimiento aprendido en la clase de matemáticas para calcular la similitud.
Aquí espero tener una introducción clara y completa al método de cálculo de la similitud de texto. En la actualidad, se puede dividir aproximadamente en tres métodos: distancia, hash y aprendizaje profundo.
Estas llamadas distancias son en realidad fórmulas fijas. La clave está en cómo aplicarlas. En aplicaciones prácticas, se pueden utilizar tf-idf, word2vec, LDA y otros métodos para calcular la distancia de similitud.
El primer paso para muchas similitudes es en realidad la representación de palabras, es decir, expresar las palabras en forma de números. Actualmente, existen dos métodos principales para este paso: VSM (modelo de espacio vectorial) y representación vectorial de palabras.
De hecho, este método es flexible y puede basarse en la segmentación de palabras, y también tiene ciertos efectos en representaciones basadas en caracteres chinos o n-gramas.
1) Representación tf-idf/bow: dado el conjunto de documentos C y el diccionario D, use el modelo de bolsa de palabras para representar un documento como palabras y luego represente cada palabra de acuerdo con tf-idf. Calcule un valor real;
Debido a que el tamaño del diccionario D es m, este documento se convierte en un vector de m dimensiones. Si una palabra del diccionario no aparece en el documento, el elemento correspondiente de la palabra en el vector es 0. Si aparece una palabra en el documento, entonces el valor del elemento correspondiente a la palabra en el vector es el valor tf-idf de la palabra. De esta forma, el documento se representa como un vector, que es el modelo del espacio vectorial. También se puede ver a partir de esto que el modelo de espacio vectorial no tiene relación entre el término $ de captura y el término $ de palabra. Supone que cada término $ es independiente entre sí.
Utilizando vectores de documentos se puede calcular la similitud entre documentos.
Este método de representación está relacionado con el tamaño del diccionario y tiende a hacer que la representación del texto sea escasa y de alta dimensión. PCA puede aliviar este problema.
2) Representación del modelo de tema: de hecho, VSM se puede utilizar como una idea de representación de texto: simplifica el procesamiento del contenido del texto en operaciones vectoriales en el espacio vectorial y utiliza la similitud espacial para representar la similitud semántica.
Desde esta perspectiva, la representación VSM de texto también se puede completar utilizando modelos de temas como LDA y LSA: el texto se representa como un espacio vectorial de temas.
Este método puede definir dimensiones (número de temas) y no es escaso, pero puede haber situaciones en las que la similitud de distancia entre pares de texto esté densamente distribuida en el espacio, lo que dará como resultado resultados deficientes.
Este método generalmente se puede obtener dividiendo directamente el vector de palabras en longitudes de oraciones después de la segmentación del texto. También puede utilizar métodos de ponderación, como la frecuencia inversa suavizada, para ponderar los vectores de palabras: cada incrustación de palabras se pondera mediante a/(a p(w)), donde el valor de a suele establecerse en 0,01 y p(w) es la expectativa. de la palabra en el corpus frecuencia de aparición.
En general, el método de vector de palabras de word2vec es más fuerte que el método de guante, y para word2vec, el método cbow es más fuerte que skip-gram (la razón específica no es complicada. Si está interesado, puedes pensar en ello desde la perspectiva de los métodos de entrenamiento ~).
Más importante aún, los métodos de representación de texto anteriores en realidad perderán o no capturarán información semántica. Los métodos de entrenamiento previo como BERT y ELMO son más confiables y también pueden usarse para cálculos de similitud de texto no supervisados.
Distancia euclidiana:
Distancia de Manhattan:
Significa que el número de dígitos correspondientes a dos palabras (de la misma longitud) es diferente. Usamos d (x, y) para representar la distancia de Hamming entre dos palabras x, y Realice una operación XOR en las dos cadenas y el recuento es 1, entonces este número es la distancia de Hamming.
(1) Coeficiente de similitud de Jacobs:
La proporción de los elementos de intersección de dos conjuntos A y B en la unión de A y B se llama coeficiente de los dos conjuntos El comparable El coeficiente de similitud está representado por el símbolo J(A, B).
El coeficiente de similitud de Jakade es una medida de la similitud entre dos conjuntos.
En el uso real, se puede calcular de dos maneras: sin repetición, y más a menudo, se puede convertir en la suma de los valores tf-idf de la intersección dividida por la suma de los Valores tf-idf de la unión.
(2) ¿Distancia Jaccard
? El concepto opuesto al coeficiente de similitud jacobiano es la distancia jacobiana.
La distancia jacobiana se puede expresar mediante la siguiente fórmula:
La distancia Jakade mide la distinción entre dos conjuntos mediante la proporción de elementos diferentes entre todos los elementos de los dos conjuntos.
El rango del coseno del ángulo incluido es [-1, 1]. Cuanto mayor es el coseno de un ángulo, menor es el ángulo entre dos vectores, y cuanto menor es el coseno de un ángulo, mayor es el ángulo entre dos vectores. Cuando las direcciones de dos vectores coinciden, el coseno del ángulo incluido toma un valor máximo de 1. Cuando las direcciones de los dos vectores son completamente opuestas, el coseno del ángulo incluido toma un valor mínimo de -1. La similitud del texto generalmente toma el valor absoluto.
El coeficiente de correlación de Pearson se usa ampliamente en los sistemas de recomendación y su fórmula es la siguiente:
Se refiere a la edición más corta requerida para que dos cadenas cambien de una cadena a otra. tiempo. Esta edición incluye sustituciones, inserciones y eliminaciones.
Por lo general, la similitud del texto se calcula mediante VSM/distancia cbow cos/distancia euclidiana o distancia de Jacques.
El coeficiente Dice puede calcular la similitud de dos cadenas: dados (S1,) = 2 * comm (S1,)/(LENG (S1) LENG (S2)).
/weixin_43526820/article/details/89883640? SPM = 1001.2014.3001.5501