Annif es una herramienta que combina herramientas de procesamiento de lenguaje natural y vocabularios controlados para la clasificación e indización automática de textos. Permite utilizar diversos algoritmos o esquemas alternativos para la clasificación de textos. Desde algoritmos especializados en la extracción de entidades (por ejemplo reconocimiento de nombre propios o instituciones), análisis de frecuencias (para extracción de palabras clave) o clasificación con vocabularios controlados. Dispone además de una herramientas de OCR para celulares que permite tomar fotos de textos para luego indizarlos en 2 sencillos pasos. La herramienta esta desarrollada mayormente en Python y es mantenida por la biblioteca nacional de Finlandia