Puis-je utiliser CountVectorizer dans scikit-apprendre à compter de la fréquence des documents qui n'ont pas été utilisés pour extraire les jetons?

J'ai travaillé avec le CountVectorizer classe dans scikit-learn.

Je comprends que si l'on utilise de la manière montrée ci-dessous, le résultat final sera composé d'un tableau contenant des comtes de fonctionnalités, ou des jetons.

Ces jetons sont extraites à partir d'un ensemble de mots-clés, c'est à dire

tags = [
  "python, tools",
  "linux, tools, ubuntu",
  "distributed systems, linux, networking, tools",
]

La prochaine étape est:

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=tokenize)
data = vec.fit_transform(tags).toarray()
print data

Où l'on se

[[0 0 0 1 1 0]
 [0 1 0 0 1 1]
 [1 1 1 0 1 0]]

C'est bien, mais ma situation est un peu différente.

Je veux extraire les caractéristiques de la même façon que ci-dessus, mais je ne veux pas les lignes de data être les mêmes documents que les caractéristiques ont été extraites à partir d'.

En d'autres termes, comment puis-je obtenir compte d'un autre ensemble de documents, disons,

list_of_new_documents = [
  ["python, chicken"],
  ["linux, cow, ubuntu"],
  ["machine learning, bird, fish, pig"]
]

Et obtenez:

[[0 0 0 1 0 0]
 [0 1 0 0 0 1]
 [0 0 0 0 0 0]]

J'ai lu la documentation de la CountVectorizer classe, et est venu à travers la vocabulary argument, qui est une cartographie des termes de fonctionnalité indices. Je n'arrive pas à obtenir cet argument pour m'aider, cependant.

Tout conseil est le bienvenue.

PS: tout le crédit en raison de Matthias Friedrich Blog pour l'exemple j'ai utilisé ci-dessus.

InformationsquelleAutor Matt O'Brien | 2014-04-07