Как установить MultinomialNB с более чем 1 вектором? - PullRequest
0 голосов
/ 08 апреля 2020

Я очень плохо знаком с ML и stackoverflow, поэтому я заранее извинюсь, если это глупый вопрос или я нарушу какие-либо правила.

У меня есть 2 функции: строка, заголовок и статья. Я сделал Tfidfvector для заглавия следующим образом и попытался обучить MultinomialNB:

TitleString ## The corpus
titleVector = TfidfVectorizer()
titleVectorArray = titleVector.fit_transform(TitleString).toarray()
model = MultinomialNB()
model.fit(titleVectorArray, label_train)

Я пытался сделать то же самое для статьи.

ArticleString ## The corpus
ArticleVector = TfidfVectorizer()
ArticleVectorArray = ArticleVector.fit_transform(ArticleString).toarray()
model_2 = MultinomialNB()
model_2.fit(ArticleVectorArray, label_train)

Я был Интересно, есть ли способ, как я могу использовать оба titleVectorArray и ArticleVectorArray вместе, чтобы обучить одну модель MultinomialNB?

Я знаю, я могу соединить два корпуса вместе и затем найти вектор признаков, но Я не понимаю, какой результат даст такой метод. Я хочу использовать оба вектора как 2 - разные / отдельные объекты для модели. А также, как я могу реализовать это в sklearn?

Я бы очень признателен за любую помощь.

1 Ответ

0 голосов
/ 08 апреля 2020

Векторизатор возвращает вектор объектов. Если вы объедините два из них, у вас будет набор функций, который использует как информацию из заголовка, так и информацию из статьи. Так что просто сделайте что-то вроде:

TitleString ## The corpus
titleVector = TfidfVectorizer()
titleVectorArray = titleVector.fit_transform(TitleString).toarray()
ArticleString ## The corpus
ArticleVector = TfidfVectorizer()
ArticleVectorArray = ArticleVector.fit_transform(ArticleString).toarray()
model = MultinomialNB()
model.fit(np.concatenate(ArticleVectorArray, titleVectorArray), label_train)

Тем не менее, это не гарантирует улучшение качества вашей модели. Объединение текста и заголовка в этом случае выглядит естественным, поэтому попробуйте также сделать то, что вы описали выше.

...