Говоря об Обаме, да, вы можете. :)
Может быть, вы могли бы проверить, содержатся ли ваши высокие тренды в более низких тенденциях, прежде чем выводить их. Я бы попробовал что-то вроде этого:
Пример: у вас есть
- Обама
- Air France
- 1012 * Barack *
- A330
- Барак Обама
- ...
Если список, который вы хотите вывести, не слишком длинный (например, вы набираете только 100 лучших результатов), вы выбираете только те, которые не содержатся в других, возможно добавляя бонус 50% к тому, который содержит другие. (Возможно, вам придется принять 150 первых значений, затем выполнить лечение, удалив избыточность, которая может составить что-то вроде 110, затем обрезать 10 последних значений, чтобы вернуть ваши 100 значений.)
«Барак Обама» содержит как «Барак», так и «Обама», так что вы можете дать ему бонус в 100%, и ваш список может составить:
- Air France
- Барак Обама
- A330
- ...
Надеюсь, это не сильно изменит ваш алгоритм, но на самом деле вы можете подключить эту обработку в конце, перед выводом.
РЕДАКТИРОВАТЬ:
Или, если вы действительно не перечисляете лучшие результаты, а вычисляете только один за другим, вы можете разделить свой тренд, чтобы вычислить взвешенную сумму его компонентов (например, тренд "Барака Обамы" - "Барак Обама "Барак" + 0,5 * "Обама" + 0,5 *)