Как включить частотный коэффициент в линейный SVC?

Я использую линейный SVC (Scikit Learn) для классификации по категориям новостей, таких как спорт, здоровье, мир, технологии, образ жизни. Теперь для данного фрагмента текста предположим, что у него есть: 1) 5 вхождений окон слов и 3 вхождения машинного слова, которое не классифицируется как технология, но если я использую тот же текст и увеличиваю вхождения окон до 12 и машинного до 10, оно классифицируется как технология.

Так есть ли способ повысить важность любого соответствующего слова класса в линейной SVC?

1 ответ

Вы в основном ищете TF-IDF . Здесь TF означает термин частоты, т.е. (Count of a term in a document)/(Total Number of terms in a document), Это поможет вам получить наиболее частые термины в документе. Однако может быть так, что некоторые термины, встречающиеся реже, могут быть более важными для классификации (или, скажем, иметь больший вес для классификации). В этом случае вы включаете Обратную частоту документов (IDF). Рассчитывается как log(Total documents/(Number of documents containing a certain term, say 'x')

Затем, наконец, вы умножаете значение Tf * IDF, чтобы получить TF-IDF термина.

Вот краткий пример по этой ссылке.

Вот пример использования scikit-learn

Рекомендации:

Другие вопросы по тегам