считайте, что у меня есть
string1 = "hello hi goodmorning evening [...]"
и у меня есть несколько второстепенных ключевых слов
compare1 = "hello evening"
compare2 = "hello hi"
Мне нужна функция, которая возвращает привязку между текстом и ключевыми словами. Пример:
function(string1,compare1); // returns: 4
function(string1,compare2); // returns: 5 (more relevant)
Обратите внимание, что 5 и 4. Это просто пример.
Вы могли бы сказать - напишите функцию, которая подсчитывает вхождения - но для этого примера это не сработает, потому что оба имеют 2 вхождения, но compare1 менее актуален, потому что " hello Evening "точно не встречается в строке 1 (два слова hello и Evening более отдалены, чем hello hi)
существует ли какой-нибудь известный алгоритм для этого?
ADD1:
алгоритмы вроде Edit Distance в этом случае НЕ будут работать. Поскольку строка1 - это полный текст (например, 300-400 слов), а сравниваемые строки - максимум 4-5 слов.