下面是一个名为df
的数据帧的示例,其中包含两个重要列。我希望我的模型学习Composition
列中的内容,并使用TFIDF构建词汇表,然后帮助预测Item列。
UID Item Composition
1 [Sweater] [Wool, knitting, handmade, knitting needle]
2 [Jeans] [Denim, cotton, orange thread, stonewash, blue dye]
3 [CottonTrouser] [Cotton, littlepolyster, weaving, handstitch, vcut]
4 [SilkShirt] [wormsilk, artificialsilk, weaving, hand looming, color dying, coating]
5 [Carpet] [Wool, cotton, organic cotton, knitting, sewing]
我应用了以下内容
df['Item'] = df['Item'].apply(lambda x: ''.join(str(x).strip('[]') if isinstance(x, list) else x))
df['Composition'] = df['Composition'].apply(lambda x: ''.join(str(x).strip('[]') if isinstance(x, list) else x))
现在看起来像下面。它由两列充满字符串的列组成。
UID Item Composition
1 'Sweater' 'Wool', knitting', 'handmade', 'knitting' 'needle'
2 'Jeans' 'Denim', 'cotton', 'orange thread', 'stonewash', 'blue dye'
3 'CottonTrouser' 'Cotton', 'littlepolyster', 'weaving', 'handstitch', 'vcut'
4 'SilkShirt' 'wormsilk', 'artificialsilk', 'weaving', 'hand looming', 'color dying', 'coating'
5 'Carpet' 'Wool', 'cotton', 'organic cotton', 'knitting', 'sewing'
我正在尝试将pd.factorize()应用于数据,但效果不佳。我想将字符串转换为整数并使模型学习单词。
print(df['Indexer'])
0 [0, 1, 2, 3, 4, 5]
1 Index([''Denim ', 'cotton', 'orange thread...
2 NaN
3 NaN
4 NaN
我想使用每个Item
列中找到的字符串的组合来预测Composition
列的值。需要一些有关如何使用TFIDF的专家建议。完成此操作后,我希望将其通过MultinomialNB分类器或任何此类分类器进行预测。