Ниже приведен пример фрейма данных с именем 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 или любой такой классификатор, чтобы делать прогнозы.