一、基于sklearn的朴素贝叶斯分类器
import numpy as np
import sklearn
from sklearn.datasets import fetch_20newsgroups
twenty_train=fetch_20newsgroups(subset='train',shuffle=True)
twenty_train.traget_names
from sklearn.feature_extraction.text import CountVectorizer
count_vect=CountVectorizer()
x_train_counts=count_vect.fit_transform(twenty_train.data)#词袋模型
from sklearn.naive_bayes import MultinomialNB
clf=MultionmialNB.fit(x_train_counts,twenty_train.target)
twenty_test=fetch_20newsgroups(subset='test',shuffle=True)#生成测试集
x_test_counts=count_vect.transform(twenty_test.data)
predicted=clf.predict(x_test_counts)
二、基于sklearn的LinearSVC分类器
from sklearn.svm import LinearSVC
clf = LinearSVC.fit(x_train_counts,twenty_train.target)
predicted=clf.predict(x_test_counts)
三、基于gensim的LDA生成模型
from gensim.test.utils import common_texts
from gensim.corpora.dictionary import Dictionary# Create a corpus from a list of texts
common_dictionary = Dictionary(common_texts)
common_corpus = [common_dictionary.doc2bow(text) for text in common_texts]# Train the model on the corpus.
lda = LdaModel(common_corpus, num_topics=10)
from gensim.corpora import Dictionary
dct = Dictionary(["máma mele maso".split(), "ema má máma".split()])
dct.doc2bow(["this", "is", "máma"])
[(2, 1)]
dct.doc2bow(["this", "is", "máma"], return_missing=True)
([(2, 1)], {u'this': 1, u'is': 1})
from gensim.models import LdaModel
lda = LdaModel(common_corpus, num_topics=10)
lda.print_topic(1, topn=2)
'0.500*"9" + 0.045*"10"