Классификация текста для логистической регрессии с конвейерами - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь использовать 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 данные в виде свободного текста в конвейер?

...