Проблема, с которой я сталкиваюсь, состоит в классификации коротких текстов на несколько классов. Мой текущий подход заключается в использовании частотных терминов tf-idf и изучении простого линейного классификатора (логистическая регрессия). Это работает достаточно хорошо (около 90% макроса F-1 в тестовом наборе, почти 100% в тренировочном наборе). Большой проблемой являются невидимые слова / н-граммы.
Я пытаюсь улучшить классификатор, добавляя другие функции, например, вектор фиксированного размера, вычисленный с использованием распределительных сходств (как вычислено word2vec) или другие категориальные особенности примеров. Моя идея состояла в том, чтобы просто добавить функции в разреженные функции ввода из пакета слов. Тем не менее, это приводит к ухудшению производительности на тестовом и тренировочном наборе. Дополнительные функции сами по себе дают около 80% F-1 в тестовом наборе, поэтому они не являются мусором. Масштабирование функций также не помогло. В настоящее время я думаю, что такого рода функции не очень хорошо сочетаются с (редким) набором слов.
Таким образом, вопрос заключается в следующем: если дополнительные функции предоставляют дополнительную информацию, каков наилучший способ их включения? Может ли обучение отдельных классификаторов и объединение их в какую-то ансамблевую работу (это, вероятно, будет иметь недостаток, заключающийся в том, что никакое взаимодействие между функциями различных классификаторов не может быть зафиксировано)? Есть ли другие, более сложные модели, которые я должен рассмотреть?