Red de conocimiento informático - Problemas con los teléfonos móviles - Proceso de cálculo TF-IDF

Proceso de cálculo TF-IDF

Este artículo está extraído principalmente de la segunda edición de "Python. Machine Learning"

1. Supongamos que hay los siguientes tres textos

?Segunda edición

1 Supongamos que tenemos los siguientes tres textos

?El sol brilla'

?El clima es muy bueno'

?El sol brilla, el. el clima es agradable, uno más uno es igual a dos'

p>

2. Utilice la clase CountVectorizer para obtener el siguiente diccionario

{'and': 0, 'two': 7, 'brillante': 3, 'uno': 2, 'sol': 4 , 'clima': 8, 'el': 6, 'dulce': 5, 'es': 1 }

3 Convierta el documento en el paso 1 a una matriz

[[0 1 0 1 1 0 1 0 0 0]

[[0 1 0 0 0 1 1 1 0 1]

[2 3 2 1 1 1 2 1 1 ]]

4.. Calcular el valor tf-idf

Tomemos el cálculo como ejemplo, que corresponde a la segunda columna de la matriz.

El valor tf representa la cantidad de veces que aparece el elemento en el texto. Aquí significa que la cantidad de veces que aparece el elemento en el texto es 3. Es fácil ver que es 3.

Para el valor idf, sklearn ha realizado un pequeño cambio, la fórmula es (1 + log).

Para el valor de idf, sklearn ha realizado un pequeño cambio, la fórmula es (1+log). idf representa el número total de textos (número de documentos) y df (d, t) representa el número de documentos incluidos. Obviamente, aquí también es 3. De esta forma, el resultado del cálculo es 3*(1+log)=3.

Cabe señalar que sklearn regulariza los resultados.

El resultado final es

[[ 0. ? 0.43 0. 0.56 0.56 ? 0. 0.43 0. 0. ]

[ 0.43 0 0. 0.56 0.43 ? 0. 0.56]

[ 0.5 0.45 0.5 0.19 0.19 0.19 0.19 0.3 0.25 0.19]]

La suma de los cuadrados de cada fila es 1, que es. el l2 regular El resultado del procesamiento.

También se puede ver que la frecuencia de las palabras originales es 1 1 3 y el valor final de tf-idf es 0,43 0,43 0,45.