Как найти похожие тексты и отсортировать

Search enginesAlgorithmsBig DataArtificial IntelligenceDIY
Есть простой метод отсортировать набор текстов по похожести на заданный текст: по Эвклидову расстоянию между частотами слов в анализируемых текстах. В принципе, на этом алгоритм должен быть понятен, простую реализацию можно найти здесь.

Как ни удивительно, простой метод даёт хорошие результаты. Например, если ищем следующую книгу чтоб почитать, можно ввести текст прочтённой книги или нескольких прочтённых книг как образец для поиска, и тогда для этого репозитория из 10 книг получаем следующие результаты для книги «FAIRY TALES By 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\ALICEТS 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

Как видно из результатов, наиболее похожими обнаружены сказкоподобные книги, а наименее похожей — книга ужасов.

В коммерческих целях такую программу возможно использовать для того чтобы для заданной веб-страницы найти наиболее подходящую рекламу, сравнивая текст читаемой пользователем страницы с текстами страниц, куда ведут имеющиеся рекламные объявления.

Другое применение — в нахождении резюме из базы по примеру резюме кандидата, который подходит на данную позицию, но не желает присоединиться или уходит из компании. Поиск замены работнику — не такой уж и редкий бизнес-случай. Также можно отсортировать базу резюме по похожести на описание вакансии.

P.S. Кстати, Хабр в списке похожих статей выдаёт что-то не сильно похожее. Может Хабру тоже применить данный метод?
Tags:c++частотный анализмешок словпохожесть текстовЭвклидово расстояние
Hubs: Search engines Algorithms Big Data Artificial Intelligence DIY
-5
3.1k 21
Comments 10

Popular right now

Search Engineer
from 200,000 to 300,000 ₽HighTeamМосква
Data Architect
from 160,000 ₽Droice LabsRemote job
Senior C++ Engineer
to 230,000 ₽ItivitiСанкт-Петербург
Senior Software Engineer C++
from 7,500 to 11,500 $MotionalСингапур
Senior C++/Qt разработчик
from 120,000 to 200,000 ₽ROGIIНовосибирск