机器是无法识别自然语言的,机器只能识别0和1,经典的案例就是字典特征抽取
- 0表示不存在
- 1表示存在
以国漫人物信息,做示例
原始数据
字典特征抽取后, 终端打印结果
关于one-hot编码
机器会将所有样本中, 出现过的特征统统列举出来,然后每个样本挨个比对所有特征,如果存在对应的特征则取1, 不存在则取0
# 字典特征抽取
from sklearn.feature_extraction import DictVectorizer
# 字典特征抽取
def dic_f_extra():
# 人物信息
shao_jin = [{"name":"袁小棠", "age": 19, "gender":"男"},
{"name":"小亭子", "age": 19, "gender":"女"},
{"name":"白衣段云", "age": 22, "gender": "男"},
{"name":"阿九", "age": 18, "gender":"女"}]
# 实例化字典特征抽取对象(为了便于观察,不使用sparse格式显示)
dict_v = DictVectorizer(sparse=False)
# 填充数值并转换
data = dict_v.fit_transform(shao_jin)
# 打印抽取后的,字典特征名称信息
print(dict_v.get_feature_names())
print("\n","\n","\n")
# 打印字典特征数据信息
print(data)
if __name__ == '__main__':
dic_f_extra()