Я пытаюсь смоделировать оценку, которую получает почта, на основе как текста сообщения, так и других функций (время суток, длина сообщения и т.д.).
Мне интересно, как наилучшим образом объединить эти разные типы функций в одну модель. Прямо сейчас у меня есть что-то вроде следующего (украденного из здесь и здесь).
import pandas as pd
...
def features(p):
terms = vectorizer(p[0])
d = {'feature_1': p[1], 'feature_2': p[2]}
for t in terms:
d[t] = d.get(t, 0) + 1
return d
posts = pd.read_csv('path/to/csv')
# Create vectorizer for function to use
vectorizer = CountVectorizer(binary=True, ngram_range=(1, 2)).build_tokenizer()
y = posts["score"].values.astype(np.float32)
vect = DictVectorizer()
# This is the part I want to fix
temp = zip(list(posts.message), list(posts.feature_1), list(posts.feature_2))
tokenized = map(lambda x: features(x), temp)
X = vect.fit_transform(tokenized)
Кажется очень глупым извлекать все функции, которые я хочу, из фреймворка pandas, просто чтобы закрепить их все вместе. Есть ли лучший способ сделать этот шаг?
CSV выглядит примерно так:
ID,message,feature_1,feature_2
1,'This is the text',4,7
2,'This is more text',3,2
...