Term Frequency (TF) es una medida estadística que indica cuántas veces un término específico (palabra o n-grama) aparece dentro de un documento dado. Se utiliza comúnmente en el campo de la recuperación de información y el procesamiento de lenguaje natural (NLP) para evaluar la importancia de un término dentro de un documento. Existen varias formas de calcular TF: la más simple es el conteo bruto (raw count), pero también se usan variantes como la frecuencia logarítmica (logarithmic frequency) o la frecuencia aumentada (augmented frequency) para normalizar el valor y mitigar el sesgo hacia documentos más largos o términos muy frecuentes.
TF es un componente esencial del algoritmo TF-IDF (Term Frequency-Inverse Document Frequency), ampliamente utilizado en motores de búsqueda, sistemas de recomendación y clasificación de texto. Por ejemplo, en Elasticsearch y Apache Lucene, TF se calcula como parte del proceso de scoring para determinar la relevancia de los documentos frente a una consulta. En sistemas de recomendación basados en contenido, como los utilizados por Netflix o Spotify, TF puede ayudar a identificar los términos clave que describen películas o canciones, permitiendo emparejarlas con las preferencias del usuario. Herramientas de análisis de texto como scikit-learn en Python ofrecen implementaciones para calcular TF y TF-IDF.
Para un arquitecto de sistemas, comprender TF es crucial al diseñar soluciones que impliquen búsqueda, análisis de texto o sistemas de recomendación. La elección de cómo calcular TF (conteo bruto, logarítmico, etc.) impacta directamente la relevancia de los resultados de búsqueda y la calidad de las recomendaciones. Un TF simple puede ser suficiente para conjuntos de datos pequeños, pero para volúmenes masivos de texto, las normalizaciones son vitales para evitar que documentos largos o palabras muy comunes dominen los resultados. Además, la eficiencia computacional de calcular TF para millones de documentos y términos es una consideración de diseño importante, requiriendo estructuras de datos optimizadas como índices invertidos y estrategias de paralelización para garantizar un rendimiento aceptable en sistemas distribuidos.