2017-02-15 16 views
0

С помощью TfidfVectorizer из пакета Pythons scikit-learn мы можем легко преобразовать список документов в набор данных с функциями <term>-frequency-inverse-document-frequency, где term s - это слова, которые появляются в документах.Python Term Frequency vectorizer

Есть ли где-нибудь в Python TfVectorizer-аналог TfidfVectorizer, который создавал бы функции <term>-frequency, то есть значения функций не были бы взвешены по частоте обратного документа?

Я предпочитаю решения Python по сравнению с написанными на других языках программирования, но если вы знаете любую простую в использовании реализацию на Java, вы можете также упомянуть ее.

ответ

1

Да. Это в scikit-learn тоже и известен как CountVectorizer.

import numpy as np 
from sklearn.feature_extraction.text import CountVectorizer 

data = ['this is sample 1', 'how about sample two', 'make three samples'] 
cnt_vec = CountVectorizer() 

transformed_data = vectorizer.fit_transform(data) 

print (zip(vectorizer.get_feature_names(), np.ravel(transformed_data.sum(axis=0)))) 

Выход:

[(u'about', 1), 
(u'how', 1), 
(u'is', 1), 
(u'make', 1), 
(u'sample', 2), 
(u'samples', 1), 
(u'this', 1), 
(u'three', 1), 
(u'two', 1)]