[英]How to convert set of tags to belongness tuple (“multi-hot” encoding) in Python easy?
我有一组标签tags
和所有可能的标签taglist
的有序列表。 现在我想将一组标签转换为“多热”编码,即获得一个与taglist
长度相同的列表或元组,并且在某些地方有一个,属于标签所在的地方和其他地方的零。
目前我做直截了当:
multihot = []
for i in range(len(taglist)):
tag = taglist[i]
if tag in tags:
multihot.append(1)
else:
multihot.append(0)
可以写单行吗?
multihot = [(tag in tags) for tag in tag_list]
multihot 现在包含 True 或 False 条目。 在 Python 中,True 的行为与 1 完全相同,而 False 的行为与 0 相同; 所以这相当于你的解决方案。
您可以通过列表理解来达到它,添加条件标签是否在标签中,如果是,则插入 1 否则 0。
multihot = [1 if tag in tags else 0 for tag in taglist]
在我看来,您正在执行多标签编码。 sklearn
可以为您做到这一点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.