Это из-за алгоритма подсчета очков BM25. Эта функция подсчета очков рассчитывается следующим образом:
Важной частью этой dormula является часть IDF. IDF - это сокращение от «обратной частоты документов». IDF рассчитывается для вашей коллекции документов. Таким образом, при изменении коллекции это значение, которое рассчитывается для каждого термина, может измениться. Это означает, что его можно увеличивать или уменьшать. Плата за обучение заключается в том, что если термин встречается в большем количестве документов, он приносит меньшую ценность для содержащего его документа. Например, термин «есть» не имеет значения. Потому что он есть почти во всех документах. Таким образом, мы не можем использовать его как определитель для идентификации соответствующего документа. Другой пример. Термин «java» имеет большую ценность, чем термин «есть». Потому что это есть во многих документах меньше, и мы знаем, что это не во всех документах. Таким образом, его можно использовать как определитель с более высоким баллом. Итак, теперь вы знаете, что если термин встречается в большем количестве документов, он снижает ценность этого документа. Самая простая форма IDF рассчитывается следующим образом:
IDF(term)= Log(N/n)
N - это номер всего документа, а n - это номер всего документа, содержащего хотя бы один термин, который является «термином» (воспринимайте термин как « java "). вы можете видеть, что чем больше термин встречается в документе (n растет), тем меньше баллов он получает.