English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

TF-Aplicación de IDF y similitud cosina (II): Encontrar artículos similares

La vez anterior, utilicé TF-El algoritmo IDF extrae automáticamente palabras clave.

Hoy, investiguemos otro problema relacionado. A veces, además de encontrar palabras clave, también queremos encontrar otros artículos similares al artículo original. Por ejemplo, "Google News" debajo del principal artículo, también proporciona múltiples artículos similares.

Para encontrar artículos similares, se necesita usar"Similitud coseno"(similitud coseno). A continuación, daré un ejemplo para explicar qué es la "similitud coseno".

Para simplificar, primero abordemos las frases.

  Oración A: Me gusta ver televisión, no me gusta ver películas.
  Oración B: No me gusta ver televisión, ni me gusta ver películas.

¿Cómo puedo calcular el grado de similitud entre las dos frases anteriores?

La idea básica es: si las dos frases tienen más palabras similares, el contenido de estas frases debería ser más similar. Por lo tanto, podemos comenzar con la frecuencia de palabras para calcular su grado de similitud.

El primer paso, dividir las palabras.
  Oración A: yo/gustar/ver/televisión, no/gustar/ver/películas.
  Oración B: yo/no/gustar/ver/televisión, también/no/gustar/ver/películas.

El segundo paso, listar todas las palabras.
  yo, gustar, ver, televisión, películas, no, también.

El tercer paso, calcular la frecuencia de palabras.
  Oración A: yo 1, gustar 2, ver 2, televisión 1, películas 1, no 1, también 0.
  Oración B: yo 1, gustar 2, ver 2, televisión 1, películas 1, no 2, también 1.

El cuarto paso, escribir la vector de frecuencia de palabras.
  Oración A: [1, 2, 2, 1, 1, 1, 0]
  Oración B: [1, 2, 2, 1, 1, 2, 1]

Hasta aquí, el problema se convierte en cómo calcular la similitud entre estos dos vectores.

Podemos imaginarnos dos segmentos de línea en el espacio, ambos parten del punto de origen ([0, 0, ...]) y apuntan en direcciones diferentes. Entre los dos segmentos se forma un ángulo, si el ángulo es de 0 grados, significa que las direcciones son iguales y los segmentos se superponen; si el ángulo es 90 grados, significa que se forma un ángulo recto, la dirección no es similar; si el ángulo es 180 grados, significa que la dirección es exactamente opuesta.Por lo tanto, podemos juzgar la similitud entre vectores a través del tamaño del ángulo. Cuanto más pequeño sea el ángulo, más similares son los vectores.

Tomemos el espacio bidimensional como ejemplo, en la imagen superior, los vectores a y b son dos vectores, queremos calcular su ángulo θ. El teorema coseno nos dice que se puede obtener con la siguiente fórmula:

Supongamos que el vector a es [x1, y1], el vector b es [x2, y2], luego se puede reformular el teorema coseno en la siguiente forma:

Los matemáticos han demostrado que este método de cálculo de coseno también es válido para vectores n-dimensionales. Supongamos que A y B son dos vectores n-dimensionales, A es [A1, A2, ..., An] ,B es [B1, B2, ..., Bn] ,el ángulo θ entre A y B es:

Con esta fórmula, podemos obtener el coseno del ángulo entre las frases A y B.

El valor de coseno se acerca a1,lo que indica que cuanto más cerca del ángulo 0 grados, es decir, más similares dos vectores, se llama 'similitud coseno'.Por lo tanto, las frases A y B son muy similares, de hecho, el ángulo entre ellas es aproximadamente 20.3 grado.

Por lo tanto, hemos obtenido un algoritmo para 'encontrar artículos similares':

(1)Usar TF-Algoritmo IDF, encuentra las palabras clave de dos artículos;

(2)Cada artículo extrae varias palabras clave (por ejemplo 20 (件),las combinan en un conjunto, y calculan la frecuencia de palabra de cada artículo para cada palabra de este conjunto (para evitar la diferencia en la longitud de los artículos, se puede usar la frecuencia de palabra relativa);

(3)Generar las matrices de frecuencia de palabras de dos artículos respectivamente;

(4)Calcular la similitud coseno de dos vectores, cuanto mayor sea el valor, más similares serán.

La 'similitud coseno' es un algoritmo muy útil, que se puede utilizar para calcular la similitud entre dos vectores.

La próxima vez, quiero hablar sobre cómo generar automáticamente un resumen de un artículo basado en el análisis de frecuencia de palabras.

Este es el contenido completo del artículo, esperamos que sea útil para su aprendizaje y que todos nos apoyen en el tutorial de clamor.

Declaración: El contenido de este artículo se ha obtenido de la red, los derechos de autor pertenecen al propietario original, el contenido se ha subido voluntariamente por los usuarios de Internet y este sitio web no posee los derechos de propiedad, no ha sido editado por humanos y no asume responsabilidad alguna por las responsabilidades legales. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#w.3Declaración: El contenido de este artículo se ha obtenido de la red, y los derechos de autor pertenecen al propietario original. El contenido se ha subido voluntariamente por los usuarios de Internet y este sitio web no posee los derechos de propiedad, no ha sido editado por humanos y no asume responsabilidad alguna por las responsabilidades legales. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#w proporcionando evidencia relevante, y una vez confirmada, este sitio web eliminará inmediatamente el contenido sospechoso.

Te gustará