TF-IDF Реализация и Демонстрация
Где Посмотреть?
Что делает?
Находит ключевые слова в документе. Можно ввести свой текст, можно указать url на статью.
Как работает?
Кратко:
Считает сколько раз встречается слово. Чем больше, тем слово «ключевее»
Не Кратко:
В основе лежит мера TF-IDF. Она оценивает важность слова в документе. Вес некоторого слова пропорционален количеству употребления этого слова в документе, и обратно пропорционален частоте употребления слова в других документах коллекции.
Для каждого слова x мера TF-IDF считается так:
tf-idf = tf * idf
где,
-
tf - частота слова x. Сколько раз слово встретилось в документе делить на количество слов в документе,
-
idf - обратная частота документа.
idf = 1 + Math.log( (D) / ( 1 + X));
D - всего документов в коллекции.
X - документов в коллекции, в которых встречается данное слово.
Учёт idf уменьшает вес широкоупотребительных слов.
Что сделано?
То есть задача разделилась на 2 части: tf и idf.
idf
Нужно было подготовить коллекцию документов, чтобы использовать её для подсчета idf.
- Исходная коллекция (1000 новостей с медузы)
- Обработанная коллекция ({‘основа слова’: ‘сколько документов, в которых она встретилась’})
(Если видите иероглифы, переключите кодировку в utf-8)
tf
Перед тем как считать слова, надо обработать исходный текст. В случае ссылки на статью:
- Достаем статью,
- С помощью node-read достаем вероятный контент,
- Чистить от html тегов,
- Используя natural 5. Токенезируем 6. Обрезаем окончания 7. Убираем стоп слова
Готово. Считаем tf.