Опитвам се да напиша алгоритъм за безплатно търсене на текст за намиране на конкретни публикации на стена (подобен вид стена, използван от Facebook). Предполага се, че потребителят може да напише няколко думи в полето за търсене и да получи попадения на публикации, които съдържат думите; с най-доброто съвпадение отгоре и след това други публикации в низходящ ред според резултата на съвпадението.
Използвам разстоянието за редактиране (Левенщайн) „e(x, y) = e“, за да изчисля резултата за всяка публикация в сравнение с думата за заявка „x“ и думата за публикация „y“ според: score(x, y ) = 2^(2 - e)(1 - min(e, |x|) / |x|), където "|x|" е броят на буквите в думата за заявка.
Всяка дума в публикация допринася за общия резултат за тази конкретна публикация. Този подход изглежда работи добре, когато публикациите са с приблизително еднакъв размер, но понякога определени големи публикации успяват да натрупат резултат единствено поради наличието на много думи в тях, като на практика не са подходящи за заявката.
Подхождам ли към този проблем по грешен начин или има някакъв начин за нормализиране на резултата, за който не съм се сетил?