自定义词汇上的 Sklearn Countvectorizer

2024-01-28

我有一组网页,我正在获取网页计数矩阵。我尝试使用标准计数向量化器 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(使用前将#替换为@)

自定义词汇上的 Sklearn Countvectorizer 的相关文章

随机推荐