Loading [MathJax]/jax/element/mml/optable/Latin1Supplement.js

29 votos

Bolsa de palabras para la clasificación de textos: ¿Por qué no utilizar las frecuencias de palabras en lugar del TFIDF?

Un enfoque común para la clasificación de textos es entrenar un clasificador a partir de una "bolsa de palabras". El usuario toma el texto a clasificar y cuenta las frecuencias de las palabras en cada objeto, seguido de algún tipo de recorte para mantener la matriz resultante de un tamaño manejable.

A menudo, veo que los usuarios construyen su vector de características utilizando TFIDF. En otras palabras, las frecuencias de texto señaladas anteriormente se ponderan a la baja por la frecuencia de las palabras en el corpus. Veo por qué el TFIDF sería útil para seleccionar las palabras "más distintivas" de un documento dado para, por ejemplo, mostrarlas a un analista humano. Pero en el caso de la categorización de textos mediante técnicas estándar de ML supervisado, ¿por qué molestarse en ponderar por la frecuencia de los documentos en el corpus? ¿No será el propio alumno quien decida la importancia que debe asignar a cada palabra/combinación de palabras? Le agradecería su opinión sobre el valor que añade la FID, si es que lo hace.

28voto

user777 Puntos 10934

Tienes razón en que el aprendiz supervisado a menudo puede ser redundante con la ponderación TF-IDF. Aquí está el esquema básico de por qué: En una forma típica de ponderación TF-IDF, el reescalado es logarítmico, por lo que la ponderación de una palabra w en un documento d es TF-IDF(w,d)=(no. occurrences of w in d)f(w) para N el número de documentos del corpus y f(w)=log(Nno. documents containing w) . Cuando f(w)>0 El TF-IDF no es más que un reajuste de la frecuencia de los términos. Así, si escribimos la matriz que cuenta el número de apariciones de una palabra en cada documento como X entonces un modelo lineal tiene la forma Xβ . Si utilizamos TF-IDF en lugar de sólo la frecuencia de términos, el modelo lineal puede escribirse como X(kI)˜β , donde k es un vector que almacena todos nuestros pesos ki=f(wi) . El efecto de kI es reescalar cada columna de X . En este contexto, la elección de utilizar TF-IDF o TF solo no tiene importancia, porque se obtendrán las mismas predicciones. Utilizando la sustitución (kI)˜β=β podemos ver que el efecto es reescalar β .

Pero hay al menos dos escenarios en los que la elección de utilizar TF-IDF es consecuente para el aprendizaje supervisado.

El primer caso es cuando f(w)=0 . Esto ocurre cuando un término aparece en todos los documentos, como por ejemplo palabras muy comunes como "y" o "el". En este caso, TF-IDF pondrá a cero la columna en X(kI) , dando como resultado una matriz que no es de rango completo. Una matriz con rango deficiente no suele ser preferible para el aprendizaje supervisado, por lo que estas palabras simplemente se eliminan de X porque no añaden ninguna información. De este modo, el TF-IDF proporciona una selección automática de las palabras más comunes.

El segundo caso es cuando la matriz X(kI) tiene su vectores de documentos reescalado a la misma norma. Dado que es muy probable que un documento más largo tenga un vocabulario mucho mayor que un documento más corto, puede ser difícil comparar documentos de distinta longitud. El reescalado de cada vector de documentos también suprimirá las palabras raras importantes en el documento independientemente de lo rara o común que sea la palabra en el corpus. Además, al reescalar el vector de cada documento para que tenga la misma norma después de calcular el TF-IDF se obtiene una matriz de diseño que no es una transformación lineal de X por lo que no se puede recuperar la matriz original mediante un escalado lineal.

El reescalado de los vectores de los documentos tiene una estrecha relación con la similitud del coseno, ya que ambos métodos implican la comparación de vectores de longitud unitaria.

La popularidad del TF-IDF en algunos entornos no impone necesariamente una limitación a los métodos que se utilizan. Últimamente, es muy común utilizar vectores de palabras y de tokens preentrenados en un gran corpus o entrenados por el investigador para su tarea particular. Dependiendo de lo que esté haciendo y de la escala de los datos, así como del objetivo de su análisis, podría ser más conveniente utilizar TD-IDF, word2vec u otro método para representar la información del lenguaje natural.

Se pueden encontrar varios recursos aquí que reproduzco por comodidad.

  • K. Sparck Jones. "Una interpretación estadística de la especificidad de los términos y su aplicación en la recuperación". Journal of Documentation, 28 (1). 1972.

  • G. Salton y Edward Fox y Wu Harry Wu. "Extended Boolean information retrieval". Comunicaciones de la ACM, 26 (11). 1983.

  • G. Salton y M. J. McGill. "Introduction to modern information recuperación de información". 1983

  • G. Salton y C. Buckley. "Term-weighting approaches in automatic text retrieval". Information Processing & Management, 24 (5). 1988.

  • H. Wu y R. Luk y K. Wong y K. Kwok. "Interpretación del término TF-IDF weights as making relevance decisions". ACM Transactions on Information Systems, 26 (3). 2008.

2voto

RedYoshi98 Puntos 41

En el caso típico, podría tener muchos más documentos en su corpus que documentos etiquetados. Esto significa que la FID puede calcularse de forma mucho más precisa y completa si se utiliza todo el corpus.

A continuación, considere el caso en el que el corpus que puede conseguir hasta ahora está todo etiquetado o el subconjunto etiquetado es "suficientemente grande". En este caso, el número de iteraciones necesarias para el entrenamiento podría ser menor al utilizar TfIDF porque el algoritmo de aprendizaje no necesitaría aprender tanto.

Por último, en este mismo caso, también se podría proporcionar sólo tf, o tf e idf por separado (o incluso incluir también tfidf). Creo que esto podría generar mejores resultados, por ejemplo, cuando se utiliza una función de núcleo sofisticada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X