Я работаю с классом CountVectorizer
в scikit-learn.
Я понимаю, что если использовать нижеприведенный способ, конечный вывод будет состоять из массива, содержащего количество признаков или токенов.
Эти токены извлекаются из набора ключевых слов, т.е.
tags = [
"python, tools",
"linux, tools, ubuntu",
"distributed systems, linux, networking, tools",
]
Следующий шаг:
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=tokenize)
data = vec.fit_transform(tags).toarray()
print data
Где мы получаем
[[0 0 0 1 1 0]
[0 1 0 0 1 1]
[1 1 1 0 1 0]]
Это хорошо, но моя ситуация немного отличается.
Я хочу извлечь функции так же, как описано выше, но я не хочу, чтобы строки в data
были теми же документами, из которых были извлечены функции.
Другими словами, как я могу получить подсчеты другого набора документов, скажем,
list_of_new_documents = [
["python, chicken"],
["linux, cow, ubuntu"],
["machine learning, bird, fish, pig"]
]
И получим:
[[0 0 0 1 0 0]
[0 1 0 0 0 1]
[0 0 0 0 0 0]]
Я прочитал документацию для класса CountVectorizer
и наткнулся на аргумент vocabulary
, который представляет собой отображение терминов для индексов функций. Однако я не могу заставить этот аргумент помочь мне.
Любые советы приветствуются. PS: все кредиты, связанные с Блог Маттиаса Фридриха для примера, который я использовал выше.