У меня есть набор данных, в котором я использую текстовый столбец для прогнозирования некоторого числового столбца.
Мой последний вопрос заключается в следующем: какие слова в текстовом столбце связаны с большим / меньшим количеством баллов?
Итак, мой конвейер - сначала векторизовать мой текстовый столбец,а затем использовать регрессию гребня.Но после того, как я построю этот конвейер, как мне извлечь коэффициенты в именах объектов векторизатора?
import pandas as pd
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
# This is my toy data
d = {'text': ["I am a a string", "And I am a string", "I, too am string", "And me", "Me too"],
'target': [3, 4, 14, 6, 7]}
df = pd.DataFrame(d)
X_train, X_test, y_train, y_test= train_test_split(df['text'], df['target'],
test_size=0.3, random_state=42)
# Here is a vectorizer
vect = TfidfVectorizer(stop_words='english')
X_train_vect = vect.fit_transform(X_train)
# Here is a ridge regressor
model = Ridge(random_state=42)
model.fit(X_train_vect, y_train)
# Now we make a pipeline
pipe = Pipeline([('vect',vect),('model',model)])
y_pred = pipe.predict(X_test)
Как бы мне было извлечь слова как коэффициенты отсюда?Например: "I am": 0.05
или что-то еще