Colección de citas famosas - Slogan de motivación - 20 Similitud del coseno y su implementación en R

20 Similitud del coseno y su implementación en R

La similitud del coseno evalúa la similitud de dos vectores calculando el coseno de su ángulo. Dibuje los vectores en el espacio vectorial de acuerdo con los valores de las coordenadas, obtenga su ángulo incluido y obtenga el valor del coseno correspondiente al ángulo incluido, que puede usarse para expresar la similitud de los dos vectores. Cuanto más pequeño es el ángulo, más cerca está el valor del coseno de 1, más consistentes son sus direcciones y más similares son.

Tomemos como ejemplo el espacio bidimensional. A y B en la figura anterior son dos vectores y necesitamos calcular su ángulo θ. El teorema del coseno nos dice que se puede obtener mediante la siguiente fórmula:

En el procesamiento de textos, para utilizar el algoritmo de similitud del coseno, primero se debe vectorizar el texto y representar las palabras en la forma de "vectores de palabras" Es una tecnología central que introduce algoritmos de aprendizaje profundo en el campo de la PNL. El primer paso para convertir el procesamiento del lenguaje natural en un problema de aprendizaje automático es una forma de matematizar estos textos. La idea es la siguiente:

Por ejemplo:

Oración A: Esta bota de cuero es demasiado grande. Este número encaja.

Frase B: Esta bota de piel no es demasiado pequeña, esa es más adecuada.

1. Segmentación de palabras chinas:

Después de utilizar la segmentación de palabras tartamudas para segmentar las dos oraciones anteriores, se obtienen dos conjuntos de palabras respectivamente:

2. todas las palabras, coloque listA y listB en un conjunto para formar una bolsa de palabras:

3. Utilice el conjunto de palabras para calcular la frecuencia de palabras de listA y listB.

4. Los resultados de la codificación única de listaA y listaB son los siguientes:

listAcode = [1, 2, 1, 2, 1, 1, 1, 1, 0, 0]

listBcode = [1, 2, 1, 1, 0, 0, 1, 1, 1

5. , se trata de calcular las dos oraciones El coseno del ángulo entre vectores. Cuanto mayor sea el valor, mayor será la similitud.

6. El valor del coseno de los dos vectores es 0,805823, que está cerca de 1, lo que indica que la similitud entre las dos oraciones es muy alta.

Los pasos para calcular la similitud de dos oraciones son los siguientes:

1. Divida la oración completa en conjuntos de palabras independientes mediante la segmentación de palabras chinas; Encuentre la unión de dos conjuntos de palabras (bolsa de palabras);

3. Calcule la frecuencia de palabras de cada conjunto de palabras y cuantifique la frecuencia de palabras;

4. sustituido en la fórmula del coseno obtener.

Tenga en cuenta que una vez determinado el paquete de palabras, el orden de las palabras no se puede modificar; de lo contrario, afectará el cambio del vector.

Lo anterior es para calcular la similitud de dos oraciones. Si está calculando la similitud entre dos artículos, los pasos son los siguientes:

1. Encuentre las palabras clave de sus artículos y sintetice un conjunto de palabras.

2. Unión de dos conjuntos de palabras (bolsa de palabras);

3. Calcule la frecuencia de palabras de cada conjunto de palabras y cuantifique la frecuencia de palabras

4. fórmula del coseno.

El cálculo de similitud de oraciones es solo una subparte del cálculo de similitud de artículos. La extracción de palabras clave de artículos se puede lograr mediante otros algoritmos.

Frecuencia de términos TF ($TERM frecuencia) es el número de veces que aparece una palabra en un artículo u oración. Para encontrar palabras clave (palabras) en un artículo extenso, el entendimiento general es que cuanto más crítica es una palabra para el artículo, más veces aparece en el artículo, por lo que usamos la "frecuencia de palabras" para contar.

Sin embargo, esto no es absoluto, como "地", "的" y "Ah". Su frecuencia de aparición no contribuye a la idea central de un artículo, sino que es simplemente parte de la estructura gramatical china. Estas palabras también se denominan "palabras vacías", por lo que al calcular la frecuencia de palabras de un artículo, se deben filtrar las palabras vacías.

¿El simple hecho de filtrar las palabras vacías resolverá el problema? incierto. Por ejemplo, al analizar informes de trabajo del gobierno, la palabra "China" aparece muchas veces en cada artículo, pero ¿ayuda al propósito de cada informe? En comparación con términos como anticorrupción, inteligencia artificial, big data e Internet de las cosas, la palabra "China" debería ocupar un lugar secundario en el artículo.

La ventaja del algoritmo TF es que es simple y rápido, y los resultados son más consistentes con la situación real.

La desventaja es que utilizar simplemente la "frecuencia de palabras" como criterio de medición no es lo suficientemente completo y no tiene en cuenta factores como las categorías y posiciones de las palabras. A veces, es posible que las palabras importantes no aparezcan muchas veces. Este algoritmo no puede reflejar la información de posición de la palabra. No es científico considerar que la palabra en la posición anterior y la palabra en la posición posterior tengan la misma importancia.

En relación con la idea del proceso de jerarquía analítica, a cada palabra se le puede dar un peso específico, a las palabras más utilizadas se les puede dar un peso menor y a las palabras menos utilizadas se les puede dar un peso menor. mayor peso. Este peso se denomina "frecuencia de documento doble inversa" (abreviado como IDF) y su tamaño es inversamente proporcional a lo común de una palabra. El valor TF-IDF es el producto del término frecuencia TF y la frecuencia inversa del documento IDF. Cuanto mayor sea el valor, más importante será la palabra para el artículo. Este es el algoritmo TF-IDF.