Context classification problem
Spam detection can be done with many different methods, the same goes for your task. They do share the similar idea of processing a given text and classifying it to be one of 2 classes (science/not-science or spam/not-spam).

What you first need to do is to turn the articles into a vector of constant size 
(for example with Word2vec which takes as its input a text and produces a vector space).

Ones you have a vector representing each article, you can start training your classifier and feature extractor (these days they are trained together).

As for determining which machine learning approach to take, you can try first using an SVM, it will probably be good enough.

You can follow one of the following tutorials (there are many more), just replace their dataset with yours :

Email Spam Filtering: An Implementation with Python and Scikit-learn

Spam Classifier in Python from scratch