1. 词袋模型(bow bag of words)
one-hot表示方法
- 对语料进行清理,完成分词–大鱼吃小鱼也吃虾米,小鱼吃虾米
- 对每个词进行编号,形成字典–{“大鱼”:1,“吃”:2,“小鱼”:3,“也”:4,“虾米”:5}
- 用0/1代表该词是否出现在文本中,记录成特征向量–[1,1,1,1,1],[0,1,1,0,1],不同考虑词频的问题
- 缺点:不考虑词与词之间的顺序,它假设词与词相互独立,它得到的特征是离散稀疏的
1. 用sklearn库实现
from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer(min_df=2) #两个以上文档出现的才保留
#文档的词与词之间用空格分隔
x = countvec.fit_transform(['我们 都爱 大 数据','数据 科学 技术部 经济'])
type(x)
scipy.sparse.csr.csr_matrix
x.todense() #将稀疏矩阵直接转换为标准格式矩阵
matrix([[1],
[1]], dtype=int64)
#只存了非零的地方
countvec.get_feature_names()
[‘数据’]
countvec = CountVectorizer()
x = countvec.f