Llegué tarde a esta fiesta, pero estaba jugando con los conceptos de tc-idf (quiero enfatizar la palabra 'concepto' porque no seguí ningún libro para los cálculos reales; por lo tanto, pueden estar algo fuera de lugar, y definitivamente se lleva a cabo más fácilmente con paquetes como {tm: Text Mining Package}, como se mencionó), y creo que lo que obtuve puede estar relacionado con esta pregunta o, en cualquier caso, este puede ser un buen lugar para publicarlo.
SET-UP: Tengo un corpus de 5largos párrafos tomados de los medios de comunicación impresos, text 1a través 5tales como The New York Times . Supuestamente, es un "cuerpo" muy pequeño, una pequeña biblioteca, por así decirlo, pero las entradas en esta biblioteca "digital" no son aleatorias: las entradas primera y quinta se refieren al fútbol (o 'fútbol' para 'club social' (?) por aquí), y más específicamente sobre el mejor equipo de hoy. Entonces, por ejemplo, text 1comienza como ...
"En los últimos nueve años, Messi ha llevado al FC Barcelona a títulos nacionales e internacionales y ha batido récords individuales de maneras que parecen de otro mundo ..."
¡Muy agradable! Por otro lado, definitivamente querrás omitir el contenido de las tres entradas intermedias. Aquí hay un ejemplo ( text 2):
"En el lapso de unas pocas horas en todo Texas, el Sr. Rubio sugirió que el Sr. Trump había orinado en sus pantalones y usado inmigrantes ilegales para aprovechar sus incesantes mensajes de Twitter ..."
Entonces, ¿qué hacer para evitar a toda costa "surfear" del text 1al text 2, sin dejar de regocijarnos en la literatura sobre el todopoderoso FC Barcelona en text 5?
TC-IDF: aislé las palabras en todos texten vectores largos. Luego contó la frecuencia de cada palabra, creando cinco vectores (uno para cada uno text) en los que solo textse contaron las palabras encontradas en las correspondientes ; todas las demás palabras, pertenecientes a otras texts, se valoraron en cero. En el primer fragmento de text 1, por ejemplo, su vector tendría un recuento de 1 para la palabra "Messi", mientras que "Trump" tendría 0. Esta era la parte tc .
La parte idf también se calculó por separado para cada uno texty dio como resultado 5 "vectores" (creo que los traté como marcos de datos), que contienen las transformaciones logarítmicas de los recuentos de documentos (lamentablemente, solo de cero a cinco, dada nuestra pequeña biblioteca ) que contiene una palabra dada como en:
Iniciar sesión( No. documentos1+No. documentos que contienen una palabra)text0 01text
tc × idftext
COMPARACIONES: Ahora era solo cuestión de realizar productos de punto entre estos "vectores de importancia de palabras".
Como era de esperar, el producto punto de text 1with text 5era 13.42645, mientras que text 1v. text2Era solo 2.511799.
El código R torpe (nada que imitar) está aquí .
Nuevamente, esta es una simulación muy rudimentaria, pero creo que es muy gráfica.