Поскольку у меня не было предложенного вами кода, я попытался создать некоторый случайный pandas кадр данных здесь, чтобы работать с тем, что было предложено
dataframe = pd.DataFrame(np.transpose([['problème blabla', 'contrer blabla', 'vider blabla', 'polluer blabla',
'corrosif blabla', 'pression blabla', 'extrémité blabla', 'invalid word', 'boullir blabla',
'sujet blabla', 'problème blabla', 'invalid word', 'vider blabla', 'corrosif blabla',
'boullir blabla', 'contrer blabla', 'invalid word', 'invalid word'],
['A', 'B', 'C', 'A', 'A', 'C', 'B', 'B', 'A', 'A', 'C', 'A', 'B', 'B']]),
columns = ['phrases', 'labels'])
A = ['problème', 'polluer', 'corrosif', 'pouvoir', 'sujet']
B = ['contrer', 'extrémité', 'bouillir']
C = ['vider', 'pression']
Способ извлечения "помеченных" слов Исходя из этого, этот кадр будет выглядеть следующим образом:
A_Words = [x for x in sum([y.split() for y in dataframe.phrases[dataframe.labels=='A']], []) if x in A]
B_Words = [x for x in sum([y.split() for y in dataframe.phrases[dataframe.labels=='B']], []) if x in B]
C_Words = [x for x in sum([y.split() for y in dataframe.phrases[dataframe.labels=='C']], []) if x in C]
Итак, просто объясним, что здесь происходит, чтобы увидеть, имеет ли это смысл: в [y.split() for y in dataframe.phrases[dataframe.labels=='A']]
мы создаем список, который содержит разделенные слова из каждого элемент в pandas кадре данных, который имеет метку A
.
Чтобы сгладить список слов, чтобы мы могли извлечь только слова, содержащиеся в A, B или C, мы используем решение предлагаемый здесь
Затем мы проверяем, находится ли это слово в списках A, B или C, если они есть, то они добавляются в A_Words и т. д. c.
Надеюсь, я мог бы помочь, если бы это было не совсем так