Это как ваши данные!
import pandas as pd
df = pd.DataFrame([[['kubernetes', 'client', 'bootstrapping', 'ponda']], [['micro', 'insu']], [['motor', 'upi']],[['secure', 'app', 'installation']],[['health', 'insu', 'express', 'credit', 'customer']],[['secure', 'app', 'installation']],[['aap', 'insta']],[['loan', 'house', 'loan', 'customers']]])
df.columns = ['ingredients']
print(df)
Выход:
ingredients
0 [kubernetes, client, bootstrapping, ponda]
1 [micro, insu]
2 [motor, upi]
3 [secure, app, installation]
4 [health, insu, express, credit, customer]
5 [secure, app, installation]
6 [aap, insta]
7 [loan, house, loan, customers]
Вот код для вывода списка уникальных слов.
for i in df.index:
df.at[i, 'string'] = " ".join(item for item in df.at[i, 'ingredients'])
df.drop(['ingredients'], axis = 1, inplace = True)
from sklearn.feature_extraction.text import CountVectorizer
countvec = CountVectorizer()
counts = countvec.fit_transform(df['string'])
vocab = pd.DataFrame(counts.toarray())
vocab.columns = countvec.get_feature_names()
print(list(vocab.columns))
Придает
['aap', 'app', 'bootstrapping', 'client', 'credit', 'customer', 'customers', 'express', 'health', 'house', 'insta', 'installation', 'insu', 'kubernetes', 'loan', 'micro', 'motor', 'ponda', 'secure', 'upi']
Теперь у вас есть список вашего уникального словаря. Если вы можете дать дополнительный контекст о том, как вы хотите назначить значения, я могу продолжить этот ответ.
Расширенный ответ:
wordlist = list(vocab.columns)
worddict = {}
for i in range(0, len(wordlist)):
worddict[wordlist[i]] = i
print(worddict)