Выход CountVectorizer, который служит входом TfidfTransformer по сравнению с TfidfTransformer () - PullRequest
0 голосов
/ 18 февраля 2019

Недавно я начал читать больше о НЛП и следовать учебным пособиям на Python, чтобы узнать больше об этом предмете.Следуя одному из руководств, я заметил, что они использовали разреженную матрицу подсчета слов в каждом твите (созданную с помощью CountVectorizer) в качестве входных данных для TfidfTransformer, который обрабатывает данные и передает их в классификатор для обучения и прогнозирования.

pipeline = Pipeline([
     ('vect', CountVectorizer()),
     ('tfidf', TfidfTransformer()),
     ('clf', LogisticRegression())
])

Поскольку никакого объяснения не было предоставлено, я не могу понять мыслительный процесс, стоящий за этим ... Разве это не обычный пакет слов?Разве это не может быть сделано с помощью одной из функций, например, только Tfidf?

Любые разъяснения будут с благодарностью.

1 Ответ

0 голосов
/ 18 февраля 2019

Мешок слов - это то, что делает CountVectorizer - строит вектор с количеством слов для каждого предложения.

TfIdf берет BoW и преобразует эту матрицу в tf-idf - частота в предложении + инвертированная частота документа.

Эта часть конвейера может быть заменена на TfidfVectorizer - это фактически BoW + TfIdf.Позже редко используется без BoW, поэтому комбинированная версия имеет смысл, если в конце дня вам нужен классификатор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...