НЛП: применить CountVectorizer к столбцу, содержащему список функций - PullRequest
1 голос
/ 04 мая 2020

Я хочу применить 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

1 Ответ

1 голос
/ 04 мая 2020

Поскольку вы уже разложили свои предложения по токенам, 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']

enter image description here

...