Я пытаюсь использовать LogisticRegression
для классификации текста.Я использую FeatureUnion
для функций DataFrame
, а затем cross_val_score
для проверки точности классификатора.Однако я не знаю, как включить в конвейер функцию со свободным текстом, называемую tweets
.Я использую TfidfVectorizer
для модели мешка слов.
nominal_features = ["tweeter", "job", "country"]
numeric_features = ["age"]
numeric_pipeline = Pipeline([
("selector", DataFrameSelector(numeric_features))
])
nominal_pipeline = Pipeline([
("selector", DataFrameSelector(nominal_features)),
"onehot", OneHotEncoder()])
text_pipeline = Pipeline([
("selector", DataFrameSelector("tweets")),
("vectorizer", TfidfVectorizer(stop_words='english'))])
pipeline = Pipeline([("union", FeatureUnion([("numeric_pipeline", numeric_pipeline),
("nominal_pipeline", nominal_pipeline)])),
("estimator", LogisticRegression())])
np.mean(cross_val_score(pipeline, df, y, scoring="accuracy", cv=5))
Это правильный способ включить tweets
данные в виде свободного текста в конвейер?