IDF incremental (frecuencia de documento inversa)


11

En una aplicación de minería de texto, un enfoque simple es utilizar la heurística para crear vectores como representaciones compactas y dispersas de los documentos. Esto está bien para la configuración de lotes, donde todo el cuerpo se conoce a priori, ya que i d f requiere todo el cuerpotfidfidf

idf(t)=log|D||{d:td}|

donde es un término, d es un documento, D es el corpus de documentos y T (no se muestra) es el diccionario.tdDT

Sin embargo, normalmente se reciben documentos nuevos con el tiempo. Una opción es seguir usando el existente hasta que se haya recibido un cierto número de documentos nuevos y volver a calcularlo. Sin embargo, esto parece bastante ineficiente. ¿Alguien sabe de un esquema de actualización incremental que (posiblemente aproximadamente) converge al valor si todos los datos se vieron por adelantado? O, alternativamente, ¿hay otra medida que capture la misma noción pero que pueda calcularse de manera incremental?idf

También hay una pregunta relacionada sobre si sigue siendo una buena medida a lo largo del tiempo. Dado que el idf captura la noción de la frecuencia de las palabras del corpus, es concebible que los documentos más antiguos en el corpus (digamos, por ejemplo, que mi corpus incluya más de 100 años de artículos de revistas), ya que las frecuencias de diferentes palabras cambian con el tiempo. En este caso, en realidad podría ser sensato tirar documentos antiguos cuando lleguen nuevos, en efecto utilizando una ventana deslizante i d f . Posiblemente, uno también podría almacenar todos los vectores i d f anteriores a medida que se calculan los nuevos, y luego, si quisiéramos recuperar documentos de 1920-1930, podríamos usar el i d fidfidfidfidfcalculado a partir de documentos en ese intervalo de fechas. ¿Tiene sentido este enfoque?

Editar: Hay un tema separado pero relacionado sobre el diccionario de la . A medida que el tiempo evolucione, habrá nuevos términos de diccionario que no aparecieron antes, así que | T | tendrá que crecer y, por lo tanto, la longitud del vector i d f . Parece que esto no sería un problema, ya que los ceros se podrían incluir a los viejos i d f vectores.T|T|idfidf


pregunta estúpida: ¿Es un problema almacenar el denominador para cada t? ¿Cómo funciona la razón de | t | to | d | parece (en general)?
steffen

idf(t)tt|T|

1
Entendí la ecuación. Mi pregunta fue: si almacenar el diccionario no es un problema, entonces: en lugar de almacenar | T | idfs one tiendas | T | denominadores (de la ecuación) + número de documentos. La actualización incremental no es un problema y el idf se calcula sobre la marcha. Tengo la sensación de que he pasado por alto algo.
steffen

dd:tdt:td

precisamente. Si esto es factible?
steffen

Respuestas:


6

z

z(t)=|{d:td}|

d

z(t)=z(t)+{1iftd0otherwise

tfidfidf

De manera similar, para eliminar un documento antiguo, disminuimos el numerador de manera similar.

tftfidftfidf

idfzzidftf

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.