MultiLabelBinarizer异常:识别字符而非标签条目问题求助
问题:MultiLabelBinarizer返回单个字符而非标签条目
我的DataFrame中tags列是逗号分隔的多标签集合,执行代码后出现异常:
数据列展示
y = df['tags'] y
输出:
0 Brand Design,Website Development,WordPress Des... 1 Motion Graphics,Video Editing,Graphic Design,L... 2 Business Proposal Writing,Content Writing,Copy... 3 Content Writing,Article Writing,Social Media M... 4 PHP,React native,Laravel Framework,C#] ... 2995 Ad Design,Adobe Illustrator,Adobe Photoshop,Co... 2996 Administrative Support,Accounting Executive In... 2997 Administrative Support,Business Analytics,Comp... 2998 .NET Development,AngularJS,ASP.NET MVC,Automat... 2999 3D Animation,2D Design,3D Design,3D Modeling] Name: tags, Length: 3000, dtype: object
初始化与转换代码
multilabel = MultiLabelBinarizer() y = multilabel.fit_transform(df['tags']) y
输出:
array([[1, 0, 0, ..., 0, 0, 0], [1, 0, 0, ..., 0, 0, 0], [1, 0, 0, ..., 0, 1, 0], ..., [1, 0, 0, ..., 0, 1, 0], [1, 0, 0, ..., 0, 0, 0], [1, 0, 0, ..., 0, 0, 0]])
异常现象
调用multilabel.classes_时,返回的是单个字符而非预期的标签条目:
multilabel.classes_
输出:
array([' ', '!', '#', '&', "'", '(', ')', '+', ',', '-', '.', '/', '0', '1', '2', '3', '5', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '\\', ']', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'], dtype=object)
解决方法
原因
MultiLabelBinarizer的fit_transform方法要求输入是嵌套的可迭代对象(比如每个元素是一个标签列表)。直接传入字符串列时,它会把每个字符串当作字符的迭代器,因此拆分出了单个字符。
修复步骤
先将tags列的每个逗号分隔字符串转换为标签列表,同时清理数据中的多余字符,再传入MultiLabelBinarizer:
# 清理末尾多余的],再按逗号拆分字符串为标签列表 df['tags_clean'] = df['tags'].str.replace(r'\]$', '', regex=True).str.split(',') # 初始化并执行转换 multilabel = MultiLabelBinarizer() y = multilabel.fit_transform(df['tags_clean']) # 查看正确的标签集合 print(multilabel.classes_)
说明
str.split(',')将每个逗号分隔的字符串拆分为标签列表,例如"PHP,React native"会变成["PHP", "React native"]str.replace(r'\]$', '', regex=True)用于清理部分条目末尾多余的](如第4、2999行),避免无效字符混入标签
执行后,multilabel.classes_会返回所有真实的标签条目,而非单个字符。
内容的提问来源于stack exchange,提问作者Tushar
相关产品推荐
相关产品推荐

