Есть много способов сделать это, и лучший метод меняется в зависимости от проекта. Возможно, самый простой способ сделать это - выполнить поиск по ключевым словам в ваших статьях, а затем эмпирически выбрать показатель отсечки. Несмотря на простоту, на самом деле это работает довольно хорошо, особенно в такой теме, как эта, где вы можете придумать небольшой список слов, которые, скорее всего, появятся где-то в соответствующей статье.
Когда тема более широкая с чем-то вроде «бизнес» или «спорт», поиск по ключевым словам может быть запретительным и отсутствовать. Это когда подход машинного обучения может начать становиться лучшей идеей. Если машинное обучение - это то, что вам нужно, тогда есть два шага:
- Вставьте ваши статьи в векторы функций
- Тренируй свою модель
Шаг 1 может быть чем-то простым, например, вектором TFIDF. Тем не менее, встраивание ваших документов также может быть глубоким изучением самостоятельно. Здесь вступают в игру CBOW и Skip-Gram. Популярный способ сделать это - Doc2Vec (PV-DM). Хорошая реализация в библиотеке Python Gensim. Современные и более сложные вложения символов, слов и документов представляют собой гораздо более сложную задачу, но они очень полезны. Примерами этого являются вложения ELMo или BERT.
Шаг 2 может быть типичной моделью, поскольку теперь это просто двоичная классификация. Вы можете попробовать многослойную нейронную сеть, либо полностью подключенную, либо сверточную, или вы можете попробовать более простые вещи, такие как логистическая регрессия или наивный байесовский эффект.
Мое личное предложение - придерживаться векторов TFIDF и Наивного Байеса. Исходя из опыта, я могу сказать, что это работает очень хорошо, намного проще в реализации и может даже превзойти такие подходы, как CBOW или Doc2Vec, в зависимости от ваших данных.