Hay un método simple para ordenar un conjunto de textos por similitud con un texto dado: por la distancia euclidiana entre las frecuencias de las palabras en los textos analizados. En principio, el algoritmo debe ser claro al respecto,
aquí se puede
encontrar una implementación simple.
Sorprendentemente, un método simple da buenos resultados. Por ejemplo, si estamos buscando el próximo libro para leer, puede ingresar el texto de un libro leído o varios libros leídos como patrón de búsqueda, y luego para este repositorio de 10 libros obtenemos los siguientes resultados para el libro “CUENTOS DE HADAS de The Brothers Grimm”:
0.0320757 Repo\THE ADVENTURES OF TOM SAWYER.txt 0.0363329 Repo\A TALE OF TWO CITIES - A STORY OF THE FRENCH REVOLUTION.txt 0.0388528 Repo\ALICES ADVENTURES IN WONDERLAND.txt 0.0440605 Repo\MOBY-DICK or, THE WHALE.txt 0.046679 Repo\THE ADVENTURES OF SHERLOCK HOLMES.txt 0.0472574 Repo\The Iliad of Homer.txt 0.0511793 Repo\The Romance of Lust.txt 0.053746 Repo\PRIDE AND PREJUDICE.txt 0.0543531 Repo\BEOWULF - AN ANGLO-SAXON EPIC POEM.txt 0.0557194 Repo\Frankenstein; or, the Modern Prometheus.txt
Como se puede ver en los resultados, se descubrió que los libros de cuentos de hadas eran los más similares, y el libro de terror era el menos similar.
Para fines comerciales, es posible utilizar dicho programa para encontrar el anuncio más adecuado para una página web determinada comparando el texto de la página leída por el usuario con el texto de las páginas a las que conducen los anuncios existentes.
Otra aplicación es encontrar un currículum vitae de la base de datos, siguiendo el ejemplo del currículum de un candidato que es adecuado para este puesto, pero no quiere unirse o abandonar la empresa. Encontrar un reemplazo para un empleado no es un caso comercial tan raro. También puede ordenar la base de datos del currículum por similitud con la descripción del trabajo.
PD: Por cierto, Habr en la lista de artículos similares produce algo no muy similar. ¿Habru también puede aplicar este método?