Рассчитайте оценку только на основе документов более частое употребление термина в lucene

Я начал работу над компонентом поиска резюме (документа) на основе движка 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

в этом

  • tf (t in d) коррелирует с частотой термина, определяемой как количество раз, когда термин t появляется в текущем забил документ d. Документы, в которых данный термин встречается чаще, получают более высокий балл
  • idf (t) означает обратную частоту документов. Это значение коррелирует с величиной, обратной docFreq (количество документов, в которых встречается термин t). Это означает, что более редкие термины дают более высокий вклад в общую оценку.

Это действительно очень много в большинстве случаев, но из-за вычисления fieldnorm результат не точен

fieldnorm или «норма длины поля» представляет собой длина этого поля в этом документе (поэтому более короткие поля автоматически увеличиваются).

Из-за этого мы не сделали ' Скажем, для примера у меня есть 10000 документов, в которых 3000 документов имеют ключевое слово java и oracle. И количество раз, когда оно появляется, различается для каждого документа.

  • предположим, что документ A получил 10 оракулов java 20 среди 1000 слов, а документ B получил 2 оракула java 2 среди 50 слов
  • , если я ищу запрос «java and oracle ", lucene возвращает документ B с высоким баллом из-за нормализации длины.

Из-за характера бизнеса, который нам нужен, чтобы получить документы, на первом месте должно быть больше поискового ключевого слова, нас действительно не волнует длина документа.

Из-за этого Парень с большим резюме с множеством ключевых слов перемещен ниже в результате, и появилось несколько небольших резюме.

Чтобы избежать этого, мне нужно отключить нормализацию длины. Может ли кто-нибудь помочь мне с этим ??

Я приложил изображение результата Люка для вашей справки.

На этом изображении документ с java 50 раз и oracle 6 раз перемещен на 11-ю позицию.

alt text

Но этот документ с java 24 раза и oracle 5 раз был лучшим бомбардиром из-за fieldnorm.

alt text

Надеюсь, я передал информацию ясно ... Если нет, то спросите меня, я дам больше информации

5
задан RameshVel 21 September 2010 в 09:41
поделиться