Semi-Supervised Natural Language Processing (NLP) Algorithm