Для начала, Наивный Байес, вероятно, здесь не подходит. Он предполагает независимость между входными данными (отсюда и «Наивный»), а слова в предложении очень зависимы.
Но, если вы действительно хотите запустить NB в качестве алгоритма для начала экспериментов, я бы рассмотрел два варианта:
Ungraceful: много классификаторов NB
Это был бы альтернативный подход. Сделайте совокупность всех слов, наблюдаемых как ваш вектор входов. Сделайте корпус из всех тегов, которые наблюдаются как ваш вектор выходных данных. NB-классификатор с несколькими выходами является эквивалентом наличия нескольких NB-классификаторов с одним выходом каждый (так что делайте, что легче реализовать в любой программной среде, которую вы используете). Рассматривайте каждый элемент как обучающую выборку, где заданный вход (слово) представляет собой, 1
если это слово присутствует, и 0
если это слово отсутствует. Используйте ту же двоичную схему для вывода.
Эта грубая атака заставляет применять классификатор NB к вашим данным и дает вам возможность обрести смысл, продолжая разрабатывать огромный набор классификаторов, с которым вы останетесь.
Более изящный: обработка ваших данных
Этот подход я бы порекомендовал, если вы хотите использовать один классификатор NB для нескольких классов.
Ваша цель здесь состоит в том, чтобы выяснить, как сопоставить каждый набор тегов с одним классом. Я уверен, что есть какая-то схема кластеризации или сетевой анализ (возможно, ["знаменитость"), связанная с ["убийством"], может стать сегментом "разврата") ", который будет разумно отображать ваши теги в одном кластере. Если вы рассматриваете теги как узлы, а два заданных тега вместе как ссылки, то вы захотите изучить алгоритмы обнаружения сообщества (именно с этого я и начну). Но если вы просто хотите, чтобы что-то работало, то было бы достаточно какого-то взлома тегов, который преобразует список тегов в тот тег, который чаще всего встречается в вашем наборе данных.
Этот метод берет на себя основную работу по очистке ваших данных и облегчает понимание выходных данных классификатора NB.