文本分类问题相关原理知识

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)
 
 

 

 

猜你喜欢

转载自www.cnblogs.com/DHuifang004/p/11224763.html
今日推荐