快速贴标签和找标签对应的数据
手动反爬虫:原博地址
知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息
如若转载,请标明出处,谢谢!
前言需求
在进行机器学习的过程中,模型创建之前,需要进行标签的处理,比如将文本数据转化为数值,而在最后的预测时候,又想检验一下预测的标签结果是否对应的文本数据一致,因此就有了快速贴标签和找标签对应数据的要求。
一、贴标签
这里就使用10个文本数据进行举例
ls = ["汽车", "财经", "科技", "健康", "体育", "教育","文化","军事","娱乐","时尚"]
贴标签的过程就相当于是让列表中的数据一一对应上数值,那么使用python自带的enumerate函数就可以实现,但是输出的结果却是反的,也就是需要将键值对的顺序调换一下,因此贴标签只要解决字典中键值对顺序的替换就可以了
print({v:k for k,v in dict(enumerate(ls)).items()})
输出的结果为:(贴标签的要求就完成了)
{'汽车': 0, '财经': 1, '科技': 2, '健康': 3, '体育': 4, '教育': 5, '文化': 6, '军事': 7, '娱乐': 8, '时尚': 9}
二、找标签对应的数据
在最后的预测部分,想知道输出的结果对应原来的文本数据,只需要遍历字典进行满足条件的结果输出即可
label_mapping = {v:k for k,v in dict(enumerate(ls)).items()}
print({'{}:{}'.format(key,value) for key,value in filter(lambda x:x[1] == 7, label_mapping.items())})
输出结果为:(这里的代码只需要修改x[1]后面等于的值即可,就可以完成目标要求,进行结果输出)
{'军事:7'}
总结
所有的代码就是简单地四行
ls = ["汽车", "财经", "科技", "健康", "体育", "教育","文化","军事","娱乐","时尚"] #文本数据
print({v:k for k,v in dict(enumerate(ls)).items()}) #贴标签
label_mapping = {v:k for k,v in dict(enumerate(ls)).items()} #贴标签后进行赋值
print({'{}:{}'.format(key,value) for key,value in filter(lambda x: x[1] == 7, label_mapping.items())}) #查找文本数据