Как факторизовать или векторизовать несколько строк в столбце, чтобы применить TFIDF для построения словаря - PullRequest
0 голосов
/ 15 октября 2018

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

...