Sklearn_vectorizer and Intro to PyTorch
- 本章的目标:
- 理解监督学习基本方法
- 了解学习任务的编码输入
- 了解计算图是什么
- 掌握PyTorch的基础知识
Scikit-learn CountVectorizer与TfidfVectorizer
CountVectorizer与TfidfVectorizer是sklearn中特征向量化的两种方法,不同点在于CountVectorizer只考虑每种词汇在该训练文本中出现的频率,而TfidfVectorizer除了考量某一词汇在当前训练文本中出现的频率之外,同时关注包含这个词汇的其它训练文本数目的倒数。
EX1_1 one hot representation
from sklearn.feature_extraction.text import CountVectorizer
import seaborn as sns
import matplotlib.pyplot as plt
corpus = ['Time flies flies like an arrow.',
'Fruit flies like a banana.']
# vocab = set([word for sen in corpus for word in sen.split(" ")])
one_hot_vectorizer = CountVectorizer(binary=True)
one_hot = one_hot_vectorizer.fit_transform(corpus).toarray() #fit_transform()的作用就是先拟合数据,然后转化它将其转化为标准形式,而transform()的作用是通过找中心和缩放等实现标准化
vocab = one_hot_vectorizer.get_feature_names() # 返回一个特征名列表,特征的顺序是在矩阵中的顺序
sns.heatmap(one_hot, annot=True,
cbar=False, xticklabels=vocab,
yticklabels=['Sentence1','Sentence 2'])
print(one_hot_vectorizer.get_stop_words())
print(one_hot_vectorizer.vocabulary_)
print(one_hot_vectorizer.vocabulary_.get("a")) # 发现"a"在处理过程中并没有被当作一个词,在sklearn教程中找到这样一个描述"The default configuration tokenizes the string by extracting words of at least 2 letters.
print(one_hot_vectorizer.vocabulary_.get(