считать, что у меня есть
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" точно не встречается в string1 (2 слова hello и вечер более отдаленный, чем привет привет)
Есть ли какой-нибудь известный алгоритм?
ADD1:
algos, как Edit Distance, в этом случае НЕ будет работать. Поскольку string1 является полным текстом (например, 300-400 слов), а строки сравнения - не более 4-5 слов.