Я начал работу над компонентом поиска резюме (документа) на основе движка lucene.net. Он отлично работает,и он извлекает документ и оценивает его на основе
идеи, лежащей в основе VSM. когда термин запроса появляется в документ относительно количества раз этот термин встречается во всех документы в коллекции, тем более имеет отношение к этому документу
Практическая функция оценки Lucene выводится из нижеследующего.
score(q,d)=coord(q,d)·queryNorm(q)· ∑( tf(t in d) ·idf(t)2 · t.getBoost() · norm(t,d) )
t in q
в этом
Это действительно очень много в большинстве случаев, но из-за вычисления fieldnorm результат не точен
fieldnorm или «норма длины поля» представляет собой длина этого поля в этом документе (поэтому более короткие поля автоматически увеличиваются).
Из-за этого мы не сделали ' Скажем, для примера у меня есть 10000 документов, в которых 3000 документов имеют ключевое слово java и oracle. И количество раз, когда оно появляется, различается для каждого документа.
Из-за характера бизнеса, который нам нужен, чтобы получить документы, на первом месте должно быть больше поискового ключевого слова, нас действительно не волнует длина документа.
Из-за этого Парень с большим резюме с множеством ключевых слов перемещен ниже в результате, и появилось несколько небольших резюме.
Чтобы избежать этого, мне нужно отключить нормализацию длины. Может ли кто-нибудь помочь мне с этим ??
Я приложил изображение результата Люка для вашей справки.
На этом изображении документ с java 50 раз и oracle 6 раз перемещен на 11-ю позицию.
Но этот документ с java 24 раза и oracle 5 раз был лучшим бомбардиром из-за fieldnorm.
Надеюсь, я передал информацию ясно ... Если нет, то спросите меня, я дам больше информации