Sklearn Countvectorizer на пользовательский словарь - PullRequest
1 голос
/ 08 апреля 2019

У меня есть набор веб-страниц, и я находился в процессе получения матрицы подсчета веб-страниц. Я пытался использовать стандартный Countvectorizer от sklearn, но не получил требуемых результатов. Пример кода приведен ниже:

from sklearn.feature_extraction.text import CountVectorizer
corpus = ['www.google.com www.google.com', 'www.google.com www.facebook.com', 'www.google.com', 'www.facebook.com']
vocab = {'www.google.com':0, 'www.facebook.com':1}
vectorizer = CountVectorizer(vocabulary=vocab)
X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
print(X.toarray()) 

Даёт

['www.google.com', 'www.facebook.com']
[[0 0]
 [0 0]
 [0 0]
 [0 0]]

Но требуемый результат

['www.google.com', 'www.facebook.com']
[[2 0]
 [1 1]
 [1 0]
 [0 1]]

Как мы можем применить countvectorizer к такой пользовательской лексике?

1 Ответ

0 голосов
/ 08 апреля 2019

В соответствии с входными данными связанного вопроса проблема возникла из-за токенизатора. Был написан токенайзер клиента, и теперь он работает.

def mytokenizer(text):
    return text.split()

from sklearn.feature_extraction.text import CountVectorizer
corpus = ['www.google.com www.google.com', 'www.google.com www.facebook.com', 'www.google.com', 'www.facebook.com']
vocab = {'www.google.com':0, 'www.facebook.com':1}
vectorizer = CountVectorizer(vocabulary=vocab, tokenizer = mytokenizer)
X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
print(X.toarray()) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...