Уменьшить размер слов-векторов из TFIDFVectorizer / CountVectorizer - PullRequest
1 голос
/ 17 апреля 2020

Я хочу использовать TFIDFVectorizer (или CountVectorizer , за которым следует TFIDFTransformer ), чтобы получить векторное представление моих терминов. Это означает, что я хочу вектор для термина, где документы являются функциями. Это просто транспонирование матрицы TF-IDF, созданной TFIDFVectorizer.

>>> vectorizer = TfidfVectorizer()
>>> model = vectorizer.fit_transform(corpus)
>>> model.transpose()

Тем не менее, у меня есть документы на 800 тыс., Что означает, что мои термины-векторы очень редки и очень велики (измерения на 800 тыс.). Флаг max_features в CountVectorizer сделает именно то, что я ищу. Я могу указать измерение, и CountVectorizer пытается поместить всю информацию в это измерение. К сожалению, эта опция предназначена для векторов документа, а не для терминов в словаре. Следовательно, это уменьшает размер моего словаря, потому что термины - это особенности.

Есть ли способ сделать обратное? Например, выполнить транспонирование объекта TFIDFVectorizer, прежде чем он начнет все вырезать и нормализовать? И если такой подход существует, как я могу это сделать? Примерно так:

>>> countVectorizer = CountVectorizer(input='filename', max_features=300, transpose=True)

Некоторое время назад я искал такой подход, но каждое руководство, пример кода, что бы ни говорили о векторах TF-IDF документа, а не о терминах векторов. Заранее большое спасибо!

...