Hyperlinks Setupthe mini 20 newsgroup dataset: https://archive.ics.uci.edu/ml/machine-learning-databases/20newsgroups-mld/mini_newsgroups.tar.gzmatplotlib example: Plotting Learning Curves — scikit-learn 1.0 documentationPart1:1.1 stopwords: NLTK’s list of english stopwords · GitHub stemmer in NLTK: Stemmers (nltk.org)see a sample libsvm file: https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/a1a Part2: The usage of Multinomial NB: sklearn.naive_bayes.MultinomialNB — scikit-learn 1.0 documentation The usage of Bernoulli NB: sklearn.naive_bayes.BernoulliNB — scikit-learn 1.0 documentation The usage of kNN: sklearn.neighbors.KNeighborsClassifier — scikit-learn 1.0 documentation The usage of SVM: sklearn.svm.SVC — scikit-learn 1.0 documentation Part4: K-Means: sklearn.cluster.KMeans — scikit-learn 1.0 documentation Hierarchical clustering: sklearn.cluster.AgglomerativeClustering — scikit-learn 1.0 documentation Sihouette Coefficient (SC): sklearn.metrics.silhouette_score — scikit-learn 1.0 documentation Normalized Mutual Information(NMI): sklearn.metrics.normalized_mutual_info_score — scikit-learn 1.0 documentation