Векторная модель текста и TF-IDF
Почему для задачи тематической классификации предлоги, союзы и местоимения практически бесполезны?
Пусть в некотором языке есть N=3 слова - А, Б и В. Их ранги - 1, 2 и 3 (нумерация рангов начинается с 1). Найдите вероятности встретить каждое из этих слов в тексте при условии, что относительные частоты слов распределены по Ципфу с s=2.
Представьте ответ в форме трёх чисел P(А)P(Б)P(В), разделённых пробелом, с точкой . в качестве десятичного разделителя, например, 0.1 0.2 0.3.
Ответ округлите до не менее чем двух знаков после запятой.
Отметьте верные утверждения про TF-IDF и закон Ципфа.
Под значимостью в вариантах ответа понимается потенциальная полезность для задач тематической классификации - баланс частотности и специфичности.
Метод мешка слов
В разреженных векторных моделях словам даётся вес.
В самом простом случае вес = кол-во употреблений слова в документе.
Вес слова зависит от длины текста
Предлоги и союзы — самые "значимые" слова

Вес = кол-во употреблений слова в документе, делённое на длину документа
Предлоги и союзы — самые "значимые" слова

Если отсортировать слова по убыванию частоты их употребления, получим следующий график:

Плотность распределения Ципфа:
rank — порядковый номер слова после сортировки по убыванию частоты,
s — коэффициент скорости убывания вероятности,
N — количество слов,
Z(s,N)=∑i=1Ni−s — нормализационная константа
Частотных слов мало и они неинормативны
Редких слов много, они информативны, но на них сложно опираться
Баланс частотности и информативности
Чаще встречается в документе - более характерен для этого документа
Реже встречается в корпусе - более информативен

TF — term frequency — значимость слова в рамках документа:
где WordCount(w,d) — кол-во употреблений слова w в документе d, Length(d) — длина документа d в словах.

IDF — inverse document frequency — специфичность слова:
где DocCount(w,c) — кол-во документов в коллекции c, в которых встречается слово w, а Size(c) — размер коллекции в документах.

Алгоритм взвешивания признаков по TF-IDF
Применить нормализацию текста (стемминг или лемматизацию), выделить базовые элементы
Построить частотный словарь DocCount(w,c)для всех w
Проредить слова по частоте
Для каждого документа d:
Для каждого слова w из документа w найти WordCount(w,d)
Записать результирующий вектор в позицию w значение TF−IDF(w,d,c)=TF(w,d)IDF(w,c)
Записать вектор документа в таблицу признаков документов коллекции
Last updated