Как я могу получить самые высокие частоты из TD-idf векторов, для каждого файла в scikit-learn?

Я пытаюсь получить самые высокие частоты из векторов в scikit-learn. Из примера Это можно сделать с помощью этого для каждой категории, но я хочу его для каждого файла внутри категорий.

https://github.com/scikit-learn/scikit-learn/blob/master/examples/document_classification_20newsgroups.py

if opts.print_top10: print "top 10 keywords per class:" for i, category in enumerate(categories): top10 = np.argsort(clf.coef_[i])[-10:] print trim("%s: %s" % ( category, " ".join(feature_names[top10]))) 

Я хочу сделать это для каждого файла из набора тестовых данных вместо каждой категории. Где я должен искать?

благодаря

EDIT: s / discitive / high frequency / g (Извините за недоразумения)

2 Solutions collect form web for “Как я могу получить самые высокие частоты из TD-idf векторов, для каждого файла в scikit-learn?”

Вы можете использовать результат преобразования вместе с get_feature_names чтобы получить get_feature_names термина для данного документа.

 X = vectorizer.transform(docs) terms = np.array(vectorizer.get_feature_names()) terms_for_first_doc = zip(terms, X.toarray()[0]) 

Кажется, никто не знает. Я отвечаю здесь, когда другие люди сталкиваются с одной и той же проблемой, я нашел, где искать, пока еще не реализовал ее.

он лежит глубоко внутри CountVectorizer от sklearn.feature_extraction.text:

 def transform(self, raw_documents): """Extract token counts out of raw text documents using the vocabulary fitted with fit or the one provided in the constructor. Parameters ---------- raw_documents: iterable an iterable which yields either str, unicode or file objects Returns ------- vectors: sparse matrix, [n_samples, n_features] """ if not hasattr(self, 'vocabulary_') or len(self.vocabulary_) == 0: raise ValueError("Vocabulary wasn't fitted or is empty!") # raw_documents can be an iterable so we don't know its size in # advance # XXX @larsmans tried to parallelize the following loop with joblib. # The result was some 20% slower than the serial version. analyze = self.build_analyzer() term_counts_per_doc = [Counter(analyze(doc)) for doc in raw_documents] # <<-- added here self.test_term_counts_per_doc=deepcopy(term_counts_per_doc) return self._term_count_dicts_to_matrix(term_counts_per_doc) 

Я добавил self.test_term_counts_per_doc = deepcopy (term_counts_per_doc), и он позволяет ему вызывать из vectorizer вне этого:

 load_files = recursive_load_files trainer_path = os.path.realpath(trainer_path) tester_path = os.path.realpath(tester_path) data_train = load_files(trainer_path, load_content = True, shuffle = False) data_test = load_files(tester_path, load_content = True, shuffle = False) print 'data loaded' categories = None # for case categories == None print "%d documents (training set)" % len(data_train.data) print "%d documents (testing set)" % len(data_test.data) #print "%d categories" % len(categories) print # split a training set and a test set print "Extracting features from the training dataset using a sparse vectorizer" t0 = time() vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.7, stop_words='english',charset_error="ignore") X_train = vectorizer.fit_transform(data_train.data) print "done in %fs" % (time() - t0) print "n_samples: %d, n_features: %d" % X_train.shape print print "Extracting features from the test dataset using the same vectorizer" t0 = time() X_test = vectorizer.transform(data_test.data) print "Test printing terms per document" for counter in vectorizer.test_term_counts_per_doc: print counter 

вот моя вилка, я также отправил запросы на тягу:

https://github.com/v3ss0n/scikit-learn

Пожалуйста, предложите мне, если есть лучший способ сделать это.

  • Наложение векторов на питон для классификации
  • Чернильный рисунок из урны
  • Регрессия с Lasso, все коэффициенты равны 0
  • Как рассчитывается оценка scikit-learn cross_val_predict?
  • Почему CalibratedClassifierCV не соответствует прямому класриферу?
  • pandas dataframe столбцы масштабирования с помощью sklearn
  • Результат результата sklearn standardcaler отличается от результата вручную
  • Scikit-узнайте распознавание знака SVM
  • Python - лучший язык программирования в мире.