Существует ли общий онлайн-алгоритм для динамической классификации новостей? У меня есть огромный набор данных новостей, классифицированных по темам. Я рассматриваю каждую из этих тем как кластер. Теперь мне нужно классифицировать экстренные новости. Возможно, мне нужно будет создавать новые темы или новые кластеры динамически.
Алгоритм, который я использую, следующий:
1) Я просматриваю группу лент с новостных сайтов и узнаю новостные ссылки.
2) Для каждой новой ссылки я извлекаю контент с помощью dragnet, а затем токенизирую его.
3) Нахожу векторное представление всех старых новостей и последней с помощью TfidfVectorizer от sklearn.
4) Я нахожу ближайшего соседа в своем наборе данных, вычисляя евклидово расстояние от последнего векторного представления новостей и всех векторных представлений старых новостей.
5) Если это расстояние меньше порога, я помещаю его в кластер, которому принадлежит сосед. В противном случае я создаю новый кластер с последними новостями.
Каждый раз, когда приходят новости, я подгоняю все данные с помощью TfidfVectorizer, потому что можно создавать новые измерения. Я не могу дождаться повторной подгонки один раз в день, потому что мне нужно обнаруживать критические события, которые могут быть связаны с неизвестными темами. Есть ли общий подход, более эффективный, чем тот, который я использую?