Как извлечь TF с помощью CountVectorizer? - PullRequest
0 голосов
/ 06 ноября 2018

Как я могу получить частоту (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 Ответ

0 голосов
/ 06 ноября 2018

Если вы ожидаете значения с плавающей запятой, возможно, вы ищете TFIDF . В этом случае используйте либо sklearn.feature_extraction.text.TfidfVectorizer , либо sklearn.feature_extraction.text.CountVectorizer , а затем sklearn.feature_extraction.text.TfidfTransformer

Если вы действительно хотите использовать 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 и т. Д.

...