如何在Python easy中将标记集转换为belongness元组(“multi-hot”编码)?

如何在Python easy中将标记集转换为belongness元组(“multi-hot”编码)?,python,one-hot-encoding,Python,One Hot Encoding,我有一组标签标签和所有可能标签的有序列表标签列表。现在,我想将一组标记转换为“多热”编码,即获得一个与taglist长度相同的列表或元组,其中有一个在位置,属于的标记在哪里,零在其他位置 目前我做的是traightforward: multihot = [] for i in range(len(taglist)): tag = taglist[i] if tag in tags: m

我有一组标签
标签
和所有可能标签的有序列表
标签列表
。现在,我想将一组标记转换为“多热”编码,即获得一个与
taglist
长度相同的列表或元组,其中有一个在位置,属于的标记在哪里,零在其他位置

目前我做的是traightforward:

        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
可以为您做到这一点: