文本分类问题相关原理知识
1 词袋模型
from sklearn import feature_extraction
f = feature_extraction.text.CountVectorizer()
CountVectorizer将文本中的词转化为词频矩阵,数值为0/1,是关键字则为1。
from sklearn.feature_extraction.text import CountVectorizer corpus = [ 'This is the first document.', 'This is the second second document.', 'And the third one.', 'Is this the first document?', ] '''CountVectorizer是通过fit_transform函数将文本中的词语转换为词频矩阵 get_feature_names()可看到所有文本的关键字 vocabulary_可看到所有文本的关键字和其位置 toarray()可看到词频矩阵的结果''' vectorizer = CountVectorizer() count = vectorizer.fit_transform(corpus) print(vectorizer.get_feature_names()) print(vectorizer.vocabulary_) print(count.toarray()) print(count.toarray().shape) #词频矩阵:向量长度(横向每一行):所有关键字的数量(设为m) 数值:0/1数值==出现、未出现 纵向长度:文档数量 #需要注意关键字又有自己的位置,所以文档中的某一句有m长,该句中某个位置上是关键字的会标注为1. ['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this'] {'this': 8, 'is': 3, 'the': 6, 'first': 2, 'document': 1, 'second': 5, 'and': 0, 'third': 7, 'one': 4} [[0 1 1 1 0 0 1 0 1] [0 1 0 1 0 2 1 0 1] [1 0 0 0 1 0 1 1 0] [0 1 1 1 0 0 1 0 1]] (4, 9)