万能的0和1 之 字典特征抽取

机器是无法识别自然语言的,机器只能识别0和1,经典的案例就是字典特征抽取

  • 0表示不存在
  • 1表示存在

以国漫人物信息,做示例

原始数据

万能的0和1 之 字典特征抽取_第1张图片
原始数据

字典特征抽取后, 终端打印结果

万能的0和1 之 字典特征抽取_第2张图片
特征抽取后的数据

关于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()

你可能感兴趣的:(万能的0和1 之 字典特征抽取)