Итак, позвольте мне попытаться объяснить, что я сделал, и тогда, надеюсь, то, что я прошу, станет более понятным. Я анализирую документы и пытаюсь оценить их на основе слов, которые часто встречаются в некоторых документах, несмотря на то, что они редко встречаются во всем индексе. До сих пор я получил довольно интересные результаты и могу видеть tf и idf для каждого термина в данном документе.
Чтобы оценить документ в целом, я хочу сделать что-то, связанное с tf-idf, но я не хочу использовать каждый термин в документе. Прямо сейчас я жестко запрограммировал некоторые фильтры, чтобы избавиться от слишком распространенных слов (слов, чей idf слишком низок, чтобы иметь для меня значение) и слишком необычных слов (слов с действительно высокими показателями idf; по моему опыту, они обычно опечатки).
Есть ли хороший способ динамически отфильтровывать выбросы в idf?
Вместо:
if (idf > x && idf < y)
include the word
Я хочу сделать что-то вроде:
if (idf is in the 60th percentile of idfs for the index)
include it
Возможно, это лучший способ сделать это, но я хотел бы услышать о любых других решениях, которые вы можете предложить, спасибо!