CountVectorizer是词频转换函数,其详细用法为
from sklearn.feature_extraction.text import CountVectorizer
cv=CountVectorizer()
texts=['yellow blue red break','yellow blue red','blue blue break','blue red','break']
vocabu=cv.fit_transform(texts)
上面已经生成了词频矩阵
get_feature_names()可看到所有文本的关键字
vocabulary_可看到所有文本的关键字和其位置
toarray()可看到词频矩阵的结果
print(cv.get_feature_names())
###['blue', 'break', 'red', 'yellow']
print(cv.vocabulay_)
###{'yellow': 3, 'blue': 0, 'red': 2, 'break': 1} value值表示索引,可以与上面打印的对比
print(vocabu.toarray())
###[[1 1 1 1]
[1 0 1 1]
[2 1 0 0]
[1 0 1 0]
[0 1 0 0]]
上面的词频矩阵可以作为训练集,再结合上对应的label,就可以直接拿来训练。那么测试集怎么生成?可以用transform
上面建好了词典,下面用transform将新数据转换成词向量
new_data=cv.transform(['yellow yellow','green']).toarray()
print(new_data)
##[[0 0 0 2]
[0 0 0 0]] 可以发现在第一句'yellow yellow'中,yellow出现了两次,所以在词向量中yellow的位置为2.在第二句'green'中,因为green在原词典中没有出现,所以词向量都是0.
这里生成的词向量可以用来测试