机器学习文本数据特征提取相对数字要复杂很多,本质上就是做单词切分,有的切分超级简单,有的切分超级难。下面演示一个简单的例子,不同的单词当做一个新的特征:
黑客的名字有:ailx10、ailx11、ailx12。年龄分别是27,26,25。由于年龄是数字型,直接作为特征。而名字是文本数据,每一个名字都作为一个特征。
![add62738f5aec1f65c77a7be79331473.png](https://i-blog.csdnimg.cn/blog_migrate/01de521e558eb33e569e4272fd9ed1e7.jpeg)
文本特征提取
>>> hacker = [... {'name':'aixl10','age':27},... {'name':'ailx11','age':26},... {'name':'ailx12','age':25},]>>> vec = DictVectorizer()>>> vec.fit_transform(hacker).toarray()array([[27., 0., 0., 1.], [26., 1., 0., 0.], [25., 0., 1., 0.]])>>> vec.get_feature_names()['age', 'name=ailx11', 'name=ailx12', 'name=aixl10']
文本特征提取有两个重要模型:
词集模型:
单词构成的集合,集合中每个元素都只有一个。
词袋模式:
如果一个单词在文档中出现不止一次,并统计其出现的次数。
小测试: