Как извлечь TF с помощью CountVectorizer?
Как я могу получить частоту термина (TF) каждого термина в словаре, созданном sklearn.feature_extraction.text.CountVectorizer
и положить их в список или диктат?
Кажется, что все значения, соответствующие ключам в словаре, являются целыми числами, меньшими, чем max_features, которые я установил вручную при инициализации CountVectorizer, а не TF - это должно быть число с плавающей запятой. Кто-нибудь может мне помочь?
CV=CountVectorizer(ngram_range(ngram_min_file_opcode,ngram_max_file_opcode),
decode_error="ignore", max_features=max_features_file_re,
token_pattern=r'\b\w+\b', min_df=1, max_df=1.0)
x = CV.fit_transform(x).toarray()
1 ответ
Если вы ожидаете значения с плавающей запятой, возможно, вы ищете TFIDF. В этом случае используйте либо http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html, либо http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html, а затем http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfTransformer.html,
Если вы на самом деле хотите только TF, вы все равно можете использовать TfidfVectorizer или CountVectorizer, а затем TfidfTransformer, просто убедитесь, что вы установили use_idf
параметр TfidfVectorizer
/Transformer
в False
и norm
(нормализация) параметра к 'l1'
или же 'l2'
, Это нормализует количество TF.
Из документации SKLearn:
>>> from sklearn.feature_extraction.text import CountVectorizer
>>> corpus = [
... 'This is the first document.',
... 'This document is the second document.',
... 'And this is the third one.',
... 'Is this the first document?',
... ]
>>> vectorizer = CountVectorizer()
>>> X = vectorizer.fit_transform(corpus)
>>> print(vectorizer.get_feature_names())
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
>>> print(X.toarray())
[[0 1 1 1 0 0 1 0 1]
[0 2 0 1 0 1 1 0 1]
[1 0 0 1 1 0 1 1 1]
[0 1 1 1 0 0 1 0 1]]
Ряд [0 1 1 1 0 0 1 0 1]
соответствует первому документу. Первый элемент соответствует сколько раз and
произошло в документе, второй document
, третий first
, так далее.