NLP: примените CountVectorizer к столбцу, содержащему список функций

Я хочу применить CountVectorizer к столбцу, содержащему список слов и фраз. Другими словами, корпус — это не строка, а список. Проблема в том, что CountVectorizer или любая другая родственная функция, с которой я столкнулся, ожидает строку в качестве входных данных. Не имеет смысла объединять список в одну строку и токенизировать их, потому что некоторые фразы содержат 2 слова. Любые идеи?

пример:

ID      corpus
1       ["Harry Potter","Batman"]
2       ["Batman", "Superman", "Lord of the Rings"]

желаемый результат:

ID   Harry Potter    Batman    Superman    Lord of the Rings
1    1               1         0           0
2    0               1         1           1

person Almog Woldenberg    schedule 04.05.2020    source источник


Ответы (1)


Поскольку вы уже токенизировали свои предложения, для этого может не потребоваться CountVectorizer.

Я написал MultiLabelCounter() здесь, который может решить твоя проблема.

import pandas as pd
x = [["Harry Potter","Batman"], ["Batman", "Superman", "Lord of the Rings"]]

mlc = MultiLabelCounter()
mlc.fit_transform(x)
# [[1, 1, 0, 0], [1, 0, 1, 1]]

mlc.classes_
# ['Batman', 'Harry Potter', 'Lord of the Rings', 'Superman']

введите здесь описание изображения

person Venkatachalam    schedule 04.05.2020