我有一组网页,我正在获取网页计数矩阵。我尝试使用标准计数向量化器 https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html来自 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?
根据来自的输入相关问题 https://stackoverflow.com/questions/24007812/can-i-control-the-way-the-countvectorizer-vectorizes-the-corpus-in-scikit-learn?rq=1,由于分词器而出现此问题。
编写了一个客户标记器,现在它可以工作了。
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())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)